Skip to main content
Glama

Compare Entities

compare_entities
Read-onlyIdempotent

"Compare X and Y" / "X vs Y" / "X versus Y" / "which is bigger / better / larger / more profitable" / "rank these companies" / "head to head" — side-by-side comparison of 2–5 companies or drugs in ONE parallel call. ALWAYS PREFER over sequential single-pack lookups when comparing entities. type="company" pulls LATEST 10-K revenue + net income + cash + long-term debt from SEC EDGAR/XBRL (off-calendar fiscal years handled correctly — AAPL Sep, NVDA Jan, etc.). type="drug" pulls FAERS adverse-event counts, FDA approval counts, active trial counts. Results sorted by primary metric so "largest" / "most" / "biggest" reads off the top of the response. Returns paired data + pipeworx:// citation URIs per entity. Replaces 8–15 sequential lookups.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeYesEntity type: "company" or "drug".
valuesYesFor company: 2–5 tickers/CIKs (e.g., ["AAPL","MSFT"]). For drug: 2–5 names (e.g., ["ozempic","mounjaro"]).

Schema Changelog

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

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent, non-destructive behavior. The description adds substantial context: data sources (SEC EDGAR/XBRL, FAERS, FDA), off-calendar fiscal year handling, sorting by primary metric, and return format with citation URIs. No contradiction.

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?

Description is long but every sentence adds value: trigger phrases, capability, per-type details, sorting behavior, output format, and efficiency claim. No redundant filler, though dense enough to require careful reading.

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?

Even without an output schema, the description covers what is returned (paired data + citation URIs), sorting, and scope limits (2–5 entities, one call). It fully addresses the tool's complexity and likely usage scenarios.

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 meaningful enrichment: for type it explains the specific data pulled, and for values it gives examples (tickers/CIKs vs drug names). This goes beyond the bare schema definitions.

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?

The description clearly states it performs side-by-side comparison of 2–5 companies or drugs in one parallel call, with concrete examples of trigger phrases. It distinguishes itself from sequential single-pack lookups and sibling tools like entity_profile.

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 instructs to ALWAYS PREFER this tool over sequential single-pack lookups when comparing entities. It also describes what each type (company/drug) pulls, giving clear context for when to use which type.

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.6/5.0
Disambiguation2/5

There is heavy overlap in the ask_pipeworx family (ask_pipeworx, ask_pipeworx_beta, ask_pipeworx_grounded, deep_research, bet_research, validate_claim) — several are near-identical 'route a natural-language question to a source' tools differing only by small qualifiers. ai_visibility_check vs scan_competitor_ai_presence and entity_profile vs compare_entities vs recent_changes also blur together. An agent could easily misselect among these.

Naming Consistency4/5

The dominant convention is snake_case verb_noun/noun_verb (list_subscriptions, scan_dependency, validate_claim, resolve_entity) which is fairly consistent, but there are several bare single-word verbs (lookup, sequence, variation, vep, xrefs, recall, remember, forget) that break the pattern. No camelCase is present, so the inconsistency is minor rather than chaotic.

Tool Count2/5

38 tools is heavy, and the overwhelming majority (~31) are Pipeworx meta-tools (subscriptions, memory, feedback, trend, discovery, llms.txt generation) that have nothing to do with the server's declared Ensembl identity. Only about 7 tools are actually genomics-related, so the count is inflated by off-domain additions that dilute the surface.

Completeness2/5

For the Ensembl domain, the surface covers gene lookup, symbol resolution, sequence retrieval, orthologs, SNPs, variant effect prediction, and xrefs — but misses major Ensembl capabilities like gene trees/families, regulatory features, comparative/multi-species alignments, expression data, phenotypes, GO/ontology annotations, and region/overlap queries. Conversely the Pipeworx tools are complete for their own domain but irrelevant here, leaving the declared domain notably incomplete.