Skip to main content
Glama

smppw-mcp

私募排排网(simuwang.com)MCP Server。提供 9 个结构化工具,将基金/公司查询、排行榜分页、净值与产品要素、风险收益指标、月/季/年度收益序列、规模变动等查询能力接入 LLM/Agent。

兼容 Antigravity、Claude Code、Cursor、Copilot 等支持 MCP 的 Agent。当前仅在个人版账号中验证通过。

在开始之前

请先注册 私募排排网 账号,并完成合格投资者认证。

合格投资者应具备相应的风险识别能力和风险承受能力,具有 2 年以上投资经历,并满足以下任一条件:

  1. 近 3 年个人年均收入不低于 50 万元;

  2. 个人金融资产不低于 300 万元,或家庭金融净资产不低于 300 万元,或家庭金融资产不低于 500 万元。

Related MCP server: eastmoney-skills2mcp

工具

工具

说明

set_token

保存登录态(浏览器 cookie 中 http_tK_cache 的值),写入 ~/.ppw-mcp.json

check_auth

验证登录态是否有效

search_funds

按名称搜索基金(fund_id、公司、经理、收益、回撤摘要)

search_companies

按名称搜索私募公司

get_ranking(page)

排行榜(可翻页,约 3460 只),每条含期末净值 nav + 各期收益

get_fund

基金详情:当前净值(含日期、今年以来/成立以来收益) + 策略/托管/备案等要素 + 公司与经理

get_fund_performance

指标(收益/年化/Alpha/回撤/夏普/贝塔)+ 各区间收益与基准对照 + 周胜率

get_fund_returns

收益序列:月度 / 季度 / 年度(含基准对照,年度含同类排名)

get_fund_asset_size

基金规模变动序列

典型用法:search_funds 找到 fund_id → get_fund 看净值与要素 → 需要时拉收益序列或指标。

快速开始

要求 Python ≥ 3.10。

git clone https://github.com/SuperLangdon/smppw-mcp.git
cd smppw-mcp
pip install -e .

获取登录态(一次性)

查询净值与业绩需要排排网合格投资者认证账号:

  1. 浏览器登录 simuwang.com(需已完成合格投资者认证)

  2. F12 → 应用 → Cookie → 复制 http_tK_cache 的值

  3. 两种方式提供给 server:

    • 对 MCP 客户端说 set_token <粘贴值>(保存到 ~/.ppw-mcp.json)

    • 或设置环境变量 PPW_TOKEN

登录态过期后重新登录、更新一次即可。

MCP 客户端配置

{
  "mcpServers": {
    "ppw": {
      "command": "python",
      "args": ["-m", "ppw_mcp.server"],
      "env": { "PYTHONIOENCODING": "utf-8" }
    }
  }
}

技术说明

数据来源两条通道:

  1. SSR 页面(dc.simuwang.com):Nuxt 3 服务端渲染,数据在 __NUXT_DATA__ 扁平 payload 中明文内嵌(ppw_mcp/nuxt.py 还原)。

  2. sppwapi(sppwapi.simuwang.com/sun/*):JSON API,响应为动态 AES 加密。ppw_mcp/crypto.py 复刻了站点前端的解密链:响应携带 混淆 JS 形式的动态 key → 按 encode 编号变形 → MD5(key) 作 AES-256-CBC key、其后 16 位作 IV → 双重 base64 密文解密。

登录态由单个 cookie http_tK_cache 承载;部分接口需要 USER_ID, 由 getUserInfoApi 自动获取并缓存。

已知限制

  • 当前净值的覆盖范围:get_fund 的净值来自排行榜接口(fundRankV3 keyword 反查),覆盖榜单内约 3460 只基金;未上榜基金(无有效业绩区间)详情页净值被站方图片化,返回 null。

  • 日度净值曲线(fundNavTrend)请求参数为 sdata 加密(算法已逆向:AES key = MD5(cookie 8hIn9IA),双层 base64),但服务端对该请求做了会话/指纹级绑定,浏览器外重放会被拒绝("参数错误 1")。已用 performanceRangeV2 提供月度/季度/年度收益序列;配合初始净值 1.0 可合成累计净值走势。

  • 登录态 http_tK_cache 会被服务端轮换,保存的旧值通常继续有效;若 check_auth 报失效,重新登录后更新一次 token。

  • 站方若调整加密方案或页面结构,crypto.py / nuxt.py 需同步更新。

免责声明

  • 本项目仅供个人学习研究与查询账号权限内的数据,请勿用于批量抓取、商业用途或向他人提供数据服务。

  • 私募基金业绩与其他非公开信息仅向合格投资者展示为监管要求(见 《私募投资基金监督管理暂行办法》),使用时请务必确保合规性。

  • 数据归私募排排网所有,本项目不对数据的准确性、完整性作任何保证;过往业绩不预示未来表现,不构成投资建议。

  • 本项目的逆向分析仅用于实现个人账号数据的程序化读取,不试图绕过任何付费机制、登录权限或访问控制。本项目为非官方、非授权项目,具有一定逆向工程与自动化访问性质,可能违反私募排排网的 服务条款(ToS)。本项目与私募排排网无任何关联,亦未获其授权或认可。使用者应自行评估合规风险,并自行承担使用本项目所产生的一切后果,包括但不限于账号限制、服务中断、数据丢失及法律责任。

License

MIT

Available Tools

9 tools
check_authB

验证排排网登录态是否有效(合格投资者数据是否解锁)。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It discloses the core check (login state validity and qualified-investor data unlock), which is useful. However, it does not state what the tool returns, whether it has side effects, or what happens if the check fails.

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 purpose and the key contextual detail (qualified investor data unlock). It is appropriately sized and contains no filler.

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?

For a simple zero-parameter auth check with no output schema, the description explains what is being verified but omits what the result looks like and how to act on it. The parenthetical clarifies the gated data, but an agent still lacks return-value context.

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 tool takes zero parameters, so there is no parameter semantics to document. The baseline score for zero-parameter tools is 4; the description adds no parameter-related detail because none is needed.

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 (验证/verify) and resource (登录态/login state) and adds the context that it checks whether qualified investor data is unlocked. It is clearly distinct from set_token in the sibling list, though it does not explicitly name 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 explicit guidance on when to call this tool versus set_token or other siblings. Usage is only implied by the purpose — an agent can infer it checks authentication status, but there is no 'use before X' or 'if invalid, do Y' instruction.

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

get_fundA

查询基金详情(fund_id 形如 HF0000DEHO,可先用 search_funds 检索)。

返回当前净值 nav(含净值日期、今年以来/成立以来收益)、基本信息 (策略、成立日、开放日、托管人、备案号、投资范围)、管理公司与经理。 nav 为 None 表示该基金未进排行榜(站方对详情页净值做了图片化)。

ParametersJSON Schema
NameRequiredDescriptionDefault
fund_idYes

TDQS

A3.6/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 usefully discloses a non-obvious edge case (nav=None when the fund is absent from the ranking because the site image-ized the nav), but it is silent on auth/permission needs despite set_token/check_auth siblings implying a gated API.

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?

Front-loaded with purpose and the id format, then return contents and the None edge case. The enumeration of returned fields (strategy, inception date, custodian, filing number, etc.) is somewhat long but each item is informative for a tool with no output schema.

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?

With no output schema, the description responsibly enumerates the return payload and flags the nav=None caveat, which is exactly the missing structured information. The main remaining gap is auth expectation, which the sibling tools imply but the description never states.

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 0% and the single fund_id param is bare. The description compensates by giving an example identifier shape and telling the agent how to obtain a valid id via search_funds, adding meaning well beyond the empty 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?

States a specific verb+resource (query fund details) and pins the fund_id format with a concrete example (HF0000DEHO). It distinguishes itself from search_funds but not from close siblings like get_fund_returns, get_fund_performance, and get_fund_asset_size, whose data this description says it also returns (nav, YTD/inception returns).

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 parenthetical '可先用 search_funds 检索' gives a clear prerequisite/alternative for obtaining the id, which is real guidance. However, it offers no when-not-to-use or routing against the overlapping performance/returns/asset-size siblings, leaving usage only partially explicit.

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

get_fund_asset_sizeC

查询基金规模变动序列(各期规模与环比变化)。

ParametersJSON Schema
NameRequiredDescriptionDefault
fund_idYes

TDQS

C2.8/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 does reveal the shape of the returned series (per-period size plus period-over-period change), which is useful, but says nothing about read-only status, authentication/token requirements (notable given the set_token and check_auth siblings), units, or date-range limits.

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?

A single compact sentence with the key output content front-loaded and no filler. Nothing is padded, though it is arguably too terse given the missing usage and parameter detail.

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?

For a simple one-parameter read tool with no output schema, describing the returned series is a reasonable core, but the absence of usage context, parameter format, and any behavioral notes (auth, limits) leaves meaningful gaps.

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

Parameters2/5

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

Schema description coverage is 0% and the description adds no meaning to fund_id — it never states whether it is an internal ID or a fund code, nor its format. With a single parameter that is the sole input, this gap is small but real, and the description does not compensate for it.

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 and resource ('查询基金规模变动序列') and even names the returned content (各期规模与环比变化), so an agent knows exactly what comes back. It does not, however, distinguish itself from close siblings such as get_fund, get_fund_performance, or get_fund_returns.

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?

There is no indication of when to call this tool versus get_fund_performance or get_fund_returns, no prerequisites, and no exclusions. The agent must infer the selection 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_fund_performanceC

查询基金当前指标与区间业绩汇总(净值日期、收益/回撤/夏普等指标, 以及成立来/今年/近一月~近五年各区间收益与基准对照、同类排名)。

ParametersJSON Schema
NameRequiredDescriptionDefault
fund_idYes

TDQS

C2.9/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 behavioral burden. It discloses the breadth of data returned but says nothing about side effects, permissions/auth requirements, data freshness, rate limits, or error behavior; 'query' implies read-only but that is inference, not disclosure.

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?

A single front-loaded sentence with the verb first and the detailed enumeration quarantined in a parenthetical. The parenthetical is dense but every item earns its place by describing the payload, and there is no filler.

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?

With no output schema and no annotations, the description usefully enumerates the returned metrics and horizons, which is the main thing an agent needs to judge relevance. It is nearly complete for a one-parameter read tool, though units, currency and data recency are unaddressed.

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

Parameters2/5

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

Schema description coverage is 0% and the description never mentions fund_id, so it adds no meaning beyond the parameter's already self-evident name and string type. With low coverage the description is expected to compensate, and here it does not.

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?

States a specific verb (查询) and resource (基金业绩/指标), then enumerates the concrete contents returned: NAV date, return/drawdown/Sharpe, multi-horizon interval returns, benchmark comparison and peer ranking. It is clear what the tool does, but it never distinguishes itself from siblings like get_fund_returns or get_ranking, which overlap heavily with the '区间收益' and '同类排名' content it claims.

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 statement of when to use this tool versus get_fund, get_fund_returns, get_fund_asset_size or get_ranking, and no prerequisites or exclusions. The overlap with get_fund_returns and get_ranking is left entirely for the agent to infer.

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

get_fund_returnsB

查询基金收益序列(数据来自 sppwapi performanceRangeV2,明文可解)。

granularity: monthly=月度收益序列 | quarterly=季度 | yearly=年度 (含基准对照;年度还含同类排名与四分位)。 配合初始净值 1.0 可合成累计净值走势。

ParametersJSON Schema
NameRequiredDescriptionDefault
fund_idYes
granularityNomonthly

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It usefully discloses the data source, that the payload is plaintext-decodable, and what each granularity returns (benchmark comparison, plus peer ranking/quartile for yearly), but says nothing about auth requirements, error behavior, or result size/pagination.

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?

Front-loads the purpose, then presents granularity semantics in a compact line, then a short usage note. No filler; only the parenthetical data-source detail is arguably extraneous.

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?

For a 2-parameter read tool with no output schema and no annotations, the description covers the return shape reasonably well (benchmark, ranking, quartile) but leaves fund_id semantics, permissions, and failure modes unaddressed.

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 0%, so the description must compensate. It does define the three granularity values (monthly/quarterly/yearly), which the schema leaves as a bare un-enumerated string, but fund_id — the only required parameter — gets no explanation of format or where to obtain it.

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?

States a specific verb+resource ('查询基金收益序列') and names the upstream data source, so the agent knows exactly what is retrieved. It does not, however, differentiate itself from the sibling get_fund_performance, which plausibly returns overlapping data.

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?

There is no explicit when-to-use or when-not-to-use guidance and no alternative tool is named, despite siblings like get_fund_performance and get_ranking that could serve similar needs. Usage is only weakly implied by the granularity enumeration and the note about synthesizing a cumulative NAV curve.

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

get_rankingB

获取私募排行榜(默认近半年收益排序,每页 50 条,共约 3460 只 可翻页)。每条含 fund_id、期末净值 nav、成立来/今年/近半年~近五年 各期收益,可直接用作基金当前单位净值来源。

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full disclosure burden. It usefully reveals the default ordering (near-half-year returns), pagination (50 per page, ~3460 total, paginable), and the per-entry fields, but says nothing about auth requirements, rate limits, or whether results are a snapshot.

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?

One dense sentence that front-loads the core purpose and then the default ordering and return contents. Efficient, though it packs many clauses together.

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?

Without annotations or an output schema, the description does describe the returned fields (fund_id, nav, multi-period returns), which partly substitutes for a missing output schema. It remains silent on authentication and on distinguishing this from sibling retrieval tools, leaving real gaps.

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 0% and the single 'page' parameter is undocumented in the schema. The description compensates partially by noting 50 records per page and that the list is paginable, implying how 'page' behaves, but adds no further syntax or bounds.

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?

States a specific verb+resource ("获取私募排行榜") and clarifies scope (private fund ranking, ~3460 funds). It does not explicitly distinguish itself from siblings like search_funds or get_fund_performance, so it is clear but lacks sibling differentiation.

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?

There is no explicit when-to-use or when-not-to-use guidance, and no alternative tool is named. The default sort and page size are described, but an agent must infer when this ranking list is preferable to search_funds or get_fund_performance.

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

search_companiesC

按名称搜索私募公司,返回 company_id 与基本信息。

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
page_sizeNo

TDQS

C2.7/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 behavioral burden. It does disclose the return content (company_id and basic info), which is useful, but says nothing about pagination behavior despite a page_size parameter, nor about auth requirements or result limits.

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?

A single compact sentence that front-loads the action and scope. Nothing is wasted, though brevity here is partly the result of under-specification rather than disciplined editing.

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

Completeness2/5

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

With no annotations, no output schema, and 0% schema coverage, the description should do far more. It gives the return shape at a high level but omits pagination, matching behavior (exact vs fuzzy name), and any auth or rate-limit context needed to call it correctly.

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

Parameters2/5

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 only implies that query is a name string (按名称) and gives no explanation of page_size, its default of 10, or the pagination semantics — half the parameters remain unexplained in both places.

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?

States a specific verb and resource (search companies) plus the scoping criterion (by name) and even the return payload (company_id and basic info). It is clearly distinguishable from search_funds by the resource noun, though it never explicitly contrasts with that sibling.

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?

There is no when-to-use guidance, no prerequisites, and no mention of the sibling search_funds, which is the closest alternative. Usage must be inferred entirely from the name and the word 名称.

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

search_fundsA

按名称搜索私募基金,返回 fund_id、公司、经理、成立日、 今年/成立以来收益、最大回撤等摘要。后续用 get_fund 查详情。

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
page_sizeNo

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It usefully discloses the shape of the result (fund_id, company, manager, dates, returns, drawdown), which compensates for the absent output schema, but it says nothing about matching behavior (exact vs fuzzy name), pagination limits, or auth requirements.

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?

Two tight sentences: the first front-loads the action and return summary, the second handles tool routing. No redundant phrases and nothing that fails to earn its place.

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 two-parameter search with no output schema and no annotations, the description covers purpose, return fields, and next-step routing, which is nearly everything an agent needs. The only missing piece is pagination/limit behavior implied by page_size.

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 0%, so the description must compensate. '按名称搜索' gives implicit meaning to the required query parameter, but page_size is never explained and no format/syntax guidance is added. Query being intuitive by name keeps this from dropping lower.

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 and resource ('按名称搜索私募基金' – search private funds by name) and enumerates the returned fields, so the agent immediately knows the operation. It also distinguishes itself from get_fund by assigning detail retrieval to that sibling, making the boundary clear without opening a schema.

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?

It explicitly routes the agent to the follow-up tool ("后续用 get_fund 查详情"), giving clear context for when this tool's role ends and another begins. It does not, however, address when to prefer this over search_companies or other siblings, so no hard exclusions are provided.

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

set_tokenA

保存排排网登录态(浏览器 cookie 中 http_tK_cache 的值)。

获取方法:浏览器登录 simuwang.com 后,F12 -> 应用 -> Cookie -> 找到 http_tK_cache,复制其值传入。保存到 ~/.ppw-mcp.json, 过期后重新登录再更新一次即可。

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/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 full burden and does disclose meaningful behavior: the token is persisted to ~/.ppw-mcp.json and must be refreshed after expiry. It omits whether a bad token is rejected or overwritten silently, but the persistence and lifecycle behavior are genuinely useful.

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?

Front-loads the purpose, then the acquisition steps, then persistence/lifecycle. Every sentence earns its place for a credential-setting tool, though the multi-step F12 walkthrough makes it denser than strictly minimal.

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?

An output schema exists so return values need not be explained, and the description covers persistence, the acquisition path, and refresh-after-expiry. What an agent needs to call it correctly is essentially present, missing only failure/validation semantics.

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

Parameters5/5

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

With 0% schema description coverage on the single 'token' parameter, the description fully compensates by explaining the exact source (F12 -> Application -> Cookie -> http_tK_cache) and that the raw cookie value is what gets passed.

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?

States a concrete verb+resource: it saves the login credential (http_tK_cache cookie value) for 排排网. An agent can tell this persists an auth token rather than reading anything, which separates it from siblings like check_auth. It does not explicitly name a sibling, so it stops short of 5.

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?

Gives clear context for when to invoke: after logging into simuwang.com and, crucially, again after the token expires. It does not name alternatives (e.g. use check_auth to verify validity first), but the usage trigger is unambiguous.

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. 9 tool updatesv0.1.0
    • First observedcheck_auth
    • First observedget_fund
    • First observedget_fund_asset_size
    • First observedget_fund_performance
    • First observedget_fund_returns
    • First observedget_ranking
    • First observedsearch_companies
    • First observedsearch_funds
    • First observedset_token

TDQS

A3.5/5.0

Scored across 9 tools

Disambiguation4/5

Most tools target distinct actions (search, ranking, detail, series). However get_fund, get_fund_performance, and get_fund_returns all return overlapping return/nav data, and get_ranking also surfaces nav, so an agent could pick the wrong one for a given data need.

Naming Consistency5/5

Consistent snake_case verb_noun pattern throughout: set_token, check_auth, search_funds, get_fund, get_fund_performance, get_fund_returns, get_fund_asset_size. The get_fund_* family is predictable and readable.

Tool Count5/5

9 tools is well-scoped for a fund-data API: auth pair plus search and detail/series endpoints. Each tool earns its place with no redundancy padding.

Completeness4/5

Fund lifecycle is well covered (search → detail → performance → returns → asset size). Minor gap: search_companies returns a company_id but there is no get_company detail tool, creating a dead end for company lookups.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Real-time data API for AI Agents. 10 MCP tools covering A-share stock quotes, market overview, fund data, web search, news, weather, logistics tracking, and IP geolocation.
    10
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides 11 MCP tools for querying A-share market data, financial reports, stock screening, hot topics, self-selected stocks, and LOF arbitrage using natural language, powered by East Money / Miaoxiang APIs.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Provides 46 financial data tools for AI assistants covering A-share, HK, US markets, macroeconomics, funds, and derivatives, powered by AKShare.
    54
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to discover, download, parse, and search China A-share announcements from CNINFO (巨潮资讯网) through six structured tools.
    6
    2
    MIT