MCPサーバーを作ってみる(実験中)

もくじ

https://tera1707.com/entry/2022/02/06/144447

github copilot 情報源

https://tera1707.com/entry/2025/06/10/223811

前提

使用した vscode バージョン

バージョン: 1.100.3 (user setup)
コミット: 258e40fedc6cb8edf399a463ce3a9d32e7e1f6f3
日付: 2025-06-02T13:30:54.273Z
Electron: 34.5.1
ElectronBuildId: 11369351
Chromium: 132.0.6834.210
Node.js: 20.19.0
V8: 13.2.152.41-electron.0
OS: Windows_NT x64 10.0.26100

やってみたこと

「簡単な例 – Echoサーバー」に沿ってやってみる

https://devblogs.microsoft.com/blog/microsoft-partners-with-anthropic-to-create-official-c-sdk-for-model-context-protocol

mcpインスペクタを実行せよ、

npx @modelcontextprotocol/inspector dotnet run

とあるが、そのまんま入れても実行できない。。。

しかたないので、インスペクターのほうのリポジトリを見てみる。

https://github.com/modelcontextprotocol/inspector

Node.jsというのが要るらしい。それをいんすとーるせよということか?

https://nodejs.org/ja/download からインストールしてみる

※とりあえず、windowsインストーラ^-をおとして、全部標準でインストールした。

でもコマンドとおらない。Node.jsのパスがとおってない?

https://terakoya.sejuku.net/question/detail/37067

node.jsが、x86のほうのProgramFilesに入ってしまっていた →一旦Node.Jsのインストーラーを起動し、Removeをした後もう一度同じインストーラーでインストールしたら、x64ProgramFilesのほうに入った。

どこから手をつけてよいかまよったが、今回は公式の

https://modelcontextprotocol.io/introduction

ここの

https://modelcontextprotocol.io/quickstart/server#c

これからいくことにした。

→一通りコードを入れてみた。

なんか👇のをインストール必要らしい。やってみる。

なんか、登録させられる。めんどいがやってみる。

無料プランでアカウント作成。

その後、「claude_desktop_config.json」の設定ではまる。

argの中身を、例の通りに「"C:\ABSOLUTE\PATH\TO\PROJECT",」にしてるとclaude_desktopで、接続?ボタンを押してもなにもでてこないし、VSCodeの チャット欄の左下のスパナボタンのおしてもエラーになった。

えらーはこんなん

ここをこうしてやると、うまくいった。(さっき最初に作ったconsoleアプリの、slnではなくてcsprojのフルパスを入れてやればよい)

そうすると、claundeのほうにも「weather」が出てきた。(VSCodeのほうにも出てきた)

※claude_desktop_setting.jsonにこういう風に書いておくと、「claude_desktop」のUI起動時に、自動でweatherのMCPサーバーが起動され、UIの終了と同時にサーバーが終了されるっぽい。

で、claude_desktop_setting.jsonはあくまでclaudeDesktopの設定ファイルだから、VSCodeを起動してもサーバーは起動しないっぽい。 (vscodeでもweatherのコマンドつかえてたのは、たまたまClaudeDesktopをきどうしてたからっぽい)

VScodeのグローバル設定ファイルは下記にある。

C:\Users\masa\AppData\Roaming\Code\User\settings.json

ここに、下のようにかいておけば、そのweatehreのmcpサーバーをvscodeからも立ち上がるようにできた(設定ファイルの設定名の上にでてくる「▼起動」から。)

→ここまでで、自前のアプリの下回りを使って、 自前アプリの機能を自然言語で動かすような、MCPサーバーはできるような気がした。

次は、MCPクライアント側をやってみる。
(クライアント側が使うのが「MCP C# SDK」 っぽい。MCPサーバー側はSDKは使わんっポイ?)

https://github.com/modelcontextprotocol/csharp-sdk

情報源

MCP C# SDKを使用してMCPサーバーを作成、GitHub Copilotから動作を確認してみる

https://devlog.mescius.jp/create-mcp-server-with-csharp-sdk/

Microsoft は Anthropic と提携して、モデル コンテキスト プロトコルの公式 C# SDK を開発しました。 ※MSの公式ブログ。これ見てやってみる

https://devblogs.microsoft.com/blog/microsoft-partners-with-anthropic-to-create-official-c-sdk-for-model-context-protocol

githubの、こっちがMSよりも公式??

https://modelcontextprotocol.io/introduction

C#SDK

https://github.com/modelcontextprotocol/csharp-sdk