Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
MCP server that lets AI agents create, fetch, verify, and publish Molpha oracle data.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
SIGNER_BACKEND, OWNER_KEYPAIR, KEYCHAIN_BACKEND, PRIVY_APP_ID, PRIVY_APP_SECRET, PRIVY_WALLET_ID, PRIVY_WALLET_ADDRESS, TURNKEY_API_PUBLIC_KEY, TURNKEY_API_PRIVATE_KEY, TURNKEY_ORGANIZATION_ID, TURNKEY_WALLET_ADDRESS, SOLANA_RPC, GATEWAY_ENDPOINTS, MOLPHA_EVM_NETWORKS, MOLPHA_STARKNET_NETWORKS, MOLPHA_DRY_RUN, MOLPHA_MAX_EXECUTES_PER_DAY, MOLPHA_X402_MAX_PRICE_USDC, MOLPHA_X402_MAX_SPEND_PER_DAY_USDC, MOLPHA_X402_GATEWAY_PDA标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"molpha": {
"command": "npx",
"args": [
"-y",
"@molpha/mcp"
],
"env": {
"SIGNER_BACKEND": "your-value",
"OWNER_KEYPAIR": "your-value",
"KEYCHAIN_BACKEND": "your-value",
"PRIVY_APP_ID": "your-value",
"PRIVY_APP_SECRET": "your-value",
"PRIVY_WALLET_ID": "your-value",
"PRIVY_WALLET_ADDRESS": "your-value",
"TURNKEY_API_PUBLIC_KEY": "your-value",
"TURNKEY_API_PRIVATE_KEY": "your-value",
"TURNKEY_ORGANIZATION_ID": "your-value",
"TURNKEY_WALLET_ADDRESS": "your-value",
"SOLANA_RPC": "your-value",
"GATEWAY_ENDPOINTS": "your-value",
"MOLPHA_EVM_NETWORKS": "your-value",
"MOLPHA_STARKNET_NETWORKS": "your-value",
"MOLPHA_DRY_RUN": "your-value",
"MOLPHA_MAX_EXECUTES_PER_DAY": "your-value",
"MOLPHA_X402_MAX_PRICE_USDC": "your-value",
"MOLPHA_X402_MAX_SPEND_PER_DAY_USDC": "your-value",
"MOLPHA_X402_GATEWAY_PDA": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add molpha --env SIGNER_BACKEND=your-value --env OWNER_KEYPAIR=your-value --env KEYCHAIN_BACKEND=your-value --env PRIVY_APP_ID=your-value --env PRIVY_APP_SECRET=your-value --env PRIVY_WALLET_ID=your-value --env PRIVY_WALLET_ADDRESS=your-value --env TURNKEY_API_PUBLIC_KEY=your-value --env TURNKEY_API_PRIVATE_KEY=your-value --env TURNKEY_ORGANIZATION_ID=your-value --env TURNKEY_WALLET_ADDRESS=your-value --env SOLANA_RPC=your-value --env GATEWAY_ENDPOINTS=your-value --env MOLPHA_EVM_NETWORKS=your-value --env MOLPHA_STARKNET_NETWORKS=your-value --env MOLPHA_DRY_RUN=your-value --env MOLPHA_MAX_EXECUTES_PER_DAY=your-value --env MOLPHA_X402_MAX_PRICE_USDC=your-value --env MOLPHA_X402_MAX_SPEND_PER_DAY_USDC=your-value --env MOLPHA_X402_GATEWAY_PDA=your-value -- npx -y @molpha/mcp运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"molpha": {
"command": "npx",
"args": [
"-y",
"@molpha/mcp"
],
"env": {
"SIGNER_BACKEND": "your-value",
"OWNER_KEYPAIR": "your-value",
"KEYCHAIN_BACKEND": "your-value",
"PRIVY_APP_ID": "your-value",
"PRIVY_APP_SECRET": "your-value",
"PRIVY_WALLET_ID": "your-value",
"PRIVY_WALLET_ADDRESS": "your-value",
"TURNKEY_API_PUBLIC_KEY": "your-value",
"TURNKEY_API_PRIVATE_KEY": "your-value",
"TURNKEY_ORGANIZATION_ID": "your-value",
"TURNKEY_WALLET_ADDRESS": "your-value",
"SOLANA_RPC": "your-value",
"GATEWAY_ENDPOINTS": "your-value",
"MOLPHA_EVM_NETWORKS": "your-value",
"MOLPHA_STARKNET_NETWORKS": "your-value",
"MOLPHA_DRY_RUN": "your-value",
"MOLPHA_MAX_EXECUTES_PER_DAY": "your-value",
"MOLPHA_X402_MAX_PRICE_USDC": "your-value",
"MOLPHA_X402_MAX_SPEND_PER_DAY_USDC": "your-value",
"MOLPHA_X402_GATEWAY_PDA": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"molpha": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@molpha/mcp"
],
"env": {
"SIGNER_BACKEND": "your-value",
"OWNER_KEYPAIR": "your-value",
"KEYCHAIN_BACKEND": "your-value",
"PRIVY_APP_ID": "your-value",
"PRIVY_APP_SECRET": "your-value",
"PRIVY_WALLET_ID": "your-value",
"PRIVY_WALLET_ADDRESS": "your-value",
"TURNKEY_API_PUBLIC_KEY": "your-value",
"TURNKEY_API_PRIVATE_KEY": "your-value",
"TURNKEY_ORGANIZATION_ID": "your-value",
"TURNKEY_WALLET_ADDRESS": "your-value",
"SOLANA_RPC": "your-value",
"GATEWAY_ENDPOINTS": "your-value",
"MOLPHA_EVM_NETWORKS": "your-value",
"MOLPHA_STARKNET_NETWORKS": "your-value",
"MOLPHA_DRY_RUN": "your-value",
"MOLPHA_MAX_EXECUTES_PER_DAY": "your-value",
"MOLPHA_X402_MAX_PRICE_USDC": "your-value",
"MOLPHA_X402_MAX_SPEND_PER_DAY_USDC": "your-value",
"MOLPHA_X402_GATEWAY_PDA": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
OWNER_KEYPAIR envKEYCHAIN_BACKEND envPRIVY_WALLET_ADDRESS envTURNKEY_WALLET_ADDRESS envSOLANA_RPC envGATEWAY_ENDPOINTS envMOLPHA_EVM_NETWORKS envMOLPHA_STARKNET_NETWORKS envMOLPHA_DRY_RUN envMOLPHA_MAX_EXECUTES_PER_DAY envMOLPHA_X402_MAX_PRICE_USDC envMOLPHA_X402_MAX_SPEND_PER_DAY_USDC envMOLPHA_X402_GATEWAY_PDA env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月6日
注册名称已通过 GitHub 账户 molpha 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:SIGNER_BACKEND, PRIVY_APP_ID, PRIVY_APP_SECRET, PRIVY_WALLET_ID, TURNKEY_API_PUBLIC_KEY, TURNKEY_API_PRIVATE_KEY, TURNKEY_ORGANIZATION_ID
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.1.2)于4个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Spec Driven Development, Remote Desktop Commander, FOGA node
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
A Finch OG Agent cell as an MCP server: read the world, dry-run and take ERC-8414 tenders by policy.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
A Model Context Protocol (MCP) server that lets AI agents fetch signed Molpha oracle data, publish it on Solana, and build verifier calldata for EVM and Starknet.
Molpha turns HTTP API responses into threshold-signed payloads that can be verified on Solana, EVM, and Starknet. This server exposes that workflow as MCP tools, with signing behind a local, Privy, or Turnkey wallet, or, on mcp.molpha.io, behind your own wallet.
[!WARNING]
This release targets Solana Devnet and Sepolia verifier networks. Treat it as testnet software, not a production security boundary. Write tools spend SOL, and round tools may consume subscription quota or pay USDC for x402 rounds, unless dry-run mode is enabled.
Two recommended ways to connect:
| mcp.molpha.io | Local (stdio) | |
|---|---|---|
| Install | Nothing: add the URL to your client | npx, Node.js 24 or later |
| Signer | Your own wallet. The server holds no key. | Local keypair, Privy or Turnkey, held by the server |
| Subscription rounds | Sign in with SIWX, then execute_subscription_round | execute_subscription_round |
| Spending limits | Your wallet's own policy | Dry-run lock and daily caps in the server |
| Best for | Getting started, agents that bring their own wallet | Unattended agents, private API sources |
Nothing to install, and no keys to hand over. Add the URL to your client.
Claude Code:
claude mcp add --transport http molpha https://mcp.molpha.io/mcp
Cursor (.cursor/mcp.json):
{ "mcpServers": { "molpha": { "url": "https://mcp.molpha.io/mcp" } } }
The read tools work straight away. The server has no wallet of its own, so name the one you mean: submitter for describe_feed and get_latest_value, payer for get_x402_status.
Anything that needs a signature is returned for your own wallet to sign, so each such operation is two or three tool calls around one signature:
| Operation | Tools, in order | The wallet signs |
|---|---|---|
| Subscription round | begin_session → complete_session → execute_subscription_round | A text message, once per session |
| x402 round | prepare_x402_round → execute_x402_round | A USDC transfer, not broadcast |
| Solana submit | prepare_submit_attestation → send_signed_transaction | The submit transaction |
autoSubmit, dryRun and encryptSecrets are not offered here. Set spending limits in the wallet's own policy, and use the local server for private API work.
A subscription round on mcp.molpha.io is authorized by a sign-in session: the wallet signs one Sign-In-With-X text message (the x402 sign-in-with-x extension, in its Solana form), and the gateway issues a short-lived bearer token. The message is not a transaction and moves no funds.
| Step | Call | Result |
|---|---|---|
| 1 | describe_access({ address, owner? }) | Whether the wallet is a subscription owner or delegate, and its limits |
| 2 | begin_session({ address, owner? }) | The message to sign and an opaque challenge |
| 3 | The wallet signs message | An Ed25519 signature over its exact UTF-8 bytes |
| 4 | complete_session({ challenge, signature }) | A sessionToken and its expiresAt |
| 5 | execute_subscription_round({ sessionToken, apiConfig, signaturesRequired, chains }) | The signed attestation and verifier arguments |
add_delegate. A delegate passes the owner's address as owner.solana sign-offchain-message wraps the text and is refused with invalid_signature.remove_delegate ends access whatever tokens exist. It passes through this server and is never stored or logged.sessionAuth: true in GET /v1/info. Otherwise begin_session answers sessions_unavailable and x402 rounds remain available.The full walkthrough, with a signing example, delegate setup, gateway routes and error codes, is in docs/integration.md.
The server runs on your machine and holds the signer, so one tool call runs a round or submits to Solana, and MOLPHA_DRY_RUN keeps every write a preview until you turn it off.
Needs Node.js 24 or later. Nothing to clone or build.
1. Look around, no wallet. Read-only: capabilities, providers, sourceIds, prices, feed values.
claude mcp add molpha -- npx -y @molpha/mcp@0.2.0 --read-only
2. Build with a testnet wallet. Put your signer settings in a .env file (see Setup), then check them. The doctor prints a ready-to-paste config for your client, with secrets left as placeholders:
npx -y @molpha/mcp@0.2.0 doctor
A config like this keeps every write a preview (MOLPHA_DRY_RUN=true):
claude mcp add molpha -e SIGNER_BACKEND=keychain -e KEYCHAIN_BACKEND=privy -e PRIVY_APP_ID='<privy-app-id>' -e PRIVY_APP_SECRET='<privy-app-secret>' -e PRIVY_WALLET_ID='<privy-wallet-id>' -e PRIVY_WALLET_ADDRESS='<base58-solana-address>' -e MOLPHA_DRY_RUN=true -- npx -y @molpha/mcp@0.2.0
3. Spend only when you mean to: fund the wallet, then set MOLPHA_DRY_RUN=false in the server's config. The full guide, with Cursor, VS Code, Codex and Claude Desktop, is docs/integration.md.
With no signer configured the server starts read-only and offers only the read tools (runLevel: "read-only" in get_capabilities). --read-only or SIGNER_BACKEND=none forces it.
| Tool | Access | Description |
|---|---|---|
get_capabilities | Read | Run level, program id, registry version, nodes, gateways, chains, verifier addresses, x402 caps and source-payment policy. |
derive_source_id | Read, local | Derive an apiConfig's sourceId (how). No transaction, no wallet. |
describe_feed | Read | Read the Solana feed for (sourceId, signaturesRequired, submitter) and the signer's subscription status. |
get_latest_value | Read | Read the latest attested value stored in a Solana feed account. |
describe_access | Read | Whether a wallet is a subscription owner or delegate, with the plan's and the delegate's limits. |
get_x402_status | Read | Quote the next x402 round, show where payment goes, and read a payer's USDC balance and remaining daily budget. |
list_providers | Read | The data providers the gateway integrates and the flows it serves (providers). |
get_provider | Read | One provider's flows, disclosure and ready-made feeds, each with a complete apiConfig and sourceId. |
quote_source_payment | Read | Price a paywalled source with one unpaid request, including the worst-case total. |
execute_subscription_round | Spends quota | Run a round paid from a USDC subscription; return the signed attestation plus verifier arguments. autoSubmit: true settles Solana in the same call. |
execute_x402_round | Spends USDC | Run a round paid per request over x402; same output. |
build_verifier_calldata | Read, local | Build EVM/Starknet verifier address and verify() call arguments. Calldata only: it verifies nothing. |
submit_attestation | Write | Submit a signed attestation to Solana. Accepts a round tool's output unmodified. |
On mcp.molpha.io the one-call round and submit tools become prepare/sign/execute pairs (above). Every tool returns structuredContent and carries MCP annotations; see Structured output and annotations. For tolerance-mode aggregation and the full configuration table, see docs/reference.md.
Round timing. Rounds run on a fixed 100 ms tick. Requests for one feed (the same source and quorum) inside one tick share a round, so a feed runs at most 10 rounds per second, and one wallet gets at most one round per tick for a feed: a second request in the same tick is answered with HTTP 409, which the round tools retry a tick later before failing with round_conflict. See Round timing.
For the local server.
Signer. Put your settings in a .env file and check them with the doctor. It prints a ready-to-paste config for your client with secrets left as placeholders. Use a dedicated testnet wallet.
SIGNER_BACKEND=memory
OWNER_KEYPAIR=/absolute/path/to/owner-keypair.json SOLANA_RPC=https://api.devnet.solana.com MOLPHA_DRY_RUN=true
Privy and Turnkey settings are in docs/reference.md and .env.example.
npx -y @molpha/mcp@0.2.0 doctor
Dry-run lock. MOLPHA_DRY_RUN=true locks execute_subscription_round, execute_x402_round and submit_attestation to previews. A call with dryRun: false is refused with dry_run_locked, so going live is a change to the server's config, never to one tool call.
Subscription. Subscribing debits USDC, so it is kept out of the MCP tools and runs as a CLI command with the same signer configuration. --max-price-usdc is a cap in USDC base units (6 decimals); drop --dry-run to subscribe, or use extend to extend one.
npx -y @molpha/mcp@0.2.0 provision subscribe --plan Basic --max-price-usdc 20000000 --dry-run
Client. Every client launches the local server with npx. Snippets for Claude Code, Cursor, VS Code, Codex and Claude Desktop are in docs/integration.md, ready-to-edit copies are in examples, and Claude Desktop users can install the molpha-mcp.mcpb bundle attached to each release.
Discover. Use Molpha to inspect the current oracle capabilities. Summarize the registry version, node count, chains, gateways, and verifier addresses. Make no writes.
Derive. Derive a Molpha sourceId for
https://api.example.com/v1/finalized/priceusing the JSON path$.price. Show me the canonical JSON and the sourceId. Do not send a transaction.
Fetch. For that source, run a subscription round with 3 signatures for the EVM chain. Summarize the value, timestamp, registry version and verifier call. Treat the signed attestation as the trust anchor, not the value alone.
Provider. List the integrated data providers, describe TickerLayer's
btcusdfeed, and run it with 3 signatures for Solana, passing theapiConfigexactly as given.
Check spend. Call
get_x402_statusfor 3 signatures. Tell me the price, where payment goes, and my USDC balance before I authorize anexecute_x402_round.
Publish. If I give you a newer signed attestation, preview
submit_attestationwithdryRun: true, explain the exact write, and wait for my confirmation before submittin
只显示了开头部分;其余内容请在仓库中阅读