Skip to content

mcp serve help output does not reveal the protocol command #28

Description

@autocarl

Summary

When UseMcpServer() registers the hidden MCP protocol passthrough command, the command works but exploratory help output makes it look unavailable.

Reproduction

Using a minimal app with:

var app = ReplApp.Create().UseDefaultInteractive();
app.UseMcpServer();
app.Map("ops status", () => new { Healthy = true }).ReadOnly();
return app.Run(args);

Run:

dotnet run -- mcp --help
dotnet run -- mcp serve --help

Observed output:

Commands:
  (none)

But the command itself works:

dotnet run -- mcp serve

and MCP Inspector can connect when invoked through a wrapper script.

Expected behavior

One of:

  • mcp --help / mcp serve --help should reveal the protocol passthrough command in a safe way; or
  • docs should explicitly state that mcp serve is intentionally hidden/protocol-passthrough and may not appear in help output.

Why this matters

Coding agents and new users often explore by running --help. If help says (none), they may incorrectly conclude that MCP was not registered.

Environment observed

  • Repl.Mcp: 0.10.0 and 0.11.0-dev.56
  • .NET SDK: 10.0.301
  • OS: Ubuntu 24.04 linux-x64

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions