個人開発でMCPサーバーを自作してClaudeと連携する方法【2026年版】

当ページのリンクには広告が含まれています。
build custom mcp server claude 2026

MCPサーバーを自作すると、Claudeに自分専用のツール(社内API・DB・自作スクリプト)を生やせます。やることはシンプルで、Python(FastMCP)かTypeScriptでサーバーを書き、Claude DesktopかClaude Codeに登録するだけ。この記事では最小のMCPサーバーを作って動かし、リモート常時稼働まで、インフラエンジニア視点の実践Tipsを添えて解説します。

目次

MCPサーバーとは?Claudeがツールを使える仕組み

MCP(Model Context Protocol)は、LLMアプリと外部機能をつなぐ標準規格です。Web APIのLLM版と考えると分かりやすいです。サーバーが公開できる機能は3種類あります。

機能 役割
Tools Claudeが呼び出せる関数(実行前に承認あり) API呼び出し・DB操作・ファイル生成
Resources クライアントが読めるデータ 設定情報・APIレスポンスのキャッシュ
Prompts 事前定義のプロンプトテンプレート 定型レポート生成・コードレビュー指示

通信方式(Transport)は2つ。ローカルや Claude Desktop は Stdio、リモート本番は Streamable HTTPです。旧来のHTTP+SSEは2025年3月の仕様改定で非推奨になったので、新規はStreamable HTTPを使います。

最小のMCPサーバーを作る(Python版)

個人開発で一番手早いのはPythonです。公式SDKに同梱されたFastMCPを使うと、型ヒントとdocstringからツール定義が自動生成されます。

# uv add "mcp[cli]"  (または pip install "mcp[cli]")
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("my-tools")

@mcp.tool()
def add(a: int, b: int) -> int:
    """2つの整数を足す"""
    return a + b

if __name__ == "__main__":
    mcp.run()  # 既定はstdio

これだけで add ツールを持つMCPサーバーが完成します。筆者が最初に作ったのもこんな数行のツールでしたが、Claudeが自前の関数を呼んでくれた瞬間は「APIを生やした」感覚で素直に感動しました。動作確認は mcp dev server.py で起動するMCP Inspectorが便利で、Claudeに繋ぐ前にツールの入出力をブラウザで試せます。TypeScript派は公式の @modelcontextprotocol/sdk パッケージで同じことができ、Zodでスキーマを定義します。

迷ったらPythonを選ぶのが無難です。FastMCPの記述量が圧倒的に少なく、データ処理系ライブラリも揃っています。フロントエンドと同じ言語で統一したい人だけTypeScriptにしましょう。

Claude DesktopとClaude Codeに登録する

作ったサーバーは、使うクライアントごとに登録方法が違います(Claude CodeとCopilot・Cursorの使い分けに迷う人はAIコーディングツール3つの比較もどうぞ)。

Claude Desktopは設定ファイル claude_desktop_config.json(Macは ~/Library/Application Support/Claude/、Windowsは %APPDATA%\Claude\)に追記します。

{
  "mcpServers": {
    "my-tools": {
      "command": "uv",
      "args": ["run", "python", "server.py"]
    }
  }
}

Claude Codeは設定ファイルを手で編集せず、claude mcp add コマンドで登録するのが現行の推奨です。

claude mcp add --transport stdio my-tools -- uv run python server.py

チーム開発なら、プロジェクト直下に .mcp.json を置いてリポジトリにコミットすれば、メンバー全員が同じMCP設定を共有できます。登録後は /mcp でツール一覧に表示されるか確認しましょう。普段からClaude Codeのコスト削減設定と合わせて使うと、自作ツールでさらに作業が速くなります。

本番運用:リモートMCPサーバーをVPSで常時稼働する

Stdioはローカル専用なので、チームで共有したり24時間動かしたりするならStreamable HTTPでリモート公開します。インフラ目線で効く構成はシンプルです。

  • MCPサーバーをDockerコンテナ化し、VPS上で常時起動する
  • APIキーやトークンは環境変数かSecret Managerで渡す(コードに直書きしない)
  • GitHub ActionsでテストとデプロイをCI/CD化する

常時稼働の土台には、月数百円〜の安価なVPSが現実的です。Discordボットを24時間動かすのと同じ要領で、VPSでの常駐運用に慣れておくと応用が効きます。これから契約するなら国内で扱いやすいVPSを選ぶと、SSHやDockerの情報も豊富で詰まりにくいです。

広告MCPサーバーの常駐先にConoHa VPSを見る(最小プランから)

よくあるトラブルと解決策

再起動してもツールが表示されない
設定ファイルのパスとJSONの記法ミスが大半です。Claude Desktopは一度完全終了してから再起動し、Claude Codeは claude mcp list で登録状態とエラーを確認します。
ツール呼び出しでタイムアウトする
重い処理を同期で実行していないか確認します。外部APIは非同期化し、長時間かかる処理は進捗を返すか、処理自体をジョブ化して結果だけ返す設計にします。
StdioとHTTP、どちらで作るべき?
自分のPCだけで使う個人ツールはStdio、チーム共有や常時稼働が必要ならStreamable HTTPです。まずStdioで作り、必要になってからHTTP対応するのが手戻りが少ないです。

まとめ:まずStdioで1つ作ってみる

MCPサーバーは、FastMCPで関数に @mcp.tool() を付け、Claude Desktopか claude mcp add で登録するだけで動き出します。最初は足し算のような小さなツールで一連の流れを掴み、慣れたら社内Wikiや自作APIをClaudeに繋いでいきましょう。

体系立てて一気に習得したいなら、PythonとTypeScript両方のMCPサーバー構築をハンズオンで追える講座を使うと近道です。

広告MCPサーバー構築の入門講座をUdemyで探す(セール対象)

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

CAPTCHA


目次