Watch Aspire live streamsドキュメント試す

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 を作成または更新します:

.vscode/mcp.json
{
"servers": {
"aspire": {
"type": "stdio",
"command": "aspire",
"args": [
"agent",
"mcp"
]
}
}
}

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_docsaspire.dev で利用可能なすべてのドキュメントページを一覧表示します
search_docsキーワード検索を使用して aspire.dev のドキュメントを検索します
get_docスラッグでドキュメントページの全内容を取得します
doctorAspire 環境の問題を診断し、セットアップを確認します
refresh_toolsサーバーにツールリストを再送信するよう要求し、クライアントが再取得できるようにします

デフォルトでは、すべてのリソース、コンソールログ、テレメトリが MCP サーバーを通じてアクセス可能です。ExcludeFromMcp() でアノテーションを付けることで、特定のリソースとそれに関連するテレメトリを除外できます:

apphost.mts
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
();

Aspire MCP サーバーは、ローカル使用向けに設計された開発時ツールです。

MCP サーバーは aspire agent mcp で起動すると STDIO トランスポートプロトコル を使用します:

  • MCP サーバーは AI アシスタントによって起動された ローカル子プロセス として実行されます。
  • 通信は 標準入出力 (STDIO) パイプ を介して行われます。
  • オープンなネットワークポートはありません — サーバーはネットワークインターフェースをリッスンしません。
  • 親プロセス (AI アシスタント) のみ が MCP サーバーと通信できます。

MCP サーバーは次のデータへのアクセスを提供します:

  • リソースメタデータ — 名前、種類、状態、ヘルス状態、エンドポイント、コマンド
  • コンソールログ — 標準出力とエラーストリーム
  • 構造化ログ — OpenTelemetry 経由のログエントリ
  • 分散トレース — リソース間のリクエストフロー
  • 統合カタログ — 利用可能なホスティング統合パッケージ
  • 製品ドキュメント — LLMS.txt ベースの公式 aspire.dev コンテンツ

MCP サーバーが公開しない情報:

  • ソースコードまたはファイルシステムのコンテンツ
  • 環境変数の値やシークレット
  • ネットワークトラフィックや生のリクエスト/レスポンスペイロード
  • Aspire AppHost プロセスを超えたホストマシンへのアクセス

STDIO トランスポート (デフォルト) では、追加の認証は不要です — 通信はローカルプロセスパイプに制限されます。

エンタープライズ向けの考慮事項

Section titled “エンタープライズ向けの考慮事項”

Aspire MCP サーバーを評価するチーム向けの情報:

  • 開発時のみ — 公開またはデプロイされたアプリケーションには含まれません
  • 外部ネットワークアクセスなし — STDIO トランスポート使用時はネットワークリスナーなし
  • データのローカル保持 — テレメトリは開発者のマシン上に残ります。AI アシスタントと共有されるデータはアシスタント独自のデータポリシーに準拠します
  • きめ細かいアクセス制御ExcludeFromMcp() を使用してセンシティブなリソースを制限
  • 永続ストレージなし — すべてのデータはセッション期間中メモリ内に存在します
  • オープン仕様Model Context Protocol specification を実装

MCP サーバーは Aspire CLI ツールの一部であり、AppHost とは別に実行されます — デプロイからの明示的な除外は不要です。

AppHost に開発専用のリソースが含まれる場合は、ExecutionContext.IsRunMode を使用して本番環境から除外してください:

apphost.mts
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 | undefined
image
: "some-dev-image",
AddContainerOptions.tag?: string | undefined
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 サーバーはツールから返されるデータを制限する場合があります:

  • 大きなデータフィールド (例: 長いスタックトレース) は切り捨てられる場合があります
  • 大量のテレメトリコレクションは古いアイテムを省略して短縮される場合があります

問題が発生した場合は、GitHub のオープンな MCP Issues を確認してください。

MCP サーバーは作業ディレクトリのスコープ内で実行中の AppHost を自動的に検出します:

  • AppHost の変更を継続的に監視します — 再起動は不要です
  • list_apphosts を使用して検出された AppHost を確認できます
  • select_apphost を使用して複数の実行中 AppHost を切り替えられます

エージェントが接続できない場合

Section titled “エージェントが接続できない場合”
  1. Aspire CLI がインストールされていることを確認します:

    Aspire CLI
    aspire --version
  2. AppHost が実行中であることを確認します:

    Aspire CLI
    aspire start
  3. MCP サーバーを直接テストします:

    Aspire CLI
    aspire agent mcp

    エラーなしで起動した場合、問題は AI アシスタントの設定にあります。

  4. 設定を再生成します:

    Aspire CLI
    aspire agent init
  • プロジェクトルートに .mcp.json が存在することを確認してください — aspire agent init を実行して再生成できます
  • Windows では、npx などのコマンドには cmd.exe /c プレフィックスが必要です
  • 古くなった MCP 接続を再確立するには Claude Code を再起動してください