mcp-financial-data-server
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation4/5
The four tools have generally clear boundaries: price snapshot, portfolio analytics, correlation, and historical summary. There is mild overlap between get_quote and get_historical_summary since both are single-ticker price tools, but the current vs. windowed-summary distinction is understandable.
Naming Consistency5/5Names are consistently lowercase snake_case with a verb_noun pattern: get_quote, get_portfolio_metrics, compare_assets, get_historical_summary. The single compare_ prefix is still predictable and follows the same grammatical style.
Tool Count4/5Four tools is a modest but reasonable set for a focused market-data server. The count is not excessive, though the broad server name suggests slightly more coverage could be warranted.
Completeness3/5The core quote and analytics workflows are covered, but there is no raw historical price series endpoint, no search/discovery tool, and no batch quote capability. These are notable gaps for a 'financial data' server, though users can still accomplish basic investing analyses.
Average 4.4/5 across 4 of 4 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 4 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
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
- 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 it does well by disclosing the null behavior for moving averages when history is insufficient. It also clearly states what is returned. It stops short of describing error scenarios or data conventions, but for a read-only summary tool this is reasonably transparent.
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 compact, front-loaded with the main purpose, and clearly separated into Args and Returns. Every sentence contributes useful information with no filler.
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 tool with no annotations and no output schema, the description covers the essential inputs, the output contents, and an important edge case. It is slightly incomplete in not addressing error behavior or the exact structure/format of the returned values, but an agent has enough to call it correctly in the common case.
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?
Since schema description coverage is 0%, the description compensates by defining both parameters: ticker with concrete examples and period with an explicit list of allowed values. It does not mention the default period or units for return, but enough meaning is added for correct invocation.
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 and resource: "Get a summarized price history for one ticker," followed by the concrete outputs (moving averages, high/low, return). The "for one ticker" scope also helps distinguish it from siblings like compare_assets.
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 intended use is implied by the description: use this when you need a historical price summary for a single ticker. However, it never explicitly names alternatives or explains when to prefer get_quote or compare_assets, so the guidance is only implicit.
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 are provided, so the description carries the behavioral burden. It clearly states the return fields (latest price, previous close, absolute/percentage change, currency) and the error payload for invalid or unreachable data. This is solid, though it does not address latency or data freshness.
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 front-loaded with a one-sentence summary and uses compact Args/Returns sections. Every sentence adds useful information with no tautology or filler.
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 one-parameter quote tool with no output schema, the description is complete: it documents the parameter, the return contract, and failure behavior. Nothing an agent needs to invoke or interpret the call correctly is missing.
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 schema has no description coverage for the ticker parameter, so the description must compensate. It provides concrete ticker formats ('AAPL', 'MSFT', 'PETR4.SA') and notes B3-listed stocks, adding real value beyond the schema's bare 'Ticker' title.
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 and resource: 'Get the current price and day change for a stock ticker.' This clearly distinguishes it from sibling tools like get_portfolio_metrics or get_historical_summary, which operate at portfolio or historical levels.
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 establishes that this is for single-ticker current quotes, but it does not explicitly say when-not-to-use it or point to alternatives like compare_assets or get_historical_summary. The ticker examples imply usage but do not provide exclusion criteria.
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 is transparent about what the tool computes and returns, listing cumulative return, annualized return, annualized volatility, Sharpe ratio, and max drawdown. It does not discuss edge cases, data sources, or validation behavior, but the compute-and-return nature is well conveyed.
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 compact, structured into Args and Returns sections, and every sentence carries necessary information. There is no filler or repetition of the input schema, and the purpose statement is front-loaded.
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 absence of an output schema and annotations, the description covers the key inputs and outputs well. It could be more complete by specifying the exact return format/keys or whether outputs are decimal or percentage, but it provides enough detail for an agent to understand the tool's scope and behavior.
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?
Schema coverage is 0%, so the description must fully compensate. It does: tickers are given with an example, weights are explained with the 'same order' and 'must sum to 1.0' constraint, period is enumerated with all valid values, and risk_free_rate is explained with an annualized example. This is significantly more useful than 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 and resource: 'Compute risk/return metrics for a weighted portfolio of stocks.' This clearly distinguishes the tool from siblings like get_quote, compare_assets, and get_historical_summary by focusing on portfolio-level aggregated metrics rather than single quotes, comparisons, or historical summaries.
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 first sentence gives clear context: this is for computing portfolio risk/return metrics from tickers and weights. It does not explicitly name alternative tools or state when not to use it, but the portfolio-focused wording provides enough context for an agent to select it appropriately against the listed siblings.
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, the description carries the full burden of behavioral disclosure. It clearly states the output (a ticker-by-ticker correlation matrix of daily returns, range -1 to 1) and constrains inputs. It does not describe data sources or error handling, but for a read-only computation tool the core behavior is transparent.
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 concise and well-structured with a one-sentence purpose, an 'Args' block, and a 'Returns' line. Every section earns its place and no redundant 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 (2 parameters, no output schema, no annotations), the description is complete. An agent can determine required arguments, optional argument values, and the expected result format without any additional context.
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?
Schema description coverage is 0%, so the description must compensate. It fully documents both parameters: tickers requires 'two or more ticker symbols' with a concrete example, and period lists all allowed values ('1mo','3mo','6mo','1y','2y','5y','10y','ytd','max'). This exceeds what the raw schema provides.
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 and resource: 'Compute the correlation matrix of daily returns between two or more assets.' This clearly defines the tool's function and distinguishes it from siblings like get_quote or get_portfolio_metrics, which serve different purposes. The return value is also specified.
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 purpose statement makes the context obvious: use this tool when you need a correlation matrix across multiple tickers. It does not explicitly name alternatives or exclusions, but the sibling tools are distinct enough that no further routing guidance is needed.
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/Biahellens/mcp-financial-data-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server