mcpField
M
Model Context Protocol .NET Template

Model Context Protocol .NET Template

ローカル
nikiforovall.blog開発ツール2616 週間前に更新

Model Context Protocol .NET Template について

MCP アプリケーションを .NET で構築するためのプロジェクトテンプレートです。基本的な構成とサンプルコードを提供し、C# で MCP サーバーを作成する開発者を対象としています。Stdio と HTTP の両モードで動作し、.NET ツールとしてパッケージ化することもできます。

主な機能

  1. 01mcp-server などの dotnet new テンプレートを提供
  2. 02[McpServerTool] 属性を使ったサンプルのエコーサーバー
  3. 03Stdio と HTTP の両モードに対応
  4. 04グローバル .NET ツールとしてパッケージ化
  5. 05Aspire 連携と MCP Inspector を含む

活用シーン

  1. 01C# で MCP サーバーを作成する際の出発点
  2. 02MCP Inspector を使ったローカルサーバーのデバッグ
  3. 03MCP サーバーをコマンドラインツールとして配布

MCP 対応

テンプレートから生成されるのは MCP サーバーであり、WithToolsFromAssembly() でアセンブリ内のツールを登録し、MCP クライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"template-dotnet": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/inspector"
]
}
}
}
起動コマンドnpx -y @modelcontextprotocol/inspector

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@modelcontextprotocol/inspector

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Model Context Protocol .NET テンプレート

MCP Logo

LLM アプリケーションと外部データソースをシームレスに統合するためのプロトコル

ドキュメント | 仕様 | ディスカッション

このリポジトリには、.NET で Model Context Protocol(MCP)アプリケーションを作成するためのテンプレートが含まれています。独自の MCP 対応アプリケーションを構築し始めるのに役立つ、基本的な構造とサンプルコードを提供します。

パッケージバージョン説明
Nall.ModelContextProtocol.TemplateNugetテンプレート
Nall.ModelContextProtocol.Inspector.Aspire.HostingNugetAspire ホスティング統合

はじめに

インストール:
dotnet new install Nall.ModelContextProtocol.Template
# dotnet new install ./Artefact/Nall.ModelContextProtocol.Template

インストールを確認します:

dotnet new list mcp
# These templates matched your input: 'mcp'

# Template Name      Short Name         Language  Tags
# -----------------  -----------------  --------  -------------
# Template Name         Short Name            Language  Tags
# --------------------  --------------------  --------  -------------
# MCP Server            mcp-server            [C#]      dotnet/ai/mcp
# MCP Server HTTP       mcp-server-http       [C#]      dotnet/ai/mcp
# MCP Server HTTP Auth  mcp-server-http-auth  [C#]      dotnet/ai/mcp
# MCP Server Hybrid     mcp-server-hybrid     [C#]      dotnet/ai/mcp

ヒント

実際にはモードを切り替えたくなるため、mcp-server-hybrid テンプレートの使用をおすすめします。これにより、サーバーを Stdio モードと HTTP モードの両方で実行できます。

出力を確認します:

dotnet new mcp-server -o MyAwesomeMCPServer -n MyAwesomeMCPServer --dry-run
# File actions would have been taken:
#   Create: MyAwesomeMCPServer\.vscode\launch.json
#   Create: MyAwesomeMCPServer\MyAwesomeMCPServer.csproj
#   Create: MyAwesomeMCPServer\Program.cs
#   Create: MyAwesomeMCPServer\Properties\launchSettings.json
#   Create: MyAwesomeMCPServer\README.md
#   Create: MyAwesomeMCPServer\appsettings.Development.json
#   Create: MyAwesomeMCPServer\appsettings.json

テンプレートから作成します:

dotnet new mcp-server -o MyAwesomeMCPServer -n MyAwesomeMCPServer

以下は Program.cs の内容です:

using Microsoft.Extensions.Hosting;

var builder = Host.CreateApplicationBuilder(args);
builder.Services
    .AddMcpServer()
    .WithStdioServerTransport()
    .WithToolsFromAssembly();

await builder.Build().RunAsync();

[McpServerToolType]
public static class EchoTool
{
    [McpServerTool, Description("Echoes the message back to the client.")]
    public static string Echo(string message) => $"hello {message}";
}

これは、受信メッセージを待ち受けて挨拶を返すシンプルなエコーサーバーです。[McpServerTool] 属性を付けたメソッドを追加することで、さらにツールを追加できます。WithToolsFromAssembly() メソッドは、アセンブリ内のすべてのツールを自動的に登録します。

ローカルで実行する

プロジェクトディレクトリからビルドします:

dotnet build -o Artefacts -c Release

インスペクターを実行します:

npx @modelcontextprotocol/inspector -e DOTNET_ENVIRONMENT=Production dotnet "$(PWD)/Artefacts/MyAwesomeMCPServer.dll"

ブラウザーでインスペクターを開き、サーバーをテストします:

Inspector Demo

.NET ツールとして配布する

プロジェクトディレクトリからパックします:

dotnet pack -o Artefacts -c Release

ツールをグローバルにインストールします:

dotnet tool install --global --add-source ./Artefacts MyAwesomeMCPServer

これで、このツールをグローバルにインストールした後は、システム上のどこからでも実行できます。このツールはターミナルで MyAwesomeMCPServer(または myawesomemcpserver)として利用できるようになります。

💡 ローカルツールマニフェストを作成し、MCP をツールとしてローカルにインストールすることもできます。

インスペクターを実行します:

npx @modelcontextprotocol/inspector -e DOTNET_ENVIRONMENT=Production myawesomemcpserver

Aspire で実行する

Stdio モードの場合

AppHost/Program.cs にて:

var builder = DistributedApplication.CreateBuilder(args);

builder.AddMCPInspector().WithStdio<Projects.MCPServer>();

builder.Build().Run();
HTTP モードの場合

AppHost/Program.cs にて:

var builder = DistributedApplication.CreateBuilder(args);

var mcp = builder.AddProject<Projects.MCPServerRemote>("server");
builder.AddMCPInspector().WithMcp(mcp);

builder.Build().Run();

リファレンス

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。