MCP 栈
一份来自实战试炼的现场指南,每台服务器都在相同的真实任务上运行(一个 1080x1350 的 riso 风格社交帖子;由独立查询验证的真实空间问题)。仅限免费层级。
规则:仅限免费。 除非所有者明确要求,否则切勿升级、开始付费试用或在这些服务中输入银行卡信息。付费墙是一个发现,而不是购买。
规则:不发布任何内容。 Orshot 有一个 publish 参数可发布到社交网络;Canva 和 Figma 可以共享。未经明确要求,切勿使用它们。所有输出都是供人工审查的本地文件。
设计 / 艺术 / 品牌 — 根据工作选择
| 工作 | 使用 | 原因 / 成本 |
|---|---|---|
| 根据简报完成的营销成品,外观最佳 | canva create-design -> resize-design -> export-design | 这一套中输出效果最好。每月约 6 次 AI 设计免费(一次设计约消耗额度 15%;每月重置)。使用 edit-design 编辑,不要重新生成。 |
| Riso 帖子/卡片/海报,无限制,精确数字 | inkscape MCP inkscape_vector construct_svg (params.header + params.body) -> inkscape_render export_preview | 能渲染真实的半色调图案、feTurbulence 纹理、叠印错位。约 5 秒,无头模式,无限制。任何可重复工作的默认选择;将 SVG 主体保存为模板文件。 |
| 在设计文件中进行精确矢量布局 | penpot execute_code -> export_shape | 免费,无限制。必须打开一个包含该文件的 Penpot 标签页(可以是无头模式),否则每次调用都会失败。 |
| 同左,但在 Figma 中供他人接手 | figma create_new_file + use_figma | 免费版 = 每月约 20 次计数调用,3 个文件。请合理预算。没有 createImageAsync/setPluginData。 |
| 带变量的可复用模板(OG 卡片、IG 帖子系列) | orshot | 每月约 100 次渲染免费。形状颜色通过 style.fill 设置(backgroundColor 会绘制黑色)。输出 URL 是公开不可猜测的。 |
| 免费 AI 插图草稿 | huggingface dynamic_space -> mcp-tools/Qwen-Image, aspect_ratio:"3:4" | 在免费模型中与 riso 风格最接近。每天约 6 张图片(ZeroGPU 配额)。1.6MP;会在角落绘制伪造的签名笔迹——请裁剪。最终稿使用付费引擎(make-art)。 |
| 透明 PNG 抠图 | huggingface space_name: Upsampler/birefnet-background-removal, {"image":"<public URL>"} | 约 5 秒。Spaces 只接受公共 URL,不接受本地路径。 |
| 彩色位图 -> SVG(Logo、标识) | shapesoda vectorize {image_base64, image_type:"artwork", colors:8, format:["svg"]} | 每天约 10 次免费。下载链接 24 小时后过期——请立即获取。去除剪切边缘处杂散的 #ff00ff 路径。以 4 倍尺寸渲染 SVG = 对纯色图的免费放大。 |
| 单色 SVG(印章、模板、轮廓版) | svg-tracer trace_bitmap_to_svg (绝对路径) | 本地 potrace,无限制,0.1 秒。 |
| 基于真实数据的图表 | antv-chart | 提供手绘纹理选项。将您的数据发送到第三方渲染服务并返回一个公共 URL——仅限公开数据。X 轴标题为空时会显示 "category"。 |
| 3D 字体 / 产品模型 | Blender MCP(需要正在运行的应用程序) | 启动带有插件的 Blender,然后使用 DISABLE_TELEMETRY=true 临时添加服务器(uvx mcp-for-blender@<pinned>)。遥测默认开启——务必禁用它。 |
| 光栅后期处理(新闻纸半色调、照片编辑) | GIMP MCP(需要正在运行的 gimp-console) | 对于 GIMP 3.2 无头模式:gimp-console -i --batch-interpreter=python-fu-eval -b "p=Gimp.get_pdb().lookup_procedure('plug-in-mcp-server'); c=p.create_config(); c.set_property('run-mode', Gimp.RunMode.NONINTERACTIVE); p.run(c)" &。新闻纸默认使用线条图案——需设置为 circle。仅支持十六进制颜色。使用后杀掉 gimp-console 进程。 |
| HTML -> PNG 卡片,数据不离开本地机器 | Satori MCP(已修补) | 原始版本会将每张图片上传到公共 Blob 存储;需修补为本地保存。使用冻结的 lockfile 安装。 |
稿件上的每个数字都来自实时数据源(通过 curl 获取),切勿手动输入。在浅色背景上检查强调色的对比度(例如奶油色背景上的中红色可能约为 3.8:1,这对于小文本来说不合格;在约 24px 以下请加深颜色)。
已弃用(无需重新测试):Pollinations(水印、低分辨率)、Stability(一次性试用)、fal/Replicate/Together(无卡片式免费层)、Krita MCP(无文本)、tldraw 和 Excalidraw MCP 应用(仅在聊天 UI 内绘图)、Bannerbear/Placid(试用)、Postiz(无免费云服务,需要 Docker)、Remotion MCP(仅文档)、Buffer(注册需 CAPTCHA)。
数据 / 空间
| 工作 | 使用 | 陷阱 |
|---|---|---|
| 对 parquet/csv/geojson/.duckdb 执行 SQL + 空间查询 | duckdb MCP(内存中,已加载空间扩展) | ST_Transform(ST_Point(lon,lat),'EPSG:4326','EPSG:26915') 静默返回 POINT(inf inf),因此距离过滤计数为 0。请传递 always_xy := true。评估列通常是 VARCHAR(最大值按文本排序);销售价格可能含有 999,999,999 占位符。如果服务器以读写模式运行,它可以将表 COPY TO 到任何地方:请以 READ_ONLY 模式附加您的真实文件。 |
| 实时 ArcGIS FeatureServer 图层 | duckdb ST_Read('<FeatureServer>/0/query?where=...&outFields=...&orderByFields=OBJECTID&f=geojson&resultOffset=N') | 在服务器的 maxRecordCount(通常为 2,000)处静默截断,无任何警告。请先检查 returnCountOnly=true,使用 resultOffset + orderByFields 进行分页,并在 UNION ALL 中命名列(空页没有列)。 |
| OSM / Overpass(邻里餐馆...) | osm openstreetmap_search_places -> 关系 id -> openstreetmap_query_bbox{within:"R..."} | 按名称搜索区域存在泄漏风险:一个邻里名称可能会从另一个州同名地点拉取数据。务必在关系 id 内部搜索。Overpass 镜像经常返回 500,需重试。 |
| 按地址/区域查询人口普查 ACS | census census_resolve_geography{name:"<address>"} -> census_query_data{dataset:"acs/acs5", ...} | 会返回 MOE(...M 变量)——请报告。需要一个免费的 CENSUS_API_KEY。 |
| 渲染地图 PNG 以查看构建结果 | maplibre render_style | 无头 Chrome,OpenFreeMap 底图,无需密钥。 |
已弃用:gis-mcp(88 个工具,DuckDB 已覆盖)、官方 Census MCP(需要 Docker+Postgres)、无分页功能的爬虫类 ArcGIS MCP、PostGIS(DuckDB 已覆盖)。
网页研究 / 提取
| 工作 | 使用 | 陷阱 |
|---|---|---|
| “谁在 X 公司负责运营”,人员/公司研究 | exa web_search_exa | 无需密钥。通常能找到公司的团队页面,而通用网页搜索则找不到。 |
| 快速读取已知页面 | exa web_fetch_exa {urls:[...]} | 从其索引中亚秒级返回——缓存且无 JS;可能存在内容过时。 |
| 精确短语搜索,渲染后抓取 | firecrawl | 每月约 1,000 积分免费(抓取 1 积分,搜索 2 积分,JSON 5 积分)。JSON 提取会虚构字段——只信任返回的 markdown 中出现的内容。 |
| 渲染后抓取,无限制,Cloudflare 隐藏的邮箱 | Crawl4AI CLI crwl <url> -o markdown | 可解码 curl 无法获取的 data-cfemail。批量处理:AsyncWebCrawler(...).arun_many。 |
| 无任何工具时的 JS 页面 | curl https://r.jina.ai/<url> | 无需密钥,每分钟约 20 次请求,耗时 2-18 秒。 |
- 某些城市门户网站位于 Cloudflare 之后,无头浏览器根本无法穿透;它们通常拥有相同数据的 ArcGIS REST 层。
- 邮箱:使用企业在自己网站上公布的联系邮箱,然后检查该确切域名的 MX 记录。目录网站经常篡改域名(常见情况是少写或写错一个字母)。从家庭网络连接通常无法进行邮箱级验证;25 端口通常被屏蔽。
- 已弃用:Reddit MCP(匿名访问 403——请使用
reddit-mining)、browser-use(需要付费 LLM 密钥)、Browserbase(电话验证)。Tavily/Apify/Hunter/Brave 都在注册时遇到 CAPTCHA——如果需要,每个只需一次人工点击。
金融 / 政府数据
| 工作 | 使用 | 陷阱 |
|---|---|---|
| 已报告财务数据,最新季度 | sec-edgar get_xbrl_concepts(按文件查询) | EDGAR 的 companyfacts(许多工具的 get_key_metrics 读取的数据源)可能滞后一个季度——它会静默停止在上一季度。按文件查询 XBRL 能获取最新数据。请参见 sec-financials。 |
| 价格、分析师升级/降级、预测 | yfinance | 视为不稳定来源;在使用数据前,请与交易所官方页面核对收盘价。 |
| SAM.gov 机会、grants.gov、data.gov | 一个无需密钥的 gov 数据 MCP | 免费的 SAM 路径(SAM 自己的 API 需要 login.gov MFA)。搜索结果省略了 NAICS/预留类别——请获取每条通知。 |
| USAspending 拨款 | usaspending | 按绩效地点过滤,而非收款方地点——要查询“X 州的收款方”,请使用 recipient_locations 调用 spending_by_award。“拨款金额”是终身总额,而非财政年度。 |
| 10 年期国债等 | 无需密钥 curl "https://fred.stlouisfed.org/graph/fredgraph.csv?id=DGS10&cosd=<YYYY-MM-DD>" | FRED 数据比 Treasury 自己的曲线滞后约 1 天。 |
框架
- Claude Agent SDK 用于定时运行的无头 Agent(例如,一个调用 sec-edgar MCP 并写入 JSON 的 uv 脚本)。在 macOS launchd 下无法读取
~/Desktop或~/Documents——请将文件存放在其他位置。 - promptfoo 用于聊天产品的评测:通过
claude -p运行真实系统提示,并使用确定性断言(禁用词、字数限制)。设置PROMPTFOO_DISABLE_TELEMETRY=1。通过 stdin 传递提示(--tools ""会吞掉位置参数提示)。 - Observable Framework 用于数据 -> 静态站点(通过
uv run运行 Python 加载器)。一个直接的内嵌分析<script>标签会破坏构建;请在运行时注入。 - uv 脚本(PEP 723 内联依赖)用于每个小型流水线。
- 已弃用:Evidence.dev(现为需登录的工作室)、用于小型任务的 Pydantic AI/DSPy(SDK 已覆盖)、每次会话消耗数千个上下文 token 的重量级供应商插件。
运维
| 需求 | 使用 | 注意 |
|---|---|---|
| 一次性产品分析问题(“存在哪些事件”,漏斗分析) | posthog(单个 exec 工具) | 与 HogQL 结果相同。个人 API 密钥可以写入标志/群组——请保持只读权限。 |
| 在 Mac 上读取短信 | imessage MCP | 优于直接操作 chat.db 的 SQL:能解码 attributedBody、移除 tapback、解析联系人。无发送工具。 请固定版本——仅一位维护者。 |
| 当前库文档 | context7 | 在查询中指明供应商名称,否则会解析到错误的库。 |
当 MCP 比技能本身更慢更重时,请保留技能而非 MCP:Vercel(其 MCP 包含约 240 个工具,包括 buy_domain;请参见 vercel-api)、Stripe(其 MCP 会隐去客户姓名;请参见 stripe-dashboard)、GitHub(gh)、Notion(使用 curl;托管的 MCP 拒绝集成 token)、Apple Notes(apple-notes;MCP 带有删除工具)。如果您的规则要求最终由人类点击发送,则切勿添加带有发送工具的邮箱供应商 MCP。
认证状态
- OAuth 服务器(canva、figma、orshot):如果
claude mcp list显示“需要认证”,请在交互式会话中运行一次/mcp。将密码和令牌保存在 Keychain 中,切勿存入仓库。 - 在该网站的设置 -> 已连接的应用中,撤销任何 OAuth 授权。
添加新的 MCP
注册前进行测试:npx -y @modelcontextprotocol/inspector --cli <cmd> --method tools/list(将服务器包裹在 shell 脚本中——检查器会吞掉 -e 和服务器标志)。然后:固定版本([email protected];参考服务器会重编号)、检查工具列表中的发送/删除/发布工具、检查遥测默认值,并在上表中的适当位置添加一行及其陷阱。当它不再发挥作用时,将其移除。