A paid MCP server: market-intel tools your agent pays for per call

MCP (streamable-http) · x402 · USDC on Base · 2026-07-13

https://api.newsgurus.ai/mcp is a remote MCP server exposing the News Gurus intel endpoints as tools — the same five products as the HTTP API, paid per tool call in USDC on Base via x402. There is also one free tool, get_catalog, so any MCP client can inspect the menu without a wallet.

Connect (any MCP client — catalog tool is free)

{
  "mcpServers": {
    "newsgurus-intel": {
      "type": "http",
      "url": "https://api.newsgurus.ai/mcp"
    }
  }
}

With a standard client you can initialize, list tools, and call get_catalog. Paid tools return an x402 payment challenge — to complete those your client needs the x402 payment wrapper below.

Pay per tool call from Python (working code from our live smoke test)

pip install x402 mcp eth-account
import asyncio
from eth_account import Account
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
from x402.client import x402Client
from x402.mcp import x402MCPSession
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact import ExactEvmScheme

async def main():
    acct = Account.from_key("0xYOUR_BUYER_PRIVATE_KEY")
    client = x402Client()                # async client — the MCP wrapper needs it
    client.register("eip155:8453", ExactEvmScheme(signer=EthAccountSigner(acct)))

    async with streamablehttp_client("https://api.newsgurus.ai/mcp") as (read, write, _):
        async with ClientSession(read, write) as session:
            mcp = x402MCPSession(session, client)   # pays 402 challenges per call
            await mcp.initialize()
            free = await mcp.call_tool("get_catalog", {})       # $0
            paid = await mcp.call_tool("get_market_regime", {}) # $0.002 in USDC
            print(paid)

asyncio.run(main())
The wallet needs only USDC on Base — no ETH. Payment is the auth: there are no API keys anywhere in this flow, and the free get_catalog tool means agents can always window-shop first.

Why MCP instead of raw HTTP?