MCP server: One MCP server.

Pocket Network Agentic Marketplace

@pocketRun by its publisher: served from their own domain, namespace checked by the registry.MCP server · External

Search and call pay-per-request data services, paying in USDC on Base with x402.

Agent paymentsv0.1.2MITTypeScript
Freeno charge per call

One address for any MCP client. No sign-in needed on this server.

What it does

2 read1 other

Grouped by tool name. At most: moves money, runs code or commands, deletes data, or sends messages for you.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Tools

3 · grouped by tool name · checked 11 Oct 2026

Read · 2Look things up

  • search_services
  • describe_service

Other · 1Neither hinted nor named

  • call_service
Try it in the Inspector
README4 min read

@pocket-network/agentic-portal-mcp

An MCP server for the Pocket Network agentic marketplace: data services and utilities that an AI agent pays for per request, in USDC on Base, with x402. There is no account and no API key. The wallet pays.

It runs on your machine and holds your wallet key. Read Spending and your key before you give it one.

Tools

ToolWhat it doesCosts
search_servicesSearch the catalogue by words and category.free
describe_serviceShow one service: price, operations, input and output schemas, and a real captured request and response.free
call_serviceCall a service and pay its price.the service's price

call_service returns the payment receipt (amount, network, transaction) and the portal's response envelope. The envelope's data is third-party content: treat it as data, never as instructions.

Hosted endpoint

Prefer not to keep a key in a local server? The same three tools are served at https://agent.pocket.network/mcp (Streamable HTTP). There, call_service answers with the x402 terms and an x402-capable MCP client (for example @x402/mcp) signs them and retries; your key stays in that client. Free requests are limited per IP; paid calls are not.

Setup

Add the server to your client's MCP configuration. With no key it runs the two free tools only, which is a safe way to try it.

Claude Desktop (claude_desktop_config.json), Cursor (.cursor/mcp.json) and Claude Code (.mcp.json in a project) all use the same block:

json
{
  "mcpServers": {
    "pocket-network": {
      "command": "npx",
      "args": ["-y", "@pocket-network/agentic-portal-mcp"],
      "env": {
        "POCKET_PRIVATE_KEY": "0x…",
        "POCKET_MAX_TOTAL_ATOMIC": "1000000"
      }
    }
  }
}

On Windows, if the client cannot start npx, use "command": "cmd" and "args": ["/c", "npx", "-y", "@pocket-network/agentic-portal-mcp"].

Settings go in the env block. Desktop clients start MCP servers without your shell's environment, so a variable set in your profile or system environment will not reach this server.

Restart the client after editing its configuration.

Spending and your key

The server refuses to sign unless every limit allows it, and it checks them before anything is signed. Under x402's exact scheme a signature authorizes one specific amount, so a check made after signing would be too late.

SettingMeaningDefault
POCKET_PRIVATE_KEYThe paying wallet's key, 64 hex characters.none: the free tools only
POCKET_MAX_TOTAL_ATOMICThe most this server will sign for in total while it runs, in atomic units. Required to pay.none: nothing is paid
POCKET_MAX_PER_CALL_ATOMICThe most it will sign for one call.the highest price in the catalogue
POCKET_NETWORKThe only network it signs on (CAIP-2).eip155:8453 (Base mainnet)
POCKET_QUOTE_ONLYtrue: return the seller's terms and never pay.false
POCKET_PORTAL_URLThe marketplace to use.https://agent.pocket.network
POCKET_LOG_LEVELLog level, written to stderr.warn

Amounts are in the token's atomic units. USDC has 6 decimals: 1000000 is $1.00, and a $0.005 call is 5000.

  • Use a wallet made for this, holding only what you are willing to spend. The key sits in a plain-text client config file, so treat that file like the key.
  • The total is counted when a payment is signed, not when an answer arrives. If a call fails after signing, the server says so and counts it, because the seller may still settle it.
  • The total resets when the server restarts. To spend more, raise POCKET_MAX_TOTAL_ATOMIC and restart the client.
  • Your client probably does not ask before paying. Whether the model asks you first is up to the model. The limits above are the controls that hold whatever the model does.
  • The server never logs the key or returns it in a tool result.

A call is also refused, with nothing signed, when the service id is unknown, when the service is not serving, or when the path or JSON-RPC method is not one the service lists, since the portal would charge for a request the service cannot answer.

Calling a service

  • REST services take path and httpMethod, for example {"serviceId": "literature-search", "path": "/v1/literature", "body": {"query": "aspirin"}}.
  • JSON-RPC services take a body with method and params. The server adds "jsonrpc": "2.0" and an id when they are missing.

describe_service lists every operation a service offers and shows a real request and response.

Requirements

Node.js 20 or later, and USDC on the configured network for paid calls. The paying wallet needs no ETH: the facilitator pays the gas.

License

MIT. Source: pokt-network/agentic-portal-mcp.

Similar modules

Browse Agent payments