
Mcp Multi Poc Beta
io.github.nithishr由 GitHub 帳號 nithishr 發布v0.1.0更新於 Oct 24, 2026
PoC beta server - extras-gated deps, subcommand selection, same PyPI package as alpha.
概覽
一個概念驗證型 PyPI 套件,用子命令從同一份安裝啟動多個 MCP 伺服器,並視需要以選用 extras 安裝相依套件。
- 可以做什麼
- 透過選擇子命令(alpha 或 beta)從同一份安裝啟動多個內建 MCP 伺服器之一,不帶子命令時預設執行 alpha 以維持向後相容。視需要安裝選用 extras,讓 beta 伺服器的相依套件只在需要時才被拉取。以 alpha 的 echo 工具和 beta 的 make_table 工具做冒煙測試,驗證這種打包方式。測試登錄檔中繼資料與用戶端如何組裝執行命令,包括 extras 與執行階段參數。
- 適用情境
- 僅適合用來評估單一 PyPI 套件如何發布多個 MCP 登錄檔項目,以及用戶端如何執行以子命令為基礎的伺服器。它是概念驗證,不是供實際工作使用的通用工具。
- 執行需求
- 以 Python 套件形式從 PyPI 安裝並在本機透過 stdio 執行,通常以 uvx 啟動。beta 伺服器需要安裝選用的 beta extra,否則會出現錯誤並提示安裝該 extra。未宣告任何帳號、API 金鑰或環境變數。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Mcp Multi Poc Beta,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
mcp-multi-poc
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).
What this PoC must answer
Findings so far (2026-07-31)
- Q1 — multiple entries per PyPI package: YES.
mcp-multi-poc-alphapublished against the shared package. - Q2 — multiple
mcp-namecomments in one README: YES (alpha validated with three comments present). - Q3 — extras in
identifier: NO, but expressible viaruntimeArguments. Extras in the identifier fail the literal PyPI lookup —PyPI package 'mcp-multi-poc[beta]' not found (status: 404). Fallback works:mcp-multi-poc-betapublished successfully with plainidentifier: mcp-multi-poc+runtimeArguments: --from "mcp-multi-poc[beta]"(live in the registry, verified via the/v0/serversAPI). - Q5a — differently-named console script as identifier: NO (confirmed on
publish). Same 404 mechanism (
'mcp-multi-poc-beta' not found) — the registry validates the identifier as a real PyPI package before anything else. - Q5b — script name as positional
runtimeArgument: YES, published.io.github.nithishr/mcp-multi-poc-beta-scriptis live (published 2026-07-31, after trimmingdescriptionto the 100-char limit — the only validation hiccup). Locally,uvx --from 'mcp-multi-poc[beta]' mcp-multi-poc-beta mcp-multi-poccompletes the MCP initialize handshake — the trailing identifier is silently ignored becausemain()never parses argv. Caveats: only safe when the entrypoint tolerates stray argv (click needsignore_unknown_options+allow_extra_argsor a dummy optional argument); depends on clients preservingruntimeArgumentsorder — 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). - Registry validation limits discovered:
description≤ 100 chars;identifiermust be a literal, existing PyPI package (extras rejected);runtimeArguments/packageArgumentscontents are NOT validated.
Local smoke test (before publishing anything)
uvx behavior (after publishing to PyPI):
Publish steps (manual, in order)
- If
mcp-multi-pocis taken on PyPI, pick another name and rename consistently (pyprojectname,[project.scripts], both server.json identifiers). - Build and publish to real PyPI (registry validation fetches from pypi.org;
TestPyPI will not work):
uv build && uv publish. - Install mcp-publisher and log in:
mcp-publisher login github(interactive) — must match theio.github.<username>namespace. - Publish the entries:
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). - Verify via the registry API:
curl "https://registry.modelcontextprotocol.io/v0/servers?search=mcp-multi-poc" - Configure both servers in a client from the registry metadata and call
echo(alpha) andmake_table(beta). - Record results per question above, then deprecate/delete the PoC entries.
Q4 — testing the published entries from a client
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.
- Fetch what was actually published and check the
packagesblock:curl "https://registry.modelcontextprotocol.io/v0/servers?search=mcp-multi-poc" - MCP Inspector — interactive tool calls against the hand-assembled command:
- Claude Code — same commands as stdio servers, then call
echo/make_table: (For Claude Desktop, the equivalentclaude_desktop_config.jsonentries:) - Registry-native install (the real (b) test): VS Code's MCP server
gallery is backed by the official registry — search for
mcp-multi-pocthere and install; this exercises whether a client assemblesruntimeArguments + identifier + packageArgumentson 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.
來源:README.md,提交 c9f1363
工具
0版本歷史
1- v0.1.0最新Sep 16, 2026
評分
已滿足適用檢查項的 40%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分
請在儲存庫或註冊中心條目中宣告授權條款。