Community编程与开发github.com

2016judea/mcp-stack

一份免费的 MCP 服务器和框架选择指南,涵盖设计、数据、研究、金融、运维等领域,并点明其陷阱和使用限制。

mcp-stack 是什么?

该技能提供了一个全面的 MCP 生态系统指南,基于实际的“试炼”结果,仅使用免费层级。它按任务类型(如设计、数据处理、网页研究、金融数据获取和运维)分类推荐具体的 MCP 服务器或框架,例如渲染社交媒体的 Canva 和 Inkscape、处理空间数据的 DuckDB、进行网页抓取的 Exa 和 Firecrawl。该总结详细列出了每个工具的隐藏成本和陷阱(例如 Canva 每月仅提供约 6 次 AI 设计、DuckDB 的 ST_Transform 在无 always_xy 参数时静默返回无穷、EDGAR 的 companyfacts 数据可能滞后一个季度等)。它还包含了添加新 MCP 的测试流程、OAuth 认证管理以及安全规则(绝不付费升级、绝不自动发布内容)。该技能适用于 Claude Code、Cursor、Codex 等支持 MCP 的 AI 代理,帮助开发者快速选出最合适的免费工具,并避开常见的配置和使用错误。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/2016judea/brick-mortar-skills/tree/HEAD/skills/mcp-stack

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

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,需重试。
按地址/区域查询人口普查 ACScensus 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];参考服务器会重编号)、检查工具列表中的发送/删除/发布工具、检查遥测默认值,并在上表中的适当位置添加一行及其陷阱。当它不再发挥作用时,将其移除。

Individual skills in this repo

This repo contains 7 individual skills — each has its own dedicated page.

2016judea/ascii-charts

Build charts as plain Unicode-block text — bar, range, bullet, gap-bracket, star-histogram, heatmap, line, Venn, pie, donut and scatter — with a dependency-free Python script, for anywhere only monospace text survives (newsletter code blocks, Markdown, terminals, plain-text email, chat). Use when a chart has to embed as literal text instead of an image or a third-party chart service, or when you want a hand-made terminal look with no branding footer.

2016judea/buffett-checklist

Apply Warren Buffett's investment framework as a discipline lens when weighing a buy, hold, or sell decision — circle of competence, economic moat, owner earnings & intrinsic value, margin of safety, management/capital-allocation quality, and market psychology (Mr. Market, fear vs greed, temperament). Use when asked to "run this through Buffett", "what would Buffett say", "does this pass the moat test", "is this cheap enough", or for a second, more skeptical read on a name being evaluated or already held. This is a discipline overlay, not a replacement for a strategy — it applies the Buffett lens to how someone actually invests, rather than issuing generic advice.

2016judea/image-riff

Turn one or more reference images into original art in that reference's own visual language, then cut it to whatever surface it's for. Use when you paste or point at art and say "use this as the base image", "generate art from this", "riff on this", "some creative ideation with these images", "make me a channel banner / avatar / cover / plate", "wilder version of this", or want a spread of options off one piece of reference. This is the TASK skill; the engine is the `make-art` tool skill.

2016judea/leonardo

Draw the way Leonardo da Vinci drew — a study sheet, a notebook folio, a red-chalk or silverpoint study, a machine cutaway, a storm of vortices — in his real materials and page-logic, generated with the make-art engine and anchored on fifteen of his actual (public-domain) sheets. Use when you say "Leonardo", "da Vinci", "like his notebooks", "a codex page of X", "draw this as one of his study sheets", "sanguine", "silverpoint", or wants a design, diagram, or illustration in that hand. Also a reading guide to his notebooks (Richter's 1883 public-domain translation) for "what did Leonardo say about shadow / trees / water". This is a TASK skill; the engine is `make-art`.

2016judea/records-request

Get a specific record out of a US government office by public-records request — "request the assessor's model", "file a data practices request", "FOIA this", "open records request", "can we just ask the county for it", "who do I write to at <county>", "chase that request", "did they ever answer". Covers checking the website first, finding the right office and statute, the carve-out paragraph that makes a request answerable instead of refused, web-form traps (hidden character caps, WAFs that reject apostrophes), chasing (there is usually no deadline), whether what comes back may be republished, and parsing multi-year tables without silent errors.

2016judea/sms-native-product

Build a product whose interface is text messages rather than an app or a website — "no app, no website", "they just text a number", "chat with our agent natively in Text Messages", "can we do this over text", "an SMS bot", "a Telegram bot", "make it a group chat", "minimum viable friction". Fires equally when it has already gone wrong — "my campaign got rejected", "our number is blocked", "the texts aren't arriving", "why do I need to register". Covers the gate that decides whether such a product can send at all (US A2P 10DLC registration, SHAFT content rules, permanent rejection codes), group MMS from code, what each channel can't do, an architecture that survives losing the channel, and guarding model-rewritten user content.

2016judea/vertical-market-agent

Build a chat agent that knows one industry in one metro better than any general model because it carries a precomputed digest of real public records (or a mined review corpus) and can pull live records mid-conversation — finding the moat, building a byte-stable substrate, enumerating what the records can't, the data traps that produce plausible wrong numbers, deterministic math in tools, measured prompt cost and cache TTL, shipping as an ad destination, an off-sector ending, and a precomputed spatial "what is this next to" layer. Use when building a vertical AI agent grounded in records rather than general knowledge.

相关技能