Communityコーディング&開発github.com

2016judea/mcp-stack

無料のMCPサーバーやフレームワークの選び方とその落とし穴をまとめた実践ガイド。ファイナンス/政府データ(SEC EDGAR, Yahoo, SAM.gov, USAspending)、ウェブ調査(Exa, Firecrawl, Crawl4AI, Jina reader)、デザイン/アート/ブランド(Canva, Inkscape, Penpot, Figma, Orshot, Hugging Face画像生成、ベクター化、チャート)、データ/空間(DuckDB spatial, ライブArcGISレイヤー, OpenStreetMap/Overpass, Census, MapLibre)、運用(PostHog, iMessage, context7ドキュメント)をカバー。ソーシャル投稿、OGカード、ポスター、ロゴ/ベクター、チャート、地図、ブランドアセットを作るときや、parquet/geojson/duckdbや都市のオープンデータレイヤーをクエリするとき、MCPが「認証が必要」または失敗したとき、あるいは「どんなツールがある?」「XのMCPはある?」「Xを追加すべき?」と聞かれたときに使う。

mcp-stack とは?

このスキルは、無料のMCPサーバーとフレームワークの実践的な選択ガイドです。デザイン、データ/空間分析、ウェブ調査、ファイナンス/政府データ、運用など、様々なジョブに最適なツールとその落とし穴を、実際のベンチマーク結果に基づいて紹介しています。たとえば、Riso風のソーシャルポストにはInkscape、正確なベクターレイアウトにはPenpot、製品アナリティクスにはPostHogといった具合に、ジョブごとに最適な無料ツールを選べるようになっています。また、各ツールの使用制限や注意点(例:DuckDBのST_Transformが静かにinfを返す、FirecrawlのJSON抽出がフィールドを捏造する、SAM.govのAPIにはMFAが必要など)も詳述しており、MCPサーバーを追加する前のテスト手順や認証状態の管理方法も含まれています。このガイドはClaude Code、Cursor、CodexなどのAIエージェントプラットフォームで利用でき、無料枠のみを対象としているため、予算をかけずに強力な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に質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

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 ACScensus 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 markdowncurlが見逃す 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];リファレンスサーバーは再ナンバリングする)、ツールリストで送信/削除/公開ツールを確認、テレメトリのデフォルトを確認、上記の表に落とし穴と共に行を追加。価値を失ったら削除。

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.

関連スキル