MCPスタック
同じ実際のジョブ(リソ風1080×1350ソーシャル投稿、独立したクエリで検証された実際の空間クエリ)ですべてのサーバーを実行した実戦比較からのフィールドガイド。無料枠のみ。
ルール:無料のみ。 所有者の許可なくアップグレード、試用開始、カード情報の入力を行わないこと。ペイウォールは購入ではなく、発見事項として扱う。
ルール:何も公開しない。 Orshotはソーシャルに投稿する publish パラメータを持ち、CanvaとFigmaは共有可能。依頼なしに決して実行しない。出力は人間がレビューするローカルファイル。
デザイン/アート/ブランド — ジョブに応じて選択
| ジョブ | 使用するもの | 理由/コスト |
|---|---|---|
| ブリーフからの完成マーケティング資料、最高の見た目 | canva create-design -> resize-design -> export-design | セット中で最も美しい出力。月約6AIデザイン無料(1デザイン=クォータの約15%、月次リセット)。再生成よりもedit-designで編集。 |
| リソ風投稿/カード/ポスター、無制限、正確な数値 | 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" | 無料モデル中でリソに最も近い。約6画像/日(ZeroGPUクォータ)。1.6MP; 隅に偽のサイン落書きを描くのでクロップ。最終版は有料エンジン(make-art)へ。 |
| 透明PNG切り抜き | huggingface space_name: Upsampler/birefnet-background-removal、{"image":"<公開URL>"} | 約5秒。Spacesは公開URLのみ受け付け、ローカルパスは不可。 |
| カラーラスター -> SVG(ロゴ、マーク) | shapesoda vectorize {image_base64, image_type:"artwork", colors:8, format:["svg"]} | 約10/日無料。ダウンロードリンクは24時間で期限切れになるので即座に取得。切り抜き端の余分な #ff00ff パスを削除。SVGを4倍でレンダリング = フラットアートの無料アップスケール。 |
| 単一インク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>)。テレメトリはデフォルトでON — 常に無効化。 |
| ラスターフィニッシュ(新聞ハーフトーン、写真編集) | 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 に設定。16進色のみ。gimp-consoleは使用後に強制終了。 |
| HTML -> PNGカード、マシンから外に出さない | Satori MCP、パッチ適用済み | 標準バージョンはすべての画像を公開blobストレージにアップロードするため、ローカル保存にパッチ。ロックファイル固定でインストール。 |
ピース上のすべての数値はライブソースから取得(curl)、手入力しない。明るい背景上のアクセントカラーはコントラストをチェック(クリーム色に中間の赤は約3.8:1で小文字テキスト不合格;約24px以下では暗くする)。
除外(再テスト不要):Pollinations(透かし、低解像度)、Stability(1回限りの試用)、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を返すことがあるのでリトライ。 |
| 住所/区域別Census 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必要)、ページングなしのcrawler型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 req/min キーレス、2〜18秒。 |
- 一部の都市ポータルはCloudflareの背後にあり、ヘッドレスでも通過不可;通常、ArcGIS RESTレイヤーに同じデータがある。
- メール:企業が自社サイトで公開しているアドレスを使用し、その正確なドメインでMXレコードを確認。ディレクトリはドメインを改変することが多い(文字の欠落や追加が一般的)。自宅回線からのメールボックスレベルの検証は通常不可能;ポート25はブロックされている。
- 除外:Reddit MCP(403匿名 —
reddit-miningを使用)、browser-use(有料LLMキーが必要)、Browserbase(電話認証)。Tavily/Apify/Hunter/Braveはいずれもサインアップ時にCAPTCHAで停止 — 必要な場合は各1回の人間のクリック。
ファイナンス/政府データ
| ジョブ | 使用するもの | 落とし穴 |
|---|---|---|
| 報告された財務情報、最新四半期 | 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は国債の独自カーブより約1日遅れる。 |
フレームワーク
- Claude Agent SDK スケジュール実行ヘッドレスエージェント用(例:sec-edgar MCPを呼び出しJSONを書き込むuvスクリプト)。macOS launchd下では
~/Desktopや~/Documentsを読み取れない — ファイルは別の場所に配置。 - promptfoo チャット製品の評価用:実際のシステムプロンプトを
claude -pで実行し、決定論的アサーション(禁止ワード、文字数制限)をテスト。PROMPTFOO_DISABLE_TELEMETRY=1を設定。プロンプトは標準入力から渡す(--tools ""は位置引数のプロンプトを飲み込む)。 - Observable Framework データ -> 静的サイト用(Pythonローダーは
uv run)。リテラルなアナリティクス<script>タグはビルドを壊す;ランタイムで注入。 - uvスクリプト(PEP 723インライン依存関係)すべての小さなパイプライン用。
- 除外:Evidence.dev(現在はログイン必須のスタジオ)、小規模ジョブ向けPydantic AI/DSPy(Agent SDKでカバー)、セッションあたり数千のコンテキストトークンを消費する重いベンダープラグイン。
運用
| ニーズ | 使用するもの | 注意 |
|---|---|---|
| 単発のプロダクトアナリティクス質問(「どんなイベントがある?」、ファネル) | posthog(単一の exec ツール) | HogQLと同じ数値。個人APIキーでフラグ/コホートを書き込める可能性あり — 読み取り専用に保つ。 |
| Macでのテキスト読み取り | imessage MCP | 生の chat.db SQLより優れる:attributedBody をデコード、タップバックを除去、連絡先を解決。送信ツールなし。 固定推奨 — 単一メンテナー。 |
| 現在のライブラリドキュメント | 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が「認証が必要」と表示した場合、対話セッションで/mcpを一度実行。パスワードとトークンはキーチェーンに保持し、リポジトリには決して入れない。 - 該当サイトの設定 -> 接続アプリでOAuth許可を取り消す。
新しいMCPの追加
登録前にテスト:npx -y @modelcontextprotocol/inspector --cli <cmd> --method tools/list(サーバーをシェルスクリプトでラップ — inspectorは -e とサーバーフラグを飲み込む)。次に:バージョンを固定([email protected];リファレンスサーバーは再ナンバリングする)、ツールリストで送信/削除/公開ツールを確認、テレメトリのデフォルトを確認、上記の表に落とし穴と共に行を追加。価値を失ったら削除。