MCP で Claude をローカルのツールやエージェントに接続する
あなたは Claude を頭脳に、自分のマシンを手足にしたいと考えています — ファイルを読み、データベースに問い合わせ、スクリプトを実行し、さらにはローカルモデルやローカルエージェントを呼び出すことまで、すべてをデータがラップトップから出ることなく行いたい。その相乗効果には、すでに標準が存在します。それが Model Context Protocol(MCP) です。一言で言えば、MCP は AI クライアントが MCP サーバー と呼ばれる小さなプログラムを通じて外部のツールやデータを呼び出せるようにするオープンな標準です — そして、それらのサーバーは自分のマシン上でプライベートに、ローカルで動かせます。このページでは、MCP とは何か、ローカルアーキテクチャがどう組み合わさるか、ローカルサーバーを Claude に追加する方法、そして自分で小さなサーバーを構築する方法を示します。
- MCP を一文で説明する — AI クライアントが MCP サーバーを介して外部のツールやデータを呼び出せるオープンな標準
- ローカルアーキテクチャを見る:MCP クライアント(Claude Code / Claude Desktop)が stdio 経由でローカル MCP サーバーと対話する
- なぜこれがあなたの求める「Claude を頭脳に + ローカルの能力を手足に」する相乗効果なのかを理解する
- ローカル MCP サーバーを 1 つのコマンドで Claude に追加する
- ツールを 1 つ公開する小さな MCP サーバーを構築する
- 信頼境界を知る — MCP サーバーはあなたの権限で動くので、信頼できるものだけをインストールする
MCP とは(一言で)
MCP は AI アプリケーションを外部システムに接続するためのオープンな標準です。 AI クライアント(Claude など)は 1 つのプロトコルを話します。そのプロトコルを話す MCP サーバー なら何でも接続でき、クライアントに新しい能力を提供できます。公式の例えは AI のための USB-C ポート です。ツールごとに専用の統合を作る代わりに、1 つのコネクタに合わせて作れば、どこでも動きます。
Anthropic は MCP を導入してオープンソース化し、初日から ローカル MCP サーバーのサポート を備えて出荷しました。これにより Claude は、自分のマシン上で動く内部システムやデータセットに接続できます。
MCP サーバーは、クライアントに対して 3 種類のものを公開できます。
- ツール(Tools) — モデルが呼び出せるアクション(ファイルを読む、クエリを実行する、API を叩く)。これはモデルのネイティブな tool use と同じ形をしています。型付き入力を持つ名前付きの能力です。
- リソース(Resources) — クライアントが読み取れるデータ(ファイル、レコード、ドキュメント)。
- プロンプト(Prompts) — サーバーが提供する、再利用可能でパラメータ化されたプロンプトテンプレート。
このページでの主役は ツール です。ローカル MCP サーバーは、Claude に新しいプライベートな能力を渡す手段です。
なぜこれがあなたの求める相乗効果なのか
「Claude を頭脳に、自分のコンピュータを体に」と人々が言うとき、それはまさに MCP のクライアント/サーバーの分割を指しています。
- Claude はオーケストレーター。 あなたのゴールを読み、どのツールを呼ぶか決め、それを呼び、結果を読み、次のステップを決めます。
- ローカル MCP サーバーは能力。 それぞれが、あなた が あなたの マシン上で動かす小さなプログラムです。ファイルシステムサーバー、データベースサーバー、ローカルスクリプトのラッパー、さらには ローカルモデル を呼び出したり、ローカルエージェントに作業を渡したりするサーバーまで。
サーバーがローカルで動き、Claude が自分のマシンの標準入出力を介してそれと対話するため、あなたのデータとアクションはあなたのハードウェアにとどまります — モデルはオーケストレーションしますが、ファイルの読み取り、SQL、スクリプトの実行はローカルで起こります。これがプライバシーを守るエージェント的作業のあり方です。頭脳はクラウド(あるいはローカルでも)、手足は厳密にあなたの箱の中で。
そして MCP は 多くのクライアントで採用された 1 つのオープンな標準 なので、あなたが構築したサーバーは単一のアプリに縛られません。Claude Code に組み込んだのと同じローカルサーバーを、他の MCP を話すクライアントでも使えます — 一度作れば、どこでも再利用できます。
ローカルアーキテクチャ
最も小さくて有用な絵は、2 つのパーツと 1 つのチャネルで成り立ちます。
- MCP クライアント(ホスト)。 AI アプリ — たとえば Claude Code や Claude Desktop。モデルを保持し、どのツールを呼ぶかを決めます。
- MCP サーバー。 ツール/リソース/プロンプトを広告し、求められたときにそれらを実行する、別個のプロセス。
- トランスポート。 ローカルサーバーの場合、クライアントはサーバーをサブプロセスとして起動し、JSON-RPC メッセージを使って stdio(標準入出力)でやり取りします。ネットワークなし、ポートなし — ただマシン上の 2 つのプロセス間のローカルなパイプだけです。(HTTP 経由のリモートサーバーも存在しますが、このページはローカルの stdio のケースについてです。)
┌─────────────────────────┐ stdio (JSON-RPC) ┌──────────────────────────┐
│ MCP CLIENT / HOST │ ──── launches as subprocess ──▶ │ LOCAL MCP SERVER │
│ Claude Code / Desktop │ ◀── tools/resources/prompts ─── │ filesystem · db · script │
│ (the model = the brain) │ │ · local model / agent │
└─────────────────────────┘ └──────────────────────────┘
runs on YOUR machine, YOUR data
モデルがあなたのディスクに直接触れることはありません — モデルはローカルサーバーに頼み、サーバー(あなたの権限で動いている)が作業を行って結果を返します。
ローカル MCP サーバーを Claude に追加する
最速の経路は Claude Code の claude mcp add コマンドです。これは、クライアントが stdio 経由で起動するサーバーを登録します。一般的な形は、名前、その後にサーバーを起動するコマンドです。
- 公式のリファレンスサーバー(例:filesystem サーバー)から始めて、挙動が分かっている状態にします。Anthropic は、ローカルで動かせるリファレンス MCP サーバーのコレクションを保守しています — filesystem、git、memory、fetch など。
- `claude mcp add <name> -- <command...>` を使います。`--` の後の部分は、Claude Code がサーバーをローカルのサブプロセスとして起動するために実行する、まさにそのコマンドです。それと stdio 経由でやり取りします。
- `claude mcp list` を実行して登録済みのサーバーを確認し、セッションを開始して Claude にどんなツールが使えるようになったか尋ねます。サーバーのツールが呼び出し可能な能力として現れるはずです。
- 新しい能力を必要とするゴールを Claude に与えます(「./notes 配下のファイルを読んで要約して」)。Claude はサーバーのツールを呼び、作業はローカルで起こります。
ローカルの filesystem サーバー向けの最小限の claude mcp add(-- の後はすべて起動コマンド)。
ローカルの filesystem MCP サーバーを Claude Code に追加する
claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/dir
設定を直接編集する方が好みなら、stdio サーバーはそれを起動するコマンドによって宣言されます。形はこんな感じです。
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/dir"]
}
}
}
小さな MCP サーバーを構築する
サーバーとは、MCP SDK を使い、ツールを宣言し、stdio トランスポートを開始するだけのプログラムです。アイデア全体を TypeScript で示します — 2 つの数値を足す 1 つのツール(本体を「自分のスクリプトを実行」「自分の DB に問い合わせ」「自分のローカルモデルを呼び出す」に差し替えてください)。
npm install @modelcontextprotocol/sdk zod
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
const server = new McpServer({ name: "my-local-tools", version: "0.1.0" });
// Declare ONE tool. Inputs are typed; the body runs locally with your privileges.
server.registerTool(
"add",
{
description: "Add two numbers",
inputSchema: { a: z.number(), b: z.number() },
},
async ({ a, b }) => ({
content: [{ type: "text", text: String(a + b) }],
}),
);
// Talk to the client over stdio — this is what makes it a LOCAL server.
await server.connect(new StdioServerTransport());
他のどんな stdio サーバーともまったく同じように Claude に登録します — 起動コマンドを自分のファイルに向けるだけです。
自分のローカルサーバーを Claude Code に追加する
claude mcp add my-local-tools -- node /abs/path/to/server.js
これが一連の流れのすべてです。Claude(頭脳)が新しいツールを見て、関連があるときにそれを呼び、あなたのコード(手足)がローカルで動いて結果を返します。同じオープンなプロトコルを話すので、このサーバーは変更なしで他の MCP クライアントでも動きます。
- MCP サーバーはあなたの権限で動き、実際のアクションを取れます — 信頼できるサーバーだけをインストールし、ツール結果を介したプロンプトインジェクションに注意してください。
理解度チェック
理解度チェック
0/4- MCP は AI クライアントが MCP サーバーを介して外部のツールやデータを呼び出せるオープンな標準 — Anthropic は最初からローカルサーバーのサポートとともに導入した。
- ローカルアーキテクチャはシンプル:MCP クライアント(Claude Code / Desktop)がローカル MCP サーバーをサブプロセスとして起動し、stdio 経由で対話する — データはあなたのマシンにとどまる。
- これが「Claude を頭脳に + ローカルの能力を手足に」する相乗効果:Claude がオーケストレーションし、ローカルサーバー(filesystem、DB、スクリプト、さらにはローカルモデルやエージェント)が手足を提供する。
- サーバーは 1 つのコマンドで追加(claude mcp add ... -- <起動コマンド>)、構築は MCP SDK でツールを登録して stdio トランスポートを接続するだけ。
- MCP は広く採用されているので、あなたが構築したローカルサーバーは多くのクライアントを横断して動く — 一度作れば、どこでも再利用。
- サーバーはあなたの権限で行動する:信頼できるものだけをインストールし、ツール結果を起こりうるプロンプトインジェクションのベクトルとして扱う。
次に
- 日々ターミナルから MCP を使う → Claude Code: MCP
- オーケストレーターとは何か → Claude Code とは
- MCP ツールが従うツール呼び出しの形 → Tool use
- サーバーがラップできるローカルモデルやエージェントを動かす → ローカル AI エージェント