Skip to main content
Glama

Entity Profile

entity_profile
Read-onlyIdempotent

"Tell me about X" / "research Acme" / "brief me on Tesla" / "what does Apple do" / "company profile for Microsoft" / "give me the rundown on NVDA" / "everything you know about $TICKER" — full cross-source profile of a US public company in ONE parallel call. ALWAYS PREFER over chaining single-pack SEC/XBRL/news lookups when the user asks for a holistic view. Fans out across SEC EDGAR, XBRL, USPTO patents, federal contracts (USAspending), FDA-licensed biologics (Purple Book), H-1B hiring (DOL LCA), news and GLEIF, and returns: cik + company_name (+ resolved_from/resolved_to when value was a name); recent_filings (up to 5 with pipeworx://edgar/company/{cik}/filings/{accession} URIs); fundamentals (LATEST 10-K Revenues + NetIncomeLoss + Cash, sorted period_end DESC); patents (USPTO PatentsView API sunset May 2025 — soft-fails until reactivated); federal_contracts (USAspending awards where the company is the recipient); fda_products (FDA-licensed biologics — vaccines, cell/gene therapies — from the Purple Book; a company with only small-molecule/generic drugs will show none here, that is expected, not a failure); hiring (H-1B sponsorship volume + salary range from DOL LCA filings); recent news mentions via GDELT→GNews fallback; LEI via GLEIF. sources_used / sources_failed say which of these actually returned data for THIS company — an empty section is a real "no data", not a bug. Pass a ticker ("AAPL"), zero-padded CIK ("0000320193"), OR a company name ("Moderna") — names now resolve via SEC EDGAR's company-name match; a private company (no CIK/ticker) returns resolved:false with an explicit notes line, not a bare failure. type accepts "company" or "ticker" interchangeably — both take the same value shapes above.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeYes"company" or "ticker" — both are accepted and behave identically; `value` can be a ticker, CIK, or company name either way. person/place coming soon.
valueYesTicker (e.g., "AAPL"), zero-padded CIK (e.g., "0000320193"), or company name (e.g., "Moderna") — names resolve via SEC EDGAR company-name match.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed3 schema fields changed
    • changedInput schema / properties / type / description
      Previous value: -"Entity type. Only \"company\" supported today; person/place coming soon."New value: +"\"company\" or \"ticker\" — both are accepted and behave identically; `value` can be a ticker, CIK, or company name either way. person/place coming soon."
    • changedInput schema / properties / type / enum
      Previous value: -[
      -  "company"
      -]New value: +[
      +  "company",
      +  "ticker"
      +]
    • changedInput schema / properties / value / description
      Previous value: -"Ticker (e.g., \"AAPL\") or zero-padded CIK (e.g., \"0000320193\"). Names not supported — use resolve_entity first if you only have a name."New value: +"Ticker (e.g., \"AAPL\"), zero-padded CIK (e.g., \"0000320193\"), or company name (e.g., \"Moderna\") — names resolve via SEC EDGAR company-name match."
  2. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations carry readOnly/openWorld/idempotent, and the description goes well beyond them: parallel fan-out across 8 source classes, GDELT-to-GNews fallback chain, USPTO API sunset soft-fail, 'an empty section is a real "no data", not a bug', and sources_used/sources_failed reporting. These are precisely the failure modes and expectation-setting an agent cannot infer from annotations alone, and nothing contradicts the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence earns its place — trigger phrases, routing rule, source inventory, return components, and edge cases all carry information density. The flaw is structural: it is one dense unbroken paragraph, and although the length is justified for a tool with this many sources and caveats, section breaks or bulleted lists would make it markedly more scannable for an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must document return values itself, and it does thoroughly: cik, company_name, resolved_from/resolved_to, recent_filings with URI format and 5-item cap, the exact LATEST 10-K fundamentals keys, per-source sections, and sources_used/sources_failed. Missing only trivial details like latency and rate limits, which are immaterial to correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds genuine value on top: names resolve via SEC EDGAR company-name match, resolved_from/resolved_to appears when value was a name, zero-padded CIK format is restated, and an unresolvable/private company yields resolved:false + notes rather than a hard failure. The type interchangeability is already in the schema, so the extra credit comes mainly from the failure-mode and resolution semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with concrete trigger phrases, then states a specific verb+resource+scope: 'full cross-source profile of a US public company in ONE parallel call.' The 'holistic view' positioning and single-call fan-out design distinguish it from related siblings like resolve_entity (identity-only), compare_entities (comparison), and deep_research (broader scope). An agent can recognize when this tool applies immediately from the first sentence.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

Explicitly routes the agent: 'ALWAYS PREFER over chaining single-pack SEC/XBRL/news lookups when the user asks for a holistic view.' Trigger phrases encode the when-condition, the private-company note encodes a when-not (resolved:false instead of a profile), and the sources_failed semantics tell the agent how to interpret partial results rather than re-invoking. This is direct, actionable selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.9/5.0
Disambiguation2/5

There are several tools with overlapping query responsibilities: ask_pipeworx, ask_pipeworx_beta, and ask_pipeworx_grounded are near-variants of the same router, and bet_research, polymarket_edges, and polymarket_arbitrage all target prediction-market opportunity discovery. An agent must read the long descriptions carefully to distinguish them, and some variants are behaviorally identical today.

Naming Consistency3/5

All names are readable snake_case, but the verb_noun convention is not consistently applied: some are clean verb phrases like validate_claim and discover_tools, while others are noun phrases like entity_profile, recent_alerts, or simap_project. The prefixed groups (polymarket_*, pipeworx_*) help, but the overall naming style is mixed.

Tool Count2/5

34 tools is above the heavy range, and the set is inflated by redundant router variants, five overlapping Polymarket tools, and loosely related utilities like generate_llms_txt and scan_dependency. The server is named Simap but only three tools relate to Swiss procurement, making the scope feel bloated and misaligned.

Completeness4/5

For an information-retrieval-style server, the core workflows are well covered: discovery, routing, grounded answers, entity resolution, profiles, comparisons, fact-checking, subscriptions, and memory. The main gaps are minor, such as updating a subscription in place or deeper native Simap-specific actions, and those can be worked around.