
MCP Server Attestation
io.studiomeyer由 studiomeyer.io 發布v0.2.0更新於 Oct 24, 2026
Ed25519-signed MCP tool manifests + spawn attestation. Layer-2 supply-chain hardening.
發布方自己的服務:StudioMeyer Crew
概覽
一個本機 MCP 伺服器與函式庫,用來對已簽章的工具清單做密碼學驗證,並對 MCP 伺服器的行程啟動進行證明。
- 可以做什麼
- 提供 MCP 工具清單的 Ed25519 簽章與驗證、執行期啟動證明,以及預設拒絕的參數清理器。參考 stdio 伺服器提供五個工具:驗證清單、檢查啟動指令、產生清單範本、簽署清單與產生金鑰。它是可直接引入的函式庫相依項目,而非執行期替代品;命令列提供 keygen、sign、verify、inspect、fingerprint 與 check-pin 等指令。
- 適用情境
- 當你需要確認某個伺服器宣告的工具及其子行程啟動呼叫與已簽章清單一致時適合使用,例如防範被替換或遭惡意更新的伺服器。適合能自行簽署清單並管理金鑰、希望強化 MCP 供應鏈的團隊。
- 執行需求
- 需要 Node.js 20 或以上版本;參考伺服器透過 stdio 在本機執行。未宣告任何帳號、API 金鑰或環境變數。首次使用信任機制會把公開金鑰固定到本機信任檔案,其路徑可用環境變數 MCP_ATTEST_TRUST_FILE 覆寫。選用的 Sigstore Rekor 交叉比對需要網路存取。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 MCP Server Attestation,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
Part of the StudioMeyer MCP Stack — Built in Mallorca 🌴 · ⭐ if you use it
mcp-server-attestation
[npm version] [npm downloads] [License] [Last commit] [GitHub stars]
Layer-2 supply-chain hardening for Model Context Protocol servers. Ed25519-signed tool manifests, runtime spawn-attestation, default-deny argument sanitizer.Direct response to:
- OX Security marketplace-poisoning, April 2026 — 9 of 11 MCP registries accepted malicious servers. Anthropic's published position: "expected behavior".
- CVE-2025-69256 — Serverless Framework MCP RCE via
child_process.exec()command injection. - CVE-2025-61591 — Cursor MCP RCE through OAuth-installed malicious server with spawn hijack.
This package provides what Anthropic chose not to: cryptographic verification of which tools a server is allowed to expose and which spawn calls it is allowed to make. It is a drop-in dependency, not a runtime replacement.
A note from us
We have been building tools and systems for ourselves for the past two years. The fact that this repo is small and has few stars is not because it is new. It is because we only just decided to share what we have built. It is not a fresh experiment, it is a long story with a recent commit.
We love building things and sharing them. We do not love social media tactics, growth hacks, or chasing stars and followers. So this repo is small. The code is real, it gets used, issues get answered. Judge for yourself.
If it helps you, sharing, testing, and feedback help us. If it could be better, an issue is more useful. If you build something with it, tell us at [email protected]. That genuinely makes our day.
From a small studio in Palma de Mallorca.
Packages (npm workspaces)
Install
Node 20+. No external crypto dependencies — uses node:crypto Ed25519 primitives.
Five-line server quickstart
That is the entire integration. Two function calls, no SaaS, no daemon.
If you would rather re-verify the signature on every spawn (defense-in-depth against an unverified or swapped manifest reaching the gate), use the single fail-safe call instead — it verifies then attests:
Tools (reference server mcp-attest-demo)
Annotations are honest: attest_sign_manifest and attest_keygen write files on disk so they are not read-only, but they do not destroy existing data so destructiveHint stays false. See docs/THREAT-MODEL.md for the per-tool capability table.
CLI
verify exits with code 2 on bad signature, code 3 on pin mismatch.
MCP spec compatibility
The library is transport-agnostic. The reference server is stdio-only.
Security model
- Trust-on-First-Use is the default. The first time you verify a server, its public key is pinned to
~/.mcp-attest/trust.json(override:MCP_ATTEST_TRUST_FILE). Subsequent verifications reject any new key for the same server name withTRUST_PIN_MISMATCH. This catches the Cursor-style malicious-update vector. - No bundled trusted-keys list. This package does not act as a gatekeeper. If you want stronger assurance, opt into
--sigstoreto cross-reference the public-key fingerprint against the Sigstore Rekor transparency log. - Default-deny argument sanitizer.
shellSafeStringblocks every ASCII shell metacharacter, NUL, CR, LF, VT, FF, NEL, zero-width characters, BOM, RTL/LTR overrides, Trojan-Source isolates, and fullwidth-Latin confusables. Allowlist behaviour requires the explicitregex/enum/prefix/literalrule kinds. - ReDoS-safe
regexrules. Aregexrule's pattern is signed by the author, but the argument value is attacker-controlled. The sanitizer statically detects backtracking-prone patterns (nested unbounded quantifiers like(a+)+) and refuses to run them, so a single crafted argument cannot freeze the spawn hot path.regexrules also carry amaxLengthinput cap (default 4096). - Traversal-safe
prefixrules.prefixrules reject..path components by default (denyTraversal: true, including the%2e%2eencoded form), so/safe/../../etc/passwdis blocked even though it satisfiesprefix: "/safe/". - Verify-then-attest.
attestSpawnVerifiedchecks the manifest signature before attesting the spawn in one fail-safe call — use it instead ofattestSpawnStrictunless you have measured the per-spawn Ed25519 verify out of a genuinely hot loop. - Canonical JSON is the signed surface. Re-serialisation cannot change the signed bytes.
What this package does NOT do (out of scope):
- Sandbox or containerise the server process.
- OAuth flow hardening (separate
mcp-oauth-shieldbuild). - Network egress control.
- Auto-patch existing servers.
Tests
Test corpus includes CVE-replay fixtures (packages/lib/tests/fixtures/cve-2025-69256-payloads.json, cve-2025-61591-payloads.json). The build is a regression check: every payload must be blocked.
Distribution
- npm publish via GitHub Actions OIDC with
--provenance. - Reference server submitted to mcp.so and FastMCP Directory.
- Library separately published as
mcp-server-attestation.
About StudioMeyer
StudioMeyer is an AI and design studio based in Palma de Mallorca, working with clients worldwide. We build custom websites and AI infrastructure for small and medium businesses. Production stack on Claude Agent SDK, MCP and n8n, with Sentry, Langfuse and LangGraph for observability and an in-house guard layer.
License
MIT, Copyright 2026 Matthias Meyer (StudioMeyer). See LICENSE.
來源:README.md,提交 874947e
工具
0版本歷史
1- v0.2.0最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分
其他 Studiomeyer 整合
StudioMeyer Crew
io.studiomeyer官方發布者
遠端 MCP 伺服器,為 Claude 提供代理角色、16 個工具與 3 個工作流程,宣稱不產生額外 API 費用。
StudioMeyer Memory
io.studiomeyer官方發布者
遠端雙時態 AI 記憶伺服器,具備知識圖譜與語意搜尋,讓助理跨工作階段持久記憶。

StudioMeyer MCP Suite
io.studiomeyer官方發布者
遠端 MCP 套件,整合 8 個伺服器、104+ 個工具,涵蓋記憶、社群、PDF、電子郵件、圖片、行事曆、排程與檔案。
StudioMeyer GEO
io.studiomeyer官方發布者
一個遠端、託管於歐盟的 MCP 伺服器,讓助理查看品牌或網站在八個大型語言模型平台上的能見度,共 30 個工具,多數不需 API 金鑰。
StudioMeyer CRM
io.studiomeyer官方發布者
StudioMeyer CRM 是遠端、AI 原生的 CRM 伺服器,為助理提供 37 個工具,涵蓋銷售管道、潛在客戶、健康分數與 GDPR 權利。