StockLens
Server Details
AI-powered stock analysis: nightly ratings, on-demand deep-dives, and watchlist insights.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.4/5 across 5 of 5 tools scored. Lowest: 3.9/5.
Each tool has a distinct function: initiate_analysis starts an async job, fetch_analysis_result retrieves that job's status/result, get_market_summary returns the latest pre-computed score, and get_portfolio_insights covers multiple tickers. The only mild overlap is between fetch_analysis_result and get_market_summary, but descriptions make the difference clear.
Tool names mostly follow a verb_noun pattern (fetch, get, get, initiate), with only 'ping' breaking the convention. The mix of 'fetch' and 'get' is a minor inconsistency but doesn't obscure meaning.
Five tools is well-scoped for a stock analysis server. Each tool covers a distinct part of the workflow: initiating analysis, fetching results, getting summaries, portfolio overview, and a health check. No bloat or excessive granularity.
The analysis lifecycle is covered end-to-end: initiate, fetch, and get latest summary, plus portfolio-level insights. The only notable gap is lack of a 'list analyses' or 'cancel analysis' tool, but that's not critical for the core purpose.
Available Tools
5 toolsfetch_analysis_resultFetch Analysis ResultARead-onlyIdempotentInspect
Fetch the result or progress of a previously initiated StockLens analysis. Returns status (in_progress/complete/failed), progress percentage, and full result when complete. Each call returns the current state once; it does not wait for completion. While status is in_progress, retry_after_seconds is the earliest sensible time to check again — check again only if the user asks to continue. Complete results include composite score, domain breakdowns, key insights, and may include a Plus Analysis AI narrative.
| Name | Required | Description | Default |
|---|---|---|---|
| analysis_id | Yes | The analysis_id returned by initiate_analysis |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No | |
| status | Yes | |
| analysis_id | Yes | |
| progress_pct | No | |
| error_message | No | |
| retry_after_seconds | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description discloses critical non-obvious behaviors: polling is non-blocking, each call returns the state exactly once, and the response shape varies by status (in_progress vs complete). It also details what complete results include (composite score, domain breakdowns, key insights, optional AI narrative). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: purpose first, then behavior, retry guidance, and result contents. Every sentence adds value without redundancy. The structure is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, non-blocking behavior, retry guidance, and the content of both progress and complete responses. Since an output schema exists, it doesn't need to enumerate every field, but it gives enough context for an agent to understand what to expect and how to interact.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter (analysis_id) is fully described in the schema ('The analysis_id returned by initiate_analysis'), providing 100% coverage. The description doesn't add extra parameter meaning, but the schema already carries the necessary semantics, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb ('Fetch') and a clear resource ('result or progress of a previously initiated StockLens analysis'), immediately distinguishing it from sibling tools like initiate_analysis and get_market_summary. It fully captures what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage context: it explains that the tool returns the current state once, does not wait for completion, and includes a recommended retry interval (retry_after_seconds). It also tells the agent to check again only if the user asks to continue, which serves as a clear when-to-use and when-not-to-use guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_summaryGet Market SummaryARead-onlyIdempotentInspect
Retrieve the latest StockLens composite analysis summary for a stock ticker. Returns composite score (0-100), an overall rating, per-domain scores and grades, and key strengths and challenges. No authentication required — data is derived from most recent nightly analysis run. Use this to quickly assess a stock before deciding whether to run a full analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker symbol (e.g. AAPL MSFT TSLA) | |
| exchange | No | Exchange code (e.g. NASDAQ NYSE). Optional - resolved automatically if omitted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| rating | Yes | |
| sector | Yes | |
| ticker | Yes | |
| exchange | Yes | |
| industry | Yes | |
| data_source | Yes | |
| company_name | Yes | |
| analysis_date | Yes | |
| domain_scores | Yes | |
| key_strengths | No | |
| config_context | Yes | |
| key_challenges | No | |
| composite_score | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is well-covered. The description adds value by disclosing 'No authentication required' and 'data is derived from most recent nightly analysis run' — useful behavioral context about data freshness and access requirements that annotations don't capture.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a compact 4-sentence block that front-loads the core purpose, lists key outputs, discloses data freshness and auth, and ends with a direct usage recommendation. Every sentence contributes value with no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a rich output schema and annotations, so structural details are covered elsewhere. The description provides the key remaining context: data source freshness (nightly run), no-auth requirement, and an explicit use case for quick assessment. Minor gap: it doesn't explain what 'full analysis' means or reference the sibling initiate_analysis directly, though the usage guidance implies this relationship.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (ticker and exchange) well. The description adds no new parameter-level detail, which is acceptable given the schema coverage. Baseline 3 is appropriate since the schema handles the parameter documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a StockLens composite analysis summary with specific verb ('retrieve'), resource ('composite analysis summary'), and output details (composite score, rating, per-domain scores, strengths/challenges). This distinguishes it from siblings like get_portfolio_insights and initiate_analysis, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly directs when to use this tool: 'Use this to quickly assess a stock before deciding whether to run a full analysis.' This creates a clear usage path and implies when NOT to use it (when a full/detailed analysis is needed). It also clarifies the data is from the most recent nightly run, setting expectations about freshness.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_portfolio_insightsGet Portfolio InsightsARead-onlyIdempotentInspect
Retrieve StockLens analysis summaries for the authenticated user's watchlist. Returns available composite scores and grades for watchlisted stocks; either value may be absent when no completed score exists. FREE tier returns up to 3 holdings; PRO/MAX return the full watchlist. Use this to give users an overview of their portfolio's analytical health.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| watchlist | Yes | |
| tier_limited | Yes | |
| total_holdings | Yes | |
| aggregate_signal | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety profile is covered. The description adds useful context beyond annotations: tier-based limits (FREE returns up to 3 holdings), the possibility that values may be absent when no completed score exists, and that it targets the user's watchlist specifically. This is meaningful behavioral disclosure that complements the annotation set.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, zero waste. Front-loads the primary purpose, covers edge cases (absent values), notes tier limits, and ends with a clear usage recommendation. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists but has no nested objects, so the description reasonably handles the complexity of tier-dependent data. It covers the key variability (plan limits, absent scores) that a schema alone wouldn't convey. Could arguably note that without a completed score no data is returned for that stock, but it already says 'either value may be absent' which sufficiently telegraphs the behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters exist, so the schema cannot carry any burden. The description compensates by explaining what is semantically returned (composite scores and grades, absent values, tier-dependent holdings count). With 0 params, baseline is 4, and the description earns it by clarifying the return semantics that vary by tier.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('Retrieve StockLens analysis summaries') with clear scope ('for the authenticated user's watchlist'). Explicitly states what it returns (composite scores and grades) and the tier-dependent behavior (FREE=3, PRO/MAX=full). Clearly distinguishes from siblings like initiate_analysis and fetch_analysis_result which do different jobs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States when to use it: 'Use this to give users an overview of their portfolio's analytical health.' It implies alternative tools exist for deeper operations (initiate_analysis, fetch_analysis_result), though it doesn't explicitly state when NOT to use this or name alternatives directly. Decent contextual guidance for how this fits among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
initiate_analysisInitiate AnalysisADestructiveInspect
Initiate a full StockLens AI analysis for a specific stock. Starting a new run may consume one Analysis credit (LENS_AI) or one Plus Analysis credit (LENS_AI_PLUS, which may add AI narratives). Returns an analysis_id immediately — completion is asynchronous. Retrieve status or results with a separate fetch_analysis_result call when the user asks for them. A recent matching analysis may be reused; the receipt explicitly reports new_run_started and reused_existing without claiming an asynchronous credit charge has completed. Concurrent identical initiations receive retry guidance. Free supports the standard Analysis only; Pro and Max unlock Plus Analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | Analysis depth: standard or plus. Standard consumes an Analysis credit (LENS_AI). Plus consumes a Plus Analysis credit (LENS_AI_PLUS) and may add AI narratives. Default standard. | |
| ticker | Yes | Stock ticker symbol (e.g. AAPL) | |
| exchange | No | Exchange code (e.g. NASDAQ). Optional. | |
| time_range | No | Time horizon — shapes which signals the analysis weighs most (shorter horizons favor price action, momentum and news; longer favor fundamentals and quality). Not a price forecast. One window per calibrated band: short_2_wk (Short-term), medium_1_mo (Medium-term), long_1_yr (Long-term). Default medium_1_mo. The legacy medium_2_mo and long_2_yr aliases are still accepted and resolve to medium_1_mo and long_1_yr respectively. | |
| risk_tolerance | No | Analysis focus — reweights how much the analysis weighs downside/quality risk vs. growth/fundamentals. NOT a personal risk or suitability assessment, and it never changes the company's underlying facts. low=Defensive, medium=Balanced, high=Growth. Default medium. | |
| analysis_emphasis | No | Optional. RISK_EMPHASIS | BALANCED | FUNDAMENTAL_GROWTH_EMPHASIS. Must agree with the emphasis implied by risk_tolerance (low->RISK_EMPHASIS, medium->BALANCED, high->FUNDAMENTAL_GROWTH_EMPHASIS); a mismatch is rejected as a validation error before any credit is consumed. | |
| evidence_history_family | No | Optional. SHORT_HISTORY | MEDIUM_HISTORY | LONG_HISTORY. Must agree with the family implied by time_range (short_2_wk->SHORT_HISTORY, medium_1_mo/medium_2_mo->MEDIUM_HISTORY, long_1_yr/long_2_yr->LONG_HISTORY); a mismatch is rejected as a validation error before any credit is consumed. Does not select a representative range on its own. |
Output Schema
| Name | Required | Description |
|---|---|---|
| depth | Yes | |
| status | Yes | |
| analysis_id | Yes | |
| credit_type | Yes | |
| new_run_started | Yes | |
| reused_existing | Yes | |
| estimated_seconds | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations, disclosing asynchronous behavior, credit consumption (with the nuance that the receipt does not claim a charge has completed), reuse possibility, receipt fields (new_run_started, reused_existing), retry guidance for concurrent identical requests, and plan-based limitations (Free vs Pro/Max). This is rich behavioral context that the annotations (readOnlyHint=false, destructiveHint=true) do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is fairly long (around 150 words) and covers many aspects, but it is front-loaded with the primary purpose and then logically progresses through behavior, reuse, receipt, retry, and plan limitations. Every sentence adds substantive information; it is more detailed than a typical description but justified by the tool's complexity. It is not overly redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (asynchronous, credit-consuming, potential reuse), the description covers all key aspects: immediate return of analysis_id, asynchronous completion, how to retrieve results (fetch_analysis_result), reuse behavior, receipt contents, retry guidance for concurrency, and plan-based depth restrictions. It also aligns with the output schema (analysis_id) without needing to repeat return details. The description is fully complete for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value by clarifying plan restrictions: 'Free supports the standard Analysis only; Pro and Max unlock Plus Analysis.' This is not present in the schema for the depth parameter and gives practical guidance. The description also reinforces the asynchronous nature of credit consumption, but the schema already describes the credit roles. Overall, it adds enough extra meaning to warrant a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with 'Initiate a full StockLens AI analysis for a specific stock,' which clearly states the verb (initiate), resource (analysis), and scope (specific stock). It differentiates from siblings by explicitly mentioning that results are retrieved via fetch_analysis_result, and other siblings (get_market_summary, get_portfolio_insights) are not about initiating per-stock analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: returns an analysis_id immediately, completion is asynchronous, and results are retrieved via fetch_analysis_result. It also notes that a recent matching analysis may be reused, which guides when initiation might avoid new work. However, it does not explicitly state 'when not to use' this tool beyond implying reuse, but the mention of fetch_analysis_result as the retrieval alternative is a strong usage signal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingPingARead-onlyIdempotentInspect
Health check — returns pong to verify MCP connectivity
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | Connectivity status — "ok" when the MCP server is reachable |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the specific behavioral detail that it returns 'pong' as the response format, which provides concrete behavioral context about the return value beyond the annotations' safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. Every word earns its place - it states the purpose ('Health check'), the output ('pong'), and the purpose ('verify MCP connectivity') in a highly compact format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter health check tool with an output schema, the description is reasonably complete. The only minor gap is that the description doesn't detail what the output schema contains, but since an output schema exists, that burden shifts away from the description. The description adequately covers a simple tool's needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema coverage is 100% (there is nothing to describe). With 0 params, the baseline is 4 per the rubric. The description correctly doesn't fabricate parameter information that doesn't exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs a health check returning 'pong' to verify MCP connectivity, which is a specific verb+resource. It doesn't explicitly distinguish from siblings, but the tool's purpose is inherently distinct given it's a connectivity check versus the analytical sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (verifying connectivity), which is reasonably clear for a health check tool. However, there's no explicit when-when-not guidance or mention of alternatives, though the utility of a ping in a toolset of analytical tools is largely self-evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseAqualityCmaintenanceResearches any company in ~10 seconds using 10 data sources. Returns structured reports with bull/bear verdict for stocks, crypto, and private companies.212AGPL 3.0
- AlicenseAqualityAmaintenancePre-computed financial market intelligence for AI agents. Stocks, crypto, and ETFs.92303MIT
- AlicenseAqualityAmaintenanceInstitutional-grade quantitative stock analysis and research signals for AI agents via the Model Context Protocol (MCP).2691MIT

Rozkoduj MCPofficial
AlicenseAqualityAmaintenanceProvides AI assistants with market screening, analysis, and scoring across stocks, crypto, and forex, enabling natural language queries for trading insights.4MIT