Aspire MCP サーバー
Aspire MCP サーバーは、AI コーディングエージェントに実行中の Aspire アプリケーションへの直接ランタイムアクセスを提供します。Model Context Protocol (MCP) を通じて、エージェントはリソースの状態を照会し、ログを読み取り、分散トレースを検査し、コマンドを実行できます — ターミナル出力をコピー&ペーストする必要はありません。
aspire agent init を実行して Install Aspire MCP server を選択すると、MCP サーバーは自動的に設定されます。
AI コーディングエージェント向けにプロジェクトをセットアップするには、AI コーディングエージェントを活用するを参照してください。
aspire agent init コマンドは、検出された AI 環境向けの MCP サーバー設定ファイルを作成します:
.vscode/mcp.json を作成または更新します:
{ "servers": { "aspire": { "type": "stdio", "command": "aspire", "args": [ "agent", "mcp" ] } }}.mcp.json を作成または更新します:
{ "mcpServers": { "aspire": { "command": "aspire", "args": [ "agent", "mcp" ] } }}~/.copilot/mcp-config.json を作成または更新します:
{ "mcpServers": { "aspire": { "type": "local", "command": "aspire", "args": [ "agent", "mcp" ] } }}opencode.jsonc を作成または更新します:
{ "mcp": { "aspire": { "type": "local", "command": [ "aspire", "agent", "mcp" ], "enabled": true } }}Aspire MCP サーバーは、AI エージェントに次のツールを提供します:
| ツール | 説明 |
|---|---|
list_resources | 状態、ヘルス状態、ソース、エンドポイント、コマンドを含むすべてのリソースを一覧表示します |
list_console_logs | リソースのコンソールログを一覧表示します |
list_structured_logs | 構造化ログを一覧表示します。リソース名でフィルタリングできます |
list_traces | 分散トレースを一覧表示します。リソース名でフィルタリングできます |
list_trace_structured_logs | 特定のトレースの構造化ログを一覧表示します |
execute_resource_command | リソースコマンド (start、stop、restart) を実行します |
list_apphosts | 検出された AppHost の接続とそのスコープを一覧表示します |
select_apphost | 複数の AppHost が実行中の場合に使用する AppHost を選択します |
list_integrations | 利用可能な Aspire ホスティング統合パッケージを一覧表示します |
get_integration_docs | 特定の統合パッケージのドキュメントを取得します |
list_docs | aspire.dev で利用可能なすべてのドキュメントページを一覧表示します |
search_docs | キーワード検索を使用して aspire.dev のドキュメントを検索します |
get_doc | スラッグでドキュメントページの全内容を取得します |
doctor | Aspire 環境の問題を診断し、セットアップを確認します |
refresh_tools | サーバーにツールリストを再送信するよう要求し、クライアントが再取得できるようにします |
MCP からリソースを除外する
Section titled “MCP からリソースを除外する”デフォルトでは、すべてのリソース、コンソールログ、テレメトリが MCP サーバーを通じてアクセス可能です。ExcludeFromMcp() でアノテーションを付けることで、特定のリソースとそれに関連するテレメトリを除外できます:
var builder = DistributedApplication.CreateBuilder(args);
var apiservice = builder.AddProject<Projects.AspireApp_ApiService>("apiservice") .ExcludeFromMcp();
builder.AddProject<Projects.AspireApp_Web>("webfrontend") .WithExternalHttpEndpoints() .WithReference(apiservice);
builder.Build().Run();import { function createBuilder(): IDistributedApplicationBuilder
Creates a new distributed application builder
createBuilder } from './.aspire/modules/aspire.mjs';
const const builder: IDistributedApplicationBuilder
builder = await function createBuilder(): IDistributedApplicationBuilder
Creates a new distributed application builder
createBuilder();
const const apiservice: IResource
apiservice = await const builder: IDistributedApplicationBuilder
builder .IDistributedApplicationBuilder.addProject(name: string, projectPath: string, options?: { launchProfileOrOptions?: ProjectResourceOptions;}): ProjectResource (+1 overload)
Adds a .NET project resource
addProject("apiservice", "./api/ApiService.csproj") .ProjectResource.excludeFromMcp(): IResource
Exclude the resource from MCP operations using the Aspire MCP server. The resource is excluded from results that return resources, console logs and telemetry.
excludeFromMcp();
await const builder: IDistributedApplicationBuilder
builder .IDistributedApplicationBuilder.addProject(name: string, projectPath: string, options?: { launchProfileOrOptions?: ProjectResourceOptions;}): ProjectResource (+1 overload)
Adds a .NET project resource
addProject("webfrontend", "./web/Web.csproj") .ProjectResource.withExternalHttpEndpoints(): ProjectResource
Marks existing http or https endpoints on a resource as external.
withExternalHttpEndpoints() .ProjectResource.withReference(source: EndpointReference | string | uri, options?: { connectionName?: string; optional?: boolean; name?: string;} | undefined): ProjectResource (+1 overload)
Adds a reference to another resource
withReference(const apiservice: IResource
apiservice);
await const builder: IDistributedApplicationBuilder
builder.IDistributedApplicationBuilder.build(): DistributedApplication
Builds the distributed application
build().DistributedApplication.run(cancellationToken?: cancellationToken): void
Runs the distributed application
run();セキュリティ
Section titled “セキュリティ”Aspire MCP サーバーは、ローカル使用向けに設計された開発時ツールです。
MCP サーバーは aspire agent mcp で起動すると STDIO トランスポートプロトコル を使用します:
- MCP サーバーは AI アシスタントによって起動された ローカル子プロセス として実行されます。
- 通信は 標準入出力 (STDIO) パイプ を介して行われます。
- オープンなネットワークポートはありません — サーバーはネットワークインターフェースをリッスンしません。
- 親プロセス (AI アシスタント) のみ が MCP サーバーと通信できます。
アクセス可能なデータ
Section titled “アクセス可能なデータ”MCP サーバーは次のデータへのアクセスを提供します:
- リソースメタデータ — 名前、種類、状態、ヘルス状態、エンドポイント、コマンド
- コンソールログ — 標準出力とエラーストリーム
- 構造化ログ — OpenTelemetry 経由のログエントリ
- 分散トレース — リソース間のリクエストフロー
- 統合カタログ — 利用可能なホスティング統合パッケージ
- 製品ドキュメント — LLMS.txt ベースの公式
aspire.devコンテンツ
MCP サーバーが公開しない情報:
- ソースコードまたはファイルシステムのコンテンツ
- 環境変数の値やシークレット
- ネットワークトラフィックや生のリクエスト/レスポンスペイロード
- Aspire AppHost プロセスを超えたホストマシンへのアクセス
STDIO トランスポート (デフォルト) では、追加の認証は不要です — 通信はローカルプロセスパイプに制限されます。
エンタープライズ向けの考慮事項
Section titled “エンタープライズ向けの考慮事項”Aspire MCP サーバーを評価するチーム向けの情報:
- 開発時のみ — 公開またはデプロイされたアプリケーションには含まれません
- 外部ネットワークアクセスなし — STDIO トランスポート使用時はネットワークリスナーなし
- データのローカル保持 — テレメトリは開発者のマシン上に残ります。AI アシスタントと共有されるデータはアシスタント独自のデータポリシーに準拠します
- きめ細かいアクセス制御 —
ExcludeFromMcp()を使用してセンシティブなリソースを制限 - 永続ストレージなし — すべてのデータはセッション期間中メモリ内に存在します
- オープン仕様 — Model Context Protocol specification を実装
デプロイに関する考慮事項
Section titled “デプロイに関する考慮事項”MCP サーバーは Aspire CLI ツールの一部であり、AppHost とは別に実行されます — デプロイからの明示的な除外は不要です。
AppHost に開発専用のリソースが含まれる場合は、ExecutionContext.IsRunMode を使用して本番環境から除外してください:
var builder = DistributedApplication.CreateBuilder(args);
var api = builder.AddProject<Projects.Api>("api");
if (builder.ExecutionContext.IsRunMode){ // ローカル開発時のみ使用可能 builder.AddContainer("dev-tool", "some-dev-image");}
builder.Build().Run();import { function createBuilder(): IDistributedApplicationBuilder
Creates a new distributed application builder
createBuilder } from './.aspire/modules/aspire.mjs';
const const builder: IDistributedApplicationBuilder
builder = await function createBuilder(): IDistributedApplicationBuilder
Creates a new distributed application builder
createBuilder();
const const api: ProjectResource
api = await const builder: IDistributedApplicationBuilder
builder .IDistributedApplicationBuilder.addProject(name: string, projectPath: string, options?: { launchProfileOrOptions?: ProjectResourceOptions;}): ProjectResource (+1 overload)
Adds a .NET project resource
addProject("api", "./api/Api.csproj");
if (await const builder: IDistributedApplicationBuilder
builder.IDistributedApplicationBuilder.executionContext: PropertyAccessor<DistributedApplicationExecutionContext>
Execution context for this invocation of the AppHost.
executionContext.DistributedApplicationExecutionContext.isRunMode: () => Promise<boolean>
Returns true if the current operation is running.
isRunMode()) { // ローカル開発時のみ使用可能 await const builder: IDistributedApplicationBuilder
builder.IDistributedApplicationBuilder.addContainer(name: string, image: AddContainerOptions): ContainerResource
Adds a container resource to the application.
addContainer("dev-tool", { AddContainerOptions.image: string
image: "some-dev-image", AddContainerOptions.tag: string
tag: "latest" });}
await const builder: IDistributedApplicationBuilder
builder.IDistributedApplicationBuilder.build(): DistributedApplication
Builds the distributed application
build().DistributedApplication.run(cancellationToken?: cancellationToken): void
Runs the distributed application
run();AI モデルは処理できるデータ量に制限があります。Aspire MCP サーバーはツールから返されるデータを制限する場合があります:
- 大きなデータフィールド (例: 長いスタックトレース) は切り捨てられる場合があります
- 大量のテレメトリコレクションは古いアイテムを省略して短縮される場合があります
トラブルシューティング
Section titled “トラブルシューティング”問題が発生した場合は、GitHub のオープンな MCP Issues を確認してください。
AppHost の検出
Section titled “AppHost の検出”MCP サーバーは作業ディレクトリのスコープ内で実行中の AppHost を自動的に検出します:
- AppHost の変更を継続的に監視します — 再起動は不要です
list_apphostsを使用して検出された AppHost を確認できますselect_apphostを使用して複数の実行中 AppHost を切り替えられます
エージェントが接続できない場合
Section titled “エージェントが接続できない場合”-
Aspire CLI がインストールされていることを確認します:
Aspire CLI aspire --version -
AppHost が実行中であることを確認します:
Aspire CLI aspire start -
MCP サーバーを直接テストします:
Aspire CLI aspire agent mcpエラーなしで起動した場合、問題は AI アシスタントの設定にあります。
-
設定を再生成します:
Aspire CLI aspire agent init
Claude Code の問題
Section titled “Claude Code の問題”- プロジェクトルートに
.mcp.jsonが存在することを確認してください —aspire agent initを実行して再生成できます - Windows では、
npxなどのコマンドにはcmd.exe /cプレフィックスが必要です - 古くなった MCP 接続を再確立するには Claude Code を再起動してください
- AI コーディングエージェントを活用する — プロジェクトを AI エージェント向けにセットアップします
- aspire agent mcp コマンド
- ダッシュボードのセキュリティに関する考慮事項