🚀 .NET MCP Server
.NET MCP Serverは、AIアシスタントをModel Context Protocolを使用して.NET SDKに接続するブリッジです。これにより、AIアシスタントは自然言語で.NETコマンドを実行し、プロジェクトの作成、パッケージの管理、ビルドの実行などを行うことができます。

🚀 クイックスタート
クイックインストール
好みの環境でクリックしてインストールしてください。

⚠️ 重要提示
クイックインストールには.NET 10 SDKが必要です。
✨ 主な機能
🚀 開発の高速化
正確なdotnetコマンドや構文を覚える代わりに、自然言語で質問することができます。
- "Create a new web API project with Entity Framework"
- "Add the Serilog package and configure structured logging"
- "Update all my NuGet packages to the latest versions"
🧠 より賢いAIアシスタント
AIアシスタントは以下に直接アクセスできます。
- すべてのインストールされた.NETテンプレートとそのパラメータ
- NuGetパッケージの検索とメタデータ
- フレームワークのバージョン情報(LTSステータスを含む)
- ソリューションとプロジェクトの構造
🎯 なぜAIに直接dotnetを呼び出させないのか?
.NET MCP Serverは、生のCLI実行では提供できないコンテキストとインテリジェンスを提供します。
1. テンプレートの検出と検証
- MCPを使用する場合:AIは正確にどのテンプレートがインストールされているか(
console、webapi、blazorなど)とそのパラメータを知っています。
- MCPを使用しない場合:AIはテンプレート名とパラメータを推測し、しばしば間違った結果を返します。
2. フレームワークのインテリジェンス
- MCPを使用する場合:AIはどの.NETバージョンがインストールされているか、どれがLTSかを知り、適切に推奨することができます。
- MCPを使用しない場合:AIは、あなたが
net10.0しかインストールしていない場合でもnet8.0を提案し、エラーを引き起こす可能性があります。
3. 豊富なツールの説明
- MCPを使用する場合:各ツールには詳細なパラメータの説明と制約があります(例:"configuration must be Debug or Release")。
- MCPを使用しない場合:AIは一般的な知識からコマンドを構築し、バージョン固有の変更を見落とす可能性があります。
4. パラメータ情報
- MCPを使用する場合:AIは
--use-controllers、--auth、フレームワークオプションなどのテンプレートパラメータを見ることができます。
- MCPを使用しない場合:AIは各テンプレートにどのオプションパラメータが存在するかを知りません。
5. パッケージ検索の統合
- MCPを使用する場合:AIはNuGet.orgを検索して正確なパッケージ名とバージョンを見つけることができます。
- MCPを使用しない場合:AIはパッケージ名を推測し、しばしば古いまたは間違ったものを提案します。
6. 構造化されたエラーハンドリング
- MCPを使用する場合:エラーは解析され、AIが理解できる構造化された形式で返されます。
- MCPを使用しない場合:AIは生のstderr出力を取得し、エラーを誤解する可能性があります。
7. MCPリソース
MCPリソースは、あなたの.NET環境に関する構造化されたメタデータへの読み取り専用アクセスを提供します。
- dotnet://sdk-info - インストールされた.NET SDKの情報(バージョンとパス)
- dotnet://runtime-info - インストールされた.NETランタイムの情報(バージョンとタイプ)
- dotnet://templates - インストールされた.NETテンプレートの完全なカタログとメタデータ
- dotnet://frameworks - サポートされている.NETフレームワーク(TFMs)の情報(LTSステータスを含む)
これにより、AIアシスタントは以下が可能になります。
- コマンドを実行せずに質問に答える("What .NET versions do I have installed?")
- あなたの実際の環境に基づいてコンテキストを考慮した提案を提供する
- CLI出力を解析するよりも効率的に構造化されたJSONデータにアクセスする
- 正確な推奨事項のために公式の.NETメタデータを参照する
✨ 一貫した結果
MCPサーバーは公式の.NET SDK APIとCLIコマンドを使用するため、以下を保証します。
- テンプレートエンジンからの正確なテンプレート情報
- 信頼性の高いコマンド実行
- 適切なエラーハンドリングと検証
🔒 設計上の安全性
- あなたのマシン上でローカルに実行されます。
- 外部サーバーにデータは送信されません。
- 実行するコマンドをあなたが制御します。
- 標準の.NETセキュリティモデルが適用されます。
- 自動的なシークレットの削除により、CLI出力の機密情報を保護します。
- 接続文字列、パスワード、APIキーは自動的に削除されます。
- 最適化された正規表現を使用して実装され、パフォーマンスのオーバーヘッドは1%未満です。
- 将来的な統合のためにMicrosoft.Extensions.Compliance.Redactionを参照しています。
- 高度なデバッグのために
unsafeOutput=trueでオプトアウトすることができます。
- パターンにはデータベース資格情報、クラウドプロバイダーのキー、トークン、証明書などが含まれます。
- パフォーマンスへの影響は最小限で、10,000行の場合でも500ms以内に完了することがテストされています。
📦 インストール
必要条件
- クイックインストールの場合:.NET 10 SDK
- 手動インストールの場合:.NET 10 SDK
- Visual Studio Code、Visual Studio 2022 (v17.13+)、またはClaude Desktop
オプション1: クイックインストール(推奨)
このページの上部にあるインストールバッジを使用して、環境にMCPサーバーを自動的に構成します。初回使用時にサーバーはNuGet.orgからダウンロードされます。
オプション2: 手動構成
特定の開発環境に合わせて以下の手順に従ってください。
Visual Studio Code
クイックインストールを使用する場合(推奨 - .NET 10が必要)
- このページの上部にあるVS Code Install badgeをクリックします。
- またはコマンドパレットから手動で追加します。
Ctrl+Shift+P(macOSではCmd+Shift+P)を押します。
- "GitHub Copilot: Add MCP Server" を実行します。
- 以下を入力します。
- Name:
dotnet
- Type:
stdio
- Command:
dnx
- Arguments:
Community.Mcp.DotNet@0.1.0-* --yes
手動構成の場合(ソースビルドまたはカスタムセットアップ用)
VS Codeの設定を編集します(Ctrl+,またはCmd+,、"mcp"を検索)。
{
"github.copilot.chat.mcp.servers": {
"dotnet": {
"type": "stdio",
"command": "dotnet",
"args": ["run", "--project", "/path/to/dotnet-mcp/DotNetMcp/DotNetMcp.csproj"]
}
}
}
📖 Full VS Code MCP documentation
Visual Studio 2022
必要条件: Visual Studio 2022バージョン17.13以降
クイックインストールを使用する場合(推奨 - .NET 10が必要)
- このページの上部にあるVisual Studio Install badgeをクリックします。
- またはオプションから手動で追加します。
- Tools > Options > GitHub Copilot > MCP Serversに移動します。
- Addをクリックします。
- 以下を入力します。
- Name:
dotnet
- Type:
stdio
- Command:
dnx
- Arguments:
Community.Mcp.DotNet@0.1.0-* --yes
手動構成の場合(ソースビルドまたはカスタムセットアップ用)
- Tools > Options > GitHub Copilot > MCP Serversに移動します。
- Addをクリックします。
- 以下を入力します。
- Name:
dotnet
- Type:
stdio
- Command:
dotnet
- Arguments:
run --project C:\path\to\dotnet-mcp\DotNetMcp\DotNetMcp.csproj
📖 Full Visual Studio MCP documentation
Claude Desktop
DNXを使用する場合(推奨 - .NET 10が必要)
macOS: ~/Library/Application Support/Claude/claude_desktop_config.jsonを編集します。
{
"mcpServers": {
"dotnet": {
"command": "dnx",
"args": ["Community.Mcp.DotNet@1.0.0", "--yes"]
}
}
}
Windows: %APPDATA%\Claude\claude_desktop_config.jsonを編集します。
{
"mcpServers": {
"dotnet": {
"command": "dnx",
"args": ["Community.Mcp.DotNet@1.0.0", "--yes"]
}
}
}
手動構成の場合(ソースビルドまたはカスタムセットアップ用)
macOS:
{
"mcpServers": {
"dotnet": {
"command": "dotnet",
"args": ["run", "--project", "/path/to/dotnet-mcp/DotNetMcp/DotNetMcp.csproj"]
}
}
}
Windows:
{
"mcpServers": {
"dotnet": {
"command": "dotnet",
"args": ["run", "--project", "C:\\path\\to\\dotnet-mcp\\DotNetMcp\\DotNetMcp.csproj"]
}
}
}
💻 使用例
基本的な使用法
構成後、AIアシスタントと自然言語でやり取りできます。
クイックスタート - 単一プロジェクト
User: "Create a new web API project called WeatherService"
AI: I'll create a new web API project for you...
dotnet new webapi -n WeatherService
The project has been created successfully in the WeatherService directory.
複雑なアプリケーション - .NET Aspireによるマイクロサービス
User: "Create a server-side web app and minimal API, orchestrated by .NET Aspire, with unit tests for the API using xunit. Use slnx format for the solution."
AI: I'll create a complete microservices solution with .NET Aspire orchestration...
dotnet new sln -n MyMicroservices --use-slnx
dotnet new aspire-apphost -n MyMicroservices.AppHost
dotnet new webapp -n MyMicroservices.Web
dotnet new webapi -n MyMicroservices.Api --use-minimal-apis
dotnet new xunit -n MyMicroservices.Api.Tests
dotnet sln add MyMicroservices.AppHost/MyMicroservices.AppHost.csproj
dotnet sln add MyMicroservices.Web/MyMicroservices.Web.csproj
dotnet sln add MyMicroservices.Api/MyMicroservices.Api.csproj
dotnet sln add MyMicroservices.Api.Tests/MyMicroservices.Api.Tests.csproj
dotnet add MyMicroservices.Api.Tests/MyMicroservices.Api.Tests.csproj reference MyMicroservices.Api/MyMicroservices.Api.csproj
Solution created with 4 projects: AppHost for orchestration, Web app, API, and unit tests. Ready to run with dotnet run --project MyMicroservices.AppHost.
エンティティフレームワークを使用したデータベース駆動型アプリケーション
User: "Set up Entity Framework Core with SQL Server for my API and create the initial database migration"
AI: I'll add EF Core packages, install the dotnet-ef tool, and create your initial migration...
dotnet add package Microsoft.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Design
dotnet tool install dotnet-ef --global
dotnet ef migrations add InitialCreate
dotnet ef database update
Entity Framework Core with SQL Server provider added. Initial migration created and applied. Database is ready for use.
User: "I added a Product entity to my DbContext. Update the database schema"
AI: I'll create a migration for your Product entity and apply it...
dotnet ef migrations add AddProductEntity
dotnet ef migrations list
dotnet ef database update
Migration created for Product entity (new table with Id, Name, Price, CreatedDate columns). Database updated successfully.
User: "Generate SQL script for the last migration so I can review it before production deployment"
AI: I'll generate an idempotent SQL script from your migration...
dotnet ef migrations script --idempotent --output deploy.sql
SQL script generated to deploy.sql. This script can be safely run multiple times and will only apply changes if needed.
データベースファースト開発
User: "I have an existing SQL Server database. Reverse engineer it to Entity Framework classes"
AI: I'll scaffold your database into Entity Framework Core entities...
dotnet ef dbcontext scaffold "Server=localhost;Database=MyExistingDb;Trusted_Connection=true;" Microsoft.EntityFrameworkCore.SqlServer --output-dir Models
dotnet ef dbcontext list
dotnet ef dbcontext info
Database scaffolded successfully. Generated MyExistingDbContext.cs and 15 entity classes (Customer, Order, Product, etc.) in the Models folder.
マルチターゲットテスト戦略
User: "Add integration tests using NUnit that target both .NET 8 and .NET 10, and configure them to run with code coverage"
AI: I'll set up multi-targeted integration tests with coverage...
dotnet new nunit -n MyMicroservices.IntegrationTests
dotnet add MyMicroservices.IntegrationTests package Microsoft.AspNetCore.Mvc.Testing
dotnet add MyMicroservices.IntegrationTests package Microsoft.Testing.Extensions.CodeCoverage
dotnet test -- --coverage --coverage-output-format cobertura
Integration test project created with multi-targeting. Tests will run on both .NET 8 and .NET 10 with code coverage enabled.
探索と発見
User: "What templates are available for creating cloud-native applications?"
AI: Let me search for cloud-native related templates...
dotnet new search aspire
dotnet new search dapr
dotnet new search azure
Found templates:
aspire - .NET Aspire Application
aspire-apphost - .NET Aspire App Host
aspire-servicedefaults - .NET Aspire Service Defaults
dapr - Dapr application templates
- Various Azure Functions and Container Apps templates
Each template is designed for cloud-native microservices and distributed applications.
現代化ワークフロー
User: "Update all packages to latest versions, format all code to match our editorconfig rules, then build and run tests"
AI: I'll update packages, format code, build, and test...
dotnet package update
dotnet format
dotnet clean
dotnet build -c Release
dotnet test --verbosity detailed
All packages updated to latest versions. Code formatted consistently across solution. Build succeeded with 0 warnings. All 156 tests passed.
HTTPS開発設定
User: "I'm getting HTTPS certificate errors when running my web app"
AI: Let me check your HTTPS development certificate...
dotnet dev-certs https --check --trust
Your certificate isn't trusted. Let me fix that...
dotnet dev-certs https --trust
Certificate is now trusted. Try running your app again. If you're using Docker, you can export the certificate:
dotnet dev-certs https --export-path ./certs/aspnetapp.pfx --password "SecurePassword123!"
Certificate exported to ./certs/aspnetapp.pfx. You can now mount it in your Docker container.
ユーザーシークレットを使用したセキュアな構成
User: "Set up user secrets for my API project with a database connection string"
AI: I'll initialize user secrets for your project...
dotnet user-secrets init --project MyApi/MyApi.csproj
Now I'll add your database connection string securely...
dotnet user-secrets set "ConnectionStrings:DefaultConnection" "Server=localhost;Database=MyDb;User=dev;Password=secret123"
Secret stored! You can also add API keys:
dotnet user-secrets set "Azure:OpenAI:ApiKey" "sk-..."
dotnet user-secrets set "SendGrid:ApiKey" "SG...."
Let me show you what's configured:
dotnet user-secrets list
Output:
ConnectionStrings:DefaultConnection = Server=localhost;Database=MyDb;User=dev;Password=secret123
Azure:OpenAI:ApiKey = sk-...
SendGrid:ApiKey = SG....
These secrets are stored in your user profile (not in the project) and won't be committed to Git. In your code, access them like:
var connectionString = builder.Configuration["ConnectionStrings:DefaultConnection"];
var apiKey = builder.Configuration["Azure:OpenAI:ApiKey"];
Note: User secrets are for development only. Use Azure Key Vault or environment variables for production.
📚 ドキュメント
- 📖 SDK Integration Details - Technical architecture and SDK usage
- 📖 Advanced Topics - Performance, logging, and security details
- 📖 Concurrency Safety - Parallel execution guidance for AI orchestrators
- 📖 Testing - How to run tests (including opt-in interactive tests)
- 📖 Model Context Protocol - Official MCP specification
- 📖 MCP C# SDK Docs - SDK documentation
🔧 技術詳細
利用可能なツール
サーバーは、MCPツールとリソースを通じて包括的な.NET開発機能を提供します。
MCPリソース(読み取り専用コンテキスト)
サーバーは、.NET環境のメタデータに効率的にアクセスするための読み取り専用リソースを公開します。
- dotnet://sdk-info - インストールされた.NET SDKの情報(バージョンとパス)
- dotnet://runtime-info - インストールされた.NETランタイムの情報(バージョンとタイプ)
- dotnet://templates - インストールされた.NETテンプレートの完全なカタログとメタデータ
- dotnet://frameworks - サポートされている.NETフレームワーク(TFMs)の情報(LTSステータスを含む)
リソースは構造化されたJSONデータを提供し、頻繁にアクセスする読み取り専用情報に対してツール呼び出しよりも効率的です。
ツール - テンプレートとフレームワーク
- dotnet_template_list - すべてのインストールされた.NETテンプレートをメタデータとともにリストする
- dotnet_template_search - 名前または説明でテンプレートを検索する
- dotnet_template_info - 詳細なテンプレート情報とパラメータを取得する
- dotnet_template_clear_cache - テンプレートキャッシュをクリアしてディスクからの再読み込みを強制する
- dotnet_framework_info - .NETフレームワークのバージョン情報とLTSステータスを取得する
ツール - プロジェクト管理
- dotnet_project_new - テンプレートから新しい.NETプロジェクトを作成する
- dotnet_project_restore - プロジェクトの依存関係を復元する
- dotnet_project_build - .NETプロジェクトをビルドする
- dotnet_project_run - .NETプロジェクトをビルドして実行する
- dotnet_project_test - 単体テストを実行する
- dotnet_project_publish - プロジェクトをデプロイ用に公開する
- dotnet_project_clean - ビルド出力をクリーンアップする
- dotnet_pack_create - プロジェクトからNuGetパッケージを作成する
- dotnet_watch_run - ファイル監視とホットリロードで実行する
- dotnet_watch_test - ファイル変更時に自動的に再起動してテストを実行する
- dotnet_watch_build - ファイル変更時に自動的に再ビルドする
ツール - パッケージ管理
- dotnet_package_add - NuGetパッケージの参照を追加する
- dotnet_package_remove - NuGetパッケージの参照を削除する
- dotnet_package_search - nuget.orgでNuGetパッケージを検索する
- dotnet_package_update - NuGetパッケージを新しいバージョンに更新する
- dotnet_package_list - パッケージ参照をリストする(古い/非推奨のものを含む)
- dotnet_reference_add - プロジェクト間の参照を追加する
- dotnet_reference_remove - プロジェクト間の参照を削除する
- dotnet_reference_list - プロジェクト参照をリストする
ツール - ツール管理
- dotnet_tool_install - .NETツールをグローバルまたはローカルのツールマニフェストにインストールする
- dotnet_tool_list - インストールされた.NETツールをリストする(グローバルまたはマニフェストからのローカル)
- dotnet_tool_update - .NETツールを新しいバージョンに更新する
- dotnet_tool_uninstall - .NETツールをアンインストールする
- dotnet_tool_restore - ツールマニフェスト(.config/dotnet-tools.json)からツールを復元する
- dotnet_tool_manifest_create - .NETツールマニフェストファイル(.config/dotnet-tools.json)を作成する
- dotnet_tool_search - NuGet.orgで.NETツールを検索する
- dotnet_tool_run - コマンド名で.NETツールを実行する
ツール - Entity Framework Core
Entity Framework Coreツールは、dotnet-efツールのインストール(dotnet tool install dotnet-ef --global)とプロジェクト内のMicrosoft.EntityFrameworkCore.Designパッケージが必要です。
Migration Management:
- dotnet_ef_migrations_add - データベーススキーマの変更のための新しいマイグレーションを作成する
- dotnet_ef_migrations_list - すべてのマイグレーション(適用済みと保留中)をリストする
- dotnet_ef_migrations_remove - 最後の未適用のマイグレーションを削除する
- dotnet_ef_migrations_script - マイグレーションからデプロイ用のSQLスクリプトを生成する
Database Management:
- dotnet_ef_database_update - マイグレーションを適用してデータベーススキーマを更新する
- dotnet_ef_database_drop - データベースを削除する(開発用のみ、強制フラグが必要)
DbContext Tools:
- dotnet_ef_dbcontext_list - プロジェクト内のすべてのDbContextクラスをリストする
- dotnet_ef_dbcontext_info - DbContextの情報(接続文字列、プロバイダー)を取得する
- dotnet_ef_dbcontext_scaffold - データベースをエンティティクラスに逆エンジニアリングする(データベースファースト)
ツール - ソリューション管理
- dotnet_solution_create - 新しいソリューションファイル(.slnまたは.slnx形式)を作成する
- dotnet_solution_add - ソリューションにプロジェクトを追加する
- dotnet_solution_list - ソリューション内のプロジェクトをリストする
- dotnet_solution_remove - ソリューションからプロジェクトを削除する
ツール - コード品質
- dotnet_format - .editorconfigとスタイルルールに従ってコードを整形する
ツール - セキュリティと証明書
- dotnet_certificate_trust - HTTPS開発証明書を信頼する(管理者権限が必要な場合があります)
- dotnet_certificate_check - HTTPS証明書が存在し、信頼されているかを確認する
- dotnet_certificate_clean - すべてのHTTPS開発証明書を削除する
- dotnet_certificate_export - HTTPS証明書をファイルにエクスポートする(PFXとPEM形式をサポート)
- dotnet_secrets_init - プロジェクトのユーザーシークレットを初期化する(UserSecretsIdを作成)
- dotnet_secrets_set - ユーザーシークレットの値を設定する(機密構成をプロジェクト外に保存)
- dotnet_secrets_list - プロジェクトのすべてのユーザーシークレットをリストする
- dotnet_secrets_remove - 特定のユーザーシークレットをキーで削除する
- dotnet_secrets_clear - プロジェクトのすべてのユーザーシークレットをクリアする
ツール - ユーティリティ
- dotnet_nuget_locals - NuGetのローカルキャッシュを管理する(リスト、クリア)
ツール - SDK情報
- dotnet_sdk_version - .NET SDKのバージョンを取得する
- dotnet_sdk_info - 詳細なSDKとランタイム情報を取得する
- dotnet_sdk_list - インストールされたSDKをリストする
- dotnet_runtime_list - インストールされたランタイムをリストする
ツール - ヘルプ
- dotnet_help - 任意のdotnetコマンドのヘルプを取得する
- dotnet_server_capabilities - MCPサーバーの機能と同時実行ガイダンスを取得する
ソースからのビルド
開発またはコントリビューションのために:
git clone https://github.com/jongalloway/dotnet-mcp.git
cd dotnet-mcp/DotNetMcp
dotnet build
サーバーを実行する:
dotnet run
サーバーはstdioトランスポートを介して通信し、MCPクライアントによって呼び出されるように設計されています。
プロジェクト構造
dotnet-mcp/
├── DotNetMcp/ # Main MCP server project
│ ├── DotNetMcp.csproj # Project file with NuGet dependencies
│ ├── Program.cs # MCP server setup and hosting
│ ├── DotNetCliTools.cs # MCP tool implementations (44 tools)
│ ├── DotNetResources.cs # MCP resource implementations (SDK, runtime, templates, frameworks)
│ ├── DotNetCommandExecutor.cs # Command execution helper with logging
│ ├── DotNetSdkConstants.cs # Strongly-typed SDK constants (TFMs, configurations, runtimes)
│ ├── TemplateEngineHelper.cs # Template Engine integration with caching
│ └── FrameworkHelper.cs # Framework validation and metadata helpers
├── DotNetMcp.Tests/ # Unit test project
│ ├── DotNetMcp.Tests.csproj # Test project file (xUnit, FluentAssertions, Moq)
│ ├── FrameworkHelperTests.cs # Tests for framework validation and metadata
│ └── DotNetSdkConstantsTests.cs # Tests for SDK constants validation
├── doc/
│ ├── sdk-integration.md # SDK integration architecture documentation
│ ├── advanced-topics.md # Performance, logging, and security details
│ ├── concurrency.md # Concurrency safety and orchestration guidance
│ └── testing.md # How to run tests (including opt-in interactive tests)
├── .github/
│ ├── copilot-instructions.md # Development guidelines for GitHub Copilot
│ ├── dependabot.yml # Automated dependency updates
│ └── workflows/
│ └── build.yml # CI/CD build and test workflow
├── DotNetMcp.slnx # Solution file (XML-based .slnx format)
├── LICENSE # MIT License
└── README.md # This file
技術スタック
- Protocol: Model Context Protocol (MCP)
- SDK: MCP SDK for .NET v0.5.0-preview.1
- Runtime: .NET 10.0 (target framework)
- Transport: stdio (standard input/output)
- NuGet Packages:
Microsoft.TemplateEngine.Abstractions & Edge - Template metadata
Microsoft.Build.Utilities.Core & Microsoft.Build - Project validation
相互運用性
.NET MCP ServerはModel Context Protocol仕様に従い、ツールの検出とAIオーケストレーションのための豊富なメタデータを提供します。
サーバーメタデータ
サーバーには包括的なserver.json構成ファイル(.mcp/server.json)が含まれており、以下を提供します。
-
環境変数: MCP使用のために最適化された.NET CLI設定
DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 - 初回セットアップをスキップする
DOTNET_NOLOGO=1 - 起動メッセージを抑制する
-
パッケージ情報: NuGetパッケージの詳細を提供し、dnxを介して簡単にインストールできます(.NET 10が必要)
- パッケージ:
Community.Mcp.DotNet
- レジストリ: NuGet.org
- トランスポート: stdio
-
ツール記述子: 包括的なツールメタデータを含みます。
dotnet_接頭辞を使用したツールIDを使用して名前空間の衝突を回避します。
- カテゴリタグ(テンプレート、プロジェクト、パッケージ、ソリューションなど)
- セマンティック検索のための検出タグ(例:"build", "compile", "test")
- 最も頻繁に使用される上位10のツールをマークする
commonlyUsedフラグ
-
リソース記述子: 効率的なメタデータアクセスのための読み取り専用リソース
dotnet://sdk-info - SDKバージョンとパス情報
dotnet://runtime-info - ランタイムのインストール詳細
dotnet://templates - パラメータ付きのテンプレートカタログ
dotnet://frameworks - LTSステータス付きのフレームワークバージョン
ツールの名前空間
すべてのツールは、外部IDでdotnet_接頭辞を使用して、他のMCPサーバーとの名前の衝突を防ぎます。これはMCPサーバーの相互運用性のベストプラクティスに従っています。
例:
dotnet_project_new - 新しいプロジェクトを作成する
dotnet_project_build - プロジェクトをビルドする
dotnet_package_add - NuGetパッケージを追加する
dotnet_solution_create - ソリューションファイルを作成する
検出タグ
最も頻繁に使用される上位10のツールには、発見性を向上させるためのセマンティックタグが含まれています。
- dotnet_template_list -
["template", "list", "discovery", "project-creation"]
- dotnet_project_new -
["project", "create", "new", "template", "initialization"]
- dotnet_project_restore -
["project", "restore", "dependencies", "packages", "setup"]
- dotnet_project_build -
["project", "build", "compile", "compilation"]
- dotnet_project_run -
["project", "run", "execute", "launch", "development"]
- dotnet_project_test -
["project", "test", "testing", "unit-test", "validation"]
- dotnet_package_add -
["package", "add", "nuget", "dependency", "install"]
- dotnet_package_search -
["package", "search", "nuget", "discovery", "find"]
- dotnet_solution_create -
["solution", "create", "new", "organization", "multi-project"]
- dotnet_tool_install -
["tool", "install", "global", "local", "cli"]
これらのタグにより、AIアシスタントは以下が可能になります。
- セマンティックな意図に基づいて関連するツールを見つける
- ワークフローの提案のために関連する操作をグループ化する
- 推奨事項で頻繁に使用されるツールを優先する
メタデータアクセス
AIオーケストレータは以下を通じてサーバーメタデータにアクセスできます。
- MCPプロトコル: MCP SDKを介した標準的なツール/リソースのリスト
- server.json: 登録と検出のための静的なメタデータファイル
- ツール属性: コード内の
McpMeta属性を介したランタイムメタデータ
詳細な統合例については、MCP仕様とSDK統合ドキュメントを参照してください。
🤝 コントリビューション
コントリビューションは大歓迎です!これはコミュニティによってメンテナンスされているプロジェクトです。
コントリビューションの方法:
- 🐛 GitHub Issuesを通じてバグを報告したり、機能をリクエストしたりしてください。
- 💡 新しいツールや改善点に関するプルリクエストを送信してください。
- 📝 ドキュメントを改善してください。
- ⭐ サポートを示すためにリポジトリにスターを付けてください。
開発環境のセットアップ:
- リポジトリをフォークします。
- あなたのフォークをクローンします。
- 機能ブランチを作成します。
- 変更を加えます。
- 十分にテストします。
- プルリクエストを送信します。
開発ガイドラインについては、.github/copilot-instructions.mdを参照してください。
🛠️ トラブルシューティング
"dnx not found"
- 原因: .NET 10 SDKがインストールされていない
- 解決策: .NET 10 SDKをインストールするか、
dotnet runを使用して手動で構成します。
"No templates found"
- 原因: .NET SDKテンプレートがインストールされていない
- 解決策:
dotnet new --installを実行してデフォルトのテンプレートをインストールします。
"Server not responding"
- 原因: サーバーがクラッシュしたか、起動に失敗した
- 解決策: MCPクライアントのログを確認し、.NET SDKがPATHに含まれていることを確認します。
ヘルプが必要な場合
関連するMicrosoft MCP
この.NET MCPサーバーは、.NET SDKの操作(ビルド、実行、テスト、テンプレート、SDK管理)に焦点を当てています。特定のシナリオについては、これらの補完的な公式Microsoft MCPサーバーを検討してください。
これらのMCPは、.NET MCPと一緒に動作して、.NET開発ライフサイクルの包括的なカバレッジを提供します。
| 機能 |
.NET MCP |
NuGet MCP |
Aspire MCP |
| 主な焦点 |
.NET SDKの操作 |
パッケージのメタデータ/検出 |
ランタイム監視 |
| 範囲 |
CLIコマンド(ビルド、実行、テスト) |
NuGetの検索と自動化 |
Aspireアプリのテレメトリ |
| 段階 |
開発時 |
開発/検出時 |
ランタイム/本番環境 |
| 例の操作 |
dotnet build, dotnet new |
パッケージの検索、README |
ログの表示、トレーシング |
📄 ライセンス
MITライセンス - 詳細についてはLICENSEファイルを参照してください。