PoC alpha server - base install, subcommand selection from a shared PyPI package.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
PoC for serving multiple MCP servers from a single PyPI package, using subcommands for server selection and optional extras for on-demand dependencies. Stands in for the Couchbase MCP monorepo question (alpha = operational, beta = analytics, tabulate = the analytics SDK β chosen because it is outside fastmcp's transitive dependency tree; httpx and pyyaml are not, and silently defeat the extras guard).
| # | Question | Where it's tested |
|---|---|---|
| 1 | Can two MCP registry entries point at the same PyPI package? | Publish both server.alpha.json and server.beta.json |
| 2 | Does registry ownership validation accept multiple mcp-name comments in one package README? | The two HTML comments above |
| 3 | Does the registry schema/validator accept extras syntax in identifier (mcp-multi-poc[beta])? | server.beta.json β if rejected, fall back to plain identifier and record that extras can't be expressed |
| 4 | Do clients run the subcommand form correctly from registry metadata (uvx mcp-multi-poc alpha)? | Install both servers from a client (Claude Desktop / MCP Inspector) |
| 5 | Is there any schema-legal way to run a console script named differently than the package (mcp-multi-poc-beta)? | server.beta-script.json. 5a (failed): identifier = script name β 404, identifier must be a real PyPI package. 5b (current file): identifier = real package, script name smuggled as a positional runtimeArgument β uvx --from 'mcp-multi-poc[beta]' mcp-multi-poc-beta mcp-multi-poc; the appended identifier becomes a stray arg the server must ignore. If 5b also fails, fallback is a shim package per script |
mcp-multi-poc-alpha published
against the shared package.mcp-name comments in one README: YES (alpha validated with
three comments present).identifier: NO, but expressible via runtimeArguments.
Extras in the identifier fail the literal PyPI lookup β
PyPI package 'mcp-multi-poc[beta]' not found (status: 404). Fallback
works: mcp-multi-poc-beta published successfully with plain
identifier: mcp-multi-poc + runtimeArguments: --from "mcp-multi-poc[beta]"
(live in the registry, verified via the /v0/servers API).'mcp-multi-poc-beta' not found) β the
registry validates the identifier as a real PyPI package before anything else.runtimeArgument: YES, published.
io.github.nithishr/mcp-multi-poc-beta-script is live (published
2026-07-31, after trimming description to the 100-char limit β the only
validation hiccup). Locally, uvx --from 'mcp-multi-poc[beta]' mcp-multi-poc-beta mcp-multi-poc completes the MCP initialize handshake β
the trailing identifier is silently ignored because main() never parses
argv. Caveats: only safe when the entrypoint tolerates stray argv (click
needs ignore_unknown_options + allow_extra_args or a dummy optional
argument); depends on clients preserving runtimeArguments order β the
least-exercised metadata path; registry UIs show the identifier as the
runnable. For production script-per-server, prefer a shim package per
script (identifier == script name, no runtimeArguments at all).description β€ 100 chars;
identifier must be a literal, existing PyPI package (extras rejected);
runtimeArguments/packageArguments contents are NOT validated.uvx behavior (after publishing to PyPI):
mcp-multi-poc is taken on PyPI, pick another name and rename consistently
(pyproject name, [project.scripts], both server.json identifiers).uv build && uv publish.mcp-publisher login github (interactive) β must match the io.github.<username> namespace.mcp-publisher publish server.alpha.json, ... server.beta.json, and
... server.beta-script.json β the last one is expected to fail validation;
record the exact error (if the CLI expects the file at ./server.json, copy
each into place first).curl "https://registry.modelcontextprotocol.io/v0/servers?search=mcp-multi-poc"echo (alpha) and make_table (beta).Most clients don't install directly from the official registry yet, so Q4
splits in two: (a) does the spec-mandated command construction
(uvx <runtimeArguments> <identifier> <packageArguments>) produce a working
server, and (b) does a registry-consuming client reproduce that construction.
packages block:
curl "https://registry.modelcontextprotocol.io/v0/servers?search=mcp-multi-poc"echo / make_table:
(For Claude Desktop, the equivalent claude_desktop_config.json entries:)
mcp-multi-poc
there and install; this exercises whether a client assembles
runtimeArguments + identifier + packageArguments on its own. Entries may
lag or be curated before appearing.Steps 2β3 only prove (a); only step 4 (or another registry-consuming client) proves (b), which is what the beta/beta-script entries actually depend on.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/mcp-multi-poc-alpha)<a href="https://allmcps.com/mcp/mcp-multi-poc-alpha"><img src="https://allmcps.com/api/badge/mcp-multi-poc-alpha?style=directory" alt="MCP Multi Poc Alpha on AllMCPs" /></a>