Amazingmcp — Mcp Server For .net / C# Codebases について
Amazingmcp — Mcp Server For .net / C# Codebasesは、Roslynで.NETおよびC#プロジェクトを解析し、AIエージェント向けにコード検索やアーキテクチャ分析のツールを提供します。メモリ内でのライブコンパイルと増分キャッシュに対応し、NuGetの型の解決やアセンブリ型の逆コンパイルも行えます。
主な機能
- 01型、メンバー、使用箇所の検索
- 02C#ファイルの構造と指定実装の読み取り
- 03Roslynセマンティックモデルによるコード解析
- 04プロジェクト構成と依存関係の確認
- 05NuGet型の検索と逆コンパイル
- 06ファイル変更後の増分再コンパイル
活用シーン
- 01コードベース内の型、メンバー、呼び出し箇所の特定
- 02大きなC#ファイルから必要な実装を読み取り
- 03名前空間グループとプロジェクト依存関係の把握
- 04NuGetアセンブリ型の逆コンパイル結果の確認
MCP 対応
コード検索、使用箇所の分析、ファイル読み取り、逆コンパイル、アーキテクチャ照会のツールをMCPクライアントに提供します。クライアントは、既定でhttp://localhost:7777で稼働するサービスにHTTP接続できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
http://localhost:7777claude mcp add --transport http AmazingMCP http://localhost:7777{"mcpServers":{"AmazingMCP":{"type":"http","url":"http://localhost:7777"}}}Cursor で開く{"servers":{"AmazingMCP":{"type":"http","url":"http://localhost:7777"}}}VS Code で開く{"mcpServers":{"AmazingMCP":{"type":"http","url":"http://localhost:7777"}}}{"mcpServers":{"AmazingMCP":{"serverUrl":"http://localhost:7777"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
AmazingMCP — .NET / C# コードベース向け MCP サーバー
Roslyn を使用して、AI エージェントに C# コードベースの詳細な理解をもたらす MCP サーバーです。ライブのインメモリコンパイルを通じて、型の検索、依存関係グラフ、使用状況の分析、アーキテクチャの概要を提供します。
インストール
dotnet tool install -g HoldMyCoolantMeatbag.AmazingMCP
.NET 10 SDK が必要です。
MCP ツール
| ツール | 説明 |
|---|---|
query_symbol | ソリューションと NuGet パッケージ全体から、型、メンバー(メソッド、プロパティ、フィールド)、拡張メソッド、定数、列挙値を検索します |
get_type_details | 型の詳細情報を取得します。プロパティ、メソッド、基底型、入れ子型を含みます(NuGet も対象) |
query_usages | ソリューション全体から型のすべての使用箇所を検索します。メソッド呼び出し、コンストラクター呼び出し、プロパティ/フィールドの読み取りと書き込み、ジェネリック引数と制約、戻り値の型、パラメーター型、継承、nameof、typeof、is/as が対象です。述語によるフィルタリングとスキャン範囲の制御に対応しています |
read_cs_file_digest | 大規模な .cs ファイル(数百行から数千行)向けの、トークン効率に優れたエントリーポイントです。型とメンバーを行番号付きで示す構造の概要を返し、実装は含みません。最初にこれを使い、必要なメンバーだけを read_large_cs_file で取得してください |
read_large_cs_file | 名前フィルターを使って、.cs ファイルから特定のメンバー実装を読み取ります。ファイル全体ではなく関連する箇所だけを読み込むため、read_cs_file_digest の後に使用してください |
decompile_type | NuGet アセンブリ内の任意の型を C# ソースに逆コンパイルします。外部ツールは不要で、ILSpy が組み込まれています |
code_lens | .cs ファイルの任意の行範囲について、完全修飾型を解決します。ローカル変数、フィールド/プロパティの型、メソッド呼び出しシグネチャ、オブジェクト生成、宣言をすべて Roslyn のセマンティックモデルから取得します |
get_project_design | 高レベルのアーキテクチャマップです。名前空間ごとの抽象化グループとグループ間の依存関係を示します |
get_project_design_details | 指定した名前空間の抽象化と実装の詳細を表示します(* ワイルドカードに対応) |
特長
- 1 つのサーバーで任意の数のソリューションに対応 — 一度起動すれば、呼び出しごとに任意のプロジェクトを指定できます。ソリューションを切り替える際に再起動は不要です。
- ライブのインメモリコンパイル — MSBuild Workspaces 経由で
.sln/.slnxを開き、すべてのプロジェクトをメモリ内でコンパイルします。すべてのツールはテキスト検索ではなく、実際の Roslyn セマンティックモデルを使って動作します。 - インクリメンタルキャッシュ — ワークスペースはファイルウォッチャーとともにキャッシュされます。
.csの変更ではインクリメンタルに再コンパイルされ、.csproj/.slnの変更ではキャッシュ全体が無効になります。ソリューションごとの最初の呼び出しには時間がかかりますが、以降の呼び出しは即時に完了します。 - NuGet 対応 — NuGet の型はソースコード内の型とともに完全に解決され、検索できます。
query_symbol、get_type_details、decompile_typeは、参照されている任意のパッケージで動作します。
使用方法
AmazingMCP <options>
# example:
AmazingMCP --urls=http://localhost:7777 --Symbol:QueryOutputLineLimit=50 --ReadCs:ReadOutputMaxLength=50000
# see all options:
AmazingMCP --help
サーバーはデフォルトで http://localhost:7777 で起動します。
コマンドラインオプション
| オプション | デフォルト | 説明 |
|---|---|---|
--urls | http://localhost:7777 | リッスンする URL |
--Symbol:QueryOutputLineLimit | 100 | query_symbol の最大出力行数 |
--ReadCs:ReadOutputMaxLength | 20000 | read_large_cs_file の最大出力文字数 |
--ProjectDesign:DetailsOutputMaxLength | 30000 | get_project_design_details の最大出力文字数 |
--ProjectDesign:DetailsXmlDocSummaryMaxLength | 2000 | get_project_design_details の XML ドキュメント概要の最大文字数 |
--QueryUsages:QueryMatchLimit | 200 | query_usages の使用箇所の最大一致数 |
--Diagnostics:IncludeExceptionDetails | false | ツールのエラーレスポンスに例外の詳細をすべて含めます(診断用) |
--HttpServerTransport:IdleTimeout | 7.00:00:00 | MCP セッションのアイドルタイムアウト — アクティビティがない状態でセッションを維持する期間(例:7 日間の場合は 7.00:00:00、2 時間の場合は 2:00:00) |
--DisabledTools | (なし) | 無効にするツール名のカンマ区切りリスト(例:code_lens,get_project_design) |
MCP クライアントの設定
MCP クライアントの設定(Claude Desktop、JetBrains AI、Kiro など)に追加します:
{
"mcpServers": {
"AmazingMCP": {
"type": "http",
"url": "http://localhost:7777"
}
}
}
次に、ターミナルでサーバーを手動で起動します:
AmazingMCP --urls=http://localhost:7777 <other options>
または、クライアントがサーバーを自動的に起動するよう、ランチャーエントリを追加します:
{
"mcpServers": {
"AmazingMCP": {
"type": "http",
"url": "http://localhost:7777"
},
"AmazingMCP Launcher": {
"command": "AmazingMCP",
"args": ["--urls=http://localhost:7777"]
}
}
}
ドキュメント
- 変更履歴
- QuerySymbol — 型およびメンバーの検索
- QueryUsages — 使用箇所の検索
- CodeLens — コード範囲の型解決
- FileStructure — トークン効率の高いファイル読み取り
- DecompileType — NuGet アセンブリの逆コンパイル
- ProjectDesign — アーキテクチャ概要ツール
- DependencyMap — 依存関係マップ
コントリビューション
PR と課題を歓迎します。大規模な変更を提出する前に、課題を作成してください。
git clone https://github.com/remleo/AmazingMCP
cd AmazingMCP
dotnet build
dotnet test
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。