Connect your AI assistant to public data in one line

A hosted MCP server with eleven tools. Add one URL and one header, and the assistant can find endpoints, read their contracts and fetch data from hundreds of platforms with your key.

Connect in one line#

Set your key once (PowerShell: $env:ONEKEY_KEY = "..."), then add the server. In Claude Code:

shell
export ONEKEY_KEY="YOUR_API_KEY"
claude mcp add --transport http onekey https://api.onekey.dev/mcp --header "Authorization: Bearer $ONEKEY_KEY"

That is the whole setup. The server speaks Streamable HTTP, is stateless and answers in JSON, so there is nothing to install and no process to keep running. Any client that lets you set one header works; here are the two others most people use.

Cursor#

In ~/.cursor/mcp.json, or .cursor/mcp.json in a project:

json
{
  "mcpServers": {
    "onekey": {
      "url": "https://api.onekey.dev/mcp",
      "headers": { "Authorization": "Bearer ${env:ONEKEY_KEY}" }
    }
  }
}

Claude Desktop#

Add it under Settings, Connectors, if your build accepts a custom URL with a custom header. If it does not, bridge it with mcp-remote in claude_desktop_config.json:

json
{
  "mcpServers": {
    "onekey": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://api.onekey.dev/mcp", "--header", "Authorization: Bearer ${ONEKEY_KEY}"],
      "env": { "ONEKEY_KEY": "YOUR_API_KEY" }
    }
  }
}

Full connection details, protocol versions and the exact result shape are on the MCP docs page; guides for other tools are on Integrations.

The eleven tools#

There are eleven tools, deliberately not one per endpoint, so the tool list stays small however many endpoints exist (1,995 today). An assistant finds an endpoint with search_endpoints, reads its contract with describe_endpoint, then runs it with call_endpoint.

ToolCostWhat it does
list_platformsFreePlatforms grouped by category, with endpoint counts.
search_endpointsFreeKeyword, platform or category search of the catalog: id, credits and a short summary.
describe_endpointFreeOne endpoint's parameters, credits, response fields, cache freshness and paging.
call_endpointThe endpoint's priceRuns an endpoint. The same as GET /v1/{platform}/{endpoint}.
lookup_urlThe resolved endpoint's pricePaste a public URL; the matching endpoint is chosen for you. See URL lookup.
search_multiSum of the legsOne query on several platforms, optionally fused. See multi-platform search.
creator_cardSum of the legsOne handle across platforms.
search_universalSum of the legs runA query in words; the planner picks the platforms. See universal search.
reportSum of the legsBrand mentions, creator vet or demand signals. See reports.
get_statusFreeLive platform health.
get_creditsFreeYour balance, and this key's credit limit and use.

The five free tools are marked read-only; the six that spend credits are not. Prices are the flat per-endpoint credits from Credits & pricing: a cache hit is free and a failed call is refunded.

How a request goes#

Ask an assistant "what does GitHub's latest release call cost, and check facebook/react". It typically does this, and the first two steps are free:

  1. search_endpoints finds the candidate. Recorded from the dev API with {"query": "latest release", "platform": "github", "limit": 3}:
json
{
  "total": 3,
  "shown": 3,
  "results": [
    { "id": "github.latest_release", "credits": 1.0, "summary": "Latest published release of a GitHub repository." },
    { "id": "github.release_by_tag", "credits": 1.0, "summary": "A GitHub release by tag name." },
    { "id": "github.releases", "credits": 1.0, "summary": "Releases of a GitHub repository." }
  ]
}
  1. describe_endpoint returns the parameters (owner, repo), the price and the response fields.
  2. call_endpoint runs it and returns the standard response format plus credits_used and credits_remaining.

Check the connection for free#

This asks for your balance, which costs nothing, and proves the URL, the header and the key without a client:

shell
curl -s https://api.onekey.dev/mcp \
  -H "accept: application/json, text/event-stream" \
  -H "content-type: application/json" \
  -H "authorization: Bearer $ONEKEY_KEY" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_credits","arguments":{}}}'

The answer has credits_remaining, blocked, key_credit_limit and key_credits_used.

A small tool list#

The whole tools/list answer is about 6 KB of JSON, and a test in the backend keeps it under 6 KB, so connecting an assistant does not fill its context with tool definitions. A result is shortened to about 30,000 characters (truncated says so) by halving the longest list, so the JSON stays valid. Errors come back as tool errors with the REST error type, a doc_url and a hint a model can act on (see For AI agents).

Agent Skill#

The repository ships an Agent Skill for the same workflow: when to use a URL lookup, how to search then describe then call, how to read credits, how to page, and what to do for each error type. It uses the MCP tools when they are connected and the REST API when they are not.

The skill is not published anywhere yet, so there is no download link. Until it is, the system prompt on the AI agents page covers the same ground.

Costs and limits#

Honest status#