Community程式設計與開發github.com

MCP 技術棧指南

一份實戰評測指南,比較各類免費 MCP 伺服器與框架,涵蓋設計、數據、研究、金融與營運領域,並揭露其陷阱與限制。

MCP 技術棧指南 是什麼?

這份技能文件基於實際任務(如製作 Riso 風格社群貼文、執行空間查詢)的評測結果,提供了一個免費 MCP 伺服器與框架的選用指南。它強調「僅限免費」原則,禁止升級或綁定信用卡,並要求所有輸出為本地檔案,需經人工審核。文件以表格形式詳細說明了在設計(Canva、Inkscape、Penpot、Figma、Orshot、Hugging Face 等)、數據/空間(DuckDB、ArcGIS、OpenStreetMap、Census、MapLibre)、網路研究(Exa、Firecrawl、Crawl4AI、Jina)、金融/政府資料(SEC EDGAR、Yahoo Finance、SAM.gov、USAspending)以及營運(PostHog、iMessage、context7)等領域,針對特定任務應選用的最佳工具,並明確指出了每個工具的已知陷阱(例如免費配額限制、資料延遲、靜默截斷、認證需求等)。此外,本文件也涵蓋了框架選擇(Claude Agent SDK、promptfoo、Observable Framework)與營運最佳實踐,為開發者提供全面且務實的 MCP 選型參考。

相容平台✓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(參數 header + body)-> inkscape_render export_preview能呈現真實的網點、feTurbulence 紋理、疊印套色、套版不準。約 5 秒,無頭模式,無上限。用於任何重複性工作;將 SVG 主體儲存為範本檔案。
在設計檔中進行精確向量排版penpot execute_code -> export_shape免費,無上限。必須開啟一個 Penpot 分頁(內含該檔案)(無頭模式亦可),否則每次呼叫都會失敗。
同上,但在 Figma 中供他人接手figma create_new_file + use_figma免費 Starter 方案 = 每月約 20 次計數呼叫,3 個檔案。請妥善規劃預算。不支援 createImageAsync / setPluginData。
可重複使用的變數範本(OG 卡片、IG 貼文系列)orshot免費方案每月約 100 次渲染。形狀顏色使用 style.fill(backgroundColor 會畫成黑色)。輸出網址為公開但難以猜測的。
免費的 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":"<公開網址>"}約 5 秒。Spaces 僅接受公開網址,不接受本地路徑。
彩色點陣圖轉 SVG(標誌、圖案)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提供手繪紋理選項。會將您的數據發送到第三方渲染服務,並回傳公開網址 — 僅限公開數據。若 x 軸標題為空,會顯示 "category"。
3D 字型 / 產品模型Blender MCP(需要應用程式正在執行)啟動 Blender 並載入附加元件,然後臨時加入伺服器(uvx mcp-for-blender@<固定版本>),並設定 DISABLE_TELEMETRY=true。遙測功能預設為開啟 — 務必關閉。
點陣圖後製(新聞紙網點、照片編輯)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)" &。新聞紙效果預設為線條 — 請設定為圓形。僅接受十六進位色碼。完成後請終止 gimp-console。
HTML -> PNG 卡片,資料不離開本機Satori MCP(需修補)原始版本會將每張圖片上傳至公開 Blob 儲存體;請修補使其儲存於本地。安裝時使用凍結的鎖定檔案。

作品上的每個數字都來自即時來源(使用 curl 取得),絕不手動輸入。對比度檢查淺色背景上的強調色(例如奶油色背景上的中紅色可能僅有約 3.8:1,對小字體來說不合格;在約小於 24px 的情況下請調暗)。

已淘汰(無需重新測試):Pollinations(浮水印、低解析度)、Stability(一次性試用)、fal/Replicate/Together(無免費方案)、Krita MCP(無文字)、tldraw 與 Excalidraw MCP 應用程式(只能在聊天介面內繪圖)、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:"<地址>"} -> 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能解碼 data-cfemail,這是 curl 做不到的。批次處理: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 多因子驗證)。搜尋結果會省略 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 的數據約比財政部自身的曲線延遲 1 天。

框架

  • Claude Agent SDK:用於排程無頭代理(例如,一個呼叫 sec-edgar MCP 並寫入 JSON 的 UV 腳本)。在 macOS 的 launchd 下,它無法讀取 ~/Desktop 或 ~/Documents — 請將檔案放在其他地方。
  • promptfoo:用於評估聊天產品:透過 claude -p 執行真實的系統提示詞,並進行確定性斷言(禁用詞彙、字數上限)。設定 PROMPTFOO_DISABLE_TELEMETRY=1。將提示詞透過標準輸入傳遞(--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 拒絕整合權杖)、Apple Notes(apple-notes;MCP 會攜帶刪除工具)。如果您的規則是人類負責發送,切勿新增任何攜帶發送工具的電子郵件供應商 MCP。

認證狀態

  • OAuth 伺服器(canva, figma, orshot):如果 claude mcp list 顯示 "Needs authentication",請在互動式工作階段中執行一次 /mcp。將密碼和權杖保存在鑰匙圈中,切勿放在儲存庫中。
  • 在該網站的設定 -> 已連結的應用程式中,撤銷任何 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.

相關技能