clify
Server Details
Verified websites as JSON commands for AI agents over plain curl or MCP.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- ToukoUrsin/clify
- GitHub Stars
- 0
- Server Listing
- clify
TDQS
Scored across 7 tools
The three generic clify_ tools have distinct roles (discover sites, get command docs, execute commands), but the four site-specific tools exactly duplicate clify_run for their respective sites. Descriptions explicitly note the equivalence, so boundaries are somewhat clear, but the overlap is substantial.
Two naming conventions coexist: generic clify_<action> tools and site__<command> aliases. Each group is internally consistent, but the mix makes the overall set less predictable than a single pattern.
Seven tools is well within a reasonable range, and the three core tools alone can access all 135 sites. The four shortcut tools are redundant but not excessive in number.
The core surface covers discovery, command documentation, execution, pagination, and write confirmation, so agents can access all sites without dead ends. No obvious lifecycle gaps for a generic API gateway.
Available Tools
7 toolsclify_helpCommands and params of a siteARead-onlyIdempotentInspect
A site's commands with params ("name*" = required, ":a|b" = allowed values, "=x" = default). Pass command for full param docs, default fields and a ready clify_run call.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | site name from clify_sites, e.g. crates, weather | |
| command | No | one command name for full details |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the bar is lower. The description adds real value beyond them by disclosing the output notation ('name*' required, ':a|b' allowed values, '=x' default) and that a full call returns a ready-to-use clify_run invocation.
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 dense sentences with no filler; the notation legend is front-loaded and the second sentence covers the argument's effect. The opening legend is cryptic on first read but every clause carries information.
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 no output schema, the description responsibly explains the return notation and the two modes (bare command list vs. detailed single-command lookup). Minor gaps remain around site-name resolution and error behavior, but 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both params are self-described, so the baseline is 3. The description goes further by explaining what the 'command' argument returns (full param docs, default fields, a ready clify_run call), which the schema's terse 'one command name for full details' does not convey.
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 identifies the resource (a site's commands and their params) and the title pairs it with 'Commands and params of a site'. The verb is implicit (a discovery/listing operation) rather than stated, but it is clearly distinct from clify_run (executes) and clify_sites (lists sites).
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?
'Pass command for full param docs, default fields and a ready clify_run call' tells the agent exactly what the optional argument unlocks and points at the downstream tool it feeds. It does not state when to prefer this over calling clify_run directly, but the workflow context is clear rather than merely implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clify_runRun a site commandADestructiveInspect
Call one command of a clify site and get JSON back. args holds the command's params (see clify_help). Lists return count, total and nextPage (args for the next page). Write commands return a dry-run preview unless confirm:true.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | params, e.g. {"name":"serde"} | |
| site | Yes | site name, e.g. crates | |
| limit | No | first N items of a list | |
| fields | No | comma-separated keys to keep (dot paths ok); "*" for all | |
| command | Yes | command name, e.g. get-crate | |
| confirm | No | true sends a write; otherwise writes return a preview |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive/openWorld/non-idempotent, so the safety profile is covered. The description adds real behavior beyond that: list responses carry count/total/nextPage with nextPage feeding back as args, and writes are dry-run by default. Error handling and the fact that commands vary per site are not addressed.
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 short sentences, zero filler, front-loaded with the core action and then the two facts an agent must know (pagination shape, dry-run default). Every clause carries information.
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 no output schema, the description does the work of describing the return envelope (count/total/nextPage) and the write-mode behavior. For a generic dispatcher over an open world of sites, it is nearly complete; only error/failure behavior and site-selection prerequisites are unstated.
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 description adds meaning the schema does not: args is documented as the command's own parameter bag to be looked up via clify_help, and nextPage is explained as the args for the following page, establishing the pagination loop across calls.
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+resource: call one command of a clify site and receive JSON. It names the sibling clify_help as the place to discover commands, distinguishing itself from the discovery tool. It does not distinguish itself from the per-site convenience siblings (crates__get-crate, pypi__get-package), which overlap functionally.
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?
Implies usage via the clify_help pointer and explains the write path (preview unless confirm:true), which tells the agent how to invoke safely. However, it never says when to prefer clify_run over the dedicated per-site tools listed as siblings, nor does it state prerequisites for picking a site name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clify_sitesFind a clify siteARead-onlyIdempotentInspect
Search the catalogue of 135 real websites clify can call (package registries, government data, science, news, jobs, weather, culture…). Pass a keyword query to get the best sites with their matching commands. Without a query it pages through the catalogue, one line per site ("name (category, commands): about"); filter with category. Start here.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | max sites (default 6 with a query, 40 per page without) | |
| query | No | what you need, e.g. "rust crate versions" or "weather forecast" | |
| offset | No | skip this many sites when paging the catalogue (see nextPage) | |
| category | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/non-destructive, so the safety profile is covered. The description adds genuinely useful behavior beyond that: the exact output shape per site ('name (category, commands): about'), the paging mode, and a pointer to the nextPage field for offsets. It stops short of describing result ordering or ranking guarantees.
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 tightly packed sentences: purpose and scope first, then the query/no-query behavior, then the call to action. No filler, and the most decision-relevant information (query vs paging) comes before the parenthetical output format.
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 no output schema, the description compensates by spelling out the return line format, and annotations cover the read-only safety profile. The only gap is workflow hand-off — it implies but never states that the listed commands are meant to be executed via a companion 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 75% with limit/query/offset already documented in-schema, so the 3 baseline applies. The description goes further by tying the modes together — query changes the meaning of the call and the default limit — and by covering the purpose of the otherwise-undescribed category enum ('filter with category').
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 ('Search the catalogue of 135 real websites clify can call') and immediately scopes what lives in it (package registries, gov data, science, news, etc.). It is clearly distinguishable from execution-oriented siblings like clify_run, since it returns sites and their matching commands rather than running them.
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?
Explicitly covers the two usage modes: pass a keyword query for ranked matches, omit it to page the catalogue one line at a time. 'Start here' signals it is the entry point of the workflow, but it never names the follow-on tool (clify_run) or clify_help as alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crates__get-cratecrates get-crateARead-onlyIdempotentInspect
crates.io: Get a crate's details: description, links, download totals, keywords, categories and default version Returns name, description, default_version, downloads, recent_downloads, num_versions, keywords, categories, repository, documentation, homepage, updated_at by default. (Same as clify_run site=crates command=get-crate.)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Crate name | |
| limit | No | ||
| fields | No | keys to keep; "*" for all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, covering the safety profile. The description adds that a default field set is returned, which usefully implies the output can be narrowed, but it says nothing about rate limits, auth, or error behavior for the crates.io API.
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-loaded with the registry and action, which is good, but the two field lists overlap heavily (description, keywords, categories appear in both sentences), creating redundancy. The trailing clify_run parenthetical is useful but tacked on.
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?
There is no output schema, so the description's enumeration of default return fields does real work. It is nearly complete for a read-only fetch, with the main gap being the undocumented limit parameter.
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 67%: name and fields are documented in the schema, while limit is undocumented in both places. The description's list of default return fields indirectly explains what the fields parameter filters, but it adds no syntax for limit or the fields syntax beyond the schema's '"*" for all'.
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 and resource ("Get a crate's details") with the registry named up front ("crates.io"), which cleanly distinguishes it from the near-sibling pypi__get-package. It also enumerates the kind of data returned, so the agent knows the shape 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical "(Same as clify_run site=crates command=get-crate)" points at an equivalent access path but gives no condition for choosing this tool over clify_run or pypi__get-package. Usage is only implied, with no when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hnsearch__searchhnsearch searchBRead-onlyIdempotentInspect
hn.algolia.com: Search stories/comments by relevance Returns title, points, num_comments, author, created_at, url, objectID by default. (Same as clify_run site=hnsearch command=search.)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| tags | No | default story | |
| limit | No | ||
| query | Yes | ||
| fields | No | keys to keep; "*" for all | |
| hitsPerPage | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/openWorld/non-destructive, so the safety profile is covered. The description adds real value beyond them by listing the default return fields (title, points, num_comments, author, created_at, url, objectID) and the relevance sort, which matters given there is no output schema. It stops short of disclosing pagination or rate-limit behavior.
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 with no padding, but the second is a run-on that bleeds purpose, sort order, and a long field list together ('by relevance Returns title...'), and the command-equivalence note is parenthetical noise for most readers.
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?
For a read-only search tool with no output schema, the description supplies the essential default return fields, which is the main missing piece. However, it leaves pagination parameters (page vs limit vs hitsPerPage) unexplained, an agent cannot confidently page or bound results from the description alone.
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 only 33% (only tags and fields are annotated), so four parameters (query, page, limit, hitsPerPage) are undocumented in both schema and description. The description explains none of them, including the ambiguous overlap between limit, hitsPerPage, and page. It fails to compensate for the coverage gap.
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+resource: search Hacker News stories/comments by relevance via hn.algolia.com. It is clearly distinguishable from the sibling data-lookup tools (crates, pypi, wikipedia) and even names its clify_run equivalent. Lacks explicit sibling differentiation for the clify_* tools beyond the command equivalence note.
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?
No explicit when-to-use or when-not guidance. The parenthetical that it equals 'clify_run site=hnsearch command=search' is a useful routing hint, but no conditions select this tool over clify_run directly, nor any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pypi__get-packagepypi get-packageARead-onlyIdempotentInspect
pypi.org: Get a package's PyPI page for its latest version: name and version, summary, pip install command, project links and metadata sidebar, and README text. Returns name_version, summary, pip_command, sidebar, description by default. (Same as clify_run site=pypi command=get-package.)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Package name as it appears on PyPI, e.g. requests | |
| limit | No | ||
| fields | No | keys to keep; "*" for all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds real behavioral context beyond that: it says which fields are returned by default (name_version, summary, pip_command, sidebar, description), which tells the agent how the optional 'fields' parameter will behave. Auth, rate limits, and error behavior remain unstated.
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 output list, with no filler. The parenthetical cross-reference is slightly extraneous but cheap and informative. Dense and well ordered.
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?
There is no output schema, so the description usefully enumerates the returned fields and their defaults, which is what an agent needs most here. The remaining gap is the unexplained 'limit' parameter. For a simple 3-parameter read tool with full annotation coverage, this is close to 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 67%: 'name' has an example, but 'limit' is completely undocumented in both schema and description. The description partially compensates by naming the default returned keys, which clarifies the intent of the 'fields' parameter, but it says nothing about 'limit' or how many results/items it bounds. Baseline 3 is appropriate.
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 gives a specific verb and resource ('Get a package's PyPI page for its latest version') and then enumerates exactly what comes back (name/version, summary, pip install command, links, sidebar, README). It also maps itself to an equivalent sibling command (clify_run site=pypi command=get-package), so an agent can place it precisely 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?
Usage is implied by the resource scope (fetch PyPI metadata for a package) and the parenthetical notes the equivalent clify_run invocation, but there is no explicit when-to-use/when-not guidance, no comparison against crates__get-crate for non-Python packages, and no stated prerequisites. Adequate but thin.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wikipedia__summarywikipedia summaryARead-onlyIdempotentInspect
en.wikipedia.org: Short summary of an article (title, description, extract, url) Returns title, description, extract, content_urls.desktop.page by default. (Same as clify_run site=wikipedia command=summary.)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| title | Yes | article title, spaces as underscores, e.g. Y_Combinator | |
| fields | No | keys to keep; "*" for all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds that certain fields (title, description, extract, content_urls.desktop.page) are returned by default, which is useful, but says nothing about pagination, the limit behavior, or error cases.
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 compact sentences with the purpose and the returned fields front-loaded, and the equivalence note relegated to parentheses. The phrasing is slightly dense but nothing is wasted.
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 no output schema, the description usefully enumerates the default return shape, and the clify_run equivalence aids routing. For a simple read-only summary tool, only the undocumented 'limit' parameter and pagination behavior remain unaddressed.
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 67%: 'title' and 'fields' are documented in the schema, and 'limit' has no description. The description's mention of default-returned fields loosely ties to the 'fields' parameter but adds no syntax or constraint details, so it only marginally supplements 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 resource (en.wikipedia.org article) and operation (short summary), and lists the returned fields. It is clearly distinguishable from siblings like hnsearch__search or pypi__get-package by resource. It stops short of an explicit sibling differentiation, but the resource scoping is unambiguous.
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 parenthetical notes it is equivalent to 'clify_run site=wikipedia command=summary', which helps an agent recognize a duplicate path, but this is an equivalence note rather than a when-to-use/when-not guide. No conditions or prerequisites for selecting this tool are stated, leaving usage implied.
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.
7 tool updates
- First observed
clify_help - First observed
clify_run - First observed
clify_sites - First observed
crates__get-crate - First observed
hnsearch__search - First observed
pypi__get-package - First observed
wikipedia__summary
Related MCP Connectors
Deterministic Zero-LLM Web Compiler, Scraper, Crawler, and Site Mapper for AI Agents.
Fetch bot-protected and JavaScript-heavy pages for AI agents, or parse them to JSON with templates.
Live web checks for AI agents: sitemaps, robots.txt, URL status, broken links, feeds, citations.
Web scraping, extraction and search for AI agents. Hosted MCP with workspace API keys.
Related MCP Servers
- FlicenseBqualityCmaintenanceCompiles any website into typed, callable tools for AI agents, enabling discovery and invocation of live web APIs and UI actions without custom MCP servers.81-
- FlicenseNot gradedqualityAmaintenanceEnables AI agents to search the web through configured providers and crawl single pages or whole sites into clean Markdown or JSON, including content behind logins, over MCP STDIO or HTTP.-
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to validate AI infrastructure claims, check endpoint availability, solve CAPTCHA challenges, convert web pages to Markdown, search the web, extract structured JSON, and fetch bot-protected HTML through native tool calls.MIT
- AlicenseAqualityCmaintenanceMCP server that extracts structured JSON from public URLs for AI agents using schemas like product, article, and company.623 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.