コンテンツにスキップ

Claude Code MCPサーバー実装で独自ツールを5分で統合する方法

この記事の対象者

  • Claude Codeで独自ツールを統合したい中級エンジニア

この記事のポイント

  1. MCPサーバーをローカルで起動
  2. Claude Codeから独自ツールを呼び出し
  3. 既存ワークフローへのツール組み込み

なぜこの問題が今重要か

Claude Code 2.0以降でMCP(Model Context Protocol)対応により、外部ツールとの統合が標準化されました。しかし公式ドキュメントには具体的な実装手順が少なく、多くの開発者が統合に苦労しています。本記事では最小構成で動作するMCPサーバーの実装方法を提示します。

解決ステップ概要

ステップ内容到達指標
1MCPサーバー実装サーバー起動確認
2Claude設定追加ツール認識確認
3動作検証ツール実行成功

ステップ1: 最小MCPサーバーを実装

TypeScriptで最小のMCPサーバーを実装します。@modelcontextprotocol/sdkを使用して10行で動作するサーバーを構築できます。

import { Server } from '@modelcontextprotocol/sdk/server/index.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';

const server = new Server({
  name: 'my-tool',
  version: '1.0.0',
}, { capabilities: { tools: {} } });

server.setRequestHandler('tools/list', async () => ({
  tools: [{
    name: 'echo',
    description: 'Echo input text',
    inputSchema: { type: 'object', properties: { text: { type: 'string' } } }
  }]
}));

server.setRequestHandler('tools/call', async (request) => {
  const { name, arguments: args } = request.params;
  if (name === 'echo') return { content: [{ type: 'text', text: `Echo: ${args.text}` }] };
});

await server.connect(new StdioServerTransport());

ステップ2: Claude設定ファイルを更新

~/.claude/claude_desktop_config.jsonにMCPサーバーを登録します。この設定でClaude Codeがサーバーを自動起動します。

{
  "mcpServers": {
    "my-tool": {
      "command": "node",
      "args": ["/path/to/mcp-server.js"],
      "env": {}
    }
  }
}

ステップ3: Claude Codeから実行確認

Claude Codeを再起動後、新しいツールが利用可能になります。プロンプトで/toolsと入力するとechoツールが表示されます。

# 動作確認コマンド
echo "test" | claude code --tool echo

よくある落とし穴と対処

症状原因即時対処
ツールが表示されない設定ファイルパス誤り絶対パスで指定
サーバー起動エラーNode.js未インストールv20以上をインストール
接続タイムアウトポート競合StdioTransport使用
詳細設定(高度最適化) MCPサーバーの高度な機能として、ストリーミング応答、非同期処理、エラーハンドリングがあります。プロダクション環境では以下を追加検討: - リトライロジック実装 - ロギング機構追加 - 認証トークン検証

次に読む(関連記事)