Skip to content

Add built-in MCP server (preview) to dashboard with streaming HTTP and minimal tool surface #10957

@davidfowl

Description

@davidfowl

Summary

Introduce a minimal, in-process MCP (Model Context Protocol) server to Aspire.Hosting (AppHost) as a preview feature. This server will enable LLM-based tools to connect and query basic information about the running distributed application via streaming HTTP. The goal is to establish the core transport, lifecycle, and authentication model with a very small set of read-only tools to validate UX and gather feedback for future iterations.

Key Scenarios

  • Troubleshoot unhealthy services: Query health and stream logs for a resource.
  • Understand app topology: List resources with type and status, and primary endpoints (e.g., dashboard, Swagger).
  • Get app context: Minimal server/app info (name, environment, versions, dashboard URL).
  • Execute resource commands

Details

  • Built-in: Runs in-process in AppHost for direct access to app state.
  • Configurable: No new public API; enabled/disabled via configuration (single global toggle on DistributedApplicationOptions).
  • Transport: Streaming HTTP
  • Authentication: Required (loopback-only, bearer token, details TBD for preview).
  • CLI: Prints the MCP URL on startup (like Dashboard).
  • Discovery file: Optional minimal JSON file with MCP URL and token for tools (implementation detail; can be discussed).
  • Initial tools:
    • server.info - minimal metadata and dashboard URL
    • resources.list - resources state
    • logs.stream - console log stream
    • commands.list - commands that can be executed

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions