abliteration-mcp
@abliteration/mcp
An MCP server that gives AI agents - Claude Code, Claude Desktop, Cursor, Windsurf and any other MCP host - direct access to the abliteration.org public API. Your agent can search the catalog of abliterated and uncensored LLMs, read the M-code method taxonomy, look up authors, datasets and indices, and follow the change streams Hugging Face doesn't offer: delisted models, the 24-month deletion record, README drift history and download anomalies. Every call is billed in credits from your abliteration.org wallet, and every result starts with a cost: 5 cr · balance: 704 cr line, so the agent can tell you what it spent.
You need an API key from abliteration.org/api. The key looks like abl_live_....
Install
Claude Desktop
Add this to claude_desktop_config.json (Settings → Developer → Edit Config):
{
"mcpServers": {
"abliteration": {
"command": "npx",
"args": ["-y", "@abliteration/mcp"],
"env": {
"ABLITERATION_API_KEY": "abl_live_..."
}
}
}
}Claude Code
claude mcp add abliteration -e ABLITERATION_API_KEY=abl_live_... -- npx -y @abliteration/mcpCursor
Add this to ~/.cursor/mcp.json (global) or .cursor/mcp.json (per project):
{
"mcpServers": {
"abliteration": {
"command": "npx",
"args": ["-y", "@abliteration/mcp"],
"env": {
"ABLITERATION_API_KEY": "abl_live_..."
}
}
}
}Windsurf
Add this to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"abliteration": {
"command": "npx",
"args": ["-y", "@abliteration/mcp"],
"env": {
"ABLITERATION_API_KEY": "abl_live_..."
}
}
}
}You can pass the key as "args": ["-y", "@abliteration/mcp", "--api-key", "abl_live_..."] instead of using env. The flag wins if both are set.
Related MCP server: psychopathia-mcp
Tools
Each tool maps to one API route and takes that route's query parameters, with the same names. The credit cost is listed in each tool's description, so the agent sees it before calling.
Catalog
Tool | Route | What it does |
|
| Search models by method, family, author, license, download range, creation date or delisted state. |
|
| Get the full record for one model, including classification evidence, files, benchmarks and README. |
|
| List the M-code taxonomy of uncensoring methods, with counts. |
|
| Get one M-code with its top authors and sample models. |
|
| List model publishers with model, download and like totals. |
|
| Get one publisher and their top models. |
|
| Search alignment and uncensoring datasets by category, author or license. |
|
| Get one dataset with its files and passport. |
|
| Get all four flagship indices: DAI, Freedom Velocity, Weaponization and F2W Latency. |
|
| Get one index with its history. |
|
| List curated field events: delistings, takedowns and notable releases. |
Change streams
Tool | Route | What it does |
|
| List models Hugging Face no longer serves. Poll with |
|
| Summarize 24 months of deletions: deletion rate, average lifespan, monthly losses and top casualties. |
|
| Page through the 24-month deletion record. Filter with |
|
| List every README commit for one model with its size delta. Poll with |
|
| Get a model's README as it was at one commit. |
|
| List models whose downloads spiked or dropped against a baseline window. |
|
| Get the download timeline for one model. |
Every result has a cost line, then the server's full JSON envelope:
cost: 5 cr · balance: 704 cr
{
"data": [ ... ],
"cost": 5,
"credits_remaining": 704,
"rate_limit_limit": ...,
"rate_limit_remaining": ...,
"rate_limit_reset": ...,
"metering": "billed",
"request_id": "..."
}Pricing
The tools spend the same credit wallet as the abliteration.org Research Agent. Most routes cost 1-20 credits. get_timeline costs 50 credits. search_models gets more expensive for large pages and deep offsets. For the full terms, see abliteration.org/terms, section 7 ("Credits and payments"). For the per-route price table, see abliteration.org/api.
Troubleshooting
"Invalid or missing ABLITERATION_API_KEY": the key is missing, mistyped or revoked. Check the env block in your host config, then restart the host. The server still starts without a key, but every tool call returns this message.
"Out of credits": the call costs more credits than your balance. Top up at abliteration.org/shop/pricing. The welcome credits you get at signup work only with the Research Agent, not with the API.
Pointing at a local or staging server: set ABLITERATION_API_BASE:
"env": {
"ABLITERATION_API_KEY": "abl_test_...",
"ABLITERATION_API_BASE": "http://localhost:4321/api/v1"
}The bare host (http://localhost:4321) also works. That's the form the abl CLI uses, and /api/v1 is added for you.
Debug logging: set DEBUG=abl:*. Every request, status and timing is logged to stderr, which MCP hosts write to their server log. To log only HTTP traffic, use DEBUG=abl:http. Logging never goes to stdout, because stdout carries the MCP protocol.
Checking the server end to end (from a checkout, in mcp/):
npm install
npm run build
ABLITERATION_API_KEY=abl_live_... node scripts/smoke.mjs # one live list_methods call, 5 credits
node scripts/smoke.mjs --offline # handshake and tool list only, no key neededLicense
MIT © Catyonic OÜ
Available Tools
18 toolsget_authorGet authorARead-onlyIdempotent
One publisher with totals and their top models (GET /authors/{id}). Cost: 1 credit.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Publisher handle, e.g. mlabonne. |
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 genuinely new operational context with the HTTP endpoint and, notably, the cost ('1 credit'), which an agent needs for budgeting decisions and cannot get 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight clauses: what you get plus the endpoint, then the cost. Return content is front-loaded ahead of the operational metadata, and 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 carries the return-value burden, and it does so briefly by naming totals and top models. Cost and endpoint are supplied as well; only the error case for an unknown handle is unstated, a minor gap for a read-only lookup.
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 single parameter is documented with a concrete example ('Publisher handle, e.g. mlabonne.'). The description adds no further semantic detail about the id, 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?
The description names a specific verb+resource ('One publisher') and even enumerates the payload ('totals and their top models'), which is far more informative than the title's 'Get author'. Scope ('One publisher') implicitly separates it from the sibling list_authors, but no sibling is named explicitly.
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 only implied: the singular 'One publisher' suggests fetching a known handle rather than browsing, and the required id parameter reinforces that. There is no explicit statement of when to use this instead of list_authors or how to obtain the id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_datasetGet datasetARead-onlyIdempotent
One dataset with its files and passport, the plain-language summary (GET /datasets/{id}). Cost: 1 credit.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Dataset id as author/name, e.g. mlabonne/orpo-dpo-mix-40k. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and openWorld, so the safety profile is covered. The description adds something annotations don't: the 'Cost: 1 credit' quota, which is genuinely useful for an agent budgeting calls. It stops short of 5 by omitting auth requirements or rate limits.
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?
A single front-loaded sentence that packs the return payload, the underlying endpoint, and the cost with zero filler. 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 no output schema, the description compensates by naming what comes back (files, passport, plain-language summary) and the credit cost. That is sufficient for a simple one-param read tool, though it could say a bit more about error behavior for unknown ids.
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 id parameter is documented with a concrete example (mlabonne/orpo-dpo-mix-40k), so the schema carries the full load. The description adds no parameter detail beyond the schema, making the baseline 3 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?
States a specific verb+resource (get one dataset) and enumerates the returned payload (files, passport, plain-language summary), which cleanly separates it from search_datasets. It doesn't explicitly name the sibling it's not, so it stops short of a 5.
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: fetch a single dataset by id rather than searching. There is no explicit when-to-use/when-not guidance and no mention of the alternative search_datasets for discovery, so it lands at the implied-usage tier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_deletions_summaryDeletions summaryARead-onlyIdempotent
Aggregate of the 24-month Hugging Face deletion analysis (GET /models/historical-deletions/summary): total seen, total deleted, deletion rate, average lifespan, monthly losses, top-10 casualties. Cost: 20 credits.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, so safety and idempotency are covered. The description adds a concrete cost (20 credits) and enumerates the returned metrics, which helps an agent judge whether the call is worth it. It does not mention rate limits or freshness of the 24-month window.
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?
One compact sentence front-loads the aggregate and then lists metrics and cost. The parenthetical endpoint is slightly redundant but useful for debugging; nothing is bloated.
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 zero-param, read-only aggregate tool with annotations covering safety and no output schema, the description tells the agent exactly what content to expect (seen, deleted, rate, lifespan, monthly losses, top-10) and the cost. The absence of output schema makes the metric enumeration the right substitute.
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?
Zero parameters, so the baseline is 4. The description correctly adds no parameter prose, and the endpoint path is the only input-like detail.
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 (aggregate) and resource (24-month Hugging Face deletion analysis), lists the exact metrics returned, and includes the underlying endpoint. Distinguishes it from the sibling list_deletions and get_timeline by making clear it is a pre-computed summary.
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 strongly implied by 'Aggregate ... summary' versus the sibling list_deletions (raw records) and get_timeline (temporal view). It doesn't explicitly say 'use this instead of list_deletions when you want counts', so it falls short of naming the alternative and the condition that selects it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_download_anomaliesDownload anomaliesARead-onlyIdempotent
Models whose downloads jumped (spike, >= 2x) or fell (drop, <= 0.5x) against a baseline window (GET /market/anomalies), biggest movers first. Cost: 15 credits flat.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Filter to one class; omit for both. | |
| limit | No | Rows to return, 1 to 1000. Default 50. | |
| offset | No | Rows to skip. Default 0. | |
| window_days | No | Baseline distance in days. Default 7. | |
| min_baseline | No | Only rows whose baseline downloads >= this. Default 1000. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, openWorld). The description adds two things annotations cannot: a flat 15-credit cost and the result ordering ('biggest movers first'), both directly relevant to whether an agent should call this. No contradictions with annotations.
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 the definition front-loaded and cost appended; every clause earns its place. The parenthetical endpoint reference (GET /market/anomalies) is minor overhead but consistent with the catalog's style.
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 still supplies the ordering of results and the credit cost, which are the main unstated facts an agent needs. It does not describe the shape of a returned row (fields beyond download counts), but for a simple list tool with fully documented parameters 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 100% and every parameter carries a description with defaults and bounds, so the schema does the heavy lifting. The description's 2x/0.5x thresholds clarify the meaning of the anomaly classes but do not add syntax or format detail for window_days, min_baseline, limit or offset beyond what the schema states. Baseline 3.
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 (models whose downloads spiked or dropped) and quantitatively defines both classes (spike >= 2x, drop <= 0.5x) against a baseline window. This clearly distinguishes it from the sibling get_download_history, which returns raw series rather than anomaly detection.
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 purpose and threshold definitions imply when the tool is appropriate (detecting outliers rather than reading history), but there is no explicit when-to-use guidance and no named alternative such as get_download_history. It also doesn't note that omitting 'kind' returns both classes, leaving that to the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_download_historyDownload historyARead-onlyIdempotent
Per-model download timeline (GET /models/{id}/download-history), the raw series get_download_anomalies scans. Cost: 5 credits flat.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Model id as author/name, for example mlabonne/Qwen3-30B-A3B-abliterated. | |
| days | No | Window in days, max 365. 0 for full history. Default 90. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint, idempotentHint and openWorldHint already covering the safety profile, the description adds genuinely new behavioral context: a flat 5-credit cost. That pricing detail is not derivable from annotations or schema. It stops short of describing the returned series shape or any windowing caveats.
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?
One dense sentence front-loads purpose (timeline), then endpoint, sibling relationship, and cost, with zero filler. Every clause carries information an agent can use.
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 simple read-only, 2-parameter tool whose annotations and full schema coverage carry most of the load, the description is nearly complete. The only gap is return-shape explanation, which matters slightly since there is no output schema.
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%, so the schema already documents both 'id' (author/name format) and 'days' (0-365, default 90). The description adds no format or default detail beyond that, 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?
States a specific verb+resource ('per-model download timeline') and even names the REST endpoint, then explicitly positions it against the sibling get_download_anomalies as 'the raw series get_download_anomalies scans.' An agent can distinguish it from that sibling without opening either 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 relationship clause ('the raw series get_download_anomalies scans') gives clear routing context for choosing this over the anomalies tool, but there is no explicit when-to-use/when-not statement or prerequisite guidance. Good context, no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_indexGet indexARead-onlyIdempotent
One index with its full history series (GET /indices/{id}). Only dai has history today. Cost: 10 credits.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Index id or alias (DAI, FV, WEAP, F2W). |
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 two things annotations cannot: a metered cost (10 credits) and a data-coverage limitation (only dai has history), both of which materially affect invocation decisions. It does not describe response pagination or size.
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 compact clauses, front-loaded with the core purpose, then the constraint, then the cost. No sentence is redundant and nothing is buried.
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 must imply the return shape, and 'full history series' does so at a high level, while cost and the dai-only limitation cover the operational concerns. A brief note on series granularity or response size would make it fully 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 description coverage is 100% and the id parameter's enum includes every accepted alias, so the schema already fully documents the single parameter. The description adds no format or alias guidance beyond the endpoint path template, 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?
States a specific verb and resource ('One index with its full history series') and even names the underlying endpoint, which pins down exactly what is returned. This is clearly distinguishable from the sibling list_indices (single vs. collection) 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The note 'Only dai has history today' is genuinely actionable guidance — an agent knows that calling this for FV/WEAP/F2W will not yield history and should prefer another sibling. The credit cost gives a further selection signal. It stops short of 5 because no alternative tool is named explicitly for the non-dai case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_methodGet methodARead-onlyIdempotent
One M-code (GET /methods/{id}) with counts, top authors and sample models. Cost: 1 credit.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | M-code, e.g. M1, M4, M5-frankenstein, M-uncensored. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, openWorld), so the description's job is to add beyond that. It does: it discloses the cost ('1 credit') and the return shape (counts, top authors, sample models), both of which are absent from the structured fields.
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 resource and scope, followed by payload contents and cost. No filler or redundancy.
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 a single required parameter and no output schema, the description usefully previews what is returned and the credit cost. It is complete enough to invoke correctly, though it omits any guidance on when this beats search_models for the same data.
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 schema already explains the M-code format with examples, so the description adds nothing parameter-wise. Baseline 3 is appropriate when the schema carries the semantics.
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 verb+resource ('One M-code' / GET /methods/{id}) and even gives the endpoint, so the agent knows exactly what is fetched. It implies singularity versus the sibling list_methods, but does not name that sibling explicitly.
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 only implied by 'One M-code', which suggests a single-record lookup rather than list_methods or search_models. No explicit when-to-use, when-not, or alternative routing is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_modelGet modelARead-onlyIdempotent
Full record for one model (GET /models/{id}): method classification and evidence, family, size, files, quantizations, benchmarks, README, author summary. Delisted models are served with is_delisted=1 and days_since_gone. Cost: 10 credits.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Model id as author/name, for example mlabonne/Qwen3-30B-A3B-abliterated. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, so safety is covered. The description goes beyond them by disclosing a cost (10 credits) and the delisted-model behavior (is_delisted=1 plus days_since_gone), which is genuinely useful non-schema context. It stops short of describing error handling for a missing id.
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 purpose, then a dense parenthetical field list, then the delisted edge case and cost. Every element is informative given the absence of an output schema, though the field enumeration reads as a run-on list rather than cleanly separated clauses.
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 correctly compensates by naming the returned sections (classification, family, size, files, quantizations, benchmarks, README, author summary). It also flags the delisted variant and the credit cost. Only the not-found/error case is unspecified.
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 single 'id' parameter is documented with a concrete example (author/name form). The description adds no format or lookup semantics beyond what the schema already provides, 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?
States a specific verb and resource ('Full record for one model') and anchors it to the endpoint GET /models/{id}. The word 'Full record for one model' cleanly separates it from search_models and get_author, so an agent can pick it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the required 'id' parameter and the GET /models/{id} path signal that this is a single-record lookup once an id is known. There is no explicit statement of when to prefer this over search_models or get_author, nor any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_readme_atGet README at commitARead-onlyIdempotent
Wayback view: the exact README of one model at one commit sha (GET /models/{id}/readme-at/{commit}). Use a commit_sha from list_readme_drifts. Cost: 10 credits.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Model id as author/name, for example mlabonne/Qwen3-30B-A3B-abliterated. | |
| commit | Yes | README commit sha, from list_readme_drifts. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint and idempotentHint, so safety is covered. The description adds genuinely new behavioral context beyond that: this is a historical/snapshot read ('Wayback view') and it costs 10 credits, a real budget constraint. It does not describe response size or truncation 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 short sentences: the core semantics and provenance first, then the cost note. No filler, no restatement of the title, and the distinguishing qualifier ('Wayback view') is front-loaded.
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 2-param read tool with no output schema, the description conveys what is returned (the exact README content at a commit) and how to obtain the commit. It leaves the return encoding (raw markdown vs JSON wrapper) unspecified, a minor gap given no output schema exists.
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 both parameters (id, commit) are documented in the schema with format hints and examples. The description only restates that commit comes from list_readme_drifts, adding no syntax or format detail beyond the schema, so 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?
States a specific verb and resource ('the exact README of one model at one commit sha') and frames it as a 'Wayback view', which separates it cleanly from get_model and from the sibling list_readme_drifts that only lists drifts. The endpoint path is included, further pinning the resource.
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 tells the agent where the required commit sha comes from: 'Use a commit_sha from list_readme_drifts', which routes between siblings. It stops short of stating when not to use this tool (e.g. for the current README, use get_model), so it is strong but not full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_timelineGet timelineARead-onlyIdempotent
Curated field events, newest first (GET /timeline): delistings, takedowns, notable releases. Cost: 50 credits flat - the most expensive route; narrow with from/to.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Inclusive upper bound on event date, ISO-8601. | |
| from | No | Inclusive lower bound on event date, ISO-8601. | |
| limit | No | Rows to return, 1 to 1000. Default 100. | |
| event_type | No | Event type, case-insensitive. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/openWorld, so the description's value-add is the cost profile (50 credits flat, most expensive route) and the ordering guarantee (newest first). Those are genuinely useful behavioral facts absent from the structured fields; it does not mention pagination behavior or whether limit interacts with the date filter.
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?
One sentence plus a short fragment; the resource and ordering are front-loaded and the cost caveat follows immediately. 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?
With no output schema, the description covers the essential calling facts for a read-only list tool: what it returns, ordering, filtering levers, and cost. Return record shape is left unspecified, but the enumerated event categories give a reasonable preview.
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 parameter carries a descriptive line, so the schema does the heavy lifting. The description only adds 'narrow with from/to', which is a usage hint rather than new semantic detail on limit or event_type. 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?
States a specific resource (curated field events) and enumerates the content types it covers (delistings, takedowns, notable releases), plus the endpoint. It separates itself from the raw list siblings somewhat via 'curated', but never explicitly contrasts with list_delistings or list_deletions, so identification is clear but not fully differentiated.
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 usable context: it flags the flat 50-credit cost as 'the most expensive route' and tells the agent to narrow with from/to. It stops short of naming an alternative sibling tool for cheap delisting lookups, so the when-not-to-use case is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_authorsList authorsARead-onlyIdempotent
Model publishers with aggregate model, download and like totals (GET /authors). Cost: 5-15 credits by rows returned.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Bare key is largest first; a leading - flips it. Default total_downloads. | |
| limit | No | Rows to return, 1 to 1000. Default 50. | |
| offset | No | Rows to skip. Default 0. |
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 genuinely new behavioral context: the credit cost model ('5-15 credits by rows returned'), which the agent cannot derive from the schema or annotations. It does not describe pagination or result ordering 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 tight fragments with no filler; the resource definition is front-loaded and the cost caveat follows immediately. Nothing is wasted, though the phrasing is compressed to the point of being slightly telegraphic.
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 list tool with a fully documented schema and no output schema, the description covers what is returned, how it is scoped, and its cost. Only minor gaps remain around pagination behavior and returned field structure, which are low-stakes here.
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% — sort, limit, and offset are all fully self-documented including the leading-dash flip convention and defaults. The description's mention of 'aggregate model, download and like totals' loosely maps to the sort keys but adds no syntax or format detail beyond the schema. 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?
The description identifies the resource precisely ('Model publishers with aggregate model, download and like totals') and pins the endpoint (GET /authors), which is more informative than the bare 'List authors' title. It implicitly differentiates from the singular get_author sibling, though it never names that sibling or any other alternative.
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 guidance on when to call this versus get_author or search_datasets/search_models. The agent can infer this is a bulk-listing tool, but no condition, exclusion, or prerequisite is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_deletionsList historical deletionsARead-onlyIdempotent
Paged list of models deleted from Hugging Face over the last 24 months (GET /models/historical-deletions/list). Rows are frozen at last sighting. Cost: 5 credits flat.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | downloads (default, biggest first), recent (newest deaths first), lifespan (longest-lived first). | |
| limit | No | Rows to return, 1 to 1000. Default 50. | |
| offset | No | Rows to skip. Default 0. | |
| since_month | No | YYYY-MM; rows with last_seen_month >= it. | |
| min_peak_downloads | No | Only rows whose peak downloads >= this. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/openWorld, but the description adds real value beyond them: 'rows are frozen at last sighting' discloses snapshot semantics and 'Cost: 5 credits flat' discloses billing impact. It stops short of describing pagination mechanics or return fields.
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, with the core scope front-loaded and the cost note placed last where it belongs. 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?
No output schema exists, but the description supplies the essential semantics (snapshot rows, 24-month window, paging, flat cost) and the read-only annotations cover safety. It could say more about what a row contains, which is the main residual gap.
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 (sort, limit, offset, since_month, min_peak_downloads) is already documented in the schema. The description adds no parameter-level meaning beyond what the schema provides, 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?
States a specific verb and resource ('Paged list of models deleted from Hugging Face'), plus a scope (last 24 months) and the underlying endpoint. It does not distinguish itself from near-neighbors like list_delisted or get_deletions_summary, so an agent can't tell them apart 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus get_deletions_summary (a summary) or list_delisted (a different lifecycle state). The 24-month window is the only implicit scoping cue; no exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_delistedList delisted modelsARead-onlyIdempotent
Change stream of models Hugging Face no longer serves (GET /models/delisted), preserved at their final state. Pass since = the newest last_seen_at from a previous call to get only new casualties. Cost: 5 credits flat.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | recent (default, newest disappearance first) or downloads (biggest first). | |
| limit | No | Rows to return, 1 to 1000. Default 50. | |
| since | No | ISO-8601 date or timestamp; rows with last_seen_at >= since. | |
| offset | No | Rows to skip. Default 0. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the read-only, repeatable safety profile is covered structurally. The description adds genuinely useful context beyond that — the dataset is a preserved final-state change stream and each call costs 5 credits flat — but says nothing about auth needs, rate limits, or ordering 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 tight sentences: identity and endpoint first, then the incremental-polling tip, then the cost. No filler or restated boilerplate, and the most decision-relevant facts are front-loaded.
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 its job by describing the payload as delisted models held at their final state, and it discloses the credit cost and the incremental-refresh pattern. Minor gaps remain around result ordering beyond `sort` and pagination interaction between limit/offset, but nothing that would cause a miscall.
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, and the description exceeds it by explaining the intent of `since` as a cursor seeded from the previous call's newest last_seen_at — semantics the schema's terse '>= since' definition does not convey. It adds nothing for sort/limit/offset, which the schema already documents fully.
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?
Names a specific verb and resource ('Change stream of models Hugging Face no longer serves') and cites the underlying endpoint, so an agent knows exactly what it returns. It does not explicitly distinguish itself from close siblings like list_deletions or get_deletions_summary, so the boundary between 'delisted' and 'deleted' is left to inference.
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 concrete operational guidance: pass `since` = the newest last_seen_at from a prior call to fetch only new entries, which tells the agent how to poll incrementally. It still offers no when-to-use-vs-alternative rule (e.g., list_deletions vs list_delisted) or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_indicesList indicesARead-onlyIdempotent
All four flagship indices at once (GET /indices): DAI, Freedom Velocity, Weaponization and F2W Latency. Check measured before treating a value as a finding. Cost: 20 credits.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, open-world), so the description's real added value is the cost disclosure ('20 credits') and the endpoint path (GET /indices), plus the caveat that a value may not be a valid finding until `measured` is checked. That is meaningful behavioral context beyond the structured fields, though return shape/pagination remains 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?
Front-loaded with what is returned, then the interpretation caveat, then cost. No sentence is filler; it is tightly scoped to the three things an agent needs.
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 present the description must carry return-value context, and it does name the four indices and the `measured` field. It stops short of describing the value shape or units, which leaves a small gap for a tool whose whole purpose is returning index values.
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?
Zero parameters, so there is nothing for the description to disambiguate; the baseline for a no-param tool is 4. The description correctly adds no parameter detail.
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, names the exact payload (DAI, Freedom Velocity, Weaponization, F2W Latency), and the 'All four ... at once' phrasing implicitly contrasts with the singular get_index sibling. An agent can distinguish the two without opening either 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?
It gives a result-interpretation rule ('Check `measured` before treating a value as a finding') which is genuinely useful guidance, but never states when to use this tool vs get_index for a single index. The contrast with the singular sibling is implied by 'at once' rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_methodsList methodsARead-onlyIdempotent
The M-code taxonomy of uncensoring methods (GET /methods): abliteration, weight editing, merges, fine-tunes, repackages, with model and download counts per code. Cost: 5 credits.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, openWorldHint), so the bar is lower, and the description adds genuinely new context: an explicit cost of 5 credits per call and the shape of the payload (counts per code). It does not discuss result size or ordering, but the added value is real.
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?
A single dense sentence that front-loads the resource, then the enumerated taxonomy, then the cost. Every clause carries information; there is 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?
With no parameters and no output schema, the description covers what an agent needs: what the resource is, what each entry contains, and the credit cost. Minor omissions (result size, whether the list is exhaustive) keep it short of a 5.
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 tool takes zero parameters, so there is nothing for the description to clarify; baseline 4 applies. Nothing in the text misrepresents the parameter surface.
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 names a specific resource (the M-code taxonomy of uncensoring methods) and enumerates its contents (abliteration, weight editing, merges, fine-tunes, repackages) with the per-code payload (model and download counts). The plural 'list' scope versus the singular get_method sibling is only implicitly conveyed, but an agent can still tell what this returns.
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 when-to-use or when-not-to-use guidance, and no alternative is named — an agent is not told to prefer get_method for a single code or that this is the entry point for the taxonomy. The only usage-adjacent fact is the credit cost.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_readme_driftsList README driftsARead-onlyIdempotent
Every commit that changed one model's README on Hugging Face (GET /models/{id}/drifts), with size_delta between commits. Pass since_ts = the max commit_ts from a previous call for an incremental feed; fetch a version with get_readme_at. Cost: 5 credits flat.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Model id as author/name, for example mlabonne/Qwen3-30B-A3B-abliterated. | |
| limit | No | Rows to return, 1 to 1000. Default 50. | |
| offset | No | Rows to skip. Default 0. | |
| since_ts | No | Unix epoch seconds; rows with commit_ts >= it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, so the safety profile is covered. The description adds genuinely new behavioral context not in the annotations: a flat 5-credit cost and the presence of size_delta in the output. It stops short of describing pagination limits or error behavior, so 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact, front-loaded sentences with no filler. The core identity comes first, the incremental-feed tactic and sibling reference follow, and cost is stated last as a quick note. Every sentence carries distinct 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?
For a read-only list tool with full annotation coverage and 100% schema coverage, the definition supplies cost, the incremental-feed pattern, a sibling alternative, and a hint at the return field. Since there is no output schema, the return shape is only partially characterized (size_delta), so it is nearly but not fully 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 description coverage is 100%, so the schema already documents id, limit, offset, and since_ts, giving a baseline of 3. The description earns above baseline by explaining the intended sequencing for since_ts (max commit_ts from a previous call for an incremental feed), which is operational meaning the schema's terse 'rows with commit_ts >= it' 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?
States a specific verb+resource (lists commits that changed a model's README on Hugging Face) and even cites the underlying endpoint GET /models/{id}/drifts. The added 'with size_delta between commits' detail distinguishes the return shape from a generic commit list, so an agent can tell it apart from siblings like get_readme_at or get_timeline.
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 names the alternative ('fetch a version with get_readme_at') and gives a concrete usage pattern: pass since_ts = the max commit_ts from a previous call for an incremental feed. That is a clear when-to-use-routing plus a stateful pagination strategy, leaving little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_datasetsSearch datasetsBRead-onlyIdempotent
Alignment and uncensoring datasets (GET /datasets), filterable by workflow category, author and license. Cost: 5-15 credits by rows returned.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Bare key is the natural direction; a leading - flips it. Default downloads. | |
| limit | No | Rows to return, 1 to 1000. Default 50. | |
| author | No | Publisher handle, case-insensitive. | |
| offset | No | Rows to skip. Default 0. | |
| license | No | License string as published. | |
| category | No | Workflow stage, e.g. heal or extract. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/openWorld/idempotent, so the safety profile is covered. The description earns credit by disclosing a non-obvious cost model ('5-15 credits by rows returned'), which is nowhere in the structured fields and directly affects how an agent should size its limit.
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?
A single dense sentence that front-loads the resource, then filters, then cost. Nothing is padding, though the endpoint label '(GET /datasets)' is arguably redundant given the name.
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 6 optional params fully described in the schema and no output schema required, the core is covered. However, nothing addresses pagination behavior across offset/limit (relevant for a cost-per-row tool) or the shape/order of results, which is where completeness gaps remain.
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%, so sort direction, limits, and offset semantics are already fully documented in the schema. The description only restates three filter fields (category, author, license) at a high level, adding no syntax or default details beyond the schema — baseline 3.
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?
Names a specific verb+resource ('search datasets'), scopes the domain ('alignment and uncensoring datasets'), and cites the backing endpoint (GET /datasets). It does not explicitly contrast itself with the sibling get_dataset or list_delisted, so an agent must infer the search-vs-retrieve distinction.
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 when-to-use guidance and no named alternatives. The filter list implies the tool is for filtered browsing, but nothing tells the agent when to prefer this over get_dataset or search_models.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_modelsSearch modelsARead-onlyIdempotent
Search the abliteration.org catalog of abliterated and uncensored LLMs (GET /models). Filter by M-code method, base family, author, license, download range and creation date. Delisted models are excluded unless delisted=dead|all. Cost: 5 credits up to 200 rows; 20 / 80 / 300 for larger pages, multiplied by 1 + (offset/2500)^2. Filter narrowly rather than paging deep.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Bare key is the natural direction (most / newest first); a leading - flips it. Default downloads. | |
| limit | No | Rows to return, 1 to 1000. Default 50. | |
| author | No | Publisher handle, case-insensitive. | |
| family | No | Base family, e.g. qwen or llama. | |
| method | No | M-code, case-insensitive, e.g. M4. See list_methods. | |
| offset | No | Rows to skip. Default 0. | |
| license | No | SPDX-ish license string as published. | |
| delisted | No | live (default): on the Hub now. dead: delisted only. all: both. | |
| created_after | No | ISO-8601 date or timestamp, inclusive. | |
| downloads_gte | No | Minimum downloads. | |
| downloads_lte | No | Maximum downloads. | |
| created_before | No | ISO-8601 date or timestamp, inclusive. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/openWorld/idempotent annotations, the description discloses the credit-cost schedule, the offset-quadratic multiplier, and the default delisted-exclusion behavior. This is exactly the operational context an agent needs before issuing a deep query.
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 tight sentences, front-loaded with purpose, then filters, then cost. No filler; the cost formula is dense but directly informs query design.
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 still conveys the shape of a result set (rows, page sizing) and the cost/limit tradeoff. It could say a bit more about what each row contains, but nothing critical for correct invocation 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%, so baseline is 3. The description adds value by enumerating the filter axes (method, family, author, license, download range, creation date) and spelling out the delisted semantics (dead|all) that an agent must understand to avoid silently missing records.
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 (Search) on a specific resource (the abliteration.org catalog of abliterated/uncensored LLMs) and even names the backing endpoint (GET /models). It clearly distinguishes itself from get_model, search_datasets and the author/method listers.
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 concrete selection guidance: filter narrowly rather than paging deep, and explains that delisted models are excluded unless delisted=dead|all. It does not, however, name a sibling alternative (e.g. get_model) for retrieval by a known ID.
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.
18 tool updates
v0.1.0- First observed
get_author - First observed
get_dataset - First observed
get_deletions_summary - First observed
get_download_anomalies - First observed
get_download_history - First observed
get_index - First observed
get_method - First observed
get_model - First observed
get_readme_at - First observed
get_timeline - First observed
list_authors - First observed
list_deletions - First observed
list_delisted - First observed
list_indices - First observed
list_methods - First observed
list_readme_drifts - First observed
search_datasets - First observed
search_models
TDQS
Scored across 18 tools
Most tools have clearly distinct resource+action purposes (list/get/search pairings across authors, models, methods, datasets, indices). The main overlap is the deletion family (list_delisted vs list_deletions vs get_deletions_summary) and the download pair (get_download_anomalies vs get_download_history), but the descriptions differentiate them well enough for an agent to choose correctly.
Consistent verb_noun convention throughout: list_*, get_*, search_* across all 18 tools. Minor adjective-as-noun case in list_delisted, but it reads naturally and matches the pattern. No camelCase or style mixing.
18 tools is on the heavier side but each maps to a distinct route/resource of a genuinely broad data API (models, authors, methods, datasets, indices, timeline, deletions, README drifts, download anomalies). Nothing appears redundant, though it sits just above the ideal 3-15 range.
The surface covers a wide domain well: models, authors, methods, datasets, indices, timeline, delistings, deletions, README drift history, and download anomalies, with both list and detail variants. Minor gaps exist (e.g. no explicit search for authors/methods beyond list, no benchmark-only lookup), but core workflows are covered.
Maintenance
Related MCP Connectors
AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.
Free OpenAI-compatible inference with signed provenance receipts and 3 focused MCP tools.
Read-only search and discovery for the international llms.txt directory maintained by llmsmap.me.
Related MCP Servers
- AlicenseBqualityDmaintenanceDynamic MCP server — 30+ tools across fact verification, agent memory, Indian NLP, contract risk, security threat modelling, sales call intelligence and more. x402/USDC micropayments on Base.336 npmMIT
- AlicenseBqualityCmaintenanceMCP server exposing the Psychopathia Machinalis diagnostic framework (79 conditions) — differential diagnosis of AI dysfunctions via 11 read-only tools.1148 PyPIMIT
- AlicenseBqualityAmaintenancemnemo — an MCP server for agent memory with a first-class correction & erasure channel (revert, lineage-aware retraction, tamper-evident deletion receipts). Zero dependencies, 12 tools over stdio1351,663 PyPI8MIT
- FlicenseNot gradedqualityCmaintenanceRead-only MCP server for the July 2026 survey of AI in open-source design systems, enabling agents to query 19 systems' affordances, coercion techniques, and platform data via 9 tools, 2 resources, and 2 prompts.7-