Skip to main content
Glama
xihongshi567

modou-tools-mcp

by xihongshi567

modou-tools-mcp

A global technology intelligence hub for Chinese developers.

An MCP server that, once installed into an Agent, can gather global technology intelligence: on the English side, check GitHub trends, arXiv papers, HN hot posts, Exa semantic search, SEC US stock filings; on the Chinese side, delve into 掘金, 知乎, B站, and A-share financial reports. All tools are zero API key, zero cost, and directly accessible from mainland China — this is the biggest difference from solutions like Exa / Firecrawl / Perplexity that require subscriptions and keys.

Quick Start (Cloud-Hosted Version)

In a client that supports MCP (Claude Code / Cherry Studio / Kimi Playground, etc.), add the following configuration to connect; no local installation of any dependencies is required:

{
  "mcpServers": {
    "modou-tools": {
      "command": "uvx",
      "args": ["modou-tools-mcp@latest"]
    }
  }
}

Related MCP server: Agent中国通

Local Deployment (Full Functionality)

The cloud-hosted version does not include local search for compatibility reasons (see Known Limitations). For full functionality, run locally:

# 本机 Python 环境(建议 3.10+)
pip install modou-tools-mcp
{
  "mcpServers": {
    "modou-tools": {
      "command": "uvx",
      "args": ["modou-tools-mcp@latest"]
    }
  }
}

Or run directly from the repository source (development mode):

git clone https://github.com/xihongshi567/modou-tools-mcp
cd modou-tools-mcp
pip install -e .
claude mcp add modou-tools -- python "D:/okok/modou-tools-mcp/src/modou_tools_mcp/server.py"

Tool List

Tool

Purpose

Network

web_search

Chinese web search (SearXNG aggregation, only available in local deployment)

Local

fetch_page

Web page content extraction, denoised Markdown output (trafilatura)

Direct

fetch_hot_topics

Hot list aggregation (知乎/B站/GitHub/HN)

Direct

github_search_repos / github_compare_repos

GitHub repository trends/comparison (60 req/h, 5,000 req/h with token)

Direct

arxiv_search

arXiv paper search (supports categories/advanced syntax, sorted by relevance or latest)

Direct

exa_search

English semantic search (Exa free endpoint, no key required)

Direct

juejin_recommended / juejin_by_category

掘金 tech community article discovery (recommended feed/category browsing)

Direct

sec_company_facts / sec_compare_companies

US stock financial reports (SEC EDGAR free)

Available, slower

cninfo_company_profile / cninfo_financial_analysis / cninfo_compare_companies

A-share financial reports (东方财富 public API)

Direct

parse_pdf

PDF report → Markdown + tables (PyMuPDF)

Local

All tools return a unified structure: success {"ok": true, ...}; failure {"ok": false, "error": "...", "detail": "..."}.

A Complete Scenario: Researching the “RAG Technical Direction”

When the Agent receives a research task, modou-tools provides end-to-end support:

  1. Kick off: use exa_search("retrieval augmented generation trends 2026") to gauge global trends

  2. Supplement with academic research: use arxiv_search("cat:cs.CL AND all:RAG") to see the latest papers

  3. Check the community: use juejin_recommended / fetch_hot_topics(zhihu) to see what's being discussed in China

  4. Fetch original text: use fetch_page(url) to get the full text of key articles

  5. Read reports: use parse_pdf(url) to parse PDF whitepapers

  6. Look up data: use github_search_repos("RAG framework") to check project popularity

Design Principles

  • Pure collection: no LLM processing (the Agent itself will summarize and distill), keeping the server lightweight

  • Zero dependencies: no keys required except for the optional GITHUB_TOKEN; Exa uses the official free endpoint

  • Errors don't interrupt: a single tool failure returns a structured error, and the Agent can try another route

Environment Variables

Variable

Description

Required

GITHUB_TOKEN

GitHub API token, increases the rate limit to 5,000 req/h

Optional

Development

# 离线冒烟(结构检查,不依赖网络)
python smoke_test.py

# 在线验证全部工具
python scripts/verify_online.py

Known Limitations

  • web_search depends on local SearXNG (docker start searxng); this tool is unavailable in the cloud-hosted version

  • GitHub without a token is limited to 60 req/h (returns a 403 notice when quota is exhausted); SEC occasionally returns 503 and can be retried; 东方财富 interface occasionally disconnects (built-in retry 3 times)

  • The Exa free endpoint has quota limits and may be throttled under heavy usage

  • 掘金's internal search API requires a logged-in state and is not provided; full text of 掘金 articles requires using fetch_page

  • Scanned PDFs return an is_scanned=true warning (no OCR)

Available Tools

15 tools
cninfo_company_profileCninfo Company ProfileB

查询 A股公司基本信息(东方财富公开接口)。

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes股票代码,A股 6 位,如 600519
marketNo市场,ashare(默认)ashare

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It indicates a query operation ('查询') and states the interface is public ('公开接口'), implying read-only behavior and no authentication. However, it does not mention rate limits, failure modes, data freshness, or what happens with invalid codes, leaving some behavioral uncertainty.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, compact sentence that conveys the core action, target, and data source with no redundant fluff. It is front-loaded with the main function, and the parenthetical source adds useful context without bloating the text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple lookup tool, the description covers the essential purpose and source, while the output schema and fully described parameters fill in return and input details. The main missing piece is usage differentiation from similar cninfo sibling tools, but the tool's simplicity keeps this from being a major gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both 'code' and 'market' parameters. The description adds no parameter-level detail, beyond confirming the general purpose. Baseline 3 is appropriate because the schema carries the semantic load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies a verb ('查询') and resource ('A股公司基本信息'), and identifies the data source as the Eastmoney public interface. It is contextually distinct from sibling tools like cninfo_financial_analysis and cninfo_compare_companies, though it does not explicitly name those alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives such as cninfo_financial_analysis or cninfo_compare_companies. There is no mention of when not to use it, nor any exclusions or conditions. The agent must infer usage from the tool name and sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cninfo_compare_companiesCninfo Compare CompaniesA

对比多家 A股公司最新财年核心指标。

ParametersJSON Schema
NameRequiredDescriptionDefault
codesYes股票代码列表,如 ["002230", "000063"]
yearsNo财年数,默认 1

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden, but it only states the action and says nothing about side effects, data source, delays, rate limits, or the read-only nature. An agent cannot tell from the description whether any side effects or limitations exist beyond the basic purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The entirety is a single 10-word sentence with no fluff. It is front-loaded with the main purpose and contains only essential information, making it highly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With both parameter and output schemas present, the description needs only to give essential context. It does state the market (A-share) and the comparison aspect, but it omits any caveats like the meaning of 'core indicators' or whether the tool is read-only, and it does not explain how years interacts with 'latest'. This suffices at a basic level but leaves gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters (codes and years) already described. The description adds only 'latest fiscal year' language, which could conflict with the years parameter allowing multiple years, and does not elaborate on what 'core indicators' means, so it provides no additional value over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (compare), the resource (multiple A-share companies), and the specificity of data (core indicators of the latest fiscal year). This distinguishes it from single-company tools like cninfo_company_profile and US-focused sec_compare_companies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly suggests using it when comparing multiple A-share companies' latest financial metrics, but it does not explicitly state when to use it over alternatives, mention exclusions, or provide any routing guidance relative to sibling tools like cninfo_financial_analysis.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cninfo_financial_analysisCninfo Financial AnalysisA

查询 A股公司财务分析指标(ROE/净利率/营收增速/毛利率/研发占比)。

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes股票代码,A股 6 位,如 002230
yearsNo返回最近 N 年,默认 3

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral disclosure burden. The verb 查询 ('query') conveys a non-mutating read operation, and the listed indicators clarify expected content. But the description does not disclose whether results are annual snapshots, how missing indicators like R&D ratio are handled, or whether there are data-coverage caveats.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that states the resource and then packs the key indicator examples into a parenthetical list. Every word earns its place; there is no repetition of the tool name or schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter tool with a full output schema and 100% parameter documentation, the description is mostly complete: it names the exact metrics and the schema covers accepted inputs. The only meaningful gap is the absence of selection guidance among sibling cninfo tools, which is a moderate completeness shortfall.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the code and years parameters are already fully documented in the schema. The description adds no parameter-specific meaning; the listed indicators are about the output, not the inputs, so it provides no additional parameter guidance beyond the schema's baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: query financial-analysis metrics for A-share companies, and it names the specific indicators returned (ROE, net margin, revenue growth, gross margin, R&D ratio). It does not explicitly differentiate it from sibling tools like cninfo_company_profile or cninfo_compare_companies, 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: an agent can infer to use this tool when it needs financial-ratio indicators for an A-share company, based on the indicator list. However, there is no explicit guidance about when to choose this over the sibling cninfo tools or web_search, so the guidance is not complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fetch_hot_topicsFetch Hot TopicsA

获取主流平台当前热搜榜单(zhihu 知乎 / bilibili B站 / github GitHub 趋势 / hackernews HN)。

ParametersJSON Schema
NameRequiredDescriptionDefault
platformsNo平台列表,不传则获取全部

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the behavioral burden. It clarifies it fetches current hot lists from named platforms)Skip. It does not mention failure modes, rate limits, live-source behavior, or output limitations, but for a simple fetch operation the core behavior is clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One concise sentence front-loads the action and then lists supported platforms. No waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with an output schema, the description adequately identifies the data source and platform set. It could mention expected use cases ('when user asks today's hot topics') or note live-source behavior, but it is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema only documents 'platforms' as a list with a default of all platforms. The tool description adds the allowed platform values (知乎/B站/GitHub趋势/HN), giving meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses a specific verb ('获取') and resource ('主流平台当前热搜榜单'), and enumerates the platforms (知乎, B站, GitHub趋势, Hacker News). It clearly states what the tool does, though it does not explicitly contrast with sibling search/recommendation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it (when hot topics from mainstream platforms are needed) and the schema adds default behavior (all platforms if not specified). However, it gives no explicit guidance on when to prefer this over siblings like web_search, juejin_recommended, or arxiv_search.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fetch_pageFetch PageA

抓取网页正文,自动去广告/导航/侧边栏,输出干净 Markdown(trafilatura)。

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes目标网页 URL
max_charsNo最大返回字符数,默认 8000,超长截断并标注
include_linksNo是否保留 Markdown 链接,默认 true

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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 key behavioral trait: it removes ads/navigation/sidebars and outputs clean Markdown, which is useful. However, it does not mention error handling, network requirements, or limitations (e.g., dynamic content). The description gives a reasonable overview but lacks depth for edge cases.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the primary action and output format. It includes the library name for specificity and contains no redundant words or filler. Every element earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is relatively simple, with three well-documented parameters and an output schema present. The description covers the core behavior (fetch and clean) but omits important operational details such as how the tool handles unreachable pages, timeouts, or non-HTML content. Given the absence of annotations, this is a moderate gap in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% — every parameter has a description in the schema, so the baseline is 3. The description does not add any additional parameter-level meaning beyond what the schema already provides; it only restates the tool's overall behavior. No extra semantic value is contributed, so the score stays at the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (抓取网页正文), the resource (web page), and the output format (干净 Markdown), with a specific mention of the library used (trafilatura). It also distinguishes itself from siblings like web_search (searching) and fetch_hot_topics (lists) by focusing on fetching a single page and cleaning it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for fetching a specific URL and cleaning it, but it does not explicitly state when to prefer it over alternatives like parse_pdf or web_search. There is no explicit 'when to use' or 'when not to use' guidance, so an agent must infer the appropriate context from the purpose alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

github_compare_reposGithub Compare ReposB

对比多个 GitHub 仓库的当前快照数据。

ParametersJSON Schema
NameRequiredDescriptionDefault
reposYes仓库全名列表,如 ["langchain-ai/langchain", "openai/openai-python"]

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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 only says the tool compares current snapshot data; it does not disclose whether the operation is read-only, whether authentication is needed, whether rate limits apply, or what behavioral side effects or constraints exist. This is minimal for a tool with no annotation support.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with no filler or redundant repetition of the title. It front-loads the core purpose and earns its place, though it is terse in other dimensions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only one parameter and an output schema present, the structural complexity is low and return-value details are covered elsewhere. However, the lack of usage guidance and behavioral context means the description is only minimally adequate for an agent deciding when and how to invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents the only parameter `repos` with an example, and schema description coverage is 100%. The description adds the context of comparing snapshots, but does not add meaning beyond the schema for the parameter itself, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('对比' / compare) and a specific resource ('多个 GitHub 仓库的当前快照数据' / current snapshot data of multiple GitHub repos). This distinguishes it from sibling github_search_repos, which is about searching repos rather than comparing existing repo snapshots.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool versus alternatives such as github_search_repos. The agent must infer usage from the tool name and sibling list; there is no explicit when-to-use or when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

github_search_reposGithub Search ReposA

搜索 GitHub 仓库趋势,把技术趋势翻译成数字(stars/forks/活跃度)。

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNo排序,stars(默认)/ forks / updatedstars
limitNo返回数量,默认 10
queryYes搜索关键词,如 "AI agent framework"

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses a behavioral trait: the tool focuses on quantitative metrics (stars/forks/activity) and trend analysis, which goes beyond a generic search. However, it doesn't mention rate limits, authentication, or return format, but given the output schema existshareholders, the core behavior is transparent enough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the purpose (trend search) and outcomes (quantitative metrics). It's efficient with no filler, earning a high score for its brevity and clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema (filling in return values), 3 well-documented parameters, and a straightforward search use case, the description suffices. It covers the core purpose and result orientation. Minor gaps like not mentioning comparison with siblings are offset by the existence of an output schema and simple parameter semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema documents all three parameters (query, sort, limit) with clear descriptions. The description adds a trend-oriented framing but doesn't add new parameter-level meaning beyond what's in the schema. Baseline 3 is appropriate since the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('搜索' - search) and resource ('GitHub 仓库趋势' - GitHub repository trends), and clarifies it translates trends into metrics (stars/forks/activity). It distinguishes from siblings by focusing on trend metrics rather than generic search or comparison, though it doesn't name a sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for exploring trends and quantifying popularity, but doesn't explicitly state when to use it vs. alternatives like github_compare_repos (for comparison) or web_search (for general web results). The trend-focused angle gives some guidance, but no exclusions or alternative names are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

juejin_by_categoryJuejin By CategoryB

按分类浏览掘金文章(ai / frontend / backend / android / ios / freebie / article)。

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo返回数量,默认 10,最大 20
categoryYes分类名

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden. It only restates the browse action and does not mention sorting, result shape, pagination, rate limits, or empty/error behavior. This is minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence with a parenthetical list of categories. It is front-loaded and contains no filler, so every part earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values do not need explanation. The description plus the input schema is adequate for a simple two-parameter call, but it lacks behavioral context and sibling differentiation, which matters because no annotations are present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds value by listing valid category values (ai/frontend/backend/android/ios/freebie/article), which the schema does not enumerate. Limit semantics are already covered by the schema's default and maximum.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('浏览'/browse) and resource ('掘金文章' Juejin articles), and it enumerates the supported categories. It does not explicitly distinguish itself from sibling tools like juejin_recommended, so it misses the top bar.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase '按分类浏览' implies category-based browsing, but there is no explicit guidance about when to use this tool versus alternatives such as juejin_recommended or fetch_hot_topics. Context is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

parse_pdfParse PdfA

解析 PDF 报告为 Markdown(保留表格),本地文件或在线 URL 均可。

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo在线 PDF 的 URL(与 file_path 二选一)
file_pathNo本地 PDF 路径(与 url 二选一)
max_pagesNo最大解析页数,默认 30
extract_tablesNo是否提取表格,默认 true

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of behavioral disclosure. It states the core function (parse to Markdown, preserve tables) but does not disclose potential issues like handling scanned PDFs, password protection, or error behavior. The presence of an output schema mitigates the lack of return-format details, but other behavioral traits remain undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is front-loaded with the core purpose and scope. Every word earns its place; there is no fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is relatively simple with four parameters, full schema coverage, and an output schema provided. The description covers the essential usage (local and URL, table preservation). Minor caveats like PDF size limits or authentication are not mentioned, but for typical use the description is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all four parameters (url, file_path, max_pages, extract_tables). The description does not add any extra meaning beyond the schema, but it also does not need to. Baseline 3 is appropriate given full coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource: parse PDF to Markdown, preserving tables, and explicitly supports both local files and URLs. It clearly distinguishes from siblings like fetch_page or web_search, which are for web content, not PDFs. The purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives context (local vs URL) but does not explicitly state when to use this tool over alternatives. It implies that for PDF files this is the tool, but no exclusions or alternative names are provided. The guidance is implicit rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sec_company_factsSec Company FactsB

查询美股公司财报(SEC EDGAR),拿营收/净利/研发支出等结构化数据。

ParametersJSON Schema
NameRequiredDescriptionDefault
cikNoCIK 代码,高级参数
yearsNo返回最近 N 财年,默认 3
tickerNo美股代码,如 AAPL(与 cik 二选一)
metricsNo关注指标,可选 revenue / net_income / gross_profit / rd_expense / eps

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the safety burden. '查询' clearly indicates a read-only retrieval, and '结构化数据' signals the output type. However, it does not disclose behavior around invalid identifiers, data freshness, rate limits, or the ticker-vs-cik requirement, leaving some behavioral uncertainty.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence with no filler. It front-loads the source (SEC EDGAR), the action (query), and the output type (structured financial data), earning every word.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema, return values need not be described. However, the description lacks usage boundaries and sibling differentiation, and the all-optional parameters (ticker vs cik) are not explained at the description level. It is minimally adequate but leaves selection and invocation decisions partially unsupported.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are already documented in the schema. The description adds examples ('营收/净利/研发支出') that map to the metrics parameter, but it does not add meaningful semantics beyond what the input schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb '查询' (query), the resource '美股公司财报(SEC EDGAR)', and the kind of data returned ('营收/净利/研发支出等结构化数据'). It is unambiguous about the tool's function, though it does not explicitly distinguish itself from the sibling sec_compare_companies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as sec_compare_companies, cninfo_company_profile, or web_search. There are no exclusions, prerequisites, or comparisons to siblings, so an agent must infer the appropriate context from the name and schema alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sec_compare_companiesSec Compare CompaniesA

对比多家美股公司同一财年的核心指标。

ParametersJSON Schema
NameRequiredDescriptionDefault
yearsNo财年数,默认 1
metricsNo关注指标,默认 revenue / net_income / rd_expense
tickersYes美股代码列表,如 ["MSFT", "AAPL"]

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the disclosure burden. It discloses the comparison scope and time alignment ('同一财年'), and the verb '对比' implies a read-only operation. However, it does not mention prerequisites, data source limitations, or behavior for invalid tickers, leaving some transparency gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. Every phrase contributes essential information: multiple companies, US market, same fiscal year, and core indicator comparison.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity, fully documented parameters, and existing output schema, the description is largely sufficient for invocation. It could mention alternative tools or limitations, but the combination of description and schema covers the essential invocation details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaningful context by specifying that companies are compared in the same fiscal year and by pointing to 'core indicators,' which aligns with the metrics default. This gives an agent more insight into how the parameters relate to each other.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action: comparing core indicators of multiple US-listed companies within the same fiscal year. The '美股' qualifier distinguishes it from sibling tools like cninfo_compare_companies, and '多家' distinguishes it from singular lookups such as sec_company_facts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: use this tool when comparing multiple US listed companies on their core metrics for the same fiscal year. It does not name alternatives or exclusions explicitly, but the context is specific enough that an agent should be able to select it appropriately.

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.

  1. 15 tool updatesv0.1.0
    • First observedarxiv_search
    • First observedcninfo_company_profile
    • First observedcninfo_compare_companies
    • First observedcninfo_financial_analysis
    • First observedexa_search
    • First observedfetch_hot_topics
    • First observedfetch_page
    • First observedgithub_compare_repos
    • First observedgithub_search_repos
    • First observedjuejin_by_category
    • First observedjuejin_recommended
    • First observedparse_pdf
    • First observedsec_company_facts
    • First observedsec_compare_companies
    • First observedweb_search

TDQS

B3.2/5.0

Scored across 15 tools

Disambiguation4/5

Tools are mostly distinct by source and purpose (search vs. compare vs. fetch vs. parse), but a few could be confused: web_search vs exa_search both handle search, and juejin_recommended vs juejin_by_category both return Juejin articles.

Naming Consistency3/5

All names use snake_casecars but follow inconsistent patterns: some are source_verb_object (github_search_repos), some are verb_object (fetch_page), and some are source_attribute (juejin_recommended, cninfo_company_profile). The naming is readable but not fully predictable.

Tool Count4/5

15 tools is at the upper boundary of a reasonable scope for a research/investment aggregation servercars. Each tool maps to a distinct data source or operation, though the count is getting close to heavy.

Completeness4/5

Covers searching, fetching content, financial data, and comparison workflows across multiple sources. Minor gaps exist (e.g., no explicit historical data beyond current snapshots, no saved/watchlist functionality), but core research workflows are complete.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server optimized for Chinese users that enables AI models to perform Bing searches and fetch webpage content without requiring an API key. It provides specialized tools for searching and scraping web data directly through supported AI environments like Claude or Cursor.
    41
    6
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    这是一个面向中文圈的MCP服务器,将中国互联网常用能力(如地图、快递、RSS、B站等)封装为标准MCP工具,方便AI Agent安全调用。
    13
    2
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server that aggregates AI news, academic papers from ArXiv, and trending GitHub repositories from multiple sources, enabling users to fetch, search, and filter recent AI content via natural language.
    1
    MIT