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"]).

TDQS

A4.9/5.0
Behavior5/5

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

Annotations declare readOnlyHint, openWorldHint, idempotentHint, destructiveHint=false. The description adds rich behavioral context: for companies, it pulls latest 10-K data from SEC EDGAR/XBRL with correct off-calendar fiscal years; for drugs, it pulls FAERS/FDA/trial counts. Also notes sorting by primary metric and citation URIs.

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

Conciseness5/5

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

Single paragraph with logical flow: trigger phrases, purpose, preference, per-type behavior, sorting/return info. Every sentence is informative and necessary. No fluff.

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?

No output schema, but description explains return format (paired data + citation URIs). Covers both entity types thoroughly. For a 2-parameter tool with clear domain, this is fully sufficient.

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%, but the description adds meaning: explains that type='company' pulls financials and type='drug' pulls adverse events, and gives examples for values (tickers/CIKs for company, names for drug). This adds value beyond schema.

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 uses specific trigger phrases like 'compare X and Y', 'X vs Y', 'rank these companies' and clearly states it performs side-by-side comparison of 2–5 companies or drugs. It distinguishes itself from siblings like entity_profile which does single lookups.

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 says 'ALWAYS PREFER over sequential single-pack lookups when comparing entities' and provides separate behavior for company vs drug type. This gives clear when-to-use and when-not-to 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

Multiple query entry points have overlapping boundaries: ask_pipeworx and ask_pipeworx_beta are currently identical, suggest_questions and discover_tools both serve discovery/onboarding, and validate_claim overlaps with ask_pipeworx_grounded. With 34 tools including five Polymarket edge/scanner tools, an agent can easily select the wrong meta-tool despite the detailed descriptions.

Naming Consistency3/5

All names are lowercase snake_case, so there is no style chaos, but the pattern is inconsistent: verb-led names like ask_pipeworx and validate_claim mix with noun-led names like entity_profile, recent_alerts, and polymarket_arbitrage, plus bare memory verbs like remember/recall/forget. Related tools are also not aligned, such as ai_visibility_check vs scan_competitor_ai_presence.

Tool Count2/5

34 tools is too many for a server branded 'Data Toronto', and many tools are only loosely related to the core data-access purpose: ask_pipeworx_beta, generate_llms_txt, scan_dependency, ai_visibility_check, and the memory trio feel like bolt-ons. Even granting Pipeworx's broad research scope, the set is over-stuffed rather than well-scoped.

Completeness4/5

The data-research surface is unusually comprehensive: search, deep research, entity resolution/profiling, comparison, claim validation, alerts/subscriptions, and Toronto open-data querying are all covered. The main gaps are Toronto-side metadata details like resource schemas/columns and a way to browse the full dataset catalogue without a keyword.