Trading MCP Server
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation4/5
Most tools have distinct purposes, but there is some overlap between 'pnl', 'realized_gains', and 'unrealized_gains' that could cause confusion. 'pnl' combines both realized and unrealized gains, while the other two provide separate calculations, which might lead an agent to misselect when seeking specific details.
Naming Consistency3/5The naming is mixed with snake_case used throughout, but the verb patterns vary: some are nouns (e.g., 'portfolio', 'pnl'), some are verbs (e.g., 'simulate_sell', 'validate_trades'), and some are descriptive phrases (e.g., 'trade_history', 'unrealized_gains'). This inconsistency reduces predictability, though it remains readable.
Tool Count5/5With 8 tools, the count is well-scoped for a trading server, covering key operations like price fetching, portfolio management, gain calculations, and trade validation. Each tool serves a clear purpose without being overwhelming or insufficient for the domain.
Completeness4/5The tool set covers core trading functions such as price lookup, portfolio tracking, and gain analysis, but lacks tools for executing trades or managing orders, which are typical in trading systems. This minor gap might require agents to work around, but the existing tools support essential workflows.
Average 4.3/5 across 8 of 8 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 0 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It adequately discloses the return format (list of dicts with example fields like 'date' and 'type'), but fails to mention safety characteristics (read-only status), authentication requirements, time range limitations, or pagination behavior for large histories.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The docstring-style structure (Args/Returns/Example) is logically organized and front-loaded with the core purpose. The content is efficient with no redundant sentences, though the explicit 'Args:' and 'Returns:' headers add slight verbosity that could be condensed in an MCP-specific format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single simple parameter and existence of an output schema, the description provides appropriate additional context. It compensates for the schema's lack of parameter descriptions and supplements the output schema with a concrete example showing data structure (e.g., 'type': 'Buy'), leaving minimal gaps for a read-only data retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage (only 'title': 'Symbol'), so the description fully compensates by explaining that the parameter is a 'stock ticker symbol' and provides concrete examples (AMZN, MSFT). It could be improved by noting format constraints (e.g., uppercase), but the examples provide sufficient semantic context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Return') and resource ('trade history') with scope ('for a specific stock symbol'). It effectively distinguishes from siblings like current_price (current market data) versus historical records, and portfolio (current holdings) versus transaction history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage through the return value specification ('list of dictionaries containing all trade records'), suggesting it should be used when historical transaction data is needed. However, it lacks explicit guidance on when to prefer this over simulate_sell, validate_trades, or portfolio, and does not mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/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 successfully documents the error handling behavior (returns -1.0 on failure) and identifies the data source (Yahoo Finance). However, it omits rate limits, caching behavior, or whether the data is real-time versus delayed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The structured format (Args/Returns/Example) is efficient and front-loaded. Information density is high with minimal waste. Minor deduction for the example referencing 'get_live_price()' rather than the actual tool name 'current_price', which could cause momentary confusion.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read operation with an output schema present, the description is appropriately complete. It clarifies the error return value (-1.0) which is valuable context not necessarily visible in the output schema alone. Missing only operational details like rate limiting.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Given 0% schema description coverage, the description effectively compensates by providing the parameter semantics inline: 'Stock ticker symbol (e.g. AAPL, TSLA)' with validation guidance ('valid symbol supported by Yahoo Finance'). The examples and constraints add meaningful context beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Fetch') and clear resource ('live price of a stock symbol'), precisely defining the tool's scope. It effectively distinguishes from siblings like 'portfolio' or 'trade_history' by focusing on real-time market data lookup rather than historical analysis or trading operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
While the implied usage is clear (use when needing current market prices), there is no explicit guidance on when to use this versus alternatives like 'portfolio' which might also contain price data, or when to prefer 'simulate_sell' for price checks. No prerequisites or rate limit warnings are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It explains the aggregation behavior ('Combines') and documents the return structure with an example. However, it lacks disclosure of other behavioral traits like data freshness, calculation methodology (e.g., all-time vs period-specific), rate limits, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a clear purpose statement, behavioral clarification, and a documented return value with an example. Every sentence earns its place; there is no redundant or tautological language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (zero parameters, single aggregation operation) and the presence of an output schema (per context signals), the description is complete. It adds value by explaining the aggregation logic and providing a concrete example, which complements the structured schema without being redundant.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema contains zero parameters. According to the baseline rules, zero parameters warrants a baseline score of 4. The description correctly does not invent parameter documentation where none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states the specific action 'Generate' and resource 'Profit & Loss (P&L) summary'. It clearly distinguishes itself from siblings 'realized_gains' and 'unrealized_gains' by specifying it 'Combines realized and unrealized gains into a single financial overview', positioning it as the aggregate view.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context that this tool aggregates both types of gains, implicitly signaling to use it when a combined overview is needed versus the individual sibling tools. However, it does not explicitly name the alternatives or state when NOT to use it (e.g., 'use realized_gains instead for tax reporting').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Successfully discloses internal algorithm (FIFO queue processing, matching sells with earliest buys) and return format (float in dollars, rounded to two decimals). Missing safety/destructive traits and error conditions, but algorithmic transparency is high.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with front-loaded purpose statement ('Calculate total realized gains using FIFO method'), followed by implementation details, return specification, and example. No extraneous content; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless calculation tool, description adequately covers the complex FIFO methodology, data source (trade history), and return value semantics. Output schema exists in context, but description appropriately supplements it with units and precision details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters present with 100% schema coverage. Per rubric, 0 params establishes baseline of 4. Description appropriately focuses on behavioral explanation rather than parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Calculate'), resource ('realized gains'), and methodology ('FIFO method') clearly stated. Explicitly distinguishes from sibling 'unrealized_gains' by specifying 'realized' and detailing the FIFO matching algorithm against trade history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides implied usage context through the FIFO methodology explanation, but lacks explicit when-to-use guidance or comparison with alternatives (e.g., when to choose this over 'pnl' or 'unrealized_gains'). No exclusions or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It successfully discloses the use of 'FIFO matching' for cost basis calculation and clarifies the return format (dollars). However, it omits operational details like data source (current market price vs. historical), error conditions (insufficient shares), or explicit confirmation that no portfolio modification occurs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Uses a clean docstring format (Args/Returns/Example) with zero wasted words. The example invocation is concrete and illustrative. Information is front-loaded with the core purpose in the first sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter tool with simple types and no nested objects, the description is nearly complete. It covers methodology (FIFO), parameters, return values, and provides an example. Minor gap: does not clarify whether the simulation uses real-time market prices or specify handling of fractional shares.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description fully compensates via the Args section. It provides clear semantics for both 'symbol' (with TSLA example) and 'shares', including data types and purpose. This is exemplary compensation for a bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the specific action ('simulate selling'), resource ('shares of a stock'), and outcome ('estimate the profit or loss'). The term 'simulate' effectively distinguishes this from sibling tools like 'realized_gains' (actual historical data) and 'validate_trades' (trade validation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
While the term 'simulate' implies hypothetical usage, the description lacks explicit guidance on when to use this versus alternatives like 'validate_trades' or 'current_price'. It does not state prerequisites (e.g., needing existing positions) or suggest this is for pre-trade financial impact assessment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It successfully discloses key behavioral traits: the calculation methodology (average buy price vs. market price), the live data source (yfinance), and the return format (dictionary mapping symbols to dollar values). It lacks only operational details like error handling or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is excellently structured with a clear one-sentence summary followed by detailed calculation logic, a 'Returns:' section, and an example. Every sentence earns its place; no redundancy or fluff is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (zero parameters, single operation) and the presence of an output explanation (including example), the description is complete. It adequately covers what the tool does, how it calculates results, and what it returns without needing additional operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema contains zero parameters. According to calibration rules, zero-parameter tools receive a baseline score of 4. The description correctly provides no parameter-related text since none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Calculate[s] unrealized gains for current holdings' and specifies the methodology (comparing average buy price against current market price). The phrase 'currently held shares' effectively distinguishes it from the sibling 'realized_gains' tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
While the description implies usage by specifying 'currently held shares' (distinguishing from realized gains), it lacks explicit guidance on when to select this over siblings like 'pnl' or 'portfolio'. No 'when-not-to-use' or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It successfully discloses the sequential parsing behavior, the specific validation rule (sells only after corresponding buys), and the return format via both 'Returns:' section and concrete example. Could improve by stating it's read-only/safe.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Excellent structure with front-loaded purpose statement followed by implementation details, explicit Returns section, and concrete example. No redundancy; every sentence adds value despite the multi-line format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameter-less validation tool, description is comprehensive. It explains the validation logic, output format (list of error messages), and provides an example return value, fully preparing the agent to interpret results despite the existence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters per schema (empty properties object). Per rubric, zero-parameter tools baseline at 4. Description correctly requires no parameter clarification.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with specific verb ('Validate') and clear scope (preventing overselling). Explicitly distinguishes from sibling 'trade_history' by emphasizing it 'parses the trade history sequentially' to perform validation logic rather than just retrieving data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides implied usage through explanation of the validation logic (checking sell-before-buy violations), but lacks explicit guidance on when to invoke versus alternatives like 'portfolio' or 'trade_history'. No 'when-not' or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and effectively discloses key behaviors: it reads from a CSV trade history, performs net calculation logic, and filters out zero/negative balances ('Only symbols with a positive balance are included'). Missing minor details like error handling or caching 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
Excellent structure with clear visual hierarchy: one-line summary, calculation explanation, return value specification, and concrete example. Every sentence provides unique value with no repetition of schema or annotation data.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple state-retrieval tool with no parameters and an output schema present, the description is complete. It compensates for the unseen output schema by documenting the return format (dictionary mapping) and filtering behavior (positive balances only).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema confirms this with 100% coverage. Per guidelines, zero-parameter tools receive a baseline of 4. The description reinforces this via the example call syntax 'portfolio()'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb-resource pair ('Show current portfolio holdings') and immediately distinguishes from sibling tools by explaining it calculates net positions from trade history data, contrasting with trade_history (raw transactions) and financial calculation tools like pnl.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the calculation methodology (summing buy/sell trades from CSV), which implicitly signals when to use this versus viewing raw trade history. However, it lacks explicit 'when not to use' guidance or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
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/VaishnaviK23/Trading-MCP-Server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server