Skip to main content
Glama
kinmeic

Stock MCP Server

by kinmeic

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: "腾讯控股" })

可用工具

工具

描述

stock_get

获取单只股票实时行情

stock_get_batch

批量获取多只股票行情

position_add

添加持仓

position_update

更新持仓

position_remove

删除持仓

position_list

获取所有持仓

position_get

获取单个持仓

watch_add

添加观察股票

watch_update

更新观察股票

watch_remove

删除观察股票

watch_list

获取所有观察

watch_get

获取单个观察

技术栈

  • TypeScript

  • Node.js

  • @modelcontextprotocol/sdk

数据来源

股票数据来自 腾讯财经 API

License

MIT

Available Tools

12 tools
position_addC

添加持仓记录

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes股票代码
nameYes股票名称
quantityYes持有数量
costPriceYes成本价
currencyYes货币单位,如 CNY、HKD、USD
marketYes市场

TDQS

C2.7/5.0
Behavior1/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 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. 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

获取单个持仓记录

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes股票代码
marketYes市场

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. 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

获取所有持仓记录

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. 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

删除持仓记录

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes股票代码
marketYes市场

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both 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.

Purpose3/5

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.

Usage Guidelines2/5

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

更新持仓记录(数量或成本价)

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes股票代码
marketYes市场
quantityNo持有数量
costPriceNo成本价

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 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents 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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. 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

获取单只股票实时行情数据

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes股票代码,如 000858
marketYes市场: sh=上海, sz=深圳, hk=港股, us=美股

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives 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

批量获取多只股票实时行情数据

ParametersJSON Schema
NameRequiredDescriptionDefault
stocksYes股票列表

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives 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

添加观察股票

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes股票代码
nameYes股票名称
reasonYes观察理由或目标
marketYes市场

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents 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.

Purpose3/5

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.

Usage Guidelines2/5

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

获取单个观察股票

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes股票代码
marketYes市场

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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

Schema description coverage is 100%, with both parameters 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.

Purpose4/5

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.

Usage Guidelines2/5

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

获取所有观察股票

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/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 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. 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

删除观察股票

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes股票代码
marketYes市场

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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

Schema description coverage is 100%, with both parameters 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.

Purpose4/5

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.

Usage Guidelines2/5

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

更新观察股票(名称或观察理由)

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes股票代码
marketYes市场
nameNo股票名称
reasonNo观察理由或目标

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents 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.

Purpose3/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives 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.

  1. 12 tool updatesv1.0.0
    • First observedposition_add
    • First observedposition_get
    • First observedposition_list
    • First observedposition_remove
    • First observedposition_update
    • First observedstock_get
    • First observedstock_get_batch
    • First observedwatch_add
    • First observedwatch_get
    • First observedwatch_list
    • First observedwatch_remove
    • First observedwatch_update

TDQS

B3.4/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness5/5

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

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables 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
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    13
    3
    ISC
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides 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.
    -
  • A
    license
    A
    quality
    F
    maintenance
    Provides 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.
    69
    185
    100
    ISC

Latest Blog Posts

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