目次

Claude MCPの入門ブログ

Claude MCP(Model-Context-Protocol)とは、MCPサーバを経由して外部のリソースをClaudeが使えるようになる仕組みのことである。

MCPサーバは外部のリソースに応じた、かなりたくさんの種類が開発されている。

外部リソースには、自分のPCのファイルなども含まれているので、チャット履歴を自分のPCに保存することも可能になってくる。

anthoropicの公式

Introducing the Model Context Protocol

https://www.anthropic.com/news/model-context-protocol

Get Started (大事!でもないか、わかりづらい)

開発に必須の内容が詰まっている。網羅されているのはよいが、わかりづらい。MCPサーバを1ファイルの部分ごとに意味を説明しながら作らせる感じなので、どこかで躓くとデバッグが困難だ。デバッグの説明のドキュメントはMacを使う前提っぽい説明なのだ。ちょっと最初の入門としては敷居が高そうな印象だ。というわけで、最初のおすすめチュートリアルとしては、すでにできたMCPサーバを後述のMCPサーバをGithubからダウンロードするほうがとっつきやすいと思う。

https://modelcontextprotocol.io/introduction

クイックスタート

原文:

https://modelcontextprotocol.io/quickstart

最初のMCPサーバーを構築し、ホストに接続してみましょう

このチュートリアルでは、シンプルな MCP 天気予報サーバーを構築し、ホストである Claude for Desktop に接続します。まずは基本的なセットアップから始めて、より複雑なユースケースに進みます。

Claude for Desktopβ版ダウンロード

https://claude.ai/download

サーバのロードに失敗したらfileメニューから終了しないと、リセットされてないっぽい

チュートリアルで、MCPサーバのサンプルが作れるのだが、それは、Claude for Desktopをつかうので、ダウンロードして設定が必要

チュートリアルでの難しい所は、Claude for Desktop起動時に、MCPサーバを定義に従って接続しに行くのだが、設定がずれるとエラーになる。しかしエラーログの出し方がわかりにくいためはまってしまって、解決策は不明のまま先に進めない。

なので、あらかじめある程度そろったコードで試すよりほかない。

MCPサーバの宝庫

ここが真のチュートリアルであり、よく使うMCPサーバ置き場なのではなかろうか。という認識である。

https://github.com/punkpeye/awesome-mcp-servers

https://github.com/modelcontextprotocol/servers

https://mcp-get.com/

このリポジトリのようなAIの外部拡張は、OS標準装備にするべき、もしくは、AI時代となる現代の義務教育に取り込むべきレベルと言っても過言ではない気がする。空気のように扱えるようにすべきか。。。。

ただしAIがやろうとしていることが正しいわけではないので、ロールバックができたりする状況が必要だったり、確認のインタフェースが必要だったりすると思う。

導入手順

作成済みのMCPサーバを手に入れる

https://github.com/punkpeye/awesome-mcp-servers

git cloneする

git clone https://github.com/punkpeye/awesome-mcp-servers.git

ここにはサーバのコードが入っていない。つまりリンク集のようだ

以下をgit cloneしましょう、いくつかサーバがまとまっている

https://github.com/modelcontextprotocol/servers

サーバがまとまっているのは上記だけでは無いようだ

https://glama.ai/mcp/servers?attributes=

本家以外にもチュートリアルの記事がたくさんある

https://glama.ai/blog/2024-11-25-model-context-protocol-quickstart

https://reffect.co.jp/ai/claude-mcp

気になるMCPサーバ

たくさんあるので、使いそうなものがある

ローカルサーバ用MCP

たくさんあるが、基本はローカルファイルアクセスだと思う

@modelcontextprotocol/server-filesystem

claude_desktop_config.jsonのWindowsでの設定、動作確認済み

{
   "mcpServers": {
     "filesystem": {
       "command": "npx",
       "args": [
         "-y",
         "@modelcontextprotocol/server-filesystem",
         "C:/Users/kh/Desktop",
         "C:/Users/kh/prj/mcp_tutorial"
       ]
     }
   }
 }

許可しているディレクトリをどんどん追加していける

ほかの人が設定したブログ

https://note.com/k1mu/n/n7ab09ac7b4e3

検索エンジン brave-search

検索エンジンといえばGoogleだが、検索履歴が残る、AIが検索する履歴は利用者の好みとはまた別である。そこでbrave-searchという、検索履歴を残さない検索エンジンを使う

https://github.com/modelcontextprotocol/servers/tree/main/src/brave-search

APIキーの取得方法

Claude Desktopでの使用方法

`claude_desktop_config.json`に以下を追加してください:

```json {

 "mcpServers": {
   "brave-search": {
     "command": "npx",
     "args": [
       "-y",
       "@modelcontextprotocol/server-brave-search"
     ],
     "env": {
       "BRAVE_API_KEY": "ここにあなたのAPIキーを入力"
     }
   }
 }

} ```

使ってみた感想

うーん、検索の精度はあまり高くないかな。今後に期待。

ローカルのgitを見つめなおすMCPサーバ

コミットコメントとか代筆してくれるかも @modelcontextprotocol/server-git

github用のMCPサーバ

レビューを行うAIになりうるかもしれません @modelcontextprotocol/server-github

obsidian用のMCPサーバ

Youtubeでおすすめされていた MarkusPfundstein?/mcp-obsidian

MCPサーバを管理するUI用のMCPサーバ

サーバじゃないのか? zueai/mcp-manager

家電を制御できるMCPサーバだと!?

tevonsb/homeassistant-mcp

google Calendar

https://github.com/markelaugust74/mcp-google-calendar

https://github.com/MarkusPfundstein/mcp-gsuite

長期記憶ができるだと?

https://qiita.com/Maki-HamarukiLab/items/3ccf9cd6edd634476d02

curlライクなMCPサーバ

https://github.com/mcp-get/community-servers/tree/main/src/server-curl

Javaでもつかえるのかな?

https://spring.io/blog/2024/12/11/spring-ai-mcp-announcement

https://github.com/spring-projects-experimental/spring-ai-mcp

Java MCPサーバの実装例

https://github.com/spring-projects/spring-ai-examples/tree/main/model-context-protocol

すでにMCPサーバを作るためのフレームワーク化が進行しているみたいだ

https://github.com/punkpeye/awesome-mcp-servers?tab=readme-ov-file#frameworks

APIがつかえたら、どこにでも接続できるのでは?

snaggle-ai/openapi-mcp-server

https://github.com/snaggle-ai/openapi-mcp-server

MCPを定義する項目の説明

役割:

モデルやエージェントの役割を明確に定義します。例えば、「アシスタント」、「エージェント」、「エキスパート」などです。

アクション:

モデルが実行できるアクションを定義します。例えば、「情報を検索する」、「要約を作成する」、「コードを生成する」などです。

コンテキスト:

モデルがアクセスできる関連情報を定義します。例えば、ドキュメント、過去の会話履歴、外部データなどです。

コントローラー:

モデルの動作を制御するための命令とパラメータを定義します。例えば、応答の長さ、フォーマット、スタイルなどです。

アーキテクチャ

以下の記事をまとめる

https://modelcontextprotocol.io/docs/concepts/architecture

MCPは、MCPサーバと、MCPクライアントの通信から成り立つ。 MCPサーバとMCPクライアントは1:1で通信を行う。 MCPクライアントをホスト(ClaudeアプリやIDE)では複数持つことができる

プロトコル

チュートリアルをまだやっていないならば、これはまだ見ないほうがいい。 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>
}

トランスポート

やり方が2つあって、1つは、標準入出力を使う方法、もう一つはSSEというネットワークを使う方法である。メッセージの形式は、JSON-RPC 2.0 を使用してメッセージを交換する。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2025-01-18 (土) 12:21:41 (59d)