Slide 1

Slide 1 text

MCPに⼊⾨する shuntaka 1

Slide 2

Slide 2 text

⾃⼰紹介 2 shuntaka/髙橋俊⼀ 業務: TypeScript/AWS/Backend 業務外: Go/Rust/Neovim/Nix 所属: クラスメソッド 製造ビジネステクノロジー部 (CX事業本部 → CX IoT事業本部 → 製造BT) TypeScriptでライブラリやGo/Rust(new!)でCLIを作るのが好きです ddbrew/gh-p2/oax/s3-concat/preview-asciidoc.vim … shuntaka.dev/who

Slide 3

Slide 3 text

はじめに ‧本資料は 2025/04/05 時点の情報を元に作成しています ‧あくまでMCPの基礎的な部分を解説します 3 追記 ‧2025/04/10時点の情報にアップデートしました

Slide 4

Slide 4 text

Model Context Protocol(MCP)とは? 4 LLMに必要なコンテキストを提供するプロトコル (Anthropicが主体で策定) ネットワークを超えたtool use(Function calling)で、ツールを⺠主化 参考: Model Context Protocol

Slide 5

Slide 5 text

Model Context Protocol(MCP)とは? 5 ‧クラサバ間は標準⼊出⼒ or SSE Streamable HTTP で通信 ‧メッセージはJSON-RPC 2.0 参考: Model Context Protocol

Slide 6

Slide 6 text

補⾜: inspired by Language Server Protocol MCP takes some inspiration from the Language Server Protocol Before After Microsoftが標準化。エディタと⾔語間の接続を標準化し、互換性 と開発効率を向上。stdioとJSON RPC 2.0の部分が共通点。 現在ではLSPの機能の充実具合は⾮常に重要な観点となっている。 6

Slide 7

Slide 7 text

MCPの標準化に乗ったOpenAI リンク Googleは検討中..? 7 ※ 2025/04/10追記: Agent Development Kit(ADK)でサポート

Slide 8

Slide 8 text

SSE から Streamable HTTP へ 8 https://github.com/modelcontextprotocol/specification/pull/206 Protocol Revision: 2025-03-26から仕様変更 ‧サーバー接続を維持するため⾼可⽤性が要求されていた  → ステートフルからステートレスに。SSEはオプショナルで利⽤可 ‧再開機能をサポートしていない  → SSEのLast-Event-IDを使った再送制御

Slide 9

Slide 9 text

クライアントのTransportサポート状況 9 参考: Model Context Protocol SSE(⾮推奨) (2024-11-05) stdio (2025-03-26) Streamable HTTP (2025-03-26) Roo Code ◯ ◯ X Cursor ◯ ◯ X Mastra ◯ ◯ X Claude Desktop X ◯ X Cline X ◯ X Windsurf ◯ (2025/04/03 Wave6にて対応) ◯ X 現状はstdioがほとんど。SSE/Streamable HTTPはブラウザ⽤、ホストマシンに何も⼊れたくない場合か な?typescript-sdkでStreamable HTTPの開発が進んでいる印象。

Slide 10

Slide 10 text

MCPの機能 サーバーはfastmcpを使って、 実装しながら説明するよ 対象 機能名 説明 サーバー Resources クライアントがコンテキスト情報を取得できる (※ 一部の実装ではTools同様AIモデル自体がどのリソースを使用するかを決定でき る場合もあるみたいです) サーバー Prompts クライアントがテンプレートメッセージを利用できる サーバー Tools クライアントが外部システム連携機能を実行できる クライアント Sampling サーバーがクライアントの LLMを利用する クライアント Roots サーバーがクライアントにアクセスできるファイルシステムを 確認できる 10

Slide 11

Slide 11 text

Prompts(1/2) 11

Slide 12

Slide 12 text

Prompts(2/2) 12

Slide 13

Slide 13 text

Resources(1/2) Promptより単純!指定したリ ソースをそのままプロンプトに ⼊⼒可能。 1つのファイルだと不便だった ので、load関数で再起的に読み 出して1つのファイル結合して みた。 これは推奨されないかも...() 13 ※ クライアントから明⽰指定するパターンを紹介 します。AIモデル⾃体がリソースを決定できるパ ターンもあるみたいです。 Claude Desktopでは対応していません。

Slide 14

Slide 14 text

Resources(2/2) ⼀気に⼤量リソースをプロンプトに⼊れられる! 14

Slide 15

Slide 15 text

Tools(1/2) 最も使われていて、世のMCPの9割9部がコレだと 思っている 15

Slide 16

Slide 16 text

Tools(2/2) トンカチマークでツールを確認可能 Claude Desktopはツールが発⽕するか はLLM次第 MCPクライアントによってはツールを コンテキストに含めることも可能 16

Slide 17

Slide 17 text

17 Agent modeのTools(GitHub Copilot) Visual Studio Code version 1.99でMCP Serverが 有効化可能。ツールをコンテキストに指定可能。 雑な指⽰でも起動を指定できる

Slide 18

Slide 18 text

18 使用しないツールも指定可(GitHub Copilot)

Slide 19

Slide 19 text

作ったMCPサーバーは簡単にClaude Desktopで使える 19

Slide 20

Slide 20 text

機能サポート サポート状況 ほぼToolsが主⼒で使わ れている クライアント側の機能 はメジャーどころの ツールでも未サポート の状態 20

Slide 21

Slide 21 text

自宅の電力量を分析するプロタイプ リンク

Slide 22

Slide 22 text

管理画面作るまでの繋ぎ? ・実行例① ・実行例② DBとAPI(MCP)だけ用意して、簡易解析 はClaude Desktopで運用や保守コストを 減らせる(?) 22

Slide 23

Slide 23 text

オープンなMCPを作ってみた話 リンク Google CalendarのMCP カレンダー情報を使って作れないか ...進捗はない模様... ・予実入力 ・日報壁打ちAIエージェント ・移動先から乗る電車を逆算する AIエージェント 23

Slide 24

Slide 24 text

GitHub MCP Server(2025/04/04) リンク 24 データプロバイダ公式のMCPのリリース ニュースが相次ぐ。 modelcontextprotocol/serversで⾮公式 のMCPがあったが、公式で登場。 Go製。docker経由で実⾏する。

Slide 25

Slide 25 text

Notion MCP Server(2025/04/08) リンク 25 こちらも⾮公式があったが、公式から発 表。 @modelcontextprotocol/sdkを使った TypeScript製。

Slide 26

Slide 26 text

有名どころ リンク よく聞くのはここら辺 ‧Playwright MCP(Microsoft) ‧Figma MCP(@GLips) ‧Postgres MCP(modelcontextprotocol) etc… 26

Slide 27

Slide 27 text

AWS MCPシリーズ(25/04/01) リンク Pythonでuvx経由で実⾏する ‧Core MCP Server ‧AWS Documentation MCP Server ‧Amazon Bedrock Knowledge Bases Retrieval MCP Server ‧AWS CDK MCP Server ‧Amazon Nova Canvas MCP Server ‧Cost Analysis MCP Server 27

Slide 28

Slide 28 text

AWS Documentation MCP Server リンク ツール名 説明 read_documentation このツールはAWSのドキュメントページをマークダウン形式で 取 得して変換します。 recommend このツールは指定した AWSドキュメントページに関連するペー ジを推薦します。 search_documentation 公式AWS Documentation Search APIを使ってAWSドキュメン トを検索するツールです。 28

Slide 29

Slide 29 text

AWS Documentation MCP Server リンク 29 検索 読み込み

Slide 30

Slide 30 text

Amazon Bedrock Knowledge Bases Retrieval MCP Server リンク ツール名 説明 QueryKnowledgeBases 自然言語でクエリを作成し、知識ベースから関連情報を取得で きます。複数の知識ベースに対して検索したり、同じ知識ベース に対して複数のクエリを実行できます。 30

Slide 31

Slide 31 text

AWS CDK MCP Server リンク ツール名 説明 CDKGeneralGuidance AWSアプリケーションを作成するCDKのアドバイス CheckCDKNagSuppressions CDK Nagの抑制理由をレビューして、適切であることを判 断する(抑制=supress) ExplainCDKNagRule Nagルールの説明をしてくれる GenerateBedrockAgentSchem aFromFile Bedrock エージェントアクショングループのための OpenAPI スキーマを Lambda ファイルから⽣成するツール です。BedrockAgentResolver を含む Lambda ファイルを Bedrock 対応の OpenAPI スキーマに変換します。 GetAwsSolutionsConstructPat tern Well-Archベスプラに沿ったAWS Solutions Constructs パ ターンを検索‧発⾒するためのツール SearchGenAICDKConstructs 名前やタイプによって GenAI CDK コンストラクトを検索す る 31

Slide 32

Slide 32 text

AWS CDK MCP Server / CheckCDKNagSuppressions リンク 32

Slide 33

Slide 33 text

Amazon Nova Canvas MCP Server リンク ツール名 説明 generate_image Amazon Nova Canvasを使⽤してテキストプロンプトに基づい て画像を⽣成 generate_image_with_colors +カラーパレットを指定可能 33

Slide 34

Slide 34 text

Cost Analysis MCP Server リンク ツール名 説明 analyze_cdk_project AWSサービスを特定するためにCDKプロジェクトを動 的に分析 get_pricing_from_web AWS価格ウェブページから価格情報を取得 get_pricing_from_api AWS Price List APIから価格情報を取得 get_bedrock_architecture_patterns Amazon Bedrockアプリケーションのアーキテクチャ パターン、コンポーネント関係、コスト考慮事項を取 得 generate_cost_analysis_report AWS価格データに基づいて詳細なコスト分析レポート を⽣成します。単価情報、計算内訳、価格モデル、前 提条件などを含みます。 34

Slide 35

Slide 35 text

Cost Analysis MCP Server リンク 35

Slide 36

Slide 36 text

MCP開発 現在はSDKが充実。fastmcpだと数⾏でできてしまったりする。 リンク 36

Slide 37

Slide 37 text

リンク MCP開発(stdio) SDKを利⽤しない場合は、stdinでJSONを読み込んで、なんやかんやして結果をstdoutにJSON を吐くだけ!(雑) ※ GIF 37

Slide 38

Slide 38 text

リンク https://speakerdeck.com/shuntaka/implementing-google-calendar-mcp-in-rust?slide=13 MCPシーケンス 38

Slide 39

Slide 39 text

MCP開発 ‧MCPの発⽕はベンダーのシステムプロンプトで差異あり → Cursorで何度やっても発⽕しなかったことがある ‧ユーザーが呼び出す前に例外になる要素があるとユーザー 体験が悪そう ‧データ分析系は、量が多いとAnalyzeが⾛って、コード実 ⾏失敗からのループになるケースもある(3.7になって成功率 が⾼い気がする...) リンク 39

Slide 40

Slide 40 text

まとめ ‧標準化した結果爆発的に広がった ‧MCPはSDKを使えば簡単に作れる ‧⾃作も⾯⽩い 40

Slide 41

Slide 41 text

参考文献 ‧https://spec.modelcontextprotocol.io/specification/2025-03-26/ ‧https://zenn.dev/ks0318/articles/f92589946cd344 41

Slide 42

Slide 42 text

42 ⼩ネタ集

Slide 43

Slide 43 text

MCPのコンフィグ リンク 43 課題 ‧Cline/Windsurf/Claude CodeでMCPのコンフィグが 煩雑 → symlinkで共通化 ‧チーム共有時のクレデンシャル事故が怖い → jsonnetでファイルを分離。gitignoreする。 詳細: https://github.com/shuntaka9576/dotfiles/tree/main/home-manager/programs/mcp

Slide 44

Slide 44 text

44 GitHub Copilotの場合、Secretsのinputs拡張もある 初回起動時にVSCodeのUI経由でトークンを設定する