Skip to main content
Glama

Server Details

Pay-per-use APIs for agents: web research, data lookups, and metered endpoints billed to credits.

Ownership verified
Status
Healthy
Uptime
76.2% over 69 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
locus-technologies/locus-pro-plugin
GitHub Stars
0
ChatGPT
–
Claude
–

TDQS

A3.9/5.0

Scored across 22 tools

Disambiguation4/5

Most tools have sharply scoped roles (execute = one call, run_task = multi-call autonomy, workflow_run = saved code) and the descriptions explicitly cross-reference each other to route the agent. Minor confusion remains around get_balance vs show_account vs add_credits, and around the four workflow_* tools plus the router-prefixed search tool whose slug differs from its tool name.

Naming Consistency3/5

Snake_case is universal, but the verb_noun convention breaks in several places: router_web_search sits beside web_extract/web_research with a different prefix, workflow_definition is a noun while siblings are verbs, and workflow_run (start) versus workflow_runs (inspect) differ only by plurality while doing different things. Core credit/call tools (get_balance, list_calls, get_call_result, pin_endpoint) are consistent, so it stays readable.

Tool Count3/5

22 tools is heavy for a single server and includes several sub-clusters: five discovery tools (search_apis, describe_api, list_tool_groups, get_locus_guide, request_tool_access), four workflow tools, and four web tools. Each has a stated purpose, but the surface is broad enough that it sits at the upper bound of what an agent can hold in context comfortably.

Completeness4/5

The lifecycle is well covered: discovery, access approval, pinning, execution, result retrieval, billing, auditing, autonomous tasks, web research, and workflow authoring/validation/runs. The main gap is resource management — list_resources exists but release and renew are only reachable via raw POST endpoints rather than dedicated tools, forcing a detour through execute.

Available Tools

22 tools
add_creditsAdd creditsA
Idempotent
Inspect

Get a payment link for your human to add prepaid credits to this account. Use when get_balance is low or a call failed for insufficient credits. An agent-created account gets a 24-hour Stripe Checkout link; a person's account gets the billing page. Send human_message unchanged and never ask for card details. Charges nothing; the same idempotency_key returns the same link. Check get_balance after they pay.

NameRequiredDescriptionDefault
usdYesCredits to add, in US dollars, e.g. "10".
idempotency_keyNoReuse to get the same link on retry.

Output Schema

NameRequiredDescription
urlYesLink for the human to open.
kindYes
total_usdNoCheckout total including any fee.
expires_atNo
human_messageYesSend to the human as is.
funding_session_idNo

TDQS

A4.5/5.0
Behavior5/5

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

Adds substantial behavior beyond the annotations: the call charges nothing, a 24-hour Stripe Checkout link is issued for agent-created accounts vs the billing page for a person's account, and the human must never be asked for card details. It also restates idempotency in operational terms ('the same idempotency_key returns the same link'), which concretizes the idempotentHint annotation rather than merely echoing it.

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?

Four short sentences, all front-loaded with the primary purpose and trigger first, and each earns its place except the 'human_message' instruction, which references a field the caller cannot see in the schema. Minor loss for that dangling reference.

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?

With an output schema present, return values need no explanation, and the description covers safety, cost, timing, and account-type branching well. The one gap is the unexplained 'human_message' hand-off: it is central to how the link reaches the human, yet it is absent from the schema and undefined in the description.

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 usd and idempotency_key are already documented, and the description adds only the idempotency-retry behavior already implied by the annotation. More concerning, it instructs 'Send human_message unchanged,' but no such parameter exists in the schema, which muddies rather than clarifies parameter meaning. Baseline 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?

States a specific verb and resource ('Get a payment link ... to add prepaid credits to this account') and immediately resolves the mismatch between the name add_credits and the actual behavior (returns a link, does not itself add credits). An agent can distinguish it from get_balance and the other siblings without opening the schema.

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?

Explicit trigger conditions are given: 'Use when get_balance is low or a call failed for insufficient credits,' plus the follow-up step 'Check get_balance after they pay.' It names the sibling to consult both before and after, leaving nothing to inference.

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

describe_apiDescribe APIA
Read-onlyIdempotent
Inspect

Get one endpoint's full contract by slug: input schema, example, output shape, price. Use before the first execute or after an args rejection; get the slug from search_apis. Free.

NameRequiredDescriptionDefault
slugYesprovider/endpoint slug.
modelNoExact fal model ID.
model_cursorNoFal page cursor.
operation_queryNoSearch operations or fal/generate models.
operation_offsetNoMPP operation index or continuation offset.

Output Schema

NameRequiredDescription
slugNo
toolNo
titleNo
inputSchemaNo
max_creditsNo
likely_creditsNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds a cost trait not present in annotations ('Free') and frames the retrieve-before-execute workflow. It stops short of noting auth requirements or rate limits, but with annotations doing that work a 4 is warranted.

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?

Two short sentences, zero filler, with the primary action ('get one endpoint's full contract by slug') front-loaded and the workflow guidance following. Every clause carries information.

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?

An output schema exists, so return values need no explanation, and the description covers when to call it and how to get the slug. The only residual gap is that the five-parameter schema hints at search/pagination behavior that the description doesn't reconcile with the 'one endpoint' framing.

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 slug, model, model_cursor, operation_query, and operation_offset are all documented in the schema; the baseline is 3. The description reinforces that the lookup is keyed by slug but does not explain why model/operation_query appear on a single-endpoint describe call.

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 one endpoint's full contract by slug') and enumerates what the contract contains (input schema, example, output shape, price). This is clearly distinguishable from siblings like search_apis (discovery) and execute (invocation).

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?

Gives explicit timing conditions ('before the first execute or after an args rejection') and names where to obtain the required slug ('get the slug from search_apis'). The workflow relationship to execute and search_apis is unambiguous.

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

executeExecute API callA
Destructive
Inspect

Call one enabled endpoint by slug with args from its schema; charges credits. Get the slug from search_apis. max_credits caps the charge. A stable idempotency_key makes retries exactly-once (idempotent_replay:true). Long results continue via get_call_result.

NameRequiredDescriptionDefault
argsNoEndpoint args; call describe_api for schema.
slugYesprovider/endpoint slug.
loop_idNoAgent loop ID when policy requires one.
attributionNoSpend attribution: taskId + feature (+ optional appVersion).
max_creditsNoMost credits this call may charge.
approval_tokenNoFrom an approval error; send its idempotency_key.
idempotency_keyNoReuse on retry; charges once.

Output Schema

NameRequiredDescription
dataYesRaw provider response.
usd_chargedNoUSD charged (secret-key auth only).
credits_balanceNo
credits_chargedNo
idempotent_replayNoStored replay; no new charge.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover safety (readOnlyHint=false, destructiveHint=true, openWorldHint=true), and the description adds real value beyond them: it discloses that the call charges credits, that max_credits caps the charge, and that a stable idempotency_key yields exactly-once retries surfaced as idempotent_replay:true — a conditional idempotency the flat idempotentHint=false cannot express. It omits the approval_token/approval-error flow, which is the one notable behavior left undisclosed.

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 tight clauses, front-loaded with the core action and cost, followed by discovery, cost-cap, idempotency, and continuation. No filler and no repetition of the schema.

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?

With an output schema present, the description needn't explain return values, and it still flags the idempotent_replay field and the long-result handoff. Combined with 100% schema coverage it is nearly complete; the missing piece is any mention of the approval_token / approval-error path, which an agent will only discover from the schema.

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 all seven parameters; the description largely restates it (max_credits caps the charge, idempotency_key reused on retry). The only genuinely additive bit is the response field name idempotent_replay:true, which is output-side rather than parameter semantics. Baseline 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?

Specific verb+resource: 'Call one enabled endpoint by slug with args from its schema.' It immediately distinguishes itself from siblings by naming search_apis (for slug discovery) and get_call_result (for continuation). An agent can identify this as the single execution entry point without opening the schema.

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?

Explicit routing: 'Get the slug from search_apis' tells the agent the prerequisite discovery step, and 'Long results continue via get_call_result' names the follow-up tool. It also states the cost-control condition ('max_credits caps the charge') and the retry condition for idempotency_key, so the when/how is fully specified.

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

get_balanceGet balanceA
Read-onlyIdempotent
Inspect

Read the remaining credit balance: the pooled account, or one end user via external_user_id with a secret key. Use before a large spend or after an insufficient-credits error. Free.

NameRequiredDescriptionDefault
external_user_idNoEnd-user id; secret-key auth only.

Output Schema

NameRequiredDescription
statusNo
creditsNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description only needs to add cost/auth context — and it does: 'Free' and 'secret key' auth for the end-user scope. It does not discuss rate limits or eventual consistency of the balance, which keeps it out of 5 territory.

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?

Three short clauses: what it reads, how scope is selected, when to call it, plus a one-word cost note. Zero filler, and the primary purpose is front-loaded ahead of the usage triggers.

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?

An output schema exists, so return-format details are unnecessary here. Between the description and schema an agent knows both scopes, the auth mode each requires, the trigger conditions, and that the call is free — nothing needed to invoke correctly is missing.

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 already documents external_user_id's type and auth requirement, so baseline is 3. The description goes beyond the schema by clarifying the default (omitting the parameter returns the pooled account balance rather than failing), which is behavioral meaning the schema does not encode.

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 concrete verb+resource ('Read the remaining credit balance') and immediately disambiguates the two scopes it can serve: the pooled account, or a single end user via external_user_id. An agent can distinguish it from the write-side sibling add_credits without opening any schema.

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?

Gives two concrete triggers ('before a large spend', 'after an insufficient-credits error') that make the call condition actionable. It also states the auth precondition for the per-user mode. It stops short of naming an alternative tool or stating when not to use it, so it's strong but not exhaustive.

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

get_call_resultRead call resultA
Read-onlyIdempotent
Inspect

Read an earlier call's stored result by receipt ID in chunks (offset or page, max_characters); wait_seconds waits for a still-running call. Use when execute truncated the result. Free.

NameRequiredDescriptionDefault
pageNoPrior next_page.
offsetNoCharacter offset; default 0.
api_call_idYesReceipt ID.
wait_secondsNoAsync wait.
max_charactersNoDefault 8000.

Output Schema

NameRequiredDescription
chunkNo
api_call_idNo
total_charactersNo

TDQS

A4.5/5.0
Behavior4/5

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

The annotations already declare read-only, idempotent, non-destructive, and closed-world behavior. The description adds useful context beyond those hints by explaining chunked reading, offset/page handling, async waiting, and that the operation is free.

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 single sentence is densely packed but front-loaded with the core action and receipt ID, then adds truncation, chunking, and wait behavior. Every clause carries operational value.

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 has an output schema, rich annotations, and fully documented parameters. The description supplies the missing usage context: when to call it, how chunking works, and what wait_seconds does.

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 the baseline is 3. The description still adds meaning by clarifying that results are read in chunks using offset or page and max_characters, and that wait_seconds controls waiting for a still-running call.

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: read a stored call result by receipt ID. It also distinguishes the tool from execute by saying to use it when execute truncated the result, so an agent can identify its role without opening the schema.

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 a clear trigger condition: use when execute truncated the result, and explains that wait_seconds is for a still-running call. It does not state explicit exclusions or name alternative tools, but the operative context is unambiguous.

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

get_locus_guideGet Locus guideA
Read-onlyIdempotent
Inspect

Fetch a Locus how-to guide as text when no Locus skill files are installed; otherwise prefer the skill. Omit id to list guides, or pass task to get the one for your goal. Free.

NameRequiredDescriptionDefault
idNoOmit to list or pick by task.
taskNoYour goal, to pick a guide.
cursorNoPrior next_cursor.
sectionNoSection ID; omit for all.
versionNoOmit for latest.
max_charactersNoChunk size.

Output Schema

NameRequiredDescription
countNo
objectNoGuide index, recommendations, or page.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/openWorld=false, so the safety profile is covered. The description adds non-obvious context the annotation can't: output is text, cost is 'Free', and there is a preferred skill-file alternative. It does not mention pagination behavior via cursor or size limits, hence not 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.

Conciseness5/5

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

Three short sentences, no filler. The primary purpose and the alternative-skill condition are front-loaded before the parameter modes, so the most decision-relevant information comes first.

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?

An output schema exists, so return-value explanation is unnecessary, and all six parameters are documented in-schema. The description covers purpose, routing, and the skill fallback; only pagination/chunking behavior (cursor + max_characters interaction) is left to the schema, which is a minor gap.

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 every parameter has a terse description ('Omit to list or pick by task', 'Your goal, to pick a guide', 'Prior next_cursor', etc.), so the schema carries the load. The description's id/task routing rule is genuinely useful but overlaps with the usage-guidance dimension, and it says nothing about cursor, section, version, or max_characters. Baseline 3.

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?

Specific verb + resource + format: 'Fetch a Locus how-to guide as text.' It also states scope (how-to guides, not API docs) and is easily distinguished from siblings like describe_api or search_apis.

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 states the when/when-not condition: use this 'when no Locus skill files are installed; otherwise prefer the skill.' It also gives mode selection (omit id to list, pass task for a goal-targeted guide), so an agent knows exactly which call shape to use.

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

list_callsList callsA
Read-onlyIdempotent
Inspect

List recent billed calls, newest first, with call ID, endpoint, status, credits, and error summary. Use to audit spend or find an ID for get_call_result or report_bug; filter by status or provider. Free, paged.

NameRequiredDescriptionDefault
limitNoDefault 10.
cursorNoPrior next_cursor.
statusNoDefault all.
providerNoProvider ID.

Output Schema

NameRequiredDescription
callsNo
next_cursorNo

TDQS

A4.3/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 safety profile is covered. The description adds genuinely new behavioral context: results are newest-first, the call is free (no credit cost), and it is paged. It does not quantify page size or cursor expiry, so not 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.

Conciseness5/5

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

Two dense sentences with zero filler; the what/ordering/fields come first, then usage and filters. Every clause carries information the agent needs.

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?

An output schema exists, so return-value documentation is not the description's burden, yet it still names the key fields. Combined with the paging and free-operation notes and the sibling routing, an agent has everything needed to call this correctly.

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 all four parameters are documented in the schema and the baseline is 3. The description only restates that status and provider act as filters, adding intent but no syntax or format detail beyond the schema's enum and default notes.

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 ('List recent billed calls'), gives the ordering ('newest first'), and enumerates the returned fields (call ID, endpoint, status, credits, error summary). It also names the sibling tools that consume the resulting ID, so an agent can distinguish it from get_call_result and report_bug without opening a schema.

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?

Explicitly names two use cases ('audit spend' and 'find an ID for get_call_result or report_bug') and the filter axes (status, provider), which is clear routing guidance. It stops short of stating when NOT to use it or what the alternative is for a full-text or user-scoped search, so it falls just short of the top band.

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

list_resourcesList resourcesA
Read-onlyIdempotent
Inspect

List durable resources your calls created that persist, expire, or keep costing, such as AgentMail inboxes, phone numbers, and E2B sandboxes, with service, status, and expiry. Use to find what to release or renew (POST /credits/resources/{id}/release or /renew); listing changes nothing. Free, paged.

NameRequiredDescriptionDefault
cursorNonext_cursor from the last page.
statusNoDefaults to all.
serviceNoService name or provider slug.
end_userNoOnly rows for this end user.

Output Schema

NameRequiredDescription
resourcesNo
next_cursorNo

TDQS

A4.2/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 safety profile is covered. The description still adds real context beyond them: 'listing changes nothing', that the operation is 'Free', and that results are 'paged'. It does not describe pagination mechanics or rate limits, keeping it short of 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 what the resource list is, then the action guidance, then cost/paging in three clipped fragments. Dense but every clause carries information; the trailing 'Free, paged.' is terse but purposeful.

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 an output schema present, return values need no explanation, and the description still adds useful field names, cost, and pagination behavior. It also points to the mutation endpoints for release/renew, so an agent has everything needed to call and act on this tool.

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 cursor, status, service and end_user are already documented in the schema, and the description adds no filtering syntax or defaults beyond that. The mention of 'service, status, and expiry' describes returned columns rather than input parameters, so the baseline 3 applies.

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?

Names a specific verb (List) and a precise resource class (durable resources created by your calls that persist, expire, or cost money), reinforced with concrete examples (AgentMail inboxes, phone numbers, E2B sandboxes) and the fields returned. An agent can distinguish this from list_calls or get_balance without opening the schema.

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?

States the decision context clearly: use it to find what to release or renew, and even names the follow-up endpoints (POST /credits/resources/{id}/release or /renew). It also rules out side effects with 'listing changes nothing'. No explicit when-not-to-use or sibling alternative is given, but the routing intent is unambiguous.

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

list_tool_groupsBrowse tool groupsA
Read-onlyIdempotent
Inspect

Browse catalog categories and packs (curated endpoint bundles) to orient before search_apis. Lists only: it enables nothing (use request_tool_access) and calls nothing (use execute). Free.

NameRequiredDescriptionDefault
limitNoPage size.
queryNoName filter.
cursorNoPrior next_cursor.
group_typeNoGroup type.all

Output Schema

NameRequiredDescription
countNo
groupsNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive. The description adds genuinely new context beyond those: the operation is free, and it is purely observational with no access-granting or execution side effects. It does not cover pagination behavior, but the output schema handles the return shape.

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?

Three short clauses, front-loaded with the purpose before the parenthetical disambiguation and the negative boundaries. Every sentence earns its place 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 a read-only list tool with full schema coverage, rich annotations, and an output schema, the description supplies everything an agent needs: purpose, orientation role in the workflow, and explicit side-effect boundaries.

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 limit, query, cursor, and group_type are already fully documented in the schema. The description adds no parameter-level meaning beyond that, which is the expected baseline when the schema does the heavy lifting.

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 a specific verb (browse) with a specific resource (catalog categories and packs), and defines what a pack is ('curated endpoint bundles'). It explicitly names the sibling tools it is not: search_apis, request_tool_access, execute.

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?

States when to use it ('to orient before search_apis') and draws explicit negative boundaries: it enables nothing (use request_tool_access) and calls nothing (use execute). Both the condition and the alternatives are given.

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

pin_endpointPin endpointA
Idempotent
Inspect

Pin (pinned:true, the default) or unpin one enabled endpoint so it appears as its own typed tool on every MCP connection of this workspace instead of going through execute. Use for endpoints you call repeatedly. Each pin adds its schema to every session's context, so the first pin requires acknowledge_context_cost:true. Persistent and workspace-wide; does not enable or call the endpoint.

NameRequiredDescriptionDefault
slugYesExact provider/endpoint slug.
pinnedNoTrue to pin (default), false to unpin.
acknowledge_context_costNoRequired once: pinned schemas use model context on every connection.

Output Schema

NameRequiredDescription
slugNo
pinnedNo
pinned_countNo

TDQS

A4.5/5.0
Behavior5/5

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

With annotations only covering the safety profile, the description adds substantial context: persistence, workspace-wide scope, the context-cost consequence on every session, and the first-pin acknowledge_context_cost:true prerequisite. These are behavioral traits not derivable from 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.

Conciseness5/5

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

Four dense sentences, front-loaded with the core action and default, then scope, then the prerequisite. No filler and nothing repeated.

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?

An output schema exists so return values need no explanation, and the description covers mutation semantics, scope, and the one-time acknowledgement prerequisite. Nothing needed to invoke it correctly is missing.

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 all three parameters. The description reinforces the acknowledge_context_cost requirement and the pinned default, but adds little syntax or meaning beyond the schema's own descriptions.

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 (pin/unpin), the resource (one enabled endpoint), and the precise effect (appears as its own typed tool on every MCP connection instead of going through execute). This clearly differentiates it from the execute sibling.

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?

Gives a clear when-to-use rule ('Use for endpoints you call repeatedly') and implicitly routes one-off calls to execute. It also states what the tool does not do ('does not enable or call the endpoint'), though it never names a negative alternative explicitly.

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

report_bugReport a bugAInspect

File a bug report with the Locus team after a wrong result or error; include call_id and tool so it can be traced. Charges nothing, does not retry or refund, and gets no in-session reply.

NameRequiredDescriptionDefault
toolNoTool name.
call_idNoCall ID.
contextNoJSON, max 8 KB.
messageYesWhat went wrong.

Output Schema

NameRequiredDescription
receivedNo
report_idNo

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the annotations (which only say non-readOnly, non-idempotent, non-destructive) by disclosing cost ('charges nothing'), the absence of retry/refund side effects, and that no in-session reply is returned. These are exactly the behavioral traits an agent needs before invoking a fire-and-forget reporting tool.

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?

A single dense sentence: trigger, action, required traceability fields, and behavioral caveats, all front-loaded with zero 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?

An output schema exists so return values need no explanation, and the description pre-empts the main agent confusion ('no in-session reply') for a non-readOnly, non-idempotent reporting tool. Nothing material is missing for correct invocation.

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 all four parameters. The description only adds the motivation for call_id and tool ('so it can be traced') and says nothing about the message or context payload. Baseline 3 is appropriate when the schema carries the load.

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 ('File a bug report with the Locus team') plus the triggering condition ('after a wrong result or error'). It is clearly distinguishable from siblings like get_call_result, list_calls, or execute, none of which file reports.

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?

Gives a clear when-to-use trigger (after a wrong result or error) and an implied not-to-use for normal successful flows. It does not explicitly name a sibling alternative or exclusion, so it stops short of a 5.

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

request_tool_accessRequest tool accessAInspect

Create a short-lived approval link for one disabled (enabled:false) endpoint; send its URL to a human, who enables it. On an account your agent credential created that no person has claimed yet, it enables the endpoint at once (status enabled). Calls nothing; free.

NameRequiredDescriptionDefault
slugYesExact provider/endpoint slug returned by search.
reasonNoWhy you need it, shown to the human.

Output Schema

NameRequiredDescription
slugNo
statusNoalready_enabled, enabled, pending_human_approval, approved, denied, or expired.
request_idNo

TDQS

A3.7/5.0
Behavior4/5

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

Beyond the annotations (which only say non-read-only, non-destructive, non-idempotent, closed-world), the description discloses that the grant is short-lived, that approval is human-mediated in the normal case, and that an unclaimed agent-created account enables immediately. 'Calls nothing; free' rules out upstream invocation and billing side effects, which is genuinely useful context.

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?

Two dense sentences with the primary case front-loaded and the exception second; no filler. The telegraphic clauses ('status enabled', 'Calls nothing; free') are terse but readable, and nothing appears wasted.

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?

An output schema exists, so return values need not be explained, and the description covers both outcome branches of calling it. Minor gaps remain: behavior when the endpoint is already enabled, or what happens when the link expires or is denied.

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 both the exact provider/endpoint slug pattern and the 'reason' field (shown to the human) are already documented in the schema. The description reinforces that exactly one endpoint is targeted but adds no syntax or format detail 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?

The description states a concrete verb and resource: creating a short-lived approval link for a single disabled endpoint, plus the alternate auto-enable path. It is clearly distinct from execution-oriented siblings like execute or run_task, though it never names any sibling 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 implied by the scoping constraint ('one disabled (enabled:false) endpoint'), so an agent can infer this is the path when an endpoint is unavailable. It gives no explicit when-not guidance and does not point at alternatives such as execute, describe_api, or search_apis for other cases.

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

run_taskRun a taskAInspect

Use this first whenever a request needs more than one API call: lists of companies or people, enrichment (founders, emails, funding), multi-source research or comparisons with sources, figures from filings, reading several pages, or any CSV/table deliverable. Give the goal in plain language (for example "find 10 Series A hardware companies in Los Angeles with founders' verified work emails as a CSV" or "compare Vercel, Netlify and Render free-tier limits with source links"); Locus finds and calls the right APIs with this account's credits and spending controls, checks the result, and returns structured data, files, sources, and cost. Use execute only for a single call. If it returns status running, call again with action "wait" and the task_id instead of resubmitting.

NameRequiredDescriptionDefault
goalNoWhat you want done, in plain language. Required to start a task.
actionNoOmit to start a task. Use with task_id to wait, check, cancel, answer a question (respond), or resume.
answerNoYour answer when the task asks a question.
inputsNoOptional data for the task, such as URLs, names, or records.
outputNoOptional output preferences.
task_idNoTask to continue; required with action.
max_creditsNoHard cap on total task spend in credits, not USD: 1,000 credits = 1 USD unless the account sets another rate. Default 5 USD worth (5000 at that rate), minimum 0.10 USD worth.
wait_secondsNoHow long to wait for completion in this call (default 45).
idempotency_keyNoReuse to make retried submissions return the same task.
deadline_secondsNoStop and deliver what is verified after this many seconds (default 900).

Output Schema

NameRequiredDescription
resultNoStructured data or answer.
statusNoqueued, running, needs_input, completed, partial, unsupported, failed, or canceled.
task_idNoDurable task id.
artifactsNoFiles with download_url.
continuationNoHow to continue this task, if anything remains.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations mark this as a non-read-only, open-world operation; the description adds substantive context beyond that: it spends this account's credits under spending controls, verifies results, and returns sources and cost. The async contract (status running → call again with action 'wait' and task_id) is disclosed, which annotations do not cover. It stops short of describing failure/partial-failure behavior or whether a cancelled task still incurs charges.

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?

The routing rule and cost/verification behavior are front-loaded, and the trailing sentence about 'wait' is actionable rather than filler. The two inline examples are slightly verbose but earn their place by demonstrating the expected goal phrasing.

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 a 10-parameter, nested-schema, open-world orchestration tool with an output schema, this covers the essentials an agent needs: when to choose it, how to phrase the goal, what it costs, and how to handle the asynchronous lifecycle. Return value details are correctly left to the output schema.

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 the schema already defines each parameter, but the description adds real meaning: 'goal' is described as plain language with two concrete example phrasings, and the submit/wait/task_id interplay is explained procedurally rather than just field-by-field. It does not elaborate on how max_credits interacts with the default or how deadline_seconds affects partial delivery.

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 scope: it finds and calls the right APIs to accomplish a multi-step goal, returning structured data, files, sources, and cost. It explicitly contrasts with the sibling 'execute' for single calls, so an agent can route correctly without opening both schemas.

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?

Gives an explicit precedence rule ('Use this first whenever a request needs more than one API call'), enumerates the qualifying scenarios (lists, enrichment, multi-source research, filings, CSV deliverables), and names the alternative ('Use execute only for a single call'). It also tells the agent what to do on a running status instead of resubmitting.

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

search_apisSearch APIsA
Read-onlyIdempotent
Inspect

Find a live data API for any external fact: social profiles and followers, Google Maps places and reviews, keyword search volume and web traffic, people and verified work emails, company data, stock, crypto and FX prices, SEC filings, weather, flights, products, news and jobs. Use it before scraping a site with curl or answering from memory. Query by outcome (e.g. "twitter user followers"); returns slug, price and enabled state, enabled first. Free. Then describe_api for the schema and execute. For an outcome that needs several calls, use run_task instead.

NameRequiredDescriptionDefault
packNoCanonical curated-pack ID or an unambiguous live pack alias.
limitNoResults: default 5, max 50.
queryNoOutcome or provider search phrase. Optional when category or pack is supplied.
cursorNoOpaque next_cursor from a prior search with the same filters.
enabledNoFilter to enabled or disabled endpoints. Defaults to true; pass "all" to include both, ranked enabled-first.
categoryNoCanonical category ID or an unambiguous live category alias.
include_facetsNoInclude bounded principal-scoped category and pack counts.

Output Schema

NameRequiredDescription
countNo
queryNo
resultsNo

TDQS

A4.8/5.0
Behavior5/5

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

The annotations already declare read-only, idempotent, non-destructive and closed-world behavior, so the bar is lower, yet the description still adds cost ("Free"), result shape (slug, price, enabled state), and ranking behavior (enabled first). Nothing here 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?

The routing advice and chaining instructions are front-loaded and every clause is actionable. The long domain enumeration is dense and slightly list-like, but each domain keyword supports semantic matching, so it largely earns its space.

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 full schema coverage, an output schema, and complete annotations, the description only needs to supply selection and sequencing context, which it does. Chaining to describe_api/execute/run_task and the free/ranked return shape make the definition self-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%, so the documented parameters set the baseline at 3, but the description adds meaning beyond it by explaining that queries should be phrased as outcomes ("twitter user followers") rather than provider names. It says nothing extra about pack, category, cursor, or include_facets, leaving those to the 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 opens with a concrete verb-plus-resource ("Find a live data API") and enumerates the domains it covers, so an agent can tell instantly whether this tool serves its need. It also differentiates itself from "scrape with curl", "answering from memory", and from siblings describe_api, execute, and run_task.

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?

It states when to use it (before scraping or answering from memory), what to do next (describe_api for schema, then execute), and which alternative to pick when an outcome spans multiple calls (run_task). That is explicit when-to-use, when-not, and alternative routing.

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

show_accountShow accountA
Read-onlyIdempotent
Inspect

Show the human an account panel: balance, add credits, enabled tools, pending tool approvals, and recent calls. Use when they ask to see their account, usage, or approvals; free and read-only.

NameRequiredDescriptionDefault
tabNoDefault activity.

Output Schema

NameRequiredDescription
balanceNo
recent_callsNo
pending_approvalsNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare the safety profile (readOnly, idempotent, non-destructive). The description adds meaningful extra context: it renders a panel to the human rather than returning machine data, and it is 'free,' which matters because several siblings (execute, web_search) incur cost.

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?

Two tightly packed sentences, front-loaded with the core action and contents, followed immediately by the when-to-use clause. The section enumeration is long but each item earns its place by telling the agent what the panel surfaces.

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?

With an output schema present and annotations covering safety, the description needn't explain returns. It covers contents, trigger conditions, and cost, leaving only sibling-alternative routing unaddressed.

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?

One optional enum parameter at 100% schema coverage ('Default activity.'), so the schema already carries the semantics. The description's section list loosely maps to the tabs but adds no format or default details beyond the schema, making baseline 3 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?

States a specific verb and resource ('Show the human an account panel') and enumerates exactly what the panel contains, making it clearly distinct from data-returning siblings like get_balance and list_calls — this renders a UI surface rather than returning raw data.

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?

Explicit when-to-use is given: 'Use when they ask to see their account, usage, or approvals.' It does not name alternatives (e.g., get_balance for programmatic reads), so the boundary against overlapping siblings is left to inference.

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

web_extractLocus Web ExtractAInspect

Read the full content of one to twenty exact public URLs you already have and return each page's text, or structured JSON via json. Use after a search produced URLs or when the user supplies links; it never searches or substitutes other pages, so use router/web-search or router/web-research to find sources first. Billed per URL; maxCredits caps the total. In text mode a second extractor retries only the URLs the first one fails; json mode uses a single extractor with no retry. Usually costs ~1.01 credits per call. The result reports credits charged.

NameRequiredDescriptionDefault
jsonNoReturn structured JSON for each URL in one step instead of page text. Pass a prompt, a JSON Schema, or both. Cannot be combined with objective.
urlsYesExact public HTTP(S) resources to read. The router never substitutes another URL.
_locusNoOptional Locus execution controls; provider arguments remain top-level.
objectiveNoOptional focus within each supplied resource; it does not authorize discovery.
maxCreditsNoAggregate hard charge ceiling in workspace credits. Decimal strings support up to six fractional digits; numeric values are rounded down to six digits.
attributionNoOptional JSON ledger metadata such as a task or customer identifier.
maxAgeSecondsNoMaximum accepted cache age. Omit to use each extractor default.
externalUserIdNoOptional end-user billing attribution for a tenant secret key.
maxCharactersPerUrlNo

Output Schema

NameRequiredDescription
dataYesRaw provider response.
usd_chargedNoUSD charged (secret-key auth only).
credits_balanceNo
credits_chargedNo
idempotent_replayNoStored replay; no new charge.

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the annotations: discloses per-URL billing, that maxCredits is a hard aggregate ceiling, the retry asymmetry (text mode retries only failed URLs with a second extractor, json mode uses a single extractor with no retry), the typical ~1.01 credit cost, and that the result reports credits charged. This is exactly the cost/retry information an agent needs before spending credits, and nothing contradicts readOnlyHint=false / idempotentHint=false.

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-loaded with the core action, then usage routing, then billing and retry semantics in descending importance. Dense but every sentence carries operational information; the cost figure and retry clause could be tightened slightly.

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?

An output schema exists, so return shape needs no explanation, and the description still covers the non-obvious pieces: spend limits, retry behavior by mode, and cost per call. Only edge details such as failure/error outcomes for individual URLs are left unstated.

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 89%, so the schema already explains json, urls, maxCredits, maxAgeSeconds and the Locus controls. The description adds only the 1–20 URL bound and that maxCredits caps the total, which is largely redundant with the schema's minItems/maxItems and its own description.

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 ('Read the full content of one to twenty exact public URLs') and names the two output shapes (page text or structured JSON via json). The 'never searches or substitutes other pages' clause separates it cleanly from the router search/research siblings.

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?

Gives an explicit trigger ('Use after a search produced URLs or when the user supplies links') and an explicit alternative for the other case ('use router/web-search or router/web-research to find sources first'). The boundary between extracting and discovering is stated rather than implied.

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

web_researchLocus Web ResearchAInspect

Get a grounded, current answer with inline source references: Locus searches the live web, reads sources, and synthesizes the answer. Use when you need an answer, not a list of links; use router/web-search for sources only and router/web-extract to read known URLs. effort light (default, fixed price), medium, or heavy sets depth and cost; maxCredits caps the charge. Always pass effort with maxCredits or search filters, or the call takes the legacy sources-only path and returns no answer. Usually costs ~10.1 credits per call. The result reports credits charged.

NameRequiredDescriptionDefault
modeNobalanced
queryYesSearch or research request.
railsNoLegacy access-path field retained for compatible clients.
topicNogeneral
_locusNoOptional Locus execution controls; provider arguments remain top-level.
effortNoGrounded answer tier. Defaults to light, priced up front. Without effort, maxCredits or search filters such as includeDomains keep the legacy evidence-only contract.
countryNo
strategyNoLegacy mode selector retained for compatible clients.
providersNo
maxCreditsNoAggregate hard charge ceiling in workspace credits. Decimal strings support up to six fractional digits; numeric values are rounded down to six digits.
maxResultsNo
attributionNoOptional JSON ledger metadata such as a task or customer identifier.
recencyDaysNo
maxProvidersNo
outputSchemaNoOptional bounded JSON object schema for the answer. Requires effort and preserves the same grounded-reference envelope.
includeImagesNo
excludeDomainsNo
externalUserIdNoOptional end-user billing attribution for a tenant secret key.
includeDomainsNo

Output Schema

NameRequiredDescription
dataYesRaw provider response.
usd_chargedNoUSD charged (secret-key auth only).
credits_balanceNo
credits_chargedNo
idempotent_replayNoStored replay; no new charge.

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=true and idempotentHint=false, so safety is covered. The description adds genuinely valuable non-schema behavior: the ~10.1 credit cost per call, the fixed-price nature of the light tier, that the result reports credits charged, and the legacy-path trap. However, it discloses nothing about how charges are incurred on failure or partial results, which matters for a metered, non-idempotent call.

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-loaded with the outcome, then routing, then cost and the legacy-path constraint – all in roughly 90 words with no filler. The cost/dependency rule is compressed into one dense sentence that an agent may need to reread, but nothing is wasted.

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?

An output schema exists, so return-value explanation is rightly omitted, and the description still flags the credits-charged field. For a 19-parameter tool it covers the highest-stakes parameters (effort, maxCredits, filter fields) but says nothing about topic, recencyDays, maxResults, providers, outputSchema's effort dependency, or the mode/strategy fields.

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?

With only 47% schema coverage across 19 parameters, the description earns credit for explaining that effort controls depth and cost (light default, fixed price), that maxCredits is a hard ceiling, and that 'search filters' such as includeDomains also bypass the legacy path. It leaves the mode enum (fast/balanced/comprehensive) and the legacy strategy field unexplained, which is a real gap given they overlap conceptually with effort.

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 first sentence names a specific verb and deliverable ('Get a grounded, current answer with inline source references') and explains the mechanism (searches, reads sources, synthesizes). It explicitly separates itself from router/web-search ('sources only') and router/web-extract ('read known URLs'), so an agent can route without opening a schema.

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?

Gives an explicit when-to-use condition ('when you need an answer, not a list of links') and names two alternative tools with their selection criteria. It also adds a critical operational warning: without effort plus maxCredits or search filters, the call silently falls back to a sources-only result with no answer.

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

workflow_definitionManage Workflow definitionAInspect

Manage customer-owned Workflow code: list, create, update, get, clone, archive, or save. Use for authoring and versioning only; use workflow_validate to check code and workflow_run to execute it. save publishes one exact draft revision and requires that revision to have passed workflow_validate. None of these actions runs code or charges credits.

NameRequiredDescriptionDefault
nameNoOptional new Workflow name for clone.
viewNoResponse detail for get; defaults to summary. Full includes bounded source, versions, and validations.
limitNoPage size for list: max 100.
queryNoOptional case-insensitive name filter for list.
actionYesLifecycle action. Its required fields are described below.
cursorNoOpaque next_cursor returned by a prior list with the same filters.
sourceNoComplete inline files or a tenant-owned artifact for create/update; mutually exclusive with source_patch. Prefer the artifact returned by a successful inline check.
statusNoDefinition status filter for list; defaults to active.
revisionNoExact current draft revision for update, archive, or save.
workflow_idNoRequired for get, update, clone, archive, and save.
source_patchNoPath-scoped update retaining omitted draft files. Pass exactly one of files (whole-file replace/delete) or edits (exact text replacement); the server enforces exclusivity for schema-simplifying hosts.
idempotency_keyNoStable key for create, clone, or update retries. It is stored only as a one-way hash.
expected_revisionNoCompatibility alias for revision on update, archive, or save; prefer revision.
validated_source_digestNoFor create: digest from a successful inline check. Matching source is rechecked and recorded as revision 1 evidence.

Output Schema

NameRequiredDescription
versionNoSaved version, when saving.
workflowNoWorkflow definition summary or full draft.
workflowsNoDefinition summaries, when listing.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), and the description adds genuinely useful context beyond them: no action runs code or charges credits, and save publishes exactly one draft revision that must already be validated. It stops short of clarifying archive reversibility or required permissions, hence a 4 rather than 5.

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 sentences, front-loaded with purpose then routing, then the save precondition, then the side-effect disclaimer. Every sentence earns its place with no redundancy.

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?

For a 14-parameter, 7-action tool with nested objects, the description adequately covers purpose, sibling routing, and the key save precondition, and an output schema exists so return values need not be described. It does not map which parameters apply to which of the seven actions, a modest remaining gap.

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%, so every parameter is already documented in the schema. The description only lightly reinforces semantics ('save publishes one exact draft revision' maps to revision), adding little beyond structured data. Baseline 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?

States a specific resource (customer-owned Workflow code) and enumerates the exact lifecycle verbs (list, create, update, get, clone, archive, save). It explicitly distinguishes itself from workflow_validate and workflow_run, so an agent can route without opening the schema.

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?

Provides explicit when-to-use and when-not-to-use: 'Use for authoring and versioning only; use workflow_validate to check code and workflow_run to execute it.' It also states the precondition that save requires the revision to have passed validation, leaving nothing to inference.

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

workflow_runRun WorkflowA
DestructiveIdempotent
Inspect

Queue a run of one exact saved Workflow version. mode pilot is an isolated trial; mode run is production. max_charge_credits is a hard ceiling for the whole run. idempotency_key is required: resubmitting with the same key replays the existing run (replay:true) instead of starting another. Returns the run summary and poll_after_ms; follow progress, results, cancel, or resume with workflow_runs.

NameRequiredDescriptionDefault
modeYespilot for an isolated trial run, run for production.
inputNoInline Workflow input; mutually exclusive with input_artifact_id.
actionNoOptional symmetry alias. Omit it or pass submit.
versionYesExact immutable saved version; latest is not accepted.
max_rowsNoMaximum result rows: max 10000.
workflow_idYesWorkflow ID that owns the saved version.
idempotency_keyYesStable exactly-once retry key for submit.
input_artifact_idNoTenant-owned artifact holding the Workflow input.
max_charge_creditsYesPositive decimal hard cap for the complete run.

Output Schema

NameRequiredDescription
runNoRun summary.
replayNoTrue when an identical submit was replayed.
poll_after_msNoSuggested poll delay for queued runs.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare idempotentHint and destructiveHint, so the bar is lower, and the description usefully goes beyond them: it explains that a repeated idempotency_key replays the existing run (replay:true) rather than starting another, and that max_charge_credits is a hard ceiling for the whole run. It does not cover auth/permission requirements or what state changes occur, keeping it short of 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.

Conciseness5/5

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

Four dense sentences, each earning its place: purpose first, then mode semantics, then the credit cap, then idempotency and follow-up routing. No filler or redundancy.

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 a 9-parameter mutation tool with an output schema, the description supplies the operational context an agent needs: mode choice, cost ceiling, exactly-once retry behavior, and where to go next for run lifecycle operations. Return-value explanation is unnecessary given the output schema, and nothing material is missing.

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 the baseline is 3, but the description adds real meaning beyond the schema: it defines pilot vs run semantics, frames max_charge_credits as a hard run-wide ceiling, and clarifies the replay behavior of idempotency_key. It adds value on the semantically tricky parameters rather than merely restating them.

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 ('Queue a run of one exact saved Workflow version'), and the emphasis on 'exact saved version' distinguishes it from siblings like workflow_validate or workflow_definition. An agent can identify the operation without opening the schema.

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?

Explicitly explains the pilot-vs-run selection condition and routes follow-up work (progress, results, cancel, resume) to workflow_runs, which is a clear alternative. It stops short of an explicit when-not to use it (e.g., validating a definition first), so it is strong but not fully exhaustive.

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

workflow_runsInspect or control Workflow runA
DestructiveIdempotent
Inspect

Inspect and control runs started by workflow_run: list runs, get one run's bounded status, page a stored provider-call response (call) or artifact without a new charge, cancel pending dispatch, or resume an eligible paused run with current authorization. Use for everything after a run is queued; use workflow_run to start one.

NameRequiredDescriptionDefault
limitNoPage size for list: max 100.
actionYeslist, get, call, artifact, cancel, or resume.
cursorNoOpaque next_cursor from a prior list with the same filters.
run_idNoRun ID; required for get, call, artifact, cancel, and resume.
call_idNoRequired for call; use an ID returned by get.
artifact_idNoArtifact ID; required for artifact.
max_charactersNoCharacters: min 1024, max 20000.

Output Schema

NameRequiredDescription
runNoRun detail, when getting or controlling.
callNoStored provider-call page, when reading one.
runsNoRun summaries, when listing.
artifactNoStored artifact page, when reading one.
result_pageNoBounded run result, when getting.

TDQS

A4.7/5.0
Behavior5/5

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

Adds context well beyond the annotations: call/artifact paging happens 'without a new charge' (cost behavior), get returns a 'bounded status', cancel only affects 'pending dispatch' (scope of the destructive operation), and resume needs 'current authorization'. These disclosures are non-obvious and directly useful for safe invocation.

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?

Two sentences, zero filler, with the action inventory front-loaded and the routing rule in the closing clause. Every phrase carries distinct information.

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 an output schema present and annotations covering safety, the description supplies the remaining essentials: all six actions, their scope, cost behavior, and the sibling routing rule. Nothing an agent needs to select or invoke this correctly is missing.

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 every parameter, including run_id/call_id/artifact_id requirements. The description adds only marginal tying of call_id and artifact_id to the call/artifact actions, so baseline 3 applies.

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?

Names a specific verb pair (inspect/control) and the exact resource class (runs started by workflow_run), then enumerates all six actions in verb+object form that map to the action enum. It explicitly separates itself from the sibling workflow_run ('use workflow_run to start one').

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?

Gives an explicit lifecycle boundary: 'Use for everything after a run is queued; use workflow_run to start one.' The alternative is named and the selecting condition is stated, and eligibility constraints are noted for resume ('eligible paused run with current authorization').

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

workflow_validateValidate WorkflowAInspect

Check Workflow code without a production run. mode check validates inline source (before it is persisted) or one exact draft revision; mode fixtures runs that revision against isolated, no-network fixtures. Use before workflow_definition save, which requires a passing check, and before workflow_run. Makes no provider calls, so nothing is charged.

NameRequiredDescriptionDefault
modeYescheck accepts either inline source or workflow_id plus revision. fixtures always requires workflow_id plus revision.
sourceNoInline files or tenant-owned artifact for a pre-persistence check; mutually exclusive with workflow_id and revision. A successful inline check returns source_artifact_id.
revisionNoRequired with workflow_id for persisted draft checks and fixtures; exact current draft revision to validate.
fixture_setNoOptional named fixture export; valid only with persisted draft identity.
workflow_idNoRequired with revision for persisted draft checks and fixtures; omit only for an inline source check.

Output Schema

NameRequiredDescription
validationNoCheck or fixture outcome. A successful inline check includes source_artifact_id for exact reuse during definition creation.

TDQS

A4.7/5.0
Behavior4/5

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

Adds real context beyond the annotations: no provider calls means nothing is charged, and fixtures run in an isolated no-network environment. This is consistent with readOnlyHint=false, since a successful inline check evidently produces a source_artifact_id. It does not cover idempotency or repeat-run behavior, so it stops short of 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.

Conciseness5/5

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

Three tightly packed sentences, front-loaded with the core action and followed immediately by mode semantics, prerequisites, and cost. No filler or restated title language.

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 a five-parameter tool with an output schema, the description supplies everything an agent needs that structured fields do not: the prerequisite ordering relative to save and run, the mode-dependent identity requirements, network isolation, and absence of charges.

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 the baseline is 3, but the description adds genuine meaning: 'mode check validates inline source (before it is persisted) or one exact draft revision; mode fixtures runs that revision against isolated, no-network fixtures' explains what the enum values actually do and the exclusivity of source vs. workflow_id+revision.

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 first sentence gives a specific verb and resource (check Workflow code) plus the key scoping distinction: without a production run. It then differentiates the two modes concretely, so an agent can distinguish this from workflow_run and workflow_definition without opening any schema.

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?

Explicit routing: 'Use before workflow_definition save, which requires a passing check, and before workflow_run.' The two modes are each given a when-to-use condition (inline/pre-persistence vs. exact draft revision with fixtures), leaving nothing to inference.

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. 1 tool update
    • Changedrequest_tool_access1 field changed
      • addedInput schema / properties / reason
        Added value: +{
        +  "description": "Why you need it, shown to the human.",
        +  "type": "string"
        +}
  2. 2 tool updates
    • Changedrouter_web_search1 field changed
      • changedInput schema / properties / maxResults / maximum
        Previous value: -20New value: +10
    • Addedrun_task
  3. 10 tool updates
    • Addedadd_credits
    • Removedcancel_cost_approval
    • Changeddescribe_api2 fields changed
      • addedOutput schema / properties / likely_credits
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / max_credits
        Added value: +{
        +  "type": "string"
        +}
    • Removedestimate_cost
    • Changedexecute2 fields changed
      • changedInput schema / properties / approval_token / description
        Previous value: -"estimate_cost quote; requires its idempotency_key."New value: +"From an approval error; send its idempotency_key."
      • addedInput schema / properties / max_credits
        Added value: +{
        +  "description": "Most credits this call may charge.",
        +  "type": [
        +    "string",
        +    "number"
        +  ]
        +}
    • Addedlist_resources
    • Changedlist_tool_groups2 fields changed
      • addedInput schema / properties / group_type
        Added value: +{
        +  "default": "all",
        +  "description": "Group type.",
        +  "enum": [
        +    "all",
        +    "category",
        +    "pack"
        +  ],
        +  "type": "string"
        +}
      • removedInput schema / properties / kind
        Removed value: -{
        -  "default": "all",
        -  "description": "Group type.",
        -  "enum": [
        -    "all",
        -    "category",
        -    "pack"
        -  ],
        -  "type": "string"
        -}
    • Changedrequest_tool_access2 fields changed
      • addedOutput schema / properties / request_id
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / properties / status / description
        Previous value: -"already_enabled or pending_human_approval."New value: +"already_enabled, enabled, pending_human_approval, approved, denied, or expired."
    • Addedshow_account
    • Changedweb_research1 field changed
      • changedInput schema / properties / effort / description
        Previous value: -"Grounded answer tier. Defaults to light, priced up front. Pass maxCredits without effort for the legacy evidence-only contract."New value: +"Grounded answer tier. Defaults to light, priced up front. Without effort, maxCredits or search filters such as includeDomains keep the legacy evidence-only contract."
  4. 16 tool updates
    • Changedcancel_cost_approval3 fields changed
      • removedOutput schema / additionalProperties
        Removed value: -true
      • removedOutput schema / properties / canceled / description
        Removed value: -"True when the quote was canceled."
      • removedOutput schema / properties / code / description
        Removed value: -"Machine-readable outcome code."
    • Changeddescribe_api5 fields changed
      • removedOutput schema / additionalProperties
        Removed value: -true
      • removedOutput schema / properties / inputSchema / description
        Removed value: -"JSON Schema for execute args."
      • removedOutput schema / properties / slug / description
        Removed value: -"provider/endpoint slug."
      • removedOutput schema / properties / title / description
        Removed value: -"Endpoint title."
      • removedOutput schema / properties / tool / description
        Removed value: -"Typed tool name for direct calls."
    • Changedestimate_cost7 fields changed
      • changedInput schema / properties / endpoint / description
        Previous value: -"Endpoint slug."New value: +"Endpoint ID."
      • changedInput schema / properties / expires_in_seconds / description
        Previous value: -"Lifetime seconds: default 120, range 30-600."New value: +"Seconds; default 120."
      • changedInput schema / properties / max_charge_credits / description
        Previous value: -"Optional positive decimal hard charge ceiling, as a string."New value: +"Hard charge cap, decimal string."
      • changedInput schema / properties / provider / description
        Previous value: -"Provider slug."New value: +"Provider ID."
      • removedOutput schema / additionalProperties
        Removed value: -true
      • removedOutput schema / properties / message / description
        Removed value: -"Human-readable quote outcome."
      • removedOutput schema / properties / slug / description
        Removed value: -"provider/endpoint slug."
    • Changedexecute5 fields changed
      • changedInput schema / properties / idempotency_key / description
        Previous value: -"Stable exactly-once retry key."New value: +"Reuse on retry; charges once."
      • removedOutput schema / properties / credits_balance / description
        Removed value: -"Remaining credit balance."
      • removedOutput schema / properties / credits_charged / description
        Removed value: -"Credits debited for this call."
      • changedOutput schema / properties / data / description
        Previous value: -"Raw upstream provider response body."New value: +"Raw provider response."
      • changedOutput schema / properties / idempotent_replay / description
        Previous value: -"True when a stored identical call was replayed; no new charge was made."New value: +"Stored replay; no new charge."
    • Changedget_balance3 fields changed
      • removedOutput schema / additionalProperties
        Removed value: -true
      • removedOutput schema / properties / credits / description
        Removed value: -"Remaining credit balance."
      • removedOutput schema / properties / status / description
        Removed value: -"Account status."
    • Changedget_call_result8 fields changed
      • changedInput schema / properties / api_call_id / description
        Previous value: -"execute call or capability receipt ID."New value: +"Receipt ID."
      • changedInput schema / properties / max_characters / description
        Previous value: -"Characters: default 8000, max 20000."New value: +"Default 8000."
      • addedInput schema / properties / page
        Added value: +{
        +  "description": "Prior next_page.",
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / wait_seconds
        Added value: +{
        +  "description": "Async wait.",
        +  "maximum": 45,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • removedOutput schema / additionalProperties
        Removed value: -true
      • removedOutput schema / properties / api_call_id / description
        Removed value: -"Receipt ID."
      • removedOutput schema / properties / chunk / description
        Removed value: -"Result text slice."
      • removedOutput schema / properties / total_characters / description
        Removed value: -"Full stored result length."
    • Changedget_locus_guide9 fields changed
      • changedInput schema / properties / cursor / description
        Previous value: -"Opaque continuation cursor from a prior chunk."New value: +"Prior next_cursor."
      • changedInput schema / properties / id / description
        Previous value: -"Guide ID; omit to list guides or pick by task."New value: +"Omit to list or pick by task."
      • changedInput schema / properties / max_characters / description
        Previous value: -"Characters: default 20000."New value: +"Chunk size."
      • changedInput schema / properties / section / description
        Previous value: -"Section ID within the guide; omit for the full guide."New value: +"Section ID; omit for all."
      • changedInput schema / properties / task / description
        Previous value: -"What you are trying to do, in plain language; used to recommend a guide."New value: +"Your goal, to pick a guide."
      • changedInput schema / properties / version / description
        Previous value: -"Guide version; omit for the latest."New value: +"Omit for latest."
      • removedOutput schema / additionalProperties
        Removed value: -true
      • removedOutput schema / properties / count / description
        Removed value: -"Guides listed, when listing."
      • changedOutput schema / properties / object / description
        Previous value: -"Result kind: guide index, recommendations, or page."New value: +"Guide index, recommendations, or page."
    • Addedlist_calls
    • Changedlist_tool_groups7 fields changed
      • changedInput schema / properties / cursor / description
        Previous value: -"Opaque cursor from a prior call with the same filters."New value: +"Prior next_cursor."
      • changedInput schema / properties / kind / description
        Previous value: -"Group kind filter; defaults to all."New value: +"Group type."
      • changedInput schema / properties / limit / description
        Previous value: -"Page size: default 20, max 50."New value: +"Page size."
      • changedInput schema / properties / query / description
        Previous value: -"Optional case-insensitive name filter."New value: +"Name filter."
      • removedOutput schema / additionalProperties
        Removed value: -true
      • removedOutput schema / properties / count / description
        Removed value: -"Groups in this page."
      • removedOutput schema / properties / groups / description
        Removed value: -"Categories and packs with executable counts."
    • Changedpin_endpoint4 fields changed
      • removedOutput schema / additionalProperties
        Removed value: -true
      • removedOutput schema / properties / pinned / description
        Removed value: -"True when currently pinned."
      • removedOutput schema / properties / pinned_count / description
        Removed value: -"Pinned endpoint count after this call."
      • removedOutput schema / properties / slug / description
        Removed value: -"provider/endpoint slug."
    • Addedreport_bug
    • Changedrequest_tool_access2 fields changed
      • removedOutput schema / additionalProperties
        Removed value: -true
      • removedOutput schema / properties / slug / description
        Removed value: -"provider/endpoint slug."
    • Changedrouter_web_search4 fields changed
      • removedOutput schema / properties / credits_balance / description
        Removed value: -"Remaining credit balance."
      • removedOutput schema / properties / credits_charged / description
        Removed value: -"Credits debited for this call."
      • changedOutput schema / properties / data / description
        Previous value: -"Raw upstream provider response body."New value: +"Raw provider response."
      • changedOutput schema / properties / idempotent_replay / description
        Previous value: -"True when a stored identical call was replayed; no new charge was made."New value: +"Stored replay; no new charge."
    • Changedsearch_apis5 fields changed
      • changedInput schema / properties / limit / description
        Previous value: -"Results: default 10, max 50."New value: +"Results: default 5, max 50."
      • removedOutput schema / additionalProperties
        Removed value: -true
      • removedOutput schema / properties / count / description
        Removed value: -"Results in this page."
      • removedOutput schema / properties / query / description
        Removed value: -"Echo of the search phrase."
      • removedOutput schema / properties / results / description
        Removed value: -"Catalog entries with pricing and next step."
    • Changedweb_extract5 fields changed
      • addedInput schema / properties / json
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Return structured JSON for each URL in one step instead of page text. Pass a prompt, a JSON Schema, or both. Cannot be combined with objective.",
        +  "minProperties": 1,
        +  "properties": {
        +    "prompt": {
        +      "maxLength": 400,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "schema": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
      • removedOutput schema / properties / credits_balance / description
        Removed value: -"Remaining credit balance."
      • removedOutput schema / properties / credits_charged / description
        Removed value: -"Credits debited for this call."
      • changedOutput schema / properties / data / description
        Previous value: -"Raw upstream provider response body."New value: +"Raw provider response."
      • changedOutput schema / properties / idempotent_replay / description
        Previous value: -"True when a stored identical call was replayed; no new charge was made."New value: +"Stored replay; no new charge."
    • Changedweb_research5 fields changed
      • changedInput schema / properties / effort / description
        Previous value: -"Explicitly request a grounded answer. Omit only for the legacy evidence-only contract."New value: +"Grounded answer tier. Defaults to light, priced up front. Pass maxCredits without effort for the legacy evidence-only contract."
      • removedOutput schema / properties / credits_balance / description
        Removed value: -"Remaining credit balance."
      • removedOutput schema / properties / credits_charged / description
        Removed value: -"Credits debited for this call."
      • changedOutput schema / properties / data / description
        Previous value: -"Raw upstream provider response body."New value: +"Raw provider response."
      • changedOutput schema / properties / idempotent_replay / description
        Previous value: -"True when a stored identical call was replayed; no new charge was made."New value: +"Stored replay; no new charge."
  5. 3 tool updates
    • Addedrouter_web_search
    • Addedweb_extract
    • Addedweb_research
  6. 4 tool updates
    • Addedworkflow_definition
    • Addedworkflow_run
    • Addedworkflow_runs
    • Addedworkflow_validate
  7. 2 tool updates
    • Changeddescribe_api3 fields changed
      • addedInput schema / properties / model
        Added value: +{
        +  "description": "Exact fal model ID.",
        +  "maxLength": 240,
        +  "type": "string"
        +}
      • addedInput schema / properties / model_cursor
        Added value: +{
        +  "description": "Fal page cursor.",
        +  "maxLength": 2048,
        +  "type": "string"
        +}
      • changedInput schema / properties / operation_query / description
        Previous value: -"Search intent for directory operations."New value: +"Search operations or fal/generate models."
    • Changedestimate_cost2 fields changed
      • changedInput schema / description
        Previous value: -"Provide exactly one endpoint selector: slug, or provider plus endpoint."New value: +"Use slug or provider + endpoint."
      • changedInput schema / properties / args / description
        Previous value: -"Alias for body; must match body when both are provided."New value: +"Alias for body; must match it."
  8. 12 tool updates
    • Changedcancel_cost_approval1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "canceled": {
        +      "description": "True when the quote was canceled.",
        +      "type": "boolean"
        +    },
        +    "code": {
        +      "description": "Machine-readable outcome code.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changeddescribe_api2 fields changed
      • addedInput schema / properties / operation_query
        Added value: +{
        +  "description": "Search intent for directory operations.",
        +  "maxLength": 256,
        +  "type": "string"
        +}
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "inputSchema": {
        +      "description": "JSON Schema for execute args.",
        +      "type": "object"
        +    },
        +    "slug": {
        +      "description": "provider/endpoint slug.",
        +      "type": "string"
        +    },
        +    "title": {
        +      "description": "Endpoint title.",
        +      "type": "string"
        +    },
        +    "tool": {
        +      "description": "Typed tool name for direct calls.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedestimate_cost9 fields changed
      • addedInput schema / description
        Added value: +"Provide exactly one endpoint selector: slug, or provider plus endpoint."
      • removedInput schema / oneOf
        Removed value: -[
        -  {
        -    "properties": {
        -      "slug": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "slug"
        -    ]
        -  },
        -  {
        -    "properties": {
        -      "endpoint": {
        -        "type": "string"
        -      },
        -      "provider": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "provider",
        -      "endpoint"
        -    ]
        -  }
        -]
      • addedInput schema / properties / args / description
        Added value: +"Alias for body; must match body when both are provided."
      • changedInput schema / properties / max_charge_credits / description
        Previous value: -"Optional hard charge ceiling."New value: +"Optional positive decimal hard charge ceiling, as a string."
      • addedInput schema / properties / max_charge_credits / maxLength
        Added value: +100
      • addedInput schema / properties / max_charge_credits / minLength
        Added value: +1
      • removedInput schema / properties / max_charge_credits / oneOf
        Removed value: -[
        -  {
        -    "maxLength": 100,
        -    "minLength": 1,
        -    "type": "string"
        -  },
        -  {
        -    "exclusiveMinimum": 0,
        -    "type": "number"
        -  }
        -]
      • addedInput schema / properties / max_charge_credits / type
        Added value: +"string"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "executable_quote": {
        +      "description": "True when approval_token is included.",
        +      "type": "boolean"
        +    },
        +    "message": {
        +      "description": "Human-readable quote outcome.",
        +      "type": "string"
        +    },
        +    "slug": {
        +      "description": "provider/endpoint slug.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedexecute1 field changed
      • changedInput schema / properties / args / description
        Previous value: -"Endpoint args; schema and example via search_apis or describe_api."New value: +"Endpoint args; call describe_api for schema."
    • Changedget_balance1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "credits": {
        +      "description": "Remaining credit balance.",
        +      "type": "string"
        +    },
        +    "status": {
        +      "description": "Account status.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_call_result1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "api_call_id": {
        +      "description": "Receipt ID.",
        +      "type": "string"
        +    },
        +    "chunk": {
        +      "description": "Result text slice.",
        +      "type": "string"
        +    },
        +    "total_characters": {
        +      "description": "Full stored result length.",
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Addedget_locus_guide
    • Removedlist_apis
    • Addedlist_tool_groups
    • Changedpin_endpoint1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "pinned": {
        +      "description": "True when currently pinned.",
        +      "type": "boolean"
        +    },
        +    "pinned_count": {
        +      "description": "Pinned endpoint count after this call.",
        +      "type": "integer"
        +    },
        +    "slug": {
        +      "description": "provider/endpoint slug.",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Addedrequest_tool_access
    • Changedsearch_apis8 fields changed
      • addedInput schema / properties / category
        Added value: +{
        +  "description": "Canonical category ID or an unambiguous live category alias.",
        +  "maxLength": 120,
        +  "type": "string"
        +}
      • addedInput schema / properties / cursor
        Added value: +{
        +  "description": "Opaque next_cursor from a prior search with the same filters.",
        +  "maxLength": 500,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / enabled
        Added value: +{
        +  "description": "Filter to enabled or disabled endpoints. Defaults to true; pass \"all\" to include both, ranked enabled-first.",
        +  "oneOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "const": "all",
        +      "type": "string"
        +    }
        +  ]
        +}
      • addedInput schema / properties / include_facets
        Added value: +{
        +  "description": "Include bounded principal-scoped category and pack counts.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / pack
        Added value: +{
        +  "description": "Canonical curated-pack ID or an unambiguous live pack alias.",
        +  "maxLength": 120,
        +  "type": "string"
        +}
      • changedInput schema / properties / query / description
        Previous value: -"Search phrase."New value: +"Outcome or provider search phrase. Optional when category or pack is supplied."
      • removedInput schema / required
        Removed value: -[
        -  "query"
        -]
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "count": {
        +      "description": "Results in this page.",
        +      "type": "integer"
        +    },
        +    "query": {
        +      "description": "Echo of the search phrase.",
        +      "type": "string"
        +    },
        +    "results": {
        +      "description": "Catalog entries with pricing and next step.",
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
  9. 9 tool updates
    • First observedcancel_cost_approval
    • First observeddescribe_api
    • First observedestimate_cost
    • First observedexecute
    • First observedget_balance
    • First observedget_call_result
    • First observedlist_apis
    • First observedpin_endpoint
    • First observedsearch_apis

Publisher details

Operator
Locus
Operator website
https://paywithlocus.com
Vendor relationship
First-party
Restrictions
Not applicable

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.