China PolicySignal
It is a remote MCP server for retrieval and discourse analysis over ~15,000 Chinese government/Party documents (2012–present), letting AI assistants search, retrieve, and track policy language with source-linked verbatim citations.
Search the corpus with full-text queries (AND/OR synonym sets), date/source filters, and relevance, newest, or oldest ordering.
Browse articles by time, source, or title substring.
Retrieve complete articles or close-read specific passages with surrounding context for exact, verifiable quotes.
Build evidence timelines of how a topic or framing evolves by year, quarter, or month.
Track phrase trends over time (coverage and intensity), including when phrases emerge, rise, fade, or disappear.
Scan for recently rising or newly appearing formulations as policy-signal indicators.
Inspect corpus coverage stats (total articles, date range, source distribution); incremental updates are disabled on the public endpoint.
Guided analytical prompts support evidence-first scenario research and event-prediction exercises with labeled confidence and falsification points.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@China PolicySignalTrack how 'whole-process people's democracy' appears in speeches over time."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
China PolicySignal
Search 14,966 Chinese government and Party documents from your AI assistant — Xi Jinping's speeches, articles, and official statements, 2012 to present, with verbatim source-linked citations.
Remote MCP server. Nothing to install, no API key — just a URL:
https://policy-signal.onrender.com/mcpListed in the official MCP Registry as io.github.acee-ventures/china-policy-signal.
中文说明见 README.zh.md · Full setup & tool reference: USER-GUIDE.md / 使用指南.md
What this is: a retrieval and discourse-analysis tool over publicly available official texts — it surfaces what was said, when, and how phrasing evolves, with verbatim, source-linked citations. What this is not: not a prediction service, not an endorsement, not a tool for profiling private individuals. Analytical outputs are labeled research inference, never fabricated quotes or claims of certainty. In the tradition of open China-studies tooling such as the China Media Project and CSIS Interpret: China.
Quick start
Claude Code (fastest):
claude mcp add --transport http --scope user policy-signal https://policy-signal.onrender.com/mcpClaude Desktop / ChatGPT / Cursor / VS Code / Cline / Windsurf: add a custom / remote MCP connector and paste the URL above (no authentication). Per-client steps in USER-GUIDE.md.
Then ask your assistant:
Find the source. "What has Xi said about AI governance? Quote the key passages with dates and source links."
Track a formulation. "Chart how often 新质生产力 (new quality productive forces) appears each year since 2012, and show me the document where it first emerged."
See framing evolve. "Build a timeline of how the framing around 共同富裕 (common prosperity) changed, citing one document per phase."
Each answer comes back with article IDs, publication dates, and links to the original — so every quote can be checked against the source.
Related MCP server: Bidding MCP Server
Capabilities
Tool | What it does |
| Full-text search (synonym/OR sets, time-sorted) with metadata filters |
| Retrieve a document / close-read a passage — the only source of verbatim quotes |
| Evidence timeline of how a topic's framing evolves year over year |
| Track a formulation's rise / fall / disappearance over time (tifa signal; zero-filled buckets so "no longer mentioned" is visible) |
| Scan for recently rising or newly appearing formulations |
| Coverage & freshness / incremental refresh (refresh disabled on the public endpoint) |
Two guided prompts — scenario_research(topic) and event_prediction(event) — walk a client model through an evidence-first method: build a timeline → compare formulations → close-read turning points → layered high/medium/low-confidence inference with explicit falsification points.
Method & guardrails
Every claim is anchored to a document (id + date + source URL). Verbatim quotes come only from
get_context/get_article, checked against the corpus.Facts vs. inference are labeled separately. The analytical prompts forecast themes, framing, and formulation priorities — never a verbatim script, a specific dated event, or a probability of an act.
Research framing. Outputs are documentary research over public statements, not prophecy.
Corpus & sources
Public official statements as published on open government sources; see SOURCES.md. The corpus stores document text and metadata for search and citation and is not offered as a bulk-download dataset; every result links back to its original publication. Usage limits and troubleshooting are in USER-GUIDE.md.
Disclaimer
Independent research infrastructure published by ACEE Ventures for educational and analytical use. It analyzes publicly available official statements and makes no claim to represent, predict, or endorse any person or government; it is not affiliated with or endorsed by any government or official body. Analytical outputs are research inference and should not be treated as factual predictions. See DISCLAIMER.md.
License
Code: MIT. Corpus text remains the property of its original publishers, used here for research and citation; this repository does not grant rights to redistribute source texts.
Maintained by ACEE Ventures.
Available Tools
9 toolscorpus_statsBInspect
语料库覆盖情况:总篇数、时间范围、来源分布、待抓取/失败数、站点总数对比。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosure. It does usefully enumerate the returned metrics (total count, time range, source distribution, pending/failed counts, site totals), which tells the agent what data to expect. However, it does not state whether the operation is read-only vs. side-effectful, nor does it clarify the meaning of 待抓取/失败 (pending/failed) which implies crawling activity that may relate to update_corpus.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence with the core concept (语料库覆盖情况) front-loaded, followed by a concrete metric enumeration. It is efficient with no filler. Slightly dense without grouping or punctuation breaks between the five listed items, but appropriately sized for a parameterless stats tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description provides sufficient coverage: it enumerates exactly what statistics the agent will receive. The main weaknesses are the vague '对比' and the unexplained pending/failed statuses, which would benefit from a note that this reflects background crawler state, but overall the agent can decide to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and an empty input schema, so the baseline of 4 applies. There is no parameter meaning the description needs to add, and the lack of argument documentation is not a gap here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear purpose: reporting corpus coverage (总篇数/time range/来源分布/待抓取-失败数/站点总数). It names the resource (corpus) and a specific set of metrics, distinguishing it from retrieval tools like list_articles, search, and get_article, which return article-level data rather than aggregate statistics. It loses a point because the trailing '对比' (comparison) is vague about what baseline the site totals are compared against.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. It does not explicitly frame itself as the corpus-level overview choice, nor does it mention that list_articles or search are for specific article retrieval. The metric list implies an analytics use case, but the agent must infer this rather than being told.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_articleAInspect
按 id 取一篇文章的完整元数据与全文。max_chars>0 时截断正文。
| Name | Required | Description | Default |
|---|---|---|---|
| max_chars | No | ||
| article_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full disclosure burden. It does add one valuable behavioral detail — the truncation rule when max_chars>0 — which is genuinely beyond what the schema states. However, it never explicitly declares the read-only nature of the operation or describes the response shape, so the disclosure is partial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with zero filler, front-loading the core purpose first and the parameter behavior second. Every clause earns its place and the content is immediately scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity two-parameter read tool this is largely sufficient: purpose and truncation behavior are stated. The gaps are that no output schema exists, so the agent cannot know which metadata fields return, and the description does not define the max_chars=0 meaning. These are minor for the typical call pattern but not fully covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for undocumented parameters. It adds real meaning for max_chars by explaining the truncation condition, which the schema's bare 'default: 0' does not convey. However, it leaves the zero/default case ambiguous (does max_chars=0 mean full text?) and does not clarify what fields constitute 'metadata', leaving article_id semantics implicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('取' - get/fetch), a specific resource (an article by id), and a specific scope ('完整元数据与全文' - complete metadata and full text). This clearly distinguishes it from siblings like list_articles (which retrieves collections, not single articles) and search (which queries rather than fetches by ID).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no context on when to use this tool versus its siblings. It does not mention that retrieval by ID is the right choice when a specific article pointer already exists, nor does it contrast with search or list_articles. An agent must infer the appropriate usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_contextAInspect
单篇精读:返回该文章中命中 query 的段落及前后 window 段上下文(带段号)。 需要逐字引用原话时,必须从这里或 get_article 的返回文本中原样复制。
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| window | No | ||
| article_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the core behavior — matching paragraphs plus a window of context and paragraph numbering — and the verbatim-quoting requirement. However, it does not disclose what happens on no match, whether the operation is purely read-only, or any rate/effort limits, which would be more material given zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler. The core purpose is front-loaded, and the quoting requirement is appended as a tight second sentence that earns its place. No redundant restating of the tool name or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a moderate-complexity tool (3 params, 2 required) with no output schema and no annotations, the description covers the essential call semantics: what is returned, how it is structured (paragraphs + window, with numbers), and when to use it for quoting. The only gaps are edge-case behaviors like no-match handling, which are non-critical for a straightforward close-reading operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the semantic of 'window' (the before/after context range) and 'query' (the matching basis for paragraphs); article_id is implied by '该文章'. This partially compensates for the missing schema docs, but it does not spell out window bounds, the query format, or the interaction between window and the returned segment count.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('returns paragraphs that hit the query in a single article') with a clear resource (article_id) and an explicit window-context behavior with paragraph numbers. The phrase '单篇精读' (single-article close reading) and the mention of get_article's returned text distinguish it from the full-article sibling, though it never names a sibling outright.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence gives actionable guidance: when verbatim quoting is required, copy the text from here or from get_article. This implies a usage context (close reading/quoting vs. search or list_articles) but provides no explicit when-to-use vs. when-not-to-use guidance relative to the search or get_article siblings that overlap with it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_articlesBInspect
按时间/来源/标题子串浏览语料库(不做全文匹配,浏览用)。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| source | No | ||
| date_to | No | ||
| date_from | No | ||
| newest_first | No | ||
| title_contains | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the burden of behavioral disclosure. It does disclose that the tool does not perform full-text matching, which is useful, but it fails to mention whether results include article content or just metadata, how pagination works, or any performance implications. For a tool with 7 parameters and no output schema, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that front-loads the primary purpose and key filters. There is no redundancy or filler; every word contributes to the meaning. This is exemplary conciseness, even if the brevity sacrifices detail elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, no schema descriptions, no output schema) and the need to understand what results are returned, the description is far from complete. It does not explain the output format, pagination semantics, or any expectations for date input. An agent would have to make many assumptions to invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for understanding the 7 parameters. It mentions time, source, and title substring, which maps to date_from/date_to, source, and title_contains, but omits limit, offset, and newest_first, and does not explain date formats or default behaviors. This is insufficient to guide correct parameter usage without further inference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists articles from a corpus, filtered by time, source, and title substring. It explicitly notes it does not do full-text matching, which differentiates it from the sibling 'search' tool. This is specific enough for an agent to understand the core function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase '浏览用' (for browsing) and the exclusion of full-text matching provide clear when-to-use guidance. It implies that for full-text search, the 'search' tool should be used instead, which effectively distinguishes it from the sibling. However, it does not explicitly name alternatives or edge cases, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
phrase_trendAInspect
提法(tifa)趋势:每个提法在各时间桶的覆盖率(articles/per100)与强度(per10k_chars)。 提法的出现、升温、降温、消失是可观察的政策信号(CMP 方法论);时间桶零填充,消失本身即信号。 注意:per100 对高频词(如单字"党")会饱和于 100,看强度变化用 per10k_chars;小桶(of<20)噪声大。 适合对比同义/竞争提法,如 ["高质量发展","高速增长"]。
| Name | Required | Description | Default |
|---|---|---|---|
| phrases | Yes | ||
| granularity | No | year |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and delivers richly: it discloses time-bucket zero-filling (disappearance itself a signal), the per100 saturation at 100 for high-frequency words, and the noise caveat for small buckets (n<20). These are exactly the behavioral traits an agent needs to interpret results correctly and are beyond anything in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and metrics are front-loaded, with caveats stacked afterward. Every sentence earns its place — saturation, noise, and zero-fill are all load-bearing. It is dense and slightly long, with several warnings packed together, but efficiency is strong overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description covers the essential semantics well: metrics, saturation, noise, zero-fill, and a usage example. The main gap is that the return/output format is never described, and the granularity parameter's accepted values are unstated. Still, an agent can likely call this correctly for its core use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It illustrates the 'phrases' parameter with concrete contrast examples (高质量发展 vs 高速增长) and clarifies time-bucket semantics, partially compensating. However, the 'granularity' parameter (default year) is never mentioned in the description, so one of two params remains undocumented beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: it computes per-phrase trend metrics (coverage articles/per100 and intensity per10k_chars) across time buckets. This is clearly distinct from siblings like search or get_article, which retrieve content rather than aggregate temporal signal. The CMP methodology framing further sharpens what the tool produces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a concrete recommended use case — '适合对比同义/竞争提法' (suitable for comparing synonymous/competing phrases) with an explicit example. However, it never names alternative tools or states exclusions, so an agent must infer when this beats a sibling like topic_timeline. Guidance exists but is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recent_signalsBInspect
新提法信号:近 days 天(上限365)相对之前 baseline_days 天(上限1095)基线明显升温 或全新出现的表述(锚定语料库最新文章日期)。baseline_count=0 即全新提法。 结果带 baseline_thin 标志,基线过薄时 ratio 仅供参考。用于预测前的信号扫描。
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | ||
| days | No | ||
| baseline_days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the scanning logic, limits, flags (baseline_thin), and the meaning of baseline_count, but does not state whether the tool is read-only or has side effects. The absence of any read-only/safety disclosure is a notable gap for a query-like tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph that front-loads the purpose and then details the logic. It is appropriately sized, though jargon-heavy, and every sentence adds functional value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, parameters, and output flags, but it does not specify the output format beyond the baseline_thin flag, nor how top affects results. For a specialized tool without an output schema, this is a moderate gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It explains days and baseline_days (including upper limits) and references baseline_count, but does not explain the top parameter or its role. It adds partial meaning but misses one of three parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool identifies new formulations that have warmed up or appeared recently relative to a baseline period, and it mentions the use case (prediction signal scanning). It is specific enough to distinguish from generic search, though it lacks an explicit verb like 'retrieve' or 'scan'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear context ('used for signal scanning before prediction') but does not explicitly state when to use this tool instead of siblings like phrase_trend or search. No exclusions or alternative routing guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchAInspect
全文检索语料库。query 支持多个词(空格分隔;mode="and" 全部命中 / "or" 任一命中, 可用于同义提法集合)。date_from/date_to 格式 YYYY-MM-DD;source 可选来源子串; order 可选 relevance/newest/oldest。返回 id、标题、日期、来源和命中片段。
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | and | |
| limit | No | ||
| order | No | relevance | |
| query | Yes | ||
| source | No | ||
| date_to | No | ||
| date_from | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden — and it delivers: it discloses multi-word query semantics (space-separated, mode=and requires all / or requires any, including the synonym-set use case), date format constraints (YYYY-MM-DD), substring matching behavior for source, the three ordering values, and the output fields (id, title, date, source, snippets). This is substantial behavioral disclosure for a search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense paragraph that front-loads the core purpose before adding parameter semantics. Every sentence adds value — no filler or repetition. It could be lightly reorganized, but it is efficient and skimmable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 7 parameters, no output schema, and no annotations, the description is notably complete: it specifies the return shape (id, title, date, source, snippets) and explains most parameter formats and options. The sole omission is the limit parameter's default/behavior, a minor gap relative to how well the rest of the contract is disclosed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it covers 6 of 7 parameters: query (space-separated multi-word), mode (and/or meaning), date_from/date_to (format), source (substring semantics), and order (allowed values). Only the limit parameter receives no semantic explanation. This goes well beyond the schema's bare defaults to add real meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear purpose — full-text search over the corpus (全文检索语料库) — with a specific verb and resource. It details the search mechanics (multi-word queries, and/or modes) which separates it from siblings like list_articles (listing) and get_article (single retrieval). It lacks an explicit named sibling differentiation, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied through mechanics: query syntax, date filters, source substring, and ordering options suggest when one would invoke it. However, the description never names alternatives or states when not to use it versus the eight siblings (e.g., list_articles for unfiltered listing, topic_timeline for temporal analysis). No explicit exclusion or routing guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
topic_timelineAInspect
主题证据时间线:按时间桶(year/quarter/month)返回该主题最相关的若干篇(含片段), 用于追踪他在某问题上表述的演变。研究特定场景/问题时先用这个建立证据骨架。
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| per_bucket | No | ||
| granularity | No | year |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure. It indicates the operation is a read/retrieve ('返回'), implying non-destructive, but it never explicitly states it does not modify data or that it is safe. It also doesn't mention authorization or side effects. Given the absence of annotations, the description is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long and packs a lot of information efficiently. It front-loads the core purpose and then adds usage advice. No unnecessary words or repetition, though the phrase '主题证据时间线' partly repeats the tool name. Overall, it is concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 3 parameters, no output schema, and no annotations. The description explains the general purpose but omits critical details like what the 'query' should contain (a topic presumably), the exact return format (beyond '若干篇含片段'), and how results are ordered. Without an output schema, the agent has no idea what the response structure will be, making it insufficient for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate for all parameters. It mentions 'year/quarter/month' which implicitly refers to the 'granularity' parameter, but it does not explain 'query' or 'per_bucket'. The word '若干篇' hints at 'per_bucket' but without naming it. The description leaves most parameter meanings undocumented, making it hard for an agent to know exactly what inputs to provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a topic timeline bucketed by year/quarter/month with relevant articles and snippets, for tracking evolution of a topic. It specifies the verb (returns), the resource (topic timeline), and the intended use case. It also hints at differentiating from siblings like 'search' by being the first step for research.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly recommends using this tool first when researching a specific scenario or question ('先用这个建立证据骨架'), providing clear context for when to use it. However, it does not mention when to avoid it or name alternative tools (e.g., 'phrase_trend' for trend analysis). The guidance is present but lacks exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_corpusAInspect
增量抓取:发现并抓取数据库尚未收录的最新文章。full=True 时重新走完整个列表 (仅初建/校对用,耗时长)。返回本次新增与当前库存统计。
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | ||
| max_articles | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It adds useful behavioral context: full mode is slow, and it discloses return value ('返回本次新增与当前库存统计'). However, it does not address side effects (articles written to DB), rate limits, or reversibility, which matter for a tool that mutates a corpus. It covers some traits but not enough for zero-annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences with zero filler; the primary purpose is front-loaded before the mode caveat. Slightly terse but efficient—every clause earns its place given there are only two parameters to cover.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with no annotations and no output schema, the description covers purpose, mode distinction, time-cost, and a return summary. The notable gap is max_articles, which has no explanation anywhere, and the return-value description is vague ('本次新增与当前库存统计' leaves the stats format unspecified). Adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the full parameter clearly (re-walks the entire list, slow, initial-setup-only), which is valuable. But max_articles (an integer with default 300, presumably a safety cap on batch size) is never mentioned, leaving a second parameter effectively undocumented at zero schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise verb+resource+scope: '增量抓取:发现并抓取数据库尚未收录的最新文章' (incremental fetch: discover and fetch the latest articles not yet cataloged). It clearly distinguishes the fetching/mutation role from the read-oriented siblings (search, get_article, list_articles, corpus_stats), so an agent can tell them apart immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear mode-selection guidance: it marks full=True as only-for-initial-setup/proofreading and explicitly warns it is time-consuming ('仅初建/校对用,耗时长'), which tells the agent when to avoid it. It does not explicitly name sibling alternatives or state when-not-to-use, but the context for the two modes is substantive and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
9 tool updates
v0.1.0- First observed
corpus_stats - First observed
get_article - First observed
get_context - First observed
list_articles - First observed
phrase_trend - First observed
recent_signals - First observed
search - First observed
topic_timeline - First observed
update_corpus
TDQS
Scored across 9 tools
Each tool serves a distinct purpose: search for full-text query, list_articles for metadata browsing, get_article for retrieval by ID, topic_timeline for temporal evidence, phrase_trend for phrase frequency, recent_signals for new phrase detection, get_context for passage extraction, corpus_stats for coverage, and update_corpus for crawling. No two tools overlap sufficiently to cause misselection.
All names use snake_case and are descriptive, but the pattern mixes verb_noun (get_article, list_articles, get_context, update_corpus) with noun phrases (topic_timeline, phrase_trend, recent_signals, corpus_stats) and a single verb (search). This is still readable and predictable, but not as uniform as a strict verb_noun convention.
9 tools is well-scoped for a specialized corpus analysis server. The set covers search, retrieval, browsing, temporal analysis, phrase trends, signal detection, context extraction, statistics, and updating, with no redundancy or missing essential operations.
The tool surface is comprehensive for the domain: full-text search, article retrieval, browsing, timeline construction, phrase trend analysis, new signal detection, contextual quoting, corpus statistics, and incremental updates. There are no obvious gaps that would hinder an agent's ability to conduct research on this corpus.
Maintenance
Related MCP Connectors
Cross-source search across 18 real-time data sources, source-cited and corroboration-checked.
Resolve, search and verify legal citations against the official sources, with provenance.
Official statistics, China censuses & yearbooks, and as-of customs tariffs with legal citations.
Global patent search, briefs, similarity, citations and landscape stats. Strong China coverage.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables search, exploration, and analysis of all QAnon posts for sociological study.82MIT
- FlicenseNot gradedqualityDmaintenanceProvides comprehensive access to Chinese bidding and tendering data, enabling users to search for companies, analyze bidding statistics, query tender announcements, and discover project opportunities for market analysis and business development.10-
- FlicenseAqualityCmaintenanceEnables semantic search and retrieval of Chinese judicial cases from the Supreme People's Court case library, supporting natural language queries for similar cases, case details, filtering, and statistics.89-
- AlicenseCqualityCmaintenanceEnables search and retrieval of speech turns from Korea's National Assembly records using Korean or English natural-language queries, with citation-ready context and tools for exploring committees and meetings.51Apache 2.0