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

Labels

No labels
No labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions