* 目次 [#m1f5f7b8] #contents * Claude MCPの入門ブログ [#s3820598] Claude MCP(Model-Context-Protocol)とは、MCPサーバを経由して外部のリソースをClaudeが使えるようになる仕組みのことである。 MCPサーバは外部のリソースに応じた、かなりたくさんの種類が開発されている。 外部リソースには、自分のPCのファイルなども含まれているので、チャット履歴を自分のPCに保存することも可能になってくる。 * anthoropicの公式 [#f97d00e0] ** Introducing the Model Context Protocol [#jcc0bd7b] https://www.anthropic.com/news/model-context-protocol ** Get Started (大事!でもないかわかりづらい)[#t6076202] ** Get Started (大事!でもないか、わかりづらい)[#t6076202] 開発に必須の内容が詰まっている。網羅されているのはよいが、わかりづらい。MCPサーバを1ファイルの部分ごとに意味を説明しながら作らせる感じなので、どこかで躓くとデバッグが困難だ。デバッグの説明のドキュメントはMacを使う前提っぽい説明なのだ。ちょっと最初の入門としては敷居が高そうな印象だ。というわけで、最初のおすすめチュートリアルとしては、すでにできたMCPサーバを後述のMCPサーバをGithubからダウンロードするほうがとっつきやすいと思う。 https://modelcontextprotocol.io/introduction - ドキュメント - SDK - チュートリアル * クイックスタート [#peede2de] 原文: https://modelcontextprotocol.io/quickstart 最初のMCPサーバーを構築し、ホストに接続してみましょう このチュートリアルでは、シンプルな MCP 天気予報サーバーを構築し、ホストである Claude for Desktop に接続します。まずは基本的なセットアップから始めて、より複雑なユースケースに進みます。 ** Claude for Desktopβ版ダウンロード [#qdb55bcf] https://claude.ai/download サーバのロードに失敗したらfileメニューから終了しないと、リセットされてないっぽい チュートリアルで、MCPサーバのサンプルが作れるのだが、それは、Claude for Desktopをつかうので、ダウンロードして設定が必要 チュートリアルでの難しい所は、Claude for Desktop起動時に、MCPサーバを定義に従って接続しに行くのだが、設定がずれるとエラーになる。しかしエラーログの出し方がわかりにくいためはまってしまって、解決策は不明のまま先に進めない。 なので、あらかじめある程度そろったコードで試すよりほかない。 * MCPサーバの宝庫 [#x56872d5] ここが真のチュートリアルであり、よく使うMCPサーバ置き場なのではなかろうか。という認識である。 https://github.com/punkpeye/awesome-mcp-servers https://github.com/modelcontextprotocol/servers https://mcp-get.com/ このリポジトリのようなAIの外部拡張は、OS標準装備にするべき、もしくは、AI時代となる現代の義務教育に取り込むべきレベルと言っても過言ではない気がする。空気のように扱えるようにすべきか。。。。 ただしAIがやろうとしていることが正しいわけではないので、ロールバックができたりする状況が必要だったり、確認のインタフェースが必要だったりすると思う。 * 導入手順 [#t3bf3af7] ** 作成済みのMCPサーバを手に入れる [#y5ad860b] https://github.com/punkpeye/awesome-mcp-servers ** git cloneする [#c5a29481] git clone https://github.com/punkpeye/awesome-mcp-servers.git ここにはサーバのコードが入っていない。つまりリンク集のようだ 以下をgit cloneしましょう、いくつかサーバがまとまっている https://github.com/modelcontextprotocol/servers サーバがまとまっているのは上記だけでは無いようだ https://glama.ai/mcp/servers?attributes= ** 本家以外にもチュートリアルの記事がたくさんある [#z37082aa] https://glama.ai/blog/2024-11-25-model-context-protocol-quickstart https://reffect.co.jp/ai/claude-mcp * 気になるMCPサーバ [#k3fba0c0] たくさんあるので、使いそうなものがある ** ローカルサーバ用MCP [#o1c00d4b] たくさんあるが、基本はローカルファイルアクセスだと思う @modelcontextprotocol/server-filesystem *** claude_desktop_config.jsonのWindowsでの設定、動作確認済み [#mb3095f8] { "mcpServers": { "filesystem": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-filesystem", "C:/Users/kh/Desktop", "C:/Users/kh/prj/mcp_tutorial" ] } } } 許可しているディレクトリをどんどん追加していける *** ほかの人が設定したブログ [#z5d1923c] https://note.com/k1mu/n/n7ab09ac7b4e3 ** 検索エンジン brave-search [#vfb6d63b] 検索エンジンといえばGoogleだが、検索履歴が残る、AIが検索する履歴は利用者の好みとはまた別である。そこでbrave-searchという、検索履歴を残さない検索エンジンを使う https://github.com/modelcontextprotocol/servers/tree/main/src/brave-search *** APIキーの取得方法 [#a1507b12] - 1. [Brave Search APIアカウント](https://brave.com/search/api/)に登録 - 2. プランを選択(無料枠は月2,000クエリまで利用可能) - 3. [開発者ダッシュボード](https://api.search.brave.com/app/keys)からAPIキーを生成 *** Claude Desktopでの使用方法 [#h30d4365] `claude_desktop_config.json`に以下を追加してください: ```json { "mcpServers": { "brave-search": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-brave-search" ], "env": { "BRAVE_API_KEY": "ここにあなたのAPIキーを入力" } } } } ``` *** 使ってみた感想 [#eeee0859] うーん、検索の精度はあまり高くないかな。今後に期待。 ** ローカルのgitを見つめなおすMCPサーバ [#zf7aacf8] コミットコメントとか代筆してくれるかも @modelcontextprotocol/server-git ** github用のMCPサーバ [#xe598b69] レビューを行うAIになりうるかもしれません @modelcontextprotocol/server-github ** obsidian用のMCPサーバ [#q09cc09b] Youtubeでおすすめされていた MarkusPfundstein/mcp-obsidian ** MCPサーバを管理するUI用のMCPサーバ [#t47ff03e] サーバじゃないのか? zueai/mcp-manager ** 家電を制御できるMCPサーバだと!? [#vd186fbb] tevonsb/homeassistant-mcp ** google Calendar [#m91dcce4] https://github.com/markelaugust74/mcp-google-calendar https://github.com/MarkusPfundstein/mcp-gsuite ** 長期記憶ができるだと? [#rbb4dfc4] https://qiita.com/Maki-HamarukiLab/items/3ccf9cd6edd634476d02 ** curlライクなMCPサーバ [#m49285db] https://github.com/mcp-get/community-servers/tree/main/src/server-curl ** Javaでもつかえるのかな? [#f9495fce] https://spring.io/blog/2024/12/11/spring-ai-mcp-announcement https://github.com/spring-projects-experimental/spring-ai-mcp *** Java MCPサーバの実装例 [#r6df60cc] https://github.com/spring-projects/spring-ai-examples/tree/main/model-context-protocol ** すでにMCPサーバを作るためのフレームワーク化が進行しているみたいだ [#q62b002f] https://github.com/punkpeye/awesome-mcp-servers?tab=readme-ov-file#frameworks ** APIがつかえたら、どこにでも接続できるのでは? [#gbd27958] *** snaggle-ai/openapi-mcp-server [#f55282b7] https://github.com/snaggle-ai/openapi-mcp-server * MCPを定義する項目の説明 [#m8f78d63] ** 役割: [#jf1d4204] モデルやエージェントの役割を明確に定義します。例えば、「アシスタント」、「エージェント」、「エキスパート」などです。 ** アクション: [#v6b69fa8] モデルが実行できるアクションを定義します。例えば、「情報を検索する」、「要約を作成する」、「コードを生成する」などです。 ** コンテキスト: [#e8a9f9ce] モデルがアクセスできる関連情報を定義します。例えば、ドキュメント、過去の会話履歴、外部データなどです。 ** コントローラー: [#g866c880] モデルの動作を制御するための命令とパラメータを定義します。例えば、応答の長さ、フォーマット、スタイルなどです。 * アーキテクチャ [#pdd7df3f] 以下の記事をまとめる https://modelcontextprotocol.io/docs/concepts/architecture MCPは、MCPサーバと、MCPクライアントの通信から成り立つ。 MCPサーバとMCPクライアントは1:1で通信を行う。 MCPクライアントをホスト(ClaudeアプリやIDE)では複数持つことができる * プロトコル [#v126c752] チュートリアルをまだやっていないならば、これはまだ見ないほうがいい。 Pythonの例やTypeScriptの例が記載されていた。いきなりこれを見ても、なにかわからない。チュートリアルを先にやらないとわからない気がする。 class Protocol<Request, Notification, Result> { // 受信したリクエストを処理する setRequestHandler<T>(schema: T, handler: (request: T, extra: RequestHandlerExtra) => Promise<Result>): void // 受信した通知を処理する setNotificationHandler<T>(schema: T, handler: (notification: T) => Promise<void>): void // リクエストを送信し、レスポンスを待機する request<T>(request: Request, schema: T, options?: RequestOptions): Promise<T> // 一方向の通知を送信する notification(notification: Notification): Promise<void> } * トランスポート [#g81c4193] やり方が2つあって、1つは、標準入出力を使う方法、もう一つはSSEというネットワークを使う方法である。メッセージの形式は、JSON-RPC 2.0 を使用してメッセージを交換する。