コンテンツにスキップ

MCP Server ボイラープレート生成 (TypeScript / Python)

Anthropic の Model Context Protocol (MCP) Server を、tools / resources / prompts を構造化フォームで定義するだけで TypeScript / Python のスケルトンコードに変換。Claude Desktop / Claude Code / Cursor の MCP クライアントで即使える形式 (stdio transport)。

完全無料 登録不要 ブラウザ完結 即ダウンロード 5 言語対応 ダークモード

⚠ MCP SDK は活発に更新中。生成コードは TypeScript SDK ^1.0 / Python SDK >=1.0 想定。新仕様適用時は modelcontextprotocol.io

単一ツールを Anthropic / OpenAI / Gemini の 3 形式に変換するなら JSON Schema → Tool Use →

⚡ プリセット (1 クリックで雛形)

🔧 Tools (LLM が呼び出す関数)

📚 Resources (読込専用データ)

💬 Prompts (再利用可能なテンプレ)


        

💡 セットアップ手順

  1. 「全部 zip」で全ファイルをダウンロード
  2. 解凍して「依存インストール」(npm install / pip install -r requirements.txt)
  3. 「Claude config」を ~/Library/Application Support/Claude/claude_desktop_config.json に追記
  4. Claude Desktop を再起動 — MCP server がツール一覧に出る

📖 つまずきやすいポイント

tools / resources / prompts をフォームで定義すると、Model Context Protocol サーバーの雛形を TypeScript または Python で出力します (stdio transport)。Claude Desktop / Claude Code / Cursor などの MCP クライアントにそのまま登録できる形です。処理はブラウザ内で完結します。生成されるのは骨組みだけで — 各ツールの中身は自分で書く必要がありますそして MCP で詰まる箇所は、たいていコードの中ではなく「クライアントとサーバーの境界」にあります: プロセスの起動、標準入出力、環境変数。以下はその 3 つです。

ケース 何が起きるか どうする
標準出力に 1 行でも書くと壊れる stdio transport では、標準出力そのものがプロトコルの通信路です — JSON-RPC のメッセージだけが流れることを前提にしています。したがって console.log()print() を 1 回書いただけで、フレームの途中に異物が混ざり、クライアント側のパーサーが壊れます。厄介なのはエラーメッセージがまったく的外れになることで、「サーバーが接続できない」「予期しないトークン」「切断されました」といった、原因を示さない表示になります。そして自分が書いた console.log だけが原因とは限りません依存ライブラリが起動時に出す警告、パッケージマネージャの更新通知、シェルの初期化スクリプトの出力も、すべて同じ経路に流れ込みます。 ログはすべて標準エラー出力に出してください。 TypeScript なら console.error()、Python なら print(..., file=sys.stderr)logging.basicConfig(stream=sys.stderr) です — 標準エラーはプロトコルに使われないので、いくら書いても安全で、しかもクライアント側のログに残ります。チームで開発するなら、console.log を lint で禁止してください (ESLint の no-consoleallow: ['error', 'warn']) — デバッグ中にうっかり書いて、消し忘れたまま commit されるのが最も多いパターンです。切り分けの手順も覚えておくと早いです: ターミナルでサーバーを直接起動し、標準出力に JSON 以外が出ていないかを目で見てくださいここに何か表示されたら、それがそのまま原因です
description が実質のプロンプトになっている モデルがそのツールを呼ぶかどうか、どの引数を渡すかを判断する材料は、ツール名・description・各パラメータの説明だけです — 実装コードは一切見えていません。したがって description: "データを取得します" のような説明を書くと、いつ呼ぶべきかが判断できず、必要な場面で呼ばれないか、関係ない場面で呼ばれます。もう 1 つの失敗がツールの数で、似た名前のツールを 20 個並べると、モデルは選択を誤りやすくなります。そして返り値も設計対象です — 巨大な JSON をそのまま返すと、コンテキストを消費し尽くしたうえに、モデルが必要な部分を見つけられませんMCP サーバーの品質は、コードよりも「言葉」で決まります。 description には「何をするか」ではなく「いつ使うか・いつ使わないか」を書いてください。 「ユーザーが特定の注文の配送状況を尋ねたときに使う。注文 ID が分かっている場合のみ。商品検索には使わない」のように、境界を明示するほど選択の精度が上がりますパラメータの説明には形式の例を入れてください — 「ISO 8601 の日付 (例: 2025-03-04)」と書くだけで、フォーマット違いの失敗がほぼ消えます。ツールは少なく、名前は互いに紛れないように: get_userfetch_user を両方置かないことです。返り値は要約して返し、詳細が必要なときだけ second call で取りに行かせる設計にしてください — ページングや limit を最初から入れておくと、後から作り直さずに済みます
ターミナルでは動くのにクライアントからは起動しない MCP クライアントはサーバーを子プロセスとして起動しますが、そのプロセスの環境はあなたのターミナルとは別物です。GUI アプリから起動された場合、.bashrc.zshrc は読み込まれず、PATH は最小限になります。結果として、nvm・pyenv・asdf・volta などのバージョン管理ツールが挿入する PATH が存在せず、nodepython 自体が見つかりません — エラーは spawn ENOENT という一言だけです。環境変数も同様に引き継がれませんので、API キーを export して動作確認したサーバーは、クライアントから起動すると認証に失敗しますカレントディレクトリも期待した場所ではありません相対パスで読んでいる設定ファイルは見つかりません クライアントの設定には、インタープリタの絶対パスを書いてください。 which node / which python3 の結果をそのまま command に入れます — バージョン管理ツールを使っているなら、これはほぼ必須です。環境変数はクライアント設定の env キーで明示的に渡します ("env": {"API_KEY": "..."} ) — サーバー側で .env を読む設計にしているなら、そのパスも絶対パスにしてくださいファイルを読むときは __dirname (TypeScript) や Path(__file__).parent (Python) を起点にし、カレントディレクトリに依存しないことそして問題が起きたら、まずクライアントのログを開いてください標準エラーに出したログはそこに集まっているので、原因はたいてい 1 行目に書いてあります

MCP サーバーは、あなたの権限で動くプログラムです。ファイルを読み書きし、ネットワークに出て、コマンドを実行できます — そしてそれを呼ぶかどうかを決めるのは、外部のテキストを読んでいるモデルですつまり「モデルが読んだ内容」が、間接的にツール呼び出しを誘導しうるということです (プロンプトインジェクション)。破壊的な操作は、ツールとして公開しないでください削除・送信・支払い・デプロイのような取り返しのつかない操作は、人間の確認を挟む設計にするのが原則です。読み取り専用のツールと書き込みを行うツールは、サーバーごと分けるのも有効です。実装面では、パス引数は必ず正規化して許可されたディレクトリの内側に収まるか検証し (../ の連打で外に出られないように)、コマンド実行は配列形式で引数を渡します。最後に、MCP SDK は活発に更新されています生成コードは出発点であり、実際の API は modelcontextprotocol.io の最新版で確認してください。

📖 使い方

  1. 1
    プリセット選択 or 0 から定義
    「Filesystem」「GitHub」「SQL」などのプリセット、または手動で tools / resources / prompts を追加
  2. 2
    言語選択 + 設定
    TypeScript or Python、stdio or HTTP transport を選択
  3. 3
    zip DL → 起動
    全ファイル zip をダウンロード、依存インストール、Claude Desktop の config に追記

❓ よくある質問

MCP とは?
Anthropic が公開した Model Context Protocol。LLM クライアント (Claude Desktop / Cursor 等) が外部ツール・データソースに接続する標準プロトコル。OpenAI / Google も検討中
stdio と HTTP の違い?
stdio = ローカルプロセスとして起動 (Claude Desktop / Cursor 標準)。HTTP/SSE = 別プロセス・別マシンに対応、サーバー型
Tools / Resources / Prompts どう使い分け?
Tools = LLM が能動的に呼ぶ関数 (副作用 OK)。Resources = LLM が参照する読み取り専用データ。Prompts = ユーザーが選択する再利用可能テンプレート
🐛 このツールで問題が発生しましたか?

完全無料・登録不要。再現手順だけでも結構です。届いたご報告は運営者に直接届き、修正の参考にします。

※ 不具合再現のため、ブラウザ情報 (UA / 画面サイズ / 言語 / URL) を自動で送信します