<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Qovia</title>
    <description>The latest articles on DEV Community by Qovia (@qovia).</description>
    <link>https://dev.to/qovia</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4205400%2F369e17e4-3178-4986-9247-f37cfe087dea.png</url>
      <title>DEV Community: Qovia</title>
      <link>https://dev.to/qovia</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/qovia"/>
    <language>en</language>
    <item>
      <title>Giving Claude access to Xiaohongshu, Douyin and Weibo with one MCP server</title>
      <dc:creator>Qovia</dc:creator>
      <pubDate>Sat, 24 Oct 2026 19:58:49 +0000</pubDate>
      <link>https://dev.to/qovia/giving-claude-access-to-xiaohongshu-douyin-and-weibo-with-one-mcp-server-5h1m</link>
      <guid>https://dev.to/qovia/giving-claude-access-to-xiaohongshu-douyin-and-weibo-with-one-mcp-server-5h1m</guid>
      <description>&lt;p&gt;If you work on anything that touches the Chinese internet (brand monitoring, influencer research, market research), sooner or later you need data from Xiaohongshu (RedNote), Douyin, Weibo or Bilibili. And then you find out that each of them has its own app-only APIs, request signing, rate limits and field names, and that they change every few weeks.&lt;/p&gt;

&lt;p&gt;This post shows how to skip all of that and let an AI agent (Claude Code, Cursor, VS Code) pull that data directly, through one remote MCP server: &lt;a href="https://qovia.ai" rel="noopener noreferrer"&gt;Qovia&lt;/a&gt;. Disclosure: I'm the maker.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you get
&lt;/h2&gt;

&lt;p&gt;One MCP endpoint, &lt;code&gt;https://api.qovia.ai/mcp&lt;/code&gt;, that covers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Chinese platforms:&lt;/strong&gt; Douyin, Xiaohongshu, Bilibili, Weibo, Kuaishou, Zhihu, Toutiao, plus Taobao/Tmall and JD.com product reviews&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Global platforms:&lt;/strong&gt; TikTok, YouTube, Instagram and X&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are 100+ endpoints underneath (posts, comments, creator profiles, hot lists, search), and they all return the same record shape. A Xiaohongshu note and a Weibo post both come back with &lt;code&gt;id&lt;/code&gt;, &lt;code&gt;platform&lt;/code&gt;, &lt;code&gt;text&lt;/code&gt;, &lt;code&gt;author&lt;/code&gt;, &lt;code&gt;metrics&lt;/code&gt; and a platform-specific &lt;code&gt;extra&lt;/code&gt;, so the agent can compare them without per-site parsing.&lt;/p&gt;

&lt;p&gt;The server only exposes four tools, so it doesn't flood the agent's context with 100+ schemas:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;th&gt;Needs a key&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;search_endpoints&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Find endpoints by keyword (English or Chinese) or platform&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;get_endpoint&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Parameters, a response example and the price of one endpoint&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;call_endpoint&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run it&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;get_account&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Balance and rate limit&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Setup
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Claude Code&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude mcp add &lt;span class="nt"&gt;--transport&lt;/span&gt; http qovia https://api.qovia.ai/mcp &lt;span class="nt"&gt;--header&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &lt;/span&gt;&lt;span class="nv"&gt;$QOVIA_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Cursor&lt;/strong&gt; (&lt;code&gt;~/.cursor/mcp.json&lt;/code&gt;)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"qovia"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://api.qovia.ai/mcp"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"headers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"Authorization"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Bearer sk-qovia-..."&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;VS Code&lt;/strong&gt; (&lt;code&gt;.vscode/mcp.json&lt;/code&gt;). This one prompts for the key instead of writing it to the file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"servers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"qovia"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"http"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://api.qovia.ai/mcp"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"headers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"Authorization"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Bearer ${input:qovia-key}"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"inputs"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"promptString"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"qovia-key"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Qovia API key"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"password"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can try the discovery part before signing up: leave the header out, and &lt;code&gt;search_endpoints&lt;/code&gt; and &lt;code&gt;get_endpoint&lt;/code&gt; still work. To fetch actual data you need a key from the &lt;a href="https://qovia.ai/console/?tab=keys" rel="noopener noreferrer"&gt;console&lt;/a&gt;; new accounts get 50 trial calls.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it looks like in practice
&lt;/h2&gt;

&lt;p&gt;Say you ask Claude Code:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What are people on Xiaohongshu saying about matcha lattes this week? Summarize the main complaints.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The flow of tool calls looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;search_endpoints {"query": "xiaohongshu search"}
  → raw.xiaohongshu.search, raw.xiaohongshu.note, raw.xiaohongshu.comments, ...
get_endpoint {"endpoint_id": "raw.xiaohongshu.search"}
  → params: keyword (required), sort (general | latest | most_liked | ...), page
call_endpoint {"endpoint_id": "raw.xiaohongshu.search",
               "params": {"keyword": "抹茶拿铁", "sort": "latest"}}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Make sure the keyword ends up in Chinese (抹茶拿铁 rather than "matcha latte"). On Xiaohongshu a Chinese keyword matches far more content than an English one, and telling the agent so in your prompt is usually enough. Each item has this shape (trimmed, numbers from the docs example):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"soc_xia_..."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"platform"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"xiaohongshu"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"lang"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"zh-CN"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"text"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"..."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"author"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"nickname"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"..."&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"metrics"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"likes"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;11045&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"comments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1072&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"saves"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1153&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"shares"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;359&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"extra"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://www.xiaohongshu.com/explore/..."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"title"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"..."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"note_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"image"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;From there the agent can pull comments for the top notes with &lt;code&gt;raw.xiaohongshu.comments&lt;/code&gt; and write the summary. One prompt, no scraper to maintain.&lt;/p&gt;

&lt;p&gt;A few other prompts that work well:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"What's on the Weibo and Douyin hot lists right now? Group the topics by theme."&lt;/li&gt;
&lt;li&gt;"Compare the followers and recent video performance of these three Douyin creators: [links]."&lt;/li&gt;
&lt;li&gt;"Pull the JD.com reviews for [product link] and list the most common complaints."&lt;/li&gt;
&lt;li&gt;"Search Chinese social media and news for mentions of [brand] in the last 7 days, broken down by platform and sentiment."&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The last one uses a cross-platform search endpoint that covers about 10 kinds of Chinese sources in one call (Weibo, Douyin, Xiaohongshu, Toutiao, WeChat articles, news sites, forums and more), with date, platform and sentiment filters.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two tips
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;If you want typed tools instead,&lt;/strong&gt; connect to &lt;code&gt;https://api.qovia.ai/mcp?tools=all&lt;/code&gt;, or narrow it with &lt;code&gt;?tools=douyin,bilibili&lt;/code&gt;. You then get one tool per endpoint (&lt;code&gt;raw_douyin_video&lt;/code&gt; and so on). That costs more context but saves a round trip.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Give the agent its own key.&lt;/strong&gt; In the console you can create a key limited to the platforms it needs and revoke it whenever you like, without touching your other integrations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Without MCP
&lt;/h2&gt;

&lt;p&gt;It's the same thing as a plain HTTP API, if you'd rather call it from code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="s2"&gt;"https://api.qovia.ai/v1/raw/xiaohongshu/search?keyword=咖啡"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &lt;/span&gt;&lt;span class="nv"&gt;$QOVIA_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There's an &lt;a href="https://qovia.ai/openapi.json" rel="noopener noreferrer"&gt;OpenAPI spec&lt;/a&gt; and an &lt;a href="https://qovia.ai/llms.txt" rel="noopener noreferrer"&gt;llms.txt&lt;/a&gt; if you want to hand the whole API to a model.&lt;/p&gt;

&lt;h2&gt;
  
  
  Billing and limits
&lt;/h2&gt;

&lt;p&gt;You pay per successful call that returns data, from a prepaid balance. Empty results and errors are not charged, and every response tells you what it cost (&lt;code&gt;meta.charged_usd&lt;/code&gt;). MCP calls are billed exactly like the HTTP API.&lt;/p&gt;

&lt;p&gt;It only covers publicly available content (no private accounts, no DMs), and how you use the data is up to you under the rules that apply to you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Docs: &lt;a href="https://qovia.ai/docs/mcp/" rel="noopener noreferrer"&gt;https://qovia.ai/docs/mcp/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Platform list: &lt;a href="https://qovia.ai/coverage/" rel="noopener noreferrer"&gt;https://qovia.ai/coverage/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Configs and a small Python SDK: &lt;a href="https://github.com/qovia/qovia-mcp" rel="noopener noreferrer"&gt;https://github.com/qovia/qovia-mcp&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If there's a platform or field you need that isn't there, tell me in the comments.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This article was written with the help of AI.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>ai</category>
      <category>api</category>
      <category>webscraping</category>
    </item>
  </channel>
</rss>
