Extcord
Server Details
Agent utilities: read big pages without filling context, exact math, dates, parsing. Free.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 6 tools
Each tool targets a distinct stage of the workflow (discover ops, inspect handles, invoke one op, chain via pipeline, run/save recipes). Minor overlap exists between invoke and run_pipeline (both execute operations) and between run_pipeline and run_recipe (both chain steps), but descriptions make the boundaries clear enough.
All names start with an action verb and are lowercase snake_case, which is consistent. The pattern is slightly mixed (bare verbs discover/inspect/invoke vs. verb_noun run_pipeline/run_recipe/save_recipe), but it stays readable and predictable overall.
Six tools is well-scoped for a generic operation-runner/meta server, with each tool earning its place across exploration, single execution, and chaining.
The surface covers the full lifecycle: discover capabilities, invoke a single op, chain ops via pipelines, and persist/replay recipes. The only gap is no update/delete for saved recipes, but that is an intentional immutability choice rather than a dead end.
Available Tools
6 toolsdiscoverARead-onlyIdempotentInspect
Find out what this server can do. With no arguments: every op by category with a one-line intent, plus saved recipes. With query: the best-matching ops and recipes. With op: that op's full contract and examples.
| Name | Required | Description | Default |
|---|---|---|---|
| op | No | An op id to get its full contract: args schema, behavior, worked examples. | |
| query | No | Words describing what you want to do, e.g. 'html table to rows' or 'days between dates'. | |
| accepts | No | Only ops that take this input type: text, html, json, list, table, number, boolean. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds real behavioral content beyond that: the three operating modes and what each returns (catalog with one-line intents and recipes, best matches, full contract with examples). It does not disclose pagination, result limits, or format of the catalog, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three parallel sentences, each front-loaded with the triggering condition ('With no arguments', 'With query', 'With op'), zero filler, and no repetition of schema text. Optimal for a routing tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need not be spelled out, and the description still summarizes what each mode returns. Annotations cover safety and idempotency. There is no missing prerequisite or caveat an agent would need before calling this entry-point tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each param already documents itself well, so the baseline would be 3. The description goes further by explaining how op and query interact ('With op: that op's full contract and examples') and highlights the query example phrasing, which adds semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Find out what this server can do') and enumerates three distinct modes keyed to the three parameters. Combined with sibling names like inspect/invoke/run_pipeline, an agent can tell this is the discovery/entry-point tool rather than an execution tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use routing per argument state: no args for a full catalog, query for fuzzy matching, op for a contract. That is effectively an argument-driven decision table, leaving little inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspectARead-onlyIdempotentInspect
Look at a handle: its summary, its value one page at a time, or its provenance. Check est_tokens in the summary before reading a big value; it's usually cheaper to narrow it with an op first (find, select, filter, fit).
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | summary: size, preview, next ops. value: the data itself, paged. provenance: the chain of ops, args and sources that produced it. | summary |
| limit | No | For view=value: page size (default 4000 chars or 50 items). | |
| handle | Yes | A handle id like h_3f9a1c2b7e. | |
| offset | No | For view=value: start position (chars for text, items for lists). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered. The description adds genuinely non-obvious behavior: value is returned one page at a time, and reading a large value is costly enough that est_tokens should be checked and the handle narrowed first. It does not cover error behavior for an invalid handle, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler; the verb and resource are front-loaded and the second sentence carries a concrete cost-saving heuristic. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering the safety profile, a full output schema, and 100% parameter coverage, the description only needs to supply workflow and cost context, which it does. Nothing required to invoke this correctly is missing from the combined definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema already documents view, limit and offset semantics in detail, so the baseline is 3. The description reinforces the view modes and paging but adds no syntax or format detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource ('Look at a handle') and enumerates the three modes it supports (summary, value, provenance), which no sibling tool (discover, invoke, run_pipeline, etc.) covers. An agent can distinguish this as the read/inspection tool for an existing handle 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear conditional workflow: check est_tokens in the summary before reading a big value, and narrow with an op first (explicitly naming find, select, filter, fit) because it is usually cheaper. It stops short of naming which sibling tool to pick when several could apply, so it is strong context guidance rather than explicit tool-selection routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invokeARead-onlyInspect
Run one operation and get its result as a handle: type, size, estimated tokens, the value itself if small (else a preview), and suggested next ops. Example: invoke(op="fetch", args={"url": "https://example.com"}), then invoke(op="html_to_text", input="").
| Name | Required | Description | Default |
|---|---|---|---|
| op | Yes | Op id, e.g. 'fetch', 'html_to_text', 'calc'. See discover(). | |
| args | No | The op's arguments, e.g. {"url": "https://example.com"} for fetch or {"expr": "2 ** 10"} for calc. | |
| input | No | The data to operate on: a handle id from an earlier result (h_...), or a literal value (text, number, list, object). Omit for ops that take no input, like fetch, calc or now. | |
| input_type | No | Override the inferred type of a literal input, e.g. 'html'. | |
| inline_max_tokens | No | Results up to this many estimated tokens include their value directly; larger ones return a preview. Default 300. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnlyHint, destructiveHint=false, openWorldHint, idempotentHint=false), so the bar is lower; the description still adds real behavioral context by explaining the handle model, the inline-vs-preview threshold behavior, and that results carry suggested next ops. It does not describe failure/error behavior for a bad op or unreachable URL, which would be the remaining gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and result contract, followed by a compact example that demonstrates the chain. No filler and nothing duplicated from the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needn't be spelled out, and the description correctly focuses on the handle/indirection model that an agent must understand to chain ops. It is nearly complete, missing only error-handling and the explicit boundary against run_pipeline/run_recipe.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each parameter (op, args, input, input_type, inline_max_tokens) is documented in the schema, so the baseline is 3. The description reinforces semantics by showing op+args together and input receiving a handle from a prior result, but it introduces no syntax or constraint details beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Run one operation and get its result as a handle', then enumerates what the handle contains (type, size, estimated tokens, value or preview, suggested next ops). The word 'one' implicitly contrasts with run_pipeline/run_recipe and it routes to discover() for op ids, but it never explicitly names those siblings, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
A concrete two-step example (invoke(op="fetch") then invoke(op="html_to_text", input=handle)) demonstrates the idiomatic chaining pattern and how results are fed forward, plus a pointer to discover() for valid op ids. There is no explicit when-not guidance or direct comparison to run_pipeline/run_recipe, so usage choice is guided by example rather than stated rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_pipelineARead-onlyInspect
Chain operations in one call; only the final result comes back, intermediate data stays on the server. Example steps: [{"op": "fetch", "args": {"url": "https://example.com/pricing"}, "as": "page"}, {"op": "extract_tables", "input": "$page", "args": {"index": 0}}, {"op": "to_markdown", "input": "$1"}]. Use dry_run=true first when unsure.
| Name | Required | Description | Default |
|---|---|---|---|
| steps | Yes | Ordered steps: {"op": id, "input"?: ref|handle|value, "args"?: {...}, "as"?: name}. Refer to earlier steps as "$0", "$1", "$name", or paths like "$1[0]"; refs work inside args too. | |
| dry_run | No | Check refs, args, types, cost and side effects without running anything. | |
| result_from | No | Which step to return, as a ref like "$2" or "$prices[0]". Default: the last step. | |
| inline_max_tokens | No | Results up to this many estimated tokens include their value directly; larger ones return a preview. Default 300. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true and non-idempotent, so the safety profile is covered. The description adds genuinely non-obvious behavior: intermediates are kept server-side and only the final step's value is returned, plus the dry_run verification path. It does not address the mild tension between readOnlyHint=true and the schema's note that dry_run checks "side effects", which an agent chaining write-like ops would want clarified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core semantics (chaining, only final result returned) before the example. The inline JSON example is bulky but earns its place by illustrating the otherwise-abstract step format; nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 unnecessary, and the description covers execution model, result scoping, and a verification mode. The one gap is sibling disambiguation against run_recipe for a tool that otherwise reads as complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 worked example goes beyond the schema by showing the exact step object shape and demonstrating implicit positional refs ("$page", "$1") in a realistic chain, which clarifies how steps compose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb+resource: chaining operations into one call and returning only the final result. It is clearly distinct from discover/inspect/invoke, but it never distinguishes itself from the sibling run_recipe, which on its face sounds like a very similar batching tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Offers one piece of real guidance ("Use dry_run=true first when unsure"), which is a useful precondition. However it gives no when-to-use versus run_recipe, invoke, or save_recipe, so an agent must guess which execution path to pick for a given task.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_recipeBRead-onlyInspect
Run a saved pipeline in one call. Built-ins: page_to_markdown (url, max_tokens), page_outline (url), page_links (url, contains), page_tables (url, index), find_on_page (url, pattern).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Recipe name, e.g. 'page_to_markdown'. discover() lists them. | |
| params | No | Values for the recipe's params, e.g. {"url": "https://example.com"}. | |
| dry_run | No | ||
| inline_max_tokens | No | Results up to this many estimated tokens include their value directly; larger ones return a preview. Default 300. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true, and idempotentHint=false, so the safety and mutability profile is covered. The description adds that a whole saved pipeline executes in one call and enumerates built-ins, useful context, but says nothing about error behavior, permissions, or how dry_run changes execution.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action before the built-in reference list. No filler, though the parenthetical param lists are dense and could have been grouped more legibly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be described, and the built-in catalog fills the biggest gap (what recipes exist and what they take). The missing pieces are the dry_run semantics and any contrast with run_pipeline, which are minor against the rest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema leaves the crucial 'params' object opaque (anyOf object/null with no properties), and the description compensates by enumerating each built-in recipe with its expected keys (url, max_tokens, contains, index, pattern). That is real meaning beyond the schema, though dry_run remains undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Run a saved pipeline in one call') and enumerates the built-in recipes an agent can run, so the operation is immediately understandable. It does not explicitly distinguish itself from the sibling run_pipeline, which likely runs ad-hoc pipelines, so sibling differentiation is only implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance and no mention of the alternatives (run_pipeline, invoke, save_recipe). The built-in listing hints that this is the path for common page operations, but the agent must infer that routing itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_recipeAInspect
Save a working pipeline under a name so any agent can run it later with run_recipe. Saved recipes are shared and can't be overwritten.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | 3-64 lowercase letters, digits or underscores, e.g. acme_pro_price. | |
| steps | Yes | Pipeline steps, with values to vary written as {{param}}, e.g. {"op": "fetch", "args": {"url": "{{url}}"}}. | |
| params | No | Each {{param}}: {"type": "string", "description": "...", "default"?: ...}. | |
| description | Yes | One sentence: what it returns, for other agents searching later. | |
| result_from | No | Ref of the step to return; default the last. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose non-read-only, non-idempotent behavior. The description adds a genuinely useful trait beyond them: recipes are shared and cannot be overwritten, so an agent knows a name collision will fail rather than silently replace.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and outcome, with the immutability constraint as a compact trailing clause. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 schema fully documents parameters. The description covers scope, sharing, immutability, and the sibling handoff; only explicit alternative routing is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the property descriptions explain name format, {{param}} templating, step shape, and result_from defaulting. The description adds nothing about the 5 parameters, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Save') plus resource ('a working pipeline under a name') and the follow-up action ('run it later with run_recipe'). Naming run_recipe lets an agent distinguish this from the run_* siblings without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes the save-then-run-later workflow and notes that saved recipes are shared rather than private, which frames when this tool is the right choice. It stops short of explicit when-not-to-use guidance or naming run_pipeline/discover as alternatives.
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.
6 tool updates
- First observed
discover - First observed
inspect - First observed
invoke - First observed
run_pipeline - First observed
run_recipe - First observed
save_recipe
Related MCP Connectors
Exact IBAN, VAT, cron, regex answers; HTML/URL to hosted PDF or screenshot; agent memory; workflows.
Agent utility belt: memory, locks, webhook inboxes, timers, DNS, email, URL, timezone, cron
Free APIs for AI agents: web reading, text slicing, clock, ID keys, 1MB memory. No signup or fees.
13 deterministic agent utilities: timezone, cron, RRULE, currency, regex, diff, hashing & more.
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables agents to parse web pages into decision-ready state—dates as dates, numbers with units, and text chunks sized for a model's window—reducing token usage and providing traceable anchors.265 npm5MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to browse, click, type, screenshot, and extract data from web pages without writing CSS selectors, using numbered element refs. It also supports office automation such as bulk form filling, table extraction, downloads, PDF archiving, and page monitoring.21 npm1MIT
- FlicenseNot gradedqualityBmaintenanceEnables agents to read any web page or document as markdown, html, links, screenshots or extracted JSON, map and crawl entire sites, and drive a persistent browser session that stays open between calls so pages can be inspected and clicked without reloading. Callers pay per request with a wallet over x402 — no API key or signup — and every route answers its own free GET with the fields it expects.-
- AlicenseNot gradedqualityBmaintenanceEnables autonomous agents to inspect live web pages, prune noisy DOM content down to semantic essentials, and bind each form field to agent state by matching input attributes, autocomplete hints, and regex validations. It also converts HTML/Markdown tables into type-inferred JSON records and scores agent action trajectories for precision, recall, and edit distance.7MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.