{
  "$schema": "https://brittleboye.github.io/awesome-lattice/projects.schema.json",
  "category": {
    "id": "mcp",
    "title": "MCP Servers",
    "url": "https://brittleboye.github.io/awesome-lattice/mcp/"
  },
  "slug": "convex-testnet-mcp",
  "name": "Convex Testnet MCP",
  "description": "Hosted Convex testnet with a ready-to-use MCP endpoint — plug any MCP-capable agent straight into a live lattice network.",
  "longDescription": null,
  "homepage": null,
  "repo": "https://github.com/Convex-Dev/spaces-testnet",
  "docs": null,
  "links": [
    {
      "label": "Javadoc",
      "url": "https://javadoc.io/doc/world.convex/convex-restapi"
    }
  ],
  "tags": [
    "mcp",
    "convex",
    "testnet"
  ],
  "badge": null,
  "status": null,
  "licensing": null,
  "license": null,
  "mcp": {
    "endpoint": "https://mikera1337-convex-testnet.hf.space/mcp",
    "transport": "streamable-http",
    "snapshot": {
      "transport": "streamable-http",
      "lastCheckedAt": "2026-04-19T08:15:26.117Z",
      "ok": true,
      "serverInfo": {
        "networkId": "6fe865a30d220266b583f088d8eb31f447fcb2e5f97d3a87cc447045c863f852",
        "title": "Convex MCP",
        "peerKey": "af1f018f39a054cb7f890357bce07f28d31aed508840708f43b114b8fa2b1613",
        "name": "convex-mcp",
        "version": "0.8.3-SNAPSHOT"
      },
      "toolCount": 33,
      "tools": [
        {
          "name": "query",
          "title": "Convex Query",
          "description": "Execute a Convex Lisp query. Queries are read-only, free, and instant.\n\nCommon patterns:\n- (balance #13) — coin balance in copper (1 CVM = 1,000,000,000 copper)\n- *balance* — caller's own balance\n- (account #13) — full account record\n- (@convex.fungible/balance #TOKEN #USER) — fungible token balance\n- (call #ACTOR (fn-name args)) — call actor function read-only\n- (lookup #ADDR 'symbol) — look up a definition\n- *state* — full network state (large!)"
        },
        {
          "name": "prepare",
          "title": "Prepare Transaction",
          "description": "Prepare a Convex transaction for signing. Returns a hash to pass to 'signAndSubmit' or 'submit'.\n\nCommon source patterns:\n- Transfer: (transfer #DEST AMOUNT)\n- Deploy actor: (deploy '(do (defn greet [x] (str \"Hello \" x)) (export greet)))\n- Call actor: (call #ACTOR (function-name arg1 arg2))\n- Define value: (def my-var 42)\n- Set controller: (set-controller #ADDR)\n- Register CNS: (call #9 (cns-update 'my.name *address*))\n\nAmounts in copper (1 CVM = 1,000,000,000 copper)."
        },
        {
          "name": "transact",
          "title": "Convex Transaction (Quick)",
          "description": "Execute a Convex transaction in one step. Sends seed over network — use HTTPS with trusted peers only. For sensitive operations prefer prepare → signAndSubmit.\n\nTransactions update global state atomically. Amounts in copper (1 CVM = 1,000,000,000 copper)."
        },
        {
          "name": "encode",
          "title": "Encode CAD3",
          "description": "Encode a CVM literal into CAD3 multi-cell hex bytes."
        },
        {
          "name": "decode",
          "title": "Decode CAD3",
          "description": "Decode CAD3 multi-cell hex bytes back into a CVM literal."
        },
        {
          "name": "submit",
          "title": "Submit Prepared Transaction",
          "description": "Submit a previously prepared transaction with hash, public key, and signature."
        },
        {
          "name": "signAndSubmit",
          "title": "Sign and Submit Transaction",
          "description": "Sign and submit a prepared transaction. Use after 'prepare'. Sends seed over network — HTTPS only."
        },
        {
          "name": "hash",
          "title": "Hash Calculator",
          "description": "Compute a SHA-256 or SHA3 hash of supplied data."
        },
        {
          "name": "sign",
          "title": "Value Signer",
          "description": "Sign raw hex data with an Ed25519 seed. For transactions, sign the 'hash' from prepare."
        },
        {
          "name": "peerStatus",
          "title": "Peer Status",
          "description": "Return current Convex peer status including consensus point and network state."
        },
        {
          "name": "keyGen",
          "title": "Key Pair Generator",
          "description": "Generate a new Ed25519 key pair. Provide a seed for deterministic output, or omit for secure random."
        },
        {
          "name": "validate",
          "title": "Signature Validator",
          "description": "Validate an Ed25519 signature against a public key and message bytes."
        },
        {
          "name": "createAccount",
          "title": "Create Account",
          "description": "Create a new Convex account with the specified public key. Optionally fund via faucet (1 CVM = 1,000,000,000 copper, max 1 CVM)."
        },
        {
          "name": "describeAccount",
          "title": "Describe Account",
          "description": "Get account info: balance, sequence number, defined symbols with metadata."
        },
        {
          "name": "lookup",
          "title": "Symbol Lookup",
          "description": "Look up a symbol in a Convex account environment. Returns existence, value (with optional path navigation), and metadata."
        },
        {
          "name": "resolveCNS",
          "title": "Resolve CNS Name",
          "description": "Resolve a CNS name to its record: value (usually an address), controller, metadata, and child node."
        },
        {
          "name": "getTransaction",
          "title": "Get Transaction",
          "description": "Look up a transaction by hash. Returns signed data, consensus position, and execution result."
        },
        {
          "name": "getBalance",
          "title": "Get Balance",
          "description": "Get coin or token balance for an account. Returns balance in copper (1 CVM = 1,000,000,000 copper)."
        },
        {
          "name": "transfer",
          "title": "Transfer",
          "description": "Transfer CVM coins or fungible tokens to another account. Amounts in copper for CVM (1 CVM = 1,000,000,000 copper)."
        },
        {
          "name": "watchState",
          "title": "Watch State",
          "description": "Watch a path in the global CVM state for changes. Returns a watchId. Changes are delivered as SSE notifications on the session's GET /mcp stream. Requires an active session (Mcp-Session-Id)."
        },
        {
          "name": "unwatchState",
          "title": "Unwatch State",
          "description": "Stop watching state paths. Provide a watchId to remove a single watch, or a path to remove all watches whose path starts with the given prefix. At least one of watchId or path must be provided."
        },
        {
          "name": "signingServiceInfo",
          "title": "Signing Service Info",
          "description": "Check if the peer's signing service is available. No authentication required."
        },
        {
          "name": "signingCreateKey",
          "title": "Create Signing Key",
          "description": "Create a new Ed25519 key pair in the signing service. Private key stored encrypted server-side. Authenticated."
        },
        {
          "name": "signingListKeys",
          "title": "List Signing Keys",
          "description": "List all public keys stored in the signing service for the authenticated identity."
        },
        {
          "name": "signingSign",
          "title": "Sign with Stored Key",
          "description": "Sign hex-encoded bytes using a stored signing service key. Authenticated."
        },
        {
          "name": "signingGetJWT",
          "title": "Get Self-Signed JWT",
          "description": "Create a self-signed EdDSA JWT (did:key identity) using a stored signing key. Authenticated."
        },
        {
          "name": "signingTransact",
          "title": "Transact via Signing Service",
          "description": "Execute a Convex transaction using a stored signing key. Private key never leaves the server. Authenticated."
        },
        {
          "name": "signingCreateAccount",
          "title": "Create Account via Signing Service",
          "description": "Create a new signing key and on-chain account in one step. Optionally fund via faucet. Authenticated."
        },
        {
          "name": "signingListAccounts",
          "title": "List Signing Accounts",
          "description": "List signing keys and associated on-chain addresses for the authenticated identity."
        },
        {
          "name": "signingImportKey",
          "title": "Import Key (Signing Service)",
          "description": "Import an Ed25519 seed into the signing service. Elevated: first call returns confirmUrl for browser approval, retry with confirmToken."
        },
        {
          "name": "signingExportKey",
          "title": "Export Key (Signing Service)",
          "description": "Export (reveal) the private seed for a stored key. Elevated: first call returns confirmUrl, retry with confirmToken."
        },
        {
          "name": "signingDeleteKey",
          "title": "Delete Key (Signing Service)",
          "description": "Permanently delete a key from the signing service. Irreversible. Elevated: first call returns confirmUrl, retry with confirmToken."
        },
        {
          "name": "signingChangePassphrase",
          "title": "Change Passphrase (Signing Service)",
          "description": "Change the passphrase for a stored signing key. Elevated: first call returns confirmUrl, retry with confirmToken."
        }
      ]
    }
  },
  "url": "https://brittleboye.github.io/awesome-lattice/projects/mcp/convex-testnet-mcp/",
  "markdown": "https://brittleboye.github.io/awesome-lattice/projects/mcp/convex-testnet-mcp.md",
  "generated": "2026-04-19T08:15:29.504Z"
}