MCP
Connect Qovia to Claude, Cursor, VS Code and other MCP clients so the AI can find and call 159 live data endpoints itself. Same API key, same billing as calling the API directly.
Server and auth
https://api.qovia.ai/mcp- Transport
- Streamable HTTP, stateless: every request stands alone and is answered with JSON; no session, no long-lived stream.
- Auth
- The same key as the API, in a header of the MCP connection:
Authorization: Bearer sk-qovia-…(orx-api-key). Searching and reading endpoints needs no key; calls and the account check do.
Connect a client
Put your own key in the config below, restart the client, and qovia shows up among its tools.
Claude Code
claude mcp add --transport http qovia https://api.qovia.ai/mcp \ --header "Authorization: Bearer $QOVIA_KEY"
Cursor
{
"mcpServers": {
"qovia": {
"url": "https://api.qovia.ai/mcp",
"headers": {
"Authorization": "Bearer sk-qovia-…"
}
}
}
}VS Code
The key is asked for on first use and never written to the file:
{
"servers": {
"qovia": {
"type": "http",
"url": "https://api.qovia.ai/mcp",
"headers": {
"Authorization": "Bearer ${input:qovia-key}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "qovia-key",
"description": "Qovia API key",
"password": true
}
]
}Claude Desktop
Claude Desktop's remote connectors use OAuth, so bridge with mcp-remote (needs Node.js):
{
"mcpServers": {
"qovia": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.qovia.ai/mcp",
"--header",
"Authorization:${QOVIA_AUTH}"
],
"env": {
"QOVIA_AUTH": "Bearer sk-qovia-…"
}
}
}
}Any MCP client with Streamable HTTP works: use the URL above and add the header Authorization: Bearer sk-qovia-….
Tools
By default the AI gets four tools, so the catalog never crowds its context: find, read the parameters, then call.
| Tool | What it does | Key |
|---|---|---|
search_endpoints | Find endpoints by keyword (Chinese or English) and platform: ids, titles, price per call and whether each is live. | No |
get_endpoint | One endpoint in full: description, parameters (JSON Schema), example parameters, a response example and the price. | No |
call_endpoint | Run an endpoint: the data plus billing meta (charged_usd, balance). | Yes |
get_account | The key's balance and plan. Not charged. | Yes |
Direct tools
To give the AI the endpoints themselves, add ?tools=all, or only some platforms:
https://api.qovia.ai/mcp?tools=douyin,kuaishouEvery live endpoint then becomes a tool named after its id with dots as underscores (raw.douyin.video → raw_douyin_video), taking the endpoint's own parameters. The four default tools stay.
Example
Given a data question, the AI usually goes like this:
User: "How many likes and comments does Douyin video 7681194457378688292 have?"
→ search_endpoints {"query": "douyin video"}
→ get_endpoint {"endpoint_id": "raw.douyin.video"}
→ call_endpoint {"endpoint_id": "raw.douyin.video", "params": {"item_id": "7681194457378688292"}}
← data.metrics.likes / comments, meta.charged_usd = 0.0005Billing and safety
- Every MCP call runs the same pipeline as the API: auth, scopes, parameter checks, billing and the usage log are identical.
- Only successful calls that return data are charged; empty results and failures are not charged. Calls are paid from the account's prepaid balance.
- There are no rate limits; MCP calls are not limited, just like the API.
- Errors come back as tool errors with
error.code(the API's error codes) and the HTTP status, plusretry_after_secondswhen the server asks you to wait.
Create a separate API key for AI tools, scoped to the endpoints they need. Revoke it in the console whenever you like without touching your other integrations.
By platform and use case
The MCP setup, endpoint list and a real example for each platform:
- Douyin MCP server
- Xiaohongshu (RedNote) MCP server
- Weibo MCP server
- Kuaishou MCP server
- Bilibili MCP server
- WeChat Official Accounts & Channels MCP server
- Zhihu MCP server
By use case, including how to give an AI agent this data: