mcpField
C
csharp-mcp-server-generator

csharp-mcp-server-generator

github.com/github開発40.5k8.4k 回インストール1 日前に更新
リポジトリ

csharp-mcp-server-generator について

.NET 8.0 以降で C# MCP サーバーを生成する開発者向けのスキルです。Host と依存性注入、stdio トランスポート、ツール属性、エラー処理、実行手順を指定します。

主な機能

  1. 01C# コンソールプロジェクト構成の作成
  2. 02Host と依存性注入の設定
  3. 03stdio トランスポートとログの設定
  4. 04説明と検証付きツールの生成
  5. 05実行・テスト・トラブルシューティング手順

活用シーン

  1. 01C# MCP サーバーの新規作成
  2. 02サーバーへのカスタムツール追加
  3. 03エラー処理とドキュメントを含む雛形生成

MCP 対応

MCP クライアントが stdio トランスポートで接続できる MCP サーバーを生成します。生成されたサーバーは、クライアントが呼び出すツールを登録します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/github/awesome-copilot --skill csharp-mcp-server-generator

インストール後、Claude Code で/csharp-mcp-server-generatorを入力して読み込まれたか確認します。

詳細

C# MCP サーバーを生成する

以下の仕様に従って、完全な Model Context Protocol (MCP) サーバーを C# で作成してください。

要件

  1. プロジェクト構造: 適切なディレクトリ構造を持つ新しい C# コンソールアプリケーションを作成する
  2. NuGet パッケージ: ModelContextProtocol (プレリリース) と Microsoft.Extensions.Hosting を含める
  3. ログ構成: stdio トランスポートへの干渉を避けるため、すべてのログを stderr に出力するよう構成する
  4. サーバー設定: 適切な DI 構成を備えた Host ビルダーパターンを使用する
  5. ツール: 適切な属性と説明を備えた、少なくとも 1 つの有用なツールを作成する
  6. エラー処理: 適切なエラー処理と検証を含める

実装の詳細

基本的なプロジェクトのセットアップ
  • .NET 8.0 以降を使用する
  • コンソールアプリケーションを作成する
  • 必要な NuGet パッケージを --prerelease フラグ付きで追加する
  • ログを stderr に出力するよう構成する
サーバー構成
  • DI とライフサイクル管理のために Host.CreateApplicationBuilder を使用する
  • stdio トランスポートで AddMcpServer() を構成する
  • ツールの自動検出のために WithToolsFromAssembly() を使用する
  • サーバーが RunAsync() で実行されることを確認する
ツールの実装
  • ツールクラスに [McpServerToolType] 属性を使用する
  • ツールメソッドに [McpServerTool] 属性を使用する
  • ツールとパラメーターに [Description] 属性を追加する
  • 必要に応じて非同期操作をサポートする
  • 適切なパラメーター検証を含める
コード品質
  • C# の命名規則に従う
  • XML ドキュメントコメントを含める
  • null 許容参照型を使用する
  • McpProtocolException を用いた適切なエラー処理を実装する
  • デバッグのために構造化ログを使用する

検討すべきツールの種類の例

  • ファイル操作 (読み取り、書き込み、検索)
  • データ処理 (変換、検証、分析)
  • 外部 API 連携 (HTTP リクエスト)
  • システム操作 (コマンドの実行、ステータスの確認)
  • データベース操作 (クエリ、更新)

テストのガイダンス

  • サーバーの実行方法を説明する
  • MCP クライアントでテストするためのコマンド例を提供する
  • トラブルシューティングのヒントを含める

包括的なドキュメントとエラー処理を備えた、完全で本番環境に対応した MCP サーバーを生成してください。

コメント