Margin of Insight — Equity Research
Server Details
Equity research API for US-listed companies. Free primer, $1 fundamentals, $2 investment memo.
- 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 3.8/5 across 6 of 6 tools scored.
Each tool has a distinct purpose: primers, fundamental analyses, investment memos, coverage listing, coverage requests, and search. No overlap between the paid analysis tools and the free coverage tools.
All tool names follow a consistent verb_noun pattern in snake_case: get_*, list_*, request_*, search_*. No mixing of conventions.
6 tools is appropriate for an equity research server, covering both free and paid end-to-end workflows without being excessive or insufficient.
Covers the full lifecycle: discovering coverage (list, search), requesting new coverage, and accessing three levels of analysis (primer, fundamental, memo). Minor gap: no tool for raw data or news, but core research needs are met.
Available Tools
6 toolsget_company_primerAInspect
Get a free company primer for any US-listed company. Returns business overview, financial snapshot, and recent catalysts. No payment required.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker symbol (e.g. AAPL, MSFT, NVDA) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions it returns specific data and is free, but lacks details on data freshness, authentication, or side effects. Adequate but not comprehensive.
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?
Two sentences with no wasted words. Front-loaded with verb and resource, then lists returns and a key qualifier (free). Highly concise.
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?
Without an output schema, the description adequately explains return contents and emphasizes no cost. It could mention whether non-US companies are excluded, but overall complete for a simple retrieval tool.
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 coverage is 100% for the single 'ticker' parameter with clear description. The tool description adds domain restriction ('US-listed') which provides additional context beyond the schema, but does not significantly enhance parameter meaning.
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 company primer for US-listed companies and lists specific outputs (business overview, financial snapshot, recent catalysts). It distinguishes from siblings like get_fundamental_analysis by emphasizing 'primer' and 'free'.
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 for quick overviews with 'primer' and 'free', but does not explicitly state when not to use or name alternatives. It provides clear context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fundamental_analysisBInspect
Get fundamental analysis (12 research steps: revenue breakdown, earnings analysis, competitive positioning, financial trends, risk register, balance sheet, capital allocation, returns on capital (ROIC), industry context). Costs $1.00. Pay with a Stripe Shared Payment Token: send Authorization: Bearer spt_… on the HTTP transport. See https://docs.stripe.com/agentic-commerce/concepts/shared-payment-tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker symbol |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It explicitly states the $1.00 cost and the requirement for a Stripe Shared Payment Token in the Authorization header, which are critical behavioral traits. This exceeds minimal disclosure.
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 relatively concise, front-loading the purpose and then adding cost and payment instructions. The parenthetical list of steps is somewhat lengthy but still efficient overall.
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?
While the description lists the research steps, it does not explain the output format or structure, which is important given the absence of an output schema. It also lacks information on error handling or rate limits, making it adequate but not complete.
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 coverage is 100% with a single parameter 'ticker' described as 'Stock ticker symbol'. The description adds no additional meaning beyond the schema, so the baseline score of 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 clearly states the tool retrieves fundamental analysis and lists 11 research steps, making the purpose evident. However, it does not distinguish itself from sibling tools like get_company_primer or get_investment_memo, leaving some ambiguity about when to prefer this tool.
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 offers no guidance on when to use this tool versus alternatives. It neither specifies prerequisites nor provides exclusions, leaving the agent without context for selection decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_investment_memoAInspect
Get a full investment memo (21 research steps including DCF valuation, moat analysis, management quality, scenario analysis, returns on capital, institutional and insider activity, and investment thesis). Equivalent to a sell-side initiation note. Costs $2.00. Pay with a Stripe Shared Payment Token: send Authorization: Bearer spt_… on the HTTP transport. See https://docs.stripe.com/agentic-commerce/concepts/shared-payment-tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker symbol |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the burden. It discloses a $2.00 cost and payment method via Stripe token, which is critical behavioral context. However, it doesn't mention failure modes or whether the token is always required.
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?
Two sentences: first defines the tool's output, second covers cost and payment. It is concise and front-loaded, though the second sentence is somewhat dense.
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 gives a good sense of output content and cost/payment, which is essential. However, it lacks return format, error conditions, and any rate limits. With no output schema or annotations, more detail would be beneficial.
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 coverage is 100% with a clear description for ticker. The description adds no further semantics beyond the schema, 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 clearly states it retrieves a full investment memo with 19 research steps including DCF, moat analysis, etc. It also equates it to a sell-side initiation note, distinguishing it from sibling tools like get_company_primer.
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 does not explicitly state when to use this tool versus alternatives. It implies it's for a comprehensive memo but lacks guidance on when to choose it over sibling tools like get_fundamental_analysis or search_research.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_coverageAInspect
List all covered tickers with company name, sector, exchange, and last updated date. Free.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
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 only states the tool lists data and the fields returned, but lacks disclosure of behavioral traits like rate limits, authentication needs, data freshness, or whether the list is comprehensive. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with one clearly written sentence plus 'Free.' Every word adds value, and the key information is front-loaded.
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 has no output schema, the description explains the return fields (company name, sector, exchange, last updated date), which is sufficient for a simple listing. Could mention whether the list is paginated or sorted, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters, so the description does not need to add parameter details. Baseline for 0 params is 4. The description correctly implies no parameters are needed by stating it lists 'all' covered tickers.
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 lists all covered tickers with specified fields (company name, sector, exchange, last updated date). It uses a specific verb (list) and resource (covered tickers), and is distinct from sibling tools like get_company_primer which retrieve specific company data.
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 mentions 'Free' to indicate no cost, but provides no guidance on when to use this tool vs alternatives like get_company_primer or search_research. No explicit when-to-use or when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_coverageAInspect
Request research coverage for a US-listed company not yet in the coverage universe. Coverage is typically added within 24-48 hours. Free.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Optional email address to notify when coverage is ready | ||
| ticker | Yes | Stock ticker symbol to request coverage for |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses typical timing (24-48 hours) and cost (free) but does not specify error behavior if the company is already covered or any other behavioral traits like rate limits or confirmation details.
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?
Two sentences: first states the purpose and condition, second adds timing and cost. No unnecessary words, front-loaded with key information. Highly efficient.
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 simple request tool with no output schema, the description covers essential aspects: purpose, condition, timing, and cost. It could mention what response looks like but is adequate given low complexity.
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?
Input schema has 100% description coverage for both parameters (ticker and email). The description reinforces the ticker's purpose but adds no new meaning beyond what the schema provides. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'request' and resource 'research coverage' for US-listed companies not in the coverage universe. It distinguishes from sibling tools like list_coverage and search_research by specifying the condition of not yet covered.
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 states when to use: for companies not yet in the coverage universe. It implies constraints (US-listed) and adds context (24-48 hour turnaround, free). It does not explicitly name alternative tools for already covered companies, but the sibling context provides that.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_researchAInspect
Search covered companies by ticker or company name. Returns matching companies with ticker, name, sector, and exchange. Free.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Ticker symbol or company name to search for |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states the return fields and that it's free, but does not disclose rate limits, pagination, error handling, or any behavioral nuances beyond basic functionality.
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 brief and to the point, containing two sentences. However, the word 'Free' at the end feels tacked on and breaks the flow slightly. It could be more structured.
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 simple search tool with one parameter and no output schema, the description covers the essential aspects: what it does, what you input, and what you get back. It's reasonably complete, though it could mention ordering or limit of results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage with a description for 'query' that says 'Ticker symbol or company name to search for.' The description adds little beyond that, merely restating 'by ticker or company name.' 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 clearly states the action (Search), the resource (covered companies), and the search criteria (by ticker or company name). It also lists the returned fields, distinguishing it from siblings like get_company_primer which likely returns more detailed data.
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 clearly indicates when to use the tool (to search for companies by ticker or name). However, it does not provide explicit exclusions or when not to use it, nor does it mention alternatives among the sibling tools.
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!