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는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
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개월 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, AI Deprecations
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ 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.
AI model shutdown dates, replacements, change feed and webhook alerts for 8 providers.
제작자의 저장소에서 쓰인 그대로 가져왔어요. 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
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요