Stock MCP Server
Click on "Install 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., "@Stock MCP ServerWhat's the current price of Tencent (hk00700) and Tesla (usTSLA)?"
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.
Stock MCP Server
腾讯股票数据 MCP 服务器,为 AI 助手提供股票数据查询和持仓管理功能。
功能特性
股票行情查询
A股实时行情(上海、深圳)
港股实时行情
美股实时行情
支持批量查询
持仓管理
添加、更新、删除持仓
查询持仓列表和详情
观察列表
添加、更新、删除关注股票
查询观察列表
Related MCP server: Stock Data MCP Server
支持的市场
代码 | 市场 |
sh | 上海A股 |
sz | 深圳A股 |
hk | 港股 |
us | 美股 |
每手股数 (lotSize)
市场 | 每手股数 |
A股普通 | 100股 |
A股科创板(688开头) | 200股 |
港股 | 取数据第61位 |
美股 | 1股 |
快速开始
安装依赖
npm install构建项目
npm run build配置 MCP
在 Claude Code 或其他 MCP 客户端的配置文件中添加:
{
"mcpServers": {
"stock": {
"command": "node",
"args": ["/path/to/stock-mcp/dist/index.js"]
}
}
}使用示例
// 查询股票行情
stock_get({ symbol: "sh000001" })
// 批量查询
stock_get_batch({ symbols: ["sh000001", "sz000001"] })
// 添加持仓
position_add({ symbol: "sz000001", shares: 100, cost: 10.5 })
// 添加观察
watch_add({ symbol: "hk00700", note: "腾讯控股" })可用工具
工具 | 描述 |
| 获取单只股票实时行情 |
| 批量获取多只股票行情 |
| 添加持仓 |
| 更新持仓 |
| 删除持仓 |
| 获取所有持仓 |
| 获取单个持仓 |
| 添加观察股票 |
| 更新观察股票 |
| 删除观察股票 |
| 获取所有观察 |
| 获取单个观察 |
技术栈
TypeScript
Node.js
@modelcontextprotocol/sdk
数据来源
股票数据来自 腾讯财经 API
License
MIT
Available Tools
12 toolsposition_addC
添加持仓记录
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | 股票代码 | |
| name | Yes | 股票名称 | |
| quantity | Yes | 持有数量 | |
| costPrice | Yes | 成本价 | |
| currency | Yes | 货币单位,如 CNY、HKD、USD | |
| market | 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 of behavioral disclosure. The description '添加持仓记录' implies a write operation (adding a record), but it doesn't disclose any behavioral traits: no information about permissions required, whether duplicates are allowed, what happens on success/failure, or any side effects (e.g., updating related data). This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single Chinese phrase ('添加持仓记录') that directly states the tool's purpose with zero wasted words. It's appropriately sized and front-loaded, making it immediately clear what the tool does without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a mutation tool with 6 required parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns, error conditions, or behavioral context. While the schema covers parameters well, the description fails to provide necessary operational context for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with all 6 parameters clearly documented in the schema (e.g., code as stock code, market with enum values). The description adds no additional meaning about parameters beyond the schema. According to the rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description, which applies here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '添加持仓记录' (add position record) clearly states the verb (add) and resource (position record), making the purpose immediately understandable. It distinguishes from siblings like position_get (retrieve), position_remove (delete), and position_update (modify) by focusing on creation. However, it doesn't specify what exactly constitutes a 'position record' beyond the parameters listed in the 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?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether the stock must exist in the system), when not to use it (e.g., for updating existing positions), or direct alternatives like position_update for modifications. The agent must infer usage from the tool name and sibling context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
position_getC
获取单个持仓记录
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | 股票代码 | |
| market | Yes | 市场 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a read operation ('获取' - get), implying it's likely non-destructive, but doesn't address permissions, rate limits, error conditions, or what the return format looks like (especially critical since there's no output schema). This leaves significant gaps for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient phrase ('获取单个持仓记录') that directly states the tool's purpose with zero wasted words. It's appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what a 'position record' contains, how results are structured, or any behavioral aspects like error handling. For a read operation with no structured output documentation, this leaves too many unknowns for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter information beyond what's already in the schema, which has 100% coverage with clear descriptions ('股票代码' - stock code, '市场' - market) and an enum for the market parameter. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.
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 '获取单个持仓记录' (Get single position record) clearly states the verb ('获取' - get) and resource ('持仓记录' - position record), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'position_list' (which presumably lists multiple positions) or 'stock_get' (which gets stock information rather than position records), keeping it from a perfect score.
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 provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose 'position_get' over 'position_list' (for multiple positions) or 'stock_get' (for stock data rather than position data), nor does it specify prerequisites or exclusions for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
position_listC
获取所有持仓记录
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states it 'gets all position records', implying a read-only operation, but doesn't disclose behavioral traits like whether it requires authentication, returns paginated results, includes metadata, or has rate limits. For a list tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient phrase ('获取所有持仓记录') that directly states the purpose without any waste. It's appropriately sized and front-loaded, with every word contributing to clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a list operation with sibling tools), no annotations, and no output schema, the description is incomplete. It doesn't explain what 'all' entails (e.g., scope, limits), how results are structured, or how it fits with other tools like 'position_get'. For a tool in a family with multiple position-related siblings, more context is needed.
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 input schema has 0 parameters with 100% coverage, so no parameters need documentation. The description doesn't add parameter details, but that's unnecessary here. Baseline is 4 for zero parameters, as the schema fully covers the absence of inputs.
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 '获取所有持仓记录' (Get all position records) states a clear verb ('获取' - get) and resource ('持仓记录' - position records), but it's somewhat vague about scope and doesn't distinguish from sibling tools like 'position_get' (which presumably gets a specific position) or 'watch_list' (which lists watch items). It's functional but lacks specificity.
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 provides no guidance on when to use this tool versus alternatives. It doesn't mention that this lists all positions without filtering (unlike 'position_get' for specific ones) or how it differs from 'watch_list'. There's no context on prerequisites, timing, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
position_removeC
删除持仓记录
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | 股票代码 | |
| market | Yes | 市场 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states 'delete' which implies a destructive mutation, but doesn't specify if this requires authentication, what happens on success/failure, whether deletions are permanent, or any rate limits. This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient phrase ('删除持仓记录') that directly states the tool's purpose with zero wasted words. It's appropriately sized and front-loaded for this simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what constitutes a 'position record', what gets returned (if anything), error handling, or security implications. Given the complexity and lack of structured data, more context is needed.
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 100%, so the schema already documents both parameters ('code' and 'market') with descriptions and enum values. The description doesn't add any parameter meaning beyond what the schema provides, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '删除持仓记录' (delete position record) clearly states the action (delete) and resource (position record), but it doesn't differentiate from sibling tools like 'watch_remove' or specify what distinguishes a 'position' record from other types. It's a straightforward purpose statement without sibling context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'position_update' or 'watch_remove'. The description doesn't mention prerequisites, error conditions, or contextual constraints, leaving usage entirely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
position_updateC
更新持仓记录(数量或成本价)
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | 股票代码 | |
| market | Yes | 市场 | |
| quantity | No | 持有数量 | |
| costPrice | No | 成本价 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states 'update' implying mutation, but lacks details on permissions needed, whether updates are reversible, rate limits, error conditions (e.g., invalid code/market), or what happens on success (e.g., returns confirmation). This is a significant gap for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Chinese ('更新持仓记录(数量或成本价)') that directly states the purpose with no wasted words. It is appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (mutation with 4 parameters, no annotations, no output schema), the description is incomplete. It lacks behavioral details (e.g., side effects, error handling), usage context, and output information, leaving significant gaps for an AI agent to understand how to invoke it correctly beyond basic parameter definitions.
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 100%, so the schema already documents all parameters (code, market, quantity, costPrice). The description adds minimal value by implying quantity and costPrice are updatable fields, but doesn't provide additional context like units, constraints (e.g., positive numbers), or interactions between parameters beyond what the schema specifies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '更新持仓记录(数量或成本价)' clearly states the action (update) and resource (position record) with specific fields mentioned (quantity or cost price). It distinguishes from siblings like position_add (add new) and position_remove (delete), though it doesn't explicitly contrast with position_update's exact scope versus other updates in the system.
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 provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., existing position), exclusions (e.g., cannot update both quantity and cost price simultaneously if that's a constraint), or refer to sibling tools like position_add for new records or position_get for retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stock_getC
获取单只股票实时行情数据
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | 股票代码,如 000858 | |
| market | Yes | 市场: sh=上海, sz=深圳, hk=港股, us=美股 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool gets real-time data but doesn't mention critical aspects like rate limits, data freshness, authentication requirements, error handling, or whether it's a read-only operation. This leaves significant gaps in understanding its operational behavior.
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, efficient sentence in Chinese that directly states the tool's purpose without any unnecessary words. It's front-loaded and appropriately sized for a simple data retrieval tool, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (simple retrieval with 2 parameters) and the lack of annotations and output schema, the description is incomplete. It doesn't cover behavioral traits like rate limits or data format, and with no output schema, it fails to describe return values, leaving the agent uncertain about what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with clear descriptions for both parameters ('code' and 'market'), including an enum for 'market'. The description doesn't add any extra semantic details beyond what the schema provides, such as examples or constraints, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('获取' meaning 'get') and resource ('单只股票实时行情数据' meaning 'single stock real-time quote data'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from its sibling 'stock_get_batch', which handles multiple stocks, leaving room for confusion about when to use each.
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 provides no guidance on when to use this tool versus alternatives like 'stock_get_batch' for multiple stocks or other sibling tools for positions and watches. It lacks context about prerequisites, such as needing valid stock codes and market identifiers, or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stock_get_batchC
批量获取多只股票实时行情数据
| Name | Required | Description | Default |
|---|---|---|---|
| stocks | Yes | 股票列表 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states what the tool does, not how it behaves. It doesn't disclose rate limits, authentication needs, data freshness guarantees, error handling, or response format. '实时行情数据' implies real-time data but doesn't specify update frequency or latency.
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, efficient Chinese phrase that directly conveys the core functionality without any wasted words. It's appropriately sized for a straightforward batch data retrieval tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a data retrieval tool with no annotations and no output schema, the description is insufficient. It doesn't explain what data is returned (e.g., price, volume, change), format, error conditions, or limitations (e.g., maximum batch size). The context signals show minimal parameter complexity but the behavioral aspects are undocumented.
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 100% with the parameter 'stocks' documented as '股票列表'. The description adds no additional parameter semantics beyond what's in the schema. The baseline is 3 since the schema adequately covers the single parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '批量获取多只股票实时行情数据' clearly states the action (获取 - get/fetch) and resource (多只股票实时行情数据 - multiple stocks' real-time market data). It distinguishes from sibling 'stock_get' by specifying batch operation, though it doesn't explicitly mention how it differs from other stock-related tools that might not exist.
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 provides no guidance on when to use this tool versus alternatives like 'stock_get' (single stock) or other position/watch tools. It doesn't mention prerequisites, limitations, or typical use cases for batch versus individual queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch_addC
添加观察股票
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | 股票代码 | |
| name | Yes | 股票名称 | |
| reason | Yes | 观察理由或目标 | |
| market | Yes | 市场 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the action without behavioral details. It doesn't disclose if this is a mutation requiring permissions, whether it's idempotent, what happens on duplicate entries, or any rate limits. This leaves significant gaps for an agent to understand the tool's behavior.
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, efficient phrase '添加观察股票' that is front-loaded and wastes no words. It's appropriately sized for a simple tool, though its brevity contributes to gaps in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete for a mutation tool with 4 required parameters. It doesn't explain what the tool returns, error conditions, or how it interacts with sibling tools like 'watch_list', leaving the agent with insufficient context for reliable use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents parameters like 'code' for stock code and 'market' with enum values. The description adds no additional meaning beyond the schema, such as explaining parameter interactions or constraints, resulting in a baseline score of 3.
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 '添加观察股票' (Add watch stock) states the action (add) and resource (watch stock), but it's vague about what 'watch' entails compared to siblings like 'position_add' or 'stock_get'. It doesn't specify if this creates a monitoring entry, alert list, or portfolio tracking, leaving ambiguity in purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'watch_update' or 'position_add'. The description lacks context about prerequisites, such as whether the stock must exist in the system, or exclusions, making it unclear how it fits into the workflow with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch_getC
获取单个观察股票
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | 股票代码 | |
| market | Yes | 市场 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('获取' - get) but doesn't describe what '获取' entails (e.g., returns current price, watch status, or other details), error handling (e.g., if the stock isn't in the watchlist), or any side effects. This leaves significant gaps for a tool that likely interacts with user data.
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, efficient sentence with zero waste. It's appropriately sized for a simple retrieval tool and front-loads the core purpose without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's likely complexity (interacting with user watchlists), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what data is returned (e.g., stock details, watch metadata), potential errors, or how it differs from stock_get. For a user-specific operation, more context is needed.
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 100%, with both parameters clearly documented in the schema (code and market with enum values). The description adds no additional parameter semantics beyond what the schema provides, such as format examples for 'code' or context for 'market' selection. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '获取单个观察股票' clearly states the purpose as retrieving a single watched stock, with specific verb '获取' (get) and resource '观察股票' (watched stock). It distinguishes from siblings like watch_list (which retrieves multiple) and watch_add/watch_remove (which modify the watchlist), though it doesn't explicitly name these 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?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., the stock must already be in the watchlist), contrast with stock_get (which might retrieve any stock regardless of watch status), or specify use cases like checking current watch status versus retrieving general stock data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch_listB
获取所有观察股票
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. While '获取' (get) implies a read operation, it doesn't specify whether this requires authentication, returns paginated results, has rate limits, or what format the data comes in. For a tool with zero annotation coverage, this leaves significant behavioral gaps.
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, efficient Chinese phrase that communicates the core purpose without any wasted words. It's appropriately sized for a simple retrieval operation and gets straight to the point with zero structural overhead.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and multiple sibling tools, the description is insufficiently complete. While concise for a parameterless read operation, it doesn't address authentication requirements, return format, pagination, error conditions, or differentiation from similar tools like position_list. The agent would need to guess about important operational aspects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage (empty schema). The description appropriately doesn't discuss parameters since none exist, and it correctly focuses on the action being performed without unnecessary parameter details. This meets the baseline expectation for parameterless tools.
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 '获取所有观察股票' (Get all watchlist stocks) clearly states the verb (get) and resource (watchlist stocks), making the purpose immediately understandable. It distinguishes from siblings like watch_get (get specific watch item) and watch_add/remove/update (mutations), though it doesn't explicitly mention these distinctions in the text itself.
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 provides no guidance on when to use this tool versus alternatives. With siblings like watch_get (for specific items) and position_list (for positions), there's no indication of when this bulk retrieval is appropriate versus more targeted queries, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch_removeC
删除观察股票
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | 股票代码 | |
| market | Yes | 市场 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the action ('删除' - delete/remove). It doesn't disclose behavioral traits like whether removal is permanent, requires specific permissions, has side effects, returns confirmation, or handles errors. For a mutation tool with zero annotation coverage, this is insufficient.
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, efficient phrase ('删除观察股票') with zero wasted words. It's appropriately sized for a simple removal operation and immediately states the core purpose.
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 mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what happens after removal, whether confirmation is returned, error conditions, or relationships to other watch operations. Given the tool's destructive nature and lack of structured safety hints, more context is needed.
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 100%, with both parameters clearly documented in the schema (code=stock code, market=market with enum values). The description adds no additional parameter meaning beyond what the schema provides, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '删除观察股票' (remove watch stock) clearly states the action (remove) and target resource (watch stock). It distinguishes from sibling tools like watch_add (add) and watch_list (list), but doesn't specify what constitutes a 'watch stock' versus other stock-related resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., stock must be in watchlist first), when-not scenarios, or relationships to siblings like watch_list (to check existing watches) or watch_add (to add watches).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch_updateC
更新观察股票(名称或观察理由)
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | 股票代码 | |
| market | Yes | 市场 | |
| name | No | 股票名称 | |
| reason | No | 观察理由或目标 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions updating a watched stock, implying a mutation, but doesn't disclose behavioral traits like whether this requires specific permissions, if changes are reversible, or what happens if the stock isn't already watched. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
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, efficient sentence that directly states the tool's function. It's appropriately sized and front-loaded with the core action. However, it could be slightly more structured by explicitly mentioning the required parameters, but overall it avoids unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the update does (e.g., modifies existing watch entry), potential errors, or return values. For a tool with 4 parameters and complex sibling relationships, more context is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters (code, market, name, reason) with descriptions. The description adds no additional meaning beyond what the schema provides, such as explaining how name and reason interact or their optional nature. Baseline 3 is appropriate when schema does the heavy lifting.
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 the tool updates a watched stock's name or reason, which is a clear verb+resource combination. However, it doesn't distinguish this from sibling tools like watch_add or watch_update, leaving ambiguity about when to use each. The purpose is understandable 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?
The description provides no guidance on when to use this tool versus alternatives like watch_add or watch_remove. There's no mention of prerequisites, such as needing an existing watch entry, or context for when updates are appropriate versus adding/removing. Usage is implied but not explicitly stated.
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. Dates show when Glama detected each change.
12 tool updates
v1.0.0- First observed
position_add - First observed
position_get - First observed
position_list - First observed
position_remove - First observed
position_update - First observed
stock_get - First observed
stock_get_batch - First observed
watch_add - First observed
watch_get - First observed
watch_list - First observed
watch_remove - First observed
watch_update
TDQS
Every tool has a clearly distinct purpose with no ambiguity. The tools are organized into three logical groups (position, stock, watch) with specific CRUD operations for each, making it easy for an agent to select the correct tool for any task.
The tool names follow a perfectly consistent verb_noun pattern throughout, using snake_case uniformly. Each group maintains the same naming convention (e.g., position_add, stock_get, watch_list), making the set highly predictable and readable.
With 12 tools, this server is well-scoped for stock management. Each tool earns its place by covering essential operations for positions, stock data, and watchlists, without being overly sparse or bloated for the domain.
The tool surface provides complete CRUD/lifecycle coverage for the stock management domain. It includes all necessary operations for positions, real-time stock data, and watchlists, with no obvious gaps that would cause agent failures.
Maintenance
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
Access real-time and historical market data for China A-shares and Hong Kong stocks, along with ne…
Provide access to Chinese stock market data including historical prices, real-time data, news, and…
Read-only China A-share data for AI agents: market, limit-up, capital flow and disclosures.
China A-share real-time stock quotes and major indices with dual-source fallback.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables real-time stock market analysis through AKShare API integration. Supports retrieving live stock prices, historical data, technical indicators (MA, MACD, RSI), market sentiment analysis, stock search, and financial news.5-
- AlicenseNot gradedqualityDmaintenanceEnables querying financial data including stocks, indices, funds, and futures from Chinese, Hong Kong, and US markets. Provides real-time market information, financial indicators, news, and trading suggestions through Eastmoney and Sina data sources.133ISC
- FlicenseNot gradedqualityDmaintenanceProvides real-time quotes, fund flows, and corporate announcements for Chinese A-share stocks. It enables users to search for stocks, analyze financial indicators, and summarize quarterly reports through natural language.-
- AlicenseAqualityFmaintenanceProvides comprehensive stock market data (A-shares, Hong Kong, US) including real-time quotes, K-lines, technical indicators, sectors, futures, and options, with built-in AI Skills and MCP Prompts for financial analysis.69185100ISC
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kinmeic/stock-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server