mcpField
S
sampledotnetmcpserver

sampledotnetmcpserver

ローカル
github.com/timheuer開発ツール458 週間前に更新

sampledotnetmcpserver について

sampledotnetmcpserverは、C#とModelContextProtocol SDKによるサーバー開発を学ぶ開発者向けの.NET製MCPサーバーのサンプルです。ツール登録、stdioトランスポート、NuGetでのパッケージ化と公開方法を示します。

主な機能

  1. 01C#によるMCPツール例
  2. 02乱数・挨拶ツール
  3. 03米国ZIPコード別の天気と予報
  4. 04stdioトランスポート設定
  5. 05NuGetパッケージ化の例

活用シーン

  1. 01C#でのMCPツール実装の学習
  2. 02乱数・挨拶ツール呼び出しのテスト
  3. 03米国ZIPコードでの天気確認
  4. 04MCPサーバーのNuGetへのパッケージ化と公開

MCP 対応

stdio経由で乱数、挨拶、天気のツールをMCPクライアントに提供するMCPサーバーを実装しています。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
nugetTimHeuer.SampleDotnetMcpServer0.1.57-beta

ツール

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

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

詳細

SampleDotnetMcpServer

このプロジェクトは、.NET における Model Context Protocol(MCP)サーバーのサンプル実装です。C# と ModelContextProtocol SDK を使って MCP サーバーを構築、実行、公開する方法を紹介します。

mcp-name: io.github.timheuer/sampledotnetmcpserver

これは何ですか?

SampleDotnetMcpServer は .NET 向けの MCP サーバーのリファレンス実装で、次の方法を紹介します。

  • C# で MCP ツールを実装する(Tools/RandomNumberTools.cs、Tools/SayHelloName.cs、Tools/WeatherTools.cs を参照)
  • ツールを登録し、MCP サーバーのトランスポートを設定する(Program.cs を参照)
  • VS Code や Visual Studio などの IDE で使用できるように、サーバーを NuGet パッケージ化して公開する

含まれているツールでは、さまざまな MCP の機能を紹介しています。

  • get_random_number:指定した範囲の乱数を生成します
  • say_hello_name と say_goodbye_name:シンプルな挨拶ツールです
  • get_weather_by_zip_code:米国の任意の郵便番号の現在の天気情報を取得します
  • get_weather_forecast:米国の任意の郵便番号の複数日にわたる天気予報を取得します

機能

  • stdio トランスポートを使用して MCP プロトコルを実装します
  • 複数のサンプルツールを提供します。
    • get_random_number:指定した範囲の乱整数を返します
    • say_hello_name と say_goodbye_name:シンプルな挨拶ツールです
    • get_weather_by_zip_code:wttr.in API を使用して、米国の任意の郵便番号の現在の天気を取得します
    • get_weather_forecast:米国の任意の郵便番号の複数日にわたる天気予報を取得します
  • NuGet MCP サーバーとしてパッケージ化し、公開できる状態です
  • 設定ファイルとメタデータの例が含まれています

使用方法

ローカルで実行する

開発やテストのために、ソースから MCP サーバーを直接実行できます。

dotnet run --project .

または、IDE で次の MCP サーバー定義を使用するように設定します。

{
  "servers": {
    "SampleDotnetMcpServer": {
      "type": "stdio",
      "command": "dotnet",
      "args": [
        "run",
        "--project",
        "<PATH TO PROJECT DIRECTORY>"
      ]
    }
  }
}
MCP サーバーをテストする

起動したら、Copilot Chat または任意の MCP クライアントから利用可能なツールを呼び出せます。

天気ツール:

  • 「90210 の天気はどうですか?」と尋ねて、現在の天気を取得します
  • 「10001 の3日間の天気予報を教えて」と尋ねて、天気予報を取得します
  • 「60601 の天気を確認して」と尋ねて、シカゴの郵便番号でテストします

その他のツール:

  • 「ランダムな数字を3つ教えて」と尋ねて、乱数生成ツールを使用します
  • 「John に挨拶して」と尋ねて、挨拶ツールを使用します
NuGet.org に公開する

CI が NuGet への公開を処理します。キーには NuGet Trusted Publishing を使用し、Nerdbank.GitVersioning によってバージョンを自動設定します。

NuGet.org から使用する

公開後、IDE で NuGet.org の MCP サーバーを使用するように設定します。設定例(パッケージ ID とバージョンを置き換えてください):

{
  "servers": {
    "SampleDotnetMcpServer": {
      "type": "stdio",
      "command": "dnx",
      "args": [
        "TimHeuer.SampleMcpServer",
        "--version",
        "0.1.0-beta",
        "--yes"
      ]
    }
  }
}

プロジェクト構成

  • Program.cs:MCP サーバーのエントリポイントと設定
  • Tools/RandomNumberTools.cs:乱数生成の MCP ツールの例
  • Tools/SayHelloName.cs:挨拶用 MCP ツールの例
  • Tools/WeatherTools.cs:郵便番号を使って天気を確認する MCP ツール
  • .mcp/server.json:MCP サーバーのメタデータと NuGet パッケージ情報
  • SampleDotnetMcpServer.csproj:プロジェクトと NuGet パッケージ化の設定

詳細情報


このプロジェクトは、デモおよびリファレンスのみを目的としています。フィードバックや貢献については、GitHub リポジトリをご覧ください。

コメント

MCP は初めてですか?

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

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