Chinese social media data for AI agents via MCP

Qovia is an MCP server: the agent searches for an endpoint, reads its parameters and calls it, so you do not write a tool for each platform. A framework without MCP can wrap the same HTTP endpoints as tool functions.

A new account gets 50 trial calls; after that, successful calls are billed from a prepaid balance. See pricing.

Connect over MCP with one command

Run this in Claude Code. Finding and reading endpoints needs no key; to call them, set up your API key as in the MCP docs. Cursor, VS Code and Claude Desktop setups are there too.

Shell
claude mcp add --transport http qovia https://api.qovia.ai/mcp

It exposes four tools: search_endpoints, get_endpoint, call_endpoint and get_account. Given a question, the AI finds the endpoint, reads its parameters and calls it. A conversation goes roughly like this:

Tool calls in one conversation
User: "What is Weibo talking about right now?"
→ search_endpoints {"query": "weibo hot search"}
→ call_endpoint {"endpoint_id": "raw.weibo.hot_search", "params": {}}
← data.items (rank, term, heat), meta.charged_usd

Without MCP: wrap an endpoint as a tool

This is one call to the Weibo hot search endpoint; put it inside a tool function in any framework. The key is in the environment variable QOVIA_KEY.

  1. One endpoint is one tool

    GET /v1/raw/weibo/hot_search takes no parameters and returns Weibo's realtime hot search board. Parameters and responses for every other endpoint are in the API reference; the full documentation is also available as plain text (llms-full.txt) and as an OpenAPI 3.1 spec, to load into a model's context or to generate tool definitions.

    Weibo hot searchGET /v1/raw/weibo/hot_search

    cURL
    curl https://api.qovia.ai/v1/raw/weibo/hot_search \
      -H "Authorization: Bearer $QOVIA_KEY"
    Python
    import os
    import requests
    
    resp = requests.get(
        "https://api.qovia.ai/v1/raw/weibo/hot_search",
        headers={"Authorization": f"Bearer {os.environ['QOVIA_KEY']}"},
        timeout=30,
    )
    resp.raise_for_status()
    body = resp.json()
    print(body["meta"]["charged_usd"], body["data"])

    The data in the response. The sample comes from the endpoint catalog, not live data; lists are cut to their first two entries and picture links are left out:

    200 OK
    {
      "data": {
        "items": [
          {
            "rank": 1,
            "word": "AG 退役",
            "heat": 1383391,
            "label": "新",
            "category": null,
            "is_topic": false,
            "url": "https://s.weibo.com/weibo?q=AG%20%E9%80%80%E5%BD%B9"
          },
          {
            "rank": 2,
            "word": "红果短剧自砍摇钱树",
            "heat": 1284794,
            "label": "热",
            "category": null,
            "is_topic": false,
            "url": "https://s.weibo.com/weibo?q=%E7%BA%A2%E6%9E%9C%E7%9F%AD%E5%89%A7%E8%87%AA%E7%A0%8D%E6%91%87%E9%92%B1%E6%A0%91"
          }
        ],
        "pinned": [
          {
            "rank": null,
            "word": "我们的长征路",
            "heat": null,
            "label": "热",
            "category": null,
            "is_topic": true,
            "url": "https://s.weibo.com/weibo?q=%23%E6%88%91%E4%BB%AC%E7%9A%84%E9%95%BF%E5%BE%81%E8%B7%AF%23"
          }
        ],
        "prov": {
          "hash": "0x91b7ec5e863c022e",
          "ts": "2026-10-21T23:50:00+08:00",
          "source": "live"
        }
      }
    }

More endpoints for this

FAQ

How do I add it to Claude Code?

Run claude mcp add --transport http qovia https://api.qovia.ai/mcp. Finding and reading endpoints needs no key; to call one, add your API key as an Authorization: Bearer header in the MCP config. A new account gets 50 trial calls.

Which clients work?

The MCP docs give setups for Claude Code, Cursor and VS Code, and Claude Desktop connects through mcp-remote. Any other MCP client that supports Streamable HTTP can connect to https://api.qovia.ai/mcp.

Which tools does the AI get?

Four: search_endpoints finds endpoints by keyword, get_endpoint reads the parameters and examples, call_endpoint runs one, and get_account shows the balance and per-minute limit.

How are MCP calls billed?

Exactly like the HTTP API: only successful calls that return data are charged, and empty results and errors are not. A new account gets 50 trial calls, then calls are billed from a prepaid balance. Prices are in the API reference and the plans on the pricing page.

Your agent only knows what you give it

Give it Douyin, Xiaohongshu (RedNote), WeChat and product reviews: structured, per call, nothing charged for failures.