Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Molpha MCP

by molphaversion 0.1.2i★ –iRuns on your computer
Registry nameio.github.molpha/mcp

Install

Overview

Description from the maker (original English)

MCP server that lets AI agents create, fetch, verify, and publish Molpha oracle data.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Other
  • You need to fill in: SIGNER_BACKEND, PRIVY_APP_ID, PRIVY_APP_SECRET, PRIVY_WALLET_ID, TURNKEY_API_PUBLIC_KEY, TURNKEY_API_PRIVATE_KEY, TURNKEY_ORGANIZATION_ID

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • You fill in yourself: 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

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

  • npmNode.js installed (for the npx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into 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"
      }
    }
  }
}

Run this in your terminal

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

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.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"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "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"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • SIGNER_BACKEND required env
    Signing backend: memory (local keypair) or keychain (Privy / Turnkey).
  • OWNER_KEYPAIR env
    Path to a Solana JSON keypair file. Required when SIGNER_BACKEND=memory.
  • KEYCHAIN_BACKEND env
    Keychain provider: privy or turnkey. Required when SIGNER_BACKEND=keychain.
  • PRIVY_APP_ID secret env
    Privy app ID. Required for KEYCHAIN_BACKEND=privy.
  • PRIVY_APP_SECRET secret env
    Privy app secret. Required for KEYCHAIN_BACKEND=privy.
  • PRIVY_WALLET_ID secret env
    Privy wallet ID. Required for KEYCHAIN_BACKEND=privy.
  • PRIVY_WALLET_ADDRESS env
    Solana address for the Privy wallet.
  • TURNKEY_API_PUBLIC_KEY secret env
    Turnkey API public key. Required for KEYCHAIN_BACKEND=turnkey.
  • TURNKEY_API_PRIVATE_KEY secret env
    Turnkey API private key. Required for KEYCHAIN_BACKEND=turnkey.
  • TURNKEY_ORGANIZATION_ID secret env
    Turnkey organization ID. Required for KEYCHAIN_BACKEND=turnkey.
  • TURNKEY_WALLET_ADDRESS env
    Solana address for the Turnkey wallet.
  • SOLANA_RPC env
    Solana RPC endpoint.
  • GATEWAY_ENDPOINTS env
    Comma-separated Molpha gateway URLs. Leave empty to use the SDK default.
  • MOLPHA_EVM_NETWORKS env
    Comma-separated EVM verifier networks.
  • MOLPHA_STARKNET_NETWORKS env
    Comma-separated Starknet verifier networks.
  • MOLPHA_DRY_RUN env
    Preview all write and spend operations without submitting them.
  • MOLPHA_MAX_EXECUTES_PER_DAY env
    Process-local daily Solana submit cap.
  • MOLPHA_X402_MAX_PRICE_USDC env
    Refuse to fund an x402 round priced above this amount (decimal USDC).
  • MOLPHA_X402_MAX_SPEND_PER_DAY_USDC env
    Process-local daily x402 spend cap (decimal USDC).
  • MOLPHA_X402_GATEWAY_PDA env
    Optional settling gateway PDA (base58) to skip discovery when the escrow is already funded.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account molpha, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Otheri

  • More stars than 0% of the other 32415 servers in this category
  • Published to the registry more recently than 19% of the other 32415 servers in this category
  • Basic checks equal to or better than 100% of the other 32415 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Molpha MCP safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: SIGNER_BACKEND, PRIVY_APP_ID, PRIVY_APP_SECRET, PRIVY_WALLET_ID, TURNKEY_API_PUBLIC_KEY, TURNKEY_API_PRIVATE_KEY, TURNKEY_ORGANIZATION_ID

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.1.2) reached the registry 4 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.

What can I use instead?

In the same category: Spec Driven Development, Remote Desktop Commander, Safe Fetch

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Spec Driven Development

by formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

Runs on your computer★ 440MITUpdated 14 months ago
Install

Remote Desktop Commander

by desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

Runs in the cloud★ 211Updated yesterday
Install

Safe Fetch

by Sanoy24

MCP server for fetching URLs, safe against SSRF, DNS rebinding, and redirect-to-internal attacks.

Runs on your computerUpdated today
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

Molpha MCP

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.

Quick start

Two recommended ways to connect:

mcp.molpha.ioLocal (stdio)
InstallNothing: add the URL to your clientnpx, Node.js 24 or later
SignerYour own wallet. The server holds no key.Local keypair, Privy or Turnkey, held by the server
Subscription roundsSign in with SIWX, then execute_subscription_roundexecute_subscription_round
Spending limitsYour wallet's own policyDry-run lock and daily caps in the server
Best forGetting started, agents that bring their own walletUnattended agents, private API sources
mcp.molpha.io

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:

OperationTools, in orderThe wallet signs
Subscription roundbegin_session → complete_session → execute_subscription_roundA text message, once per session
x402 roundprepare_x402_round → execute_x402_roundA USDC transfer, not broadcast
Solana submitprepare_submit_attestation → send_signed_transactionThe 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.

Sign in with your wallet (SIWX)

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.

StepCallResult
1describe_access({ address, owner? })Whether the wallet is a subscription owner or delegate, and its limits
2begin_session({ address, owner? })The message to sign and an opaque challenge
3The wallet signs messageAn Ed25519 signature over its exact UTF-8 bytes
4complete_session({ challenge, signature })A sessionToken and its expiresAt
5execute_subscription_round({ sessionToken, apiConfig, signaturesRequired, chains })The signed attestation and verifier arguments
  • Who can sign in. The subscription owner, or a delegate the owner added with add_delegate. A delegate passes the owner's address as owner.
  • How to sign. The message as returned: raw UTF-8, no prefix, no envelope, no trailing newline. The signature may be base58, base64 or hex. solana sign-offchain-message wraps the text and is refused with invalid_signature.
  • What the token is. A credential for one wallet and one gateway, valid 30 minutes by default and never past the subscription term. It only identifies the caller: the gateway re-reads the subscription and delegate from chain on every round, so remove_delegate ends access whatever tokens exist. It passes through this server and is never stored or logged.
  • What it needs. A gateway with 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.

Local (stdio)

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.

Tools

ToolAccessDescription
get_capabilitiesReadRun level, program id, registry version, nodes, gateways, chains, verifier addresses, x402 caps and source-payment policy.
derive_source_idRead, localDerive an apiConfig's sourceId (how). No transaction, no wallet.
describe_feedReadRead the Solana feed for (sourceId, signaturesRequired, submitter) and the signer's subscription status.
get_latest_valueReadRead the latest attested value stored in a Solana feed account.
describe_accessReadWhether a wallet is a subscription owner or delegate, with the plan's and the delegate's limits.
get_x402_statusReadQuote the next x402 round, show where payment goes, and read a payer's USDC balance and remaining daily budget.
list_providersReadThe data providers the gateway integrates and the flows it serves (providers).
get_providerReadOne provider's flows, disclosure and ready-made feeds, each with a complete apiConfig and sourceId.
quote_source_paymentReadPrice a paywalled source with one unpaid request, including the worst-case total.
execute_subscription_roundSpends quotaRun a round paid from a USDC subscription; return the signed attestation plus verifier arguments. autoSubmit: true settles Solana in the same call.
execute_x402_roundSpends USDCRun a round paid per request over x402; same output.
build_verifier_calldataRead, localBuild EVM/Starknet verifier address and verify() call arguments. Calldata only: it verifies nothing.
submit_attestationWriteSubmit 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.

Setup

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.

Example prompts

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/price using 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 btcusd feed, and run it with 3 signatures for Solana, passing the apiConfig exactly as given.

Check spend. Call get_x402_status for 3 signatures. Tell me the price, where payment goes, and my USDC balance before I authorize an execute_x402_round.

Publish. If I give you a newer signed attestation, preview submit_attestation with dryRun: true, explain the exact write, and wait for my confirmation before submittin

Only the beginning is shown; read the rest in the repo

Ask PopNx