Skip to main content
Glama

THE INFXL ANGLE

Server Details

Competitive-intelligence briefs on any company's competitors, market and prospects. Early access.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.3/5.0

Scored across 5 tools

Disambiguation5/5

Each tool maps to a distinct action on a distinct resource: free pre-flight validation (check_company), account state (get_account), starting a brief (request_brief), polling/reading one brief (get_brief), and enumerating briefs (list_briefs). The only potential overlap, check_company vs request_brief, is explicitly separated by cost and side effects, so misselection is unlikely.

Naming Consistency5/5

All five names follow a clean snake_case verb_noun pattern (check_/get_/list_/request_ + resource). Verbs are distinct and accurately signal the operation, with no camelCase or stylistic mixing.

Tool Count5/5

Five tools is tightly scoped to a single workflow: validate a company, spend a credit to generate a brief, poll for it, list past briefs, and check account state. Nothing feels redundant or padded, and nothing essential is missing from the count.

Completeness4/5

The core lifecycle (check → request → poll → read → list, plus account/credit visibility) is fully covered, with sensible free/charged semantics and idempotent retries. The main gap is the absence of a cancel/abandon operation for an in-progress brief or a delete for stored briefs, which agents cannot work around directly.

Available Tools

5 tools
check_companyCheck companyA
Read-onlyIdempotent
Inspect

Check that a company's website is usable for a brief, before spending anything. Pass the domain (acme.com) or any URL on it. Returns the normalised domain, the company name if this company has been seen before (otherwise null), and the credits available. Free: no credit is spent and no brief is started. Errors explain how to fix the input; URL_REDIRECTS_ELSEWHERE includes a suggested_url.

NameRequiredDescriptionDefault
domainYesThe company's own website: a domain such as acme.com, or a URL on it. Not a LinkedIn or directory page.

Output Schema

NameRequiredDescription
domainYesThe normalised domain: lowercase, no www.
company_nameYesFrom the identity cache when this company was seen before, otherwise null.
normalized_urlYes
credits_remainingYes

TDQS

A4.3/5.0
Behavior5/5

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

Adds real cost/idempotency context beyond the readOnly and idempotent annotations: no credit spent, no brief started, and errors are actionable with a concrete URL_REDIRECTS_ELSEWHERE code carrying a suggested_url. This is exactly the kind of information an agent needs to safely retry or self-correct.

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?

Four short sentences, each carrying distinct information: purpose, input, return values, cost/error behaviour. Front-loaded with the decision-relevant clause ('before spending anything') and no filler.

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?

Covers purpose, accepted input shape, return contents (normalised domain, company name or null, credits), cost side-effects and error remediation. With an output schema present, the description gives just enough without duplicating it.

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

Parameters3/5

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

Schema coverage is 100% and the schema already states 'domain such as acme.com, or a URL on it. Not a LinkedIn or directory page.' The description's 'Pass the domain (acme.com) or any URL on it' restates that with no additional format or normalisation syntax, so it adds little beyond the schema.

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

Purpose4/5

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

States a specific verb and resource — validate that a company's website is usable for a brief before spending credits — which is clearly distinct from get_account, get_brief, list_briefs and request_brief. It does not name any sibling, so the differentiation is implied by the 'before spending anything' framing rather than stated.

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

Usage Guidelines4/5

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

'before spending anything' plus 'Free: no credit is spent and no brief is started' establishes clear pre-conditions for calling this instead of the paid path. It stops short of naming request_brief as the tool to use afterwards, leaving the alternative implicit.

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

get_accountGet accountA
Read-onlyIdempotent
Inspect

Show this account: credits available, credits held by briefs in progress, the limits that apply, and whether this key is read-only. Free.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
limitsYes
statusYes
timezoneYes
read_onlyYes
key_prefixYes
credits_reservedYes
credits_remainingYesCredits available to spend: the balance minus credits held by briefs in progress.
briefs_in_progressYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the description's job is narrower. It still adds real value with 'Free' (no credit consumption) and by surfacing 'whether this key is read-only', which tells the agent it can self-inspect credential scope before attempting writes.

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?

One sentence with zero filler: verb first, then a tight list of returned fields, with the cost note ('Free') as a short trailing clause. Everything after 'Show this account' earns its place.

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

Completeness4/5

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

No parameters, a full output schema, and annotations covering the safety profile mean the description only needs to frame intent and cost. It does both; the only gap is not stating the relationship to check_company or when an agent should prefer each.

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?

Zero parameters, so the baseline is 4; there is nothing for the description to disambiguate. 'this account' / 'this key' usefully clarifies that the target is implicit from authentication rather than a parameter.

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

Purpose4/5

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

A specific verb ('Show') plus the resource ('this account'), followed by an enumeration of exactly what is returned: credits available, credits held by in-progress briefs, applicable limits, and key read-only status. That enumeration also separates it in spirit from siblings like check_company and list_briefs, though it never names an alternative explicitly.

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

Usage Guidelines3/5

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

Usage is only implied: 'this account' and 'this key' signal it is about the caller's own credential rather than another entity. There is no explicit when-to-use, when-not-to-use, or pointer to check_company for company-level data.

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

get_briefGet briefA
Read-onlyIdempotent
Inspect

Get the status of a brief started with request_brief and, once it is ready, the brief. While it is queued or generating, wait poll_after_seconds and call again. Call at most once every 15 seconds per brief. format: markdown (default, ready to relay in chat), json, or html (the full email render). structuredContent always holds the brief as JSON. Relay the markdown to the user unchanged, from the notice line to the footer: it is the whole brief, and it has no web page, so never link to the website as the brief. The brief states the date range its news is from; every item date falls inside it. The Focal Point names the most important development; the Wide Angle says what the news means together; each item's angle says what it means for the company and how to respond; Significance rates its urgency (CRITICAL, HIGH, MODERATE, LOW) and Signal type names the kind of move. empty means no news in the window and failed means it could not be generated; neither is charged.

NameRequiredDescriptionDefault
formatNoWhat the text block carries once the brief is ready: markdown (default, for chat), json, or html (the full email render, tens of KB). structuredContent always carries the JSON.
brief_idYesThe brief_id returned by request_brief or list_briefs.

Output Schema

NameRequiredDescription
briefNoPresent only when the status is ready.
domainYes
reasonYesSet only when the status is failed.
statusYes
chargedYesTrue only when the brief is ready with at least one item and a credit was spent.
brief_idYes
created_atYes
poll_after_secondsYesSeconds to wait before calling get_brief again. Set only while queued or generating.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already establish that this is a safe, idempotent, non-destructive read, so the safety burden is covered. The description adds genuinely new behavior: the polling contract, the 15-second throttling rule, the empty/failed terminal states with the billing note that neither is charged, and the warning that the brief has no web page. It stops short of describing pagination or error/pending status codes, which keeps it off a 5.

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?

Front-loads the action and the polling contract in the first two sentences, which is the right order. The back half walks through brief fields (Focal Point, Wide Angle, Significance, Signal type) that an output schema already covers, so it is longer than strictly necessary, though the relay instruction still earns its place.

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?

Given a 2-parameter polling tool with annotations and an output schema, the description covers everything an agent needs: how often to poll, what the terminal states mean, which format to choose, and how to present the result. No operational gap remains.

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% and the schema already documents format's enum and default, so much of the description's format sentence is duplicative. It does add value by clarifying that structuredContent always carries JSON regardless of the text-block format and by sizing the html render ('tens of KB'), which is relevant to an agent deciding whether to request it.

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?

States a specific verb and resource ('Get the status of a brief') and ties it back to the originating request_brief tool, making clear this is the polling/retrieval counterpart to request_brief and list_briefs. It also names the dual nature of the response (status while pending, the brief once ready), which no sibling does.

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 prescribes the call loop ('While it is queued or generating, wait poll_after_seconds and call again') and enforces a concrete rate limit ('at most once every 15 seconds per brief'). It also tells the agent what to do with the result (relay the markdown unchanged), leaving no inference about the intended workflow.

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

list_briefsList briefsA
Read-onlyIdempotent
Inspect

List this account's briefs, newest first, with each brief_id, domain, status and creation time. Briefs are kept for 30 days. Use get_brief(brief_id) to read one.

NameRequiredDescriptionDefault
limitNoHow many briefs to return, newest first. 1 to 50; defaults to 20.

Output Schema

NameRequiredDescription
briefsYes

TDQS

A4.3/5.0
Behavior4/5

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

The annotations already declare this as a read-only, idempotent, non-destructive, open-world list operation. The description adds useful behavioral context beyond that: newest-first ordering, returned fields, and the 30-day retention window for briefs.

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?

The description is three tightly written sentences with no filler. Scope and ordering are front-loaded, and the alternative tool is mentioned at the end as a clear next step.

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?

The tool is simple, has full schema coverage, annotations covering safety traits, and an output schema. The description adds the non-schema details that matter most: ordering, retention, and the read-one alternative.

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

Parameters3/5

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

There is only one parameter, limit, and the schema description coverage is 100%, including range and default. The description does not add meaning beyond the schema, so the baseline of 3 is appropriate.

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 states a specific verb and resource ("List this account's briefs") along with scope (this account), ordering (newest first), and included fields. It also distinguishes itself from the sibling get_brief by saying to use get_brief to read one.

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

Usage Guidelines4/5

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

It explicitly routes the agent to get_brief(brief_id) when the goal is to read one brief, which is a clear alternative. It does not mention request_brief or explain when not to use this listing tool, so it stops short of full when/when-not guidance.

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

request_briefRequest briefA
Idempotent
Inspect

Start a competitive-intelligence brief for one company. Returns at once with a brief_id; generation takes 3 to 6 minutes. Then call get_brief(brief_id) after poll_after_seconds. Cost: one credit is held now and spent only if the brief is ready with at least one item. An empty or failed brief costs nothing. Pass the same idempotency_key to retry safely: it returns the original brief instead of starting a second one.

NameRequiredDescriptionDefault
domainYesThe company's own website: a domain such as acme.com, or a URL on it. Not a LinkedIn or directory page.
lookback_daysNoDays of news to cover, 1 to 7. Defaults to 7. The search reaches 2 days further back, because news is often published a day or more after the event; the brief states the exact date range it covers.
idempotency_keyNoOptional. Reusing the same key with the same parameters returns the original brief and spends nothing new, for 24 hours.

Output Schema

NameRequiredDescription
statusYes
brief_idYes
duplicateYesTrue when this returned an earlier request instead of starting a new brief.
credits_remainingYesCredits available after this request: the balance minus credits held by briefs in progress.
poll_after_secondsYesSeconds to wait before calling get_brief. 0 when the brief is already settled.

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations, it discloses the asynchronous return behavior, expected generation latency, cost model (one credit held now and spent only if a non-empty brief is ready), zero-cost failure behavior, and safe idempotent retry semantics. These are exactly the behavioral details an agent needs before invoking a non-read-only, open-world operation.

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?

The description is compact and front-loaded: it immediately states purpose, return behavior, latency, next step, cost, and retry semantics. Every sentence carries useful operational information with no filler.

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?

For an async, billable, idempotent operation, it covers the essential contract: what is returned, how long generation takes, what to call next, when credits are spent, and how retries behave. Since an output schema exists, the description does not need to explain response fields.

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

Parameters3/5

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 domain, lookback_days, and idempotency_key thoroughly. The description reinforces idempotency_key retry behavior but does not add meaning for domain or lookback_days beyond the schema, so this is the baseline level.

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 states a specific verb and resource: start a competitive-intelligence brief for one company. It also makes the async contract explicit (returns brief_id immediately, generation takes 3–6 minutes), which clearly separates it from retrieval siblings like get_brief.

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

Usage Guidelines4/5

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

It gives clear operational guidance: start this tool, then poll with get_brief after poll_after_seconds, and reuse idempotency_key to avoid duplicate briefs. It does not explain when to prefer check_company or list_briefs instead, so it falls short of a full when/when-not/alternatives routing statement.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updates
    • First observedcheck_company
    • First observedget_account
    • First observedget_brief
    • First observedlist_briefs
    • First observedrequest_brief

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides tools for automated company research, competitor identification, and business model analysis to generate comprehensive business intelligence. It enables users to extract market keywords and synthesize competitive insights via AI-powered research capabilities.
    -
  • A
    license
    A
    quality
    D
    maintenance
    Competitive intelligence for AI agents — analyze any URL or company description and get structured JSON with positioning, pain points, competitors, and unique market angles. Payments via x402 protocol ($0.05 USDC on Base mainnet), no accounts required.
    4
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources