My MCP Server
December 22, 2024 · View on GitHub
My MCP Server
MCP(Model Context Protocol)
MCPは、アプリケーションがLLMにコンテキストを提供する方法を標準化したオープンプロトコルである。これはAIアプリケーション用のUSB-Cポートのようなもので、AIモデルと様々なデータソースやツールを標準的な方法で接続することを可能にする。
flowchart LR User(fa:fa-user User) Client[""" Host with MCP Client (Claude, IDEs, Tools) """] Server1["MCP Server A"] Server2["MCP Server B"] Server3["MCP Server C"] DB1["Local Data Source A"] DB2["Local Data Source B"] Services["Remote Services"] subgraph Local Computer User <--> Client Client <--> |MCP Protocol| Server1 Client <--> |MCP Protocol| Server2 Client <--> |MCP Protocol| Server3 Server1 <--> DB1 Server2 <--> DB2 end subgraph Internet Server2 <--> |Web APIs| Services Server3 <--> |Web APIs| Services end
参考: https://modelcontextprotocol.io/introduction
【類似概念】 Function Calling
flowchart LR User(fa:fa-user User) Server["Application Server"] OpenAI["OpenAI API"] Function1["Function A on Server"] Function2["Function B on Server"] Function3["Function C on Server"] DB["Local Data Source"] Services["Remote Services"] subgraph Local Computer User <--> Server Server <--> Function1 Server <--> Function2 Server <--> Function3 Function1 <--> DB Function2 <--> DB end subgraph "Internet(OpenAI)" Server --> |prompt| OpenAI OpenAI --> |response with function calls| Server end subgraph Internet Function2 <--> |Web APIs| Services Function3 <--> |Web APIs| Services end
参考: https://platform.openai.com/docs/guides/function-calling
Getting Started
1. Claude Desktopをダウンロードする
2. Custom MCPサーバーをビルドする
$ npm install
$ npm run build
# build/main.jsのフルパスを表示する
$ find `pwd` -maxdepth 2 -name main.js
3. Claude Desktopの設定でMCPサーバーを登録する
Note
以下は、macOS版でのやり方です。その他のOSについては公式ドキュメントを参照してください。
$ vi ~/Library/Application\ Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"myMcp": {
// NOTE: nodeのフルパスを指定(`$ which node`)
"command": "node",
// NOTE: build/main.jsのフルパスを指定
"args": ["xxx/my-mcp-server/build/main.js"]
}
}
}
4. Claude DesktopでMCPサーバーが登録されていることを確認する
Claude Desktopを再起動し、MCPサーバーが登録されていることを確認する

試しにサンフランシスコの天気を聞くと、MCPサーバーから天気予報の情報を取得し、生成AIのメッセージに天気の情報が組み込まれていることがわかる。

(参考)MCPサーバーがない場合
