Skip to content

feat(serve): stdio runner so a capability can be packaged and launched#3

Merged
thorwhalen merged 1 commit into
mainfrom
claude/stdio-serve
Jun 17, 2026
Merged

feat(serve): stdio runner so a capability can be packaged and launched#3
thorwhalen merged 1 commit into
mainfrom
claude/stdio-serve

Conversation

@thorwhalen

Copy link
Copy Markdown
Member

Summary

Adds py2mcp.serve — a stdio runner so a packaged integration (e.g. a Claude
Desktop .mcpb bundle) can launch an MCP server over stdio from a
{name, refs} config. The mk_mcp_* builders return a server object but leave
running it to the caller; this fills that gap.

What's included

  • py2mcp/serve.pyserve_stdio + resolve_server_config / load_server_config
  • python -m py2mcp (__main__.py) + a py2mcp console script
  • __version__ now sourced from installed metadata (was a hardcoded literal that
    had drifted from pyproject.toml)
  • tests: config resolution + clean error on a missing config

Why

The first consumer is coact's new publish axis (thorwhalen/coact), which
generates .mcpb bundles whose server shim runs py2mcp.serve against a bundled
config.

Add py2mcp.serve (serve_stdio + resolve_server_config/load_server_config) plus
python -m py2mcp and a py2mcp console script, so a packaged integration (e.g. a
Claude Desktop .mcpb bundle) can launch an MCP server over stdio from a
{name, refs} config. coact's new publish axis is the first consumer.

Also source __version__ from installed metadata instead of a hardcoded literal
that had drifted from pyproject. Tests added (config resolution + clean error on
missing config).
@thorwhalen thorwhalen merged commit fafb3bb into main Jun 17, 2026
12 checks passed
@thorwhalen thorwhalen deleted the claude/stdio-serve branch June 17, 2026 07:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant