Knapcode.SampleMcpServer について
サーバーテンプレートを基にした C# の MCP サーバー例で、MCP サーバーの作成と NuGet パッケージ化を示します。乱数とランダムな天気を生成するツールを提供します。
主な機能
- 01乱数の生成
- 02ランダムな天気の生成
- 03C# MCP サーバーテンプレートを使用
- 04NuGet パッケージ化
活用シーン
- 01基本的な C# MCP サーバーの学習
- 02VS Code での MCP ツールのローカルテスト
- 03NuGet 配布用サーバーのパッケージ化
MCP 対応
乱数とランダムな天気の機能を MCP クライアントに公開します。README には VS Code の stdio 設定とローカル開発方法が記載されています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP サーバー - Knapcode.SampleMcpServer
この README は、C# MCP サーバーのテンプレートプロジェクトを使用して作成されました。C# を使って MCP サーバーを簡単に作成し、NuGet パッケージとしてパッケージ化する方法を紹介します。
詳しいガイドについては、aka.ms/nuget/mcp/guide をご覧ください。
NuGet.org への公開前のチェックリスト
- 以下の手順に従って、MCP サーバーをローカルでテストします。
- .csproj ファイルのパッケージメタデータ、特に
<PackageId>を更新します。 .mcp/server.jsonを更新して、MCP サーバーの入力を宣言します。- 詳細については、入力の構成をご覧ください。
dotnet packを使用してプロジェクトをパックします。
bin/Release ディレクトリにパッケージファイル(.nupkg)が作成されます。このファイルは NuGet.org に公開できます。
VS Code で MCP サーバーを使用する
MCP サーバーのパッケージを NuGet.org に公開すると、以下の VS Code ユーザー構成を使用して、MCP サーバーのパッケージをダウンロードしてインストールできます。VS Code で MCP サーバーを使用する方法について詳しくは、VS Code で MCP サーバーを使用する(プレビュー)をご覧ください。
{
"mcp": {
"servers": {
"Knapcode.SampleMcpServer": {
"type": "stdio",
"command": "dnx",
"args": [
"[email protected]",
"--yes",
"--",
"mcp",
"start"
],
"env": {
"WEATHER_CHOICES": "sunny,humid,freezing"
}
}
}
}
}
これで、たとえば Give me 3 random numbers のように、Copilot Chat に乱数を尋ねることができます。Knapcode.SampleMcpServer MCP サーバーの get_random_number ツールを使用するように求められ、結果が表示されます。
VS Code でローカル開発する
ビルド済みの MCP サーバーパッケージを使わず、ソースコードからこの MCP サーバーをローカルでテストするには、プロジェクトディレクトリに .vscode/mcp.json ファイル(VS Code ワークスペース設定ファイル)を作成し、以下の構成を追加します。
{
"servers": {
"Knapcode.SampleMcpServer": {
"type": "stdio",
"command": "dotnet",
"args": [
"run",
"--project",
"<RELATIVE PATH TO PROJECT DIRECTORY>",
"--",
"mcp",
"start"
],
"env": {
"WEATHER_CHOICES": "sunny,humid,freezing"
}
}
}
}
または、ローカルのプロジェクトを使用するように VS Code のユーザー設定を構成できます。
{
"mcp": {
"servers": {
"Knapcode.SampleMcpServer": {
"type": "stdio",
"command": "dotnet",
"args": [
"run",
"--project",
"<FULL PATH TO PROJECT DIRECTORY>"
"--",
"mcp",
"start"
]
},
"env": {
"WEATHER_CHOICES": "sunny,humid,freezing"
}
}
}
}
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。