smppw-mcp
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., "@smppw-mcpshow me the private fund ranking on page 1"
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.
smppw-mcp
私募排排网(simuwang.com)MCP Server。提供 9 个结构化工具,将基金/公司查询、排行榜分页、净值与产品要素、风险收益指标、月/季/年度收益序列、规模变动等查询能力接入 LLM/Agent。
兼容 Antigravity、Claude Code、Cursor、Copilot 等支持 MCP 的 Agent。当前仅在个人版账号中验证通过。
在开始之前
请先注册 私募排排网 账号,并完成合格投资者认证。
合格投资者应具备相应的风险识别能力和风险承受能力,具有 2 年以上投资经历,并满足以下任一条件:
近 3 年个人年均收入不低于 50 万元;
个人金融资产不低于 300 万元,或家庭金融净资产不低于 300 万元,或家庭金融资产不低于 500 万元。
Related MCP server: eastmoney-skills2mcp
工具
工具 | 说明 |
| 保存登录态(浏览器 cookie 中 |
| 验证登录态是否有效 |
| 按名称搜索基金(fund_id、公司、经理、收益、回撤摘要) |
| 按名称搜索私募公司 |
| 排行榜(可翻页,约 3460 只),每条含期末净值 nav + 各期收益 |
| 基金详情:当前净值(含日期、今年以来/成立以来收益) + 策略/托管/备案等要素 + 公司与经理 |
| 指标(收益/年化/Alpha/回撤/夏普/贝塔)+ 各区间收益与基准对照 + 周胜率 |
| 收益序列:月度 / 季度 / 年度(含基准对照,年度含同类排名) |
| 基金规模变动序列 |
典型用法:search_funds 找到 fund_id → get_fund 看净值与要素 → 需要时拉收益序列或指标。
快速开始
要求 Python ≥ 3.10。
git clone https://github.com/SuperLangdon/smppw-mcp.git
cd smppw-mcp
pip install -e .获取登录态(一次性)
查询净值与业绩需要排排网合格投资者认证账号:
浏览器登录 simuwang.com(需已完成合格投资者认证)
F12 → 应用 → Cookie → 复制
http_tK_cache的值两种方式提供给 server:
对 MCP 客户端说
set_token <粘贴值>(保存到~/.ppw-mcp.json)或设置环境变量
PPW_TOKEN
登录态过期后重新登录、更新一次即可。
MCP 客户端配置
{
"mcpServers": {
"ppw": {
"command": "python",
"args": ["-m", "ppw_mcp.server"],
"env": { "PYTHONIOENCODING": "utf-8" }
}
}
}技术说明
数据来源两条通道:
SSR 页面(
dc.simuwang.com):Nuxt 3 服务端渲染,数据在__NUXT_DATA__扁平 payload 中明文内嵌(ppw_mcp/nuxt.py还原)。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的净值来自排行榜接口(fundRankV3keyword 反查),覆盖榜单内约 3460 只基金;未上榜基金(无有效业绩区间)详情页净值被站方图片化,返回 null。日度净值曲线(
fundNavTrend)请求参数为sdata加密(算法已逆向:AES key = MD5(cookie8hIn9IA),双层 base64),但服务端对该请求做了会话/指纹级绑定,浏览器外重放会被拒绝("参数错误 1")。已用performanceRangeV2提供月度/季度/年度收益序列;配合初始净值 1.0 可合成累计净值走势。登录态
http_tK_cache会被服务端轮换,保存的旧值通常继续有效;若check_auth报失效,重新登录后更新一次 token。站方若调整加密方案或页面结构,
crypto.py/nuxt.py需同步更新。
免责声明
本项目仅供个人学习研究与查询账号权限内的数据,请勿用于批量抓取、商业用途或向他人提供数据服务。
私募基金业绩与其他非公开信息仅向合格投资者展示为监管要求(见 《私募投资基金监督管理暂行办法》),使用时请务必确保合规性。
数据归私募排排网所有,本项目不对数据的准确性、完整性作任何保证;过往业绩不预示未来表现,不构成投资建议。
本项目的逆向分析仅用于实现个人账号数据的程序化读取,不试图绕过任何付费机制、登录权限或访问控制。本项目为非官方、非授权项目,具有一定逆向工程与自动化访问性质,可能违反私募排排网的 服务条款(ToS)。本项目与私募排排网无任何关联,亦未获其授权或认可。使用者应自行评估合规风险,并自行承担使用本项目所产生的一切后果,包括但不限于账号限制、服务中断、数据丢失及法律责任。
License
Available Tools
9 toolscheck_authB
验证排排网登录态是否有效(合格投资者数据是否解锁)。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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 表示该基金未进排行榜(站方对详情页净值做了图片化)。
| Name | Required | Description | Default |
|---|---|---|---|
| fund_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 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.
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.
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.
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.
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.
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
查询基金规模变动序列(各期规模与环比变化)。
| Name | Required | Description | Default |
|---|---|---|---|
| fund_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 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.
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.
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.
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.
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.
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
查询基金当前指标与区间业绩汇总(净值日期、收益/回撤/夏普等指标, 以及成立来/今年/近一月~近五年各区间收益与基准对照、同类排名)。
| Name | Required | Description | Default |
|---|---|---|---|
| fund_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 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.
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.
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.
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.
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.
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 可合成累计净值走势。
| Name | Required | Description | Default |
|---|---|---|---|
| fund_id | Yes | ||
| granularity | No | monthly |
TDQS
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.
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.
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.
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.
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.
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、成立来/今年/近半年~近五年 各期收益,可直接用作基金当前单位净值来源。
| Name | Required | Description | Default |
|---|---|---|---|
| page | No |
TDQS
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.
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.
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.
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.
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.
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 与基本信息。
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| page_size | 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 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.
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.
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.
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.
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.
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 查详情。
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| page_size | 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 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.
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.
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.
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.
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.
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, 过期后重新登录再更新一次即可。
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 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.
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.
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.
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.
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.
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.
9 tool updates
v0.1.0- First observed
check_auth - First observed
get_fund - First observed
get_fund_asset_size - First observed
get_fund_performance - First observed
get_fund_returns - First observed
get_ranking - First observed
search_companies - First observed
search_funds - First observed
set_token
TDQS
Scored across 9 tools
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.
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.
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.
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
Related MCP Connectors
Real SEC, 13F, insider, congress & macro data your AI agent can cite. Hosted MCP, 24 tools.
China A-share market data over MCP: 22 tools for quotes, K-line, financials, money flow, top-trader boards, sectors, macro, convertible bonds and factor screening. Five tools need no API key, so you can connect and try it immediately.
Read-only China A-share data for AI agents: market, limit-up, capital flow and disclosures.
SEC filings and financial data for AI agents: 59 tools for statements, valuation and supply chains.
Related MCP Servers
- AlicenseAqualityBmaintenanceReal-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.10MIT
- AlicenseNot gradedqualityCmaintenanceProvides 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
- AlicenseAqualityCmaintenanceProvides 46 financial data tools for AI assistants covering A-share, HK, US markets, macroeconomics, funds, and derivatives, powered by AKShare.54MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to discover, download, parse, and search China A-share announcements from CNINFO (巨潮资讯网) through six structured tools.62MIT