AISkills402
Server Details
Tested AI agent skill files (SKILL.md), bought once over x402 for cents on Base. Free MCP search.
- Status
- Healthy
- Uptime
- 100.0% over 82 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 4 tools
Each tool has a clearly distinct role: search_skills discovers skills, list_categories provides category filters, get_skill returns details/payment instructions for a specific skill, and redownload_skill re-fetches an already purchased file. There is no meaningful overlap between browsing, purchasing info, and re-downloading.
All tool names follow a consistent snake_case verb_noun pattern: get_skill, list_categories, redownload_skill, and search_skills. The convention is predictable and readable throughout.
Four tools are well-scoped for a read-only MCP layer over a skill marketplace, with each tool serving a distinct purpose. No tool feels redundant or unnecessary for the stated domain.
The surface covers discovery, category filtering, skill detail/payment instructions, and re-downloading purchased files. Minor gaps exist around pagination or browsing beyond the search limit, but core workflows are supported and payment is intentionally outside MCP.
Available Tools
4 toolsget_skillGet a skill and its priceARead-onlyIdempotentInspect
Get one skill card (free) plus the exact x402 payment_required body for its one-time purchase of the SKILL.md file, and how_to_buy. Price is price_usd on the card. Buying is over HTTP; MCP does not take payments.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The skill's slug, as returned by search_skills (for example 'humanize'). An unknown or unlisted slug is an error. |
Output Schema
| Name | Required | Description |
|---|---|---|
| faq | Yes | Questions and answers about the skill. |
| name | Yes | Display name. |
| slug | Yes | Stable identifier of the skill; use it with get_skill. |
| tags | Yes | Lowercase tags. |
| sha256 | Yes | SHA-256 of the file, lowercase hex. |
| tested | Yes | How the skill was tested; null if not recorded. |
| buy_url | Yes | HTTP address to buy the file (x402). |
| license | Yes | |
| not_for | Yes | What the skill is not for; null if not stated. |
| outline | Yes | Headings of the file. |
| payment | Yes | Short payment summary: protocol, asset, network and whether selling is open. |
| version | Yes | Current semantic version of the SKILL.md file. |
| category | Yes | Category slug; null if the skill has no category yet. |
| examples | Yes | Before/after examples from the test. |
| keywords | Yes | Search keywords. |
| mcp_tool | Yes | Always null: buying is over HTTP, not MCP. |
| page_url | Yes | Public page of the skill. |
| use_when | Yes | What the skill is for. |
| image_url | Yes | Preview image; null if none. |
| languages | Yes | Language codes the skill works in, or 'any'. |
| price_usd | Yes | One-time price in US dollars, as a decimal string. |
| how_to_buy | Yes | Steps to buy over HTTP. |
| size_bytes | Yes | Size of the SKILL.md file in bytes. |
| updated_at | Yes | ISO 8601 time of the last update. |
| price_micro | Yes | The same price in millionths of a dollar. |
| related_url | Yes | API address of the related skills. |
| category_url | Yes | Page of the category; null if there is no category. |
| markdown_url | Yes | The same page as Markdown. |
| purchases_count | Yes | Number of purchases; null until there are at least 10. |
| payment_required | Yes | The exact body the HTTP shop answers with HTTP 402; the client signs it. Buying is over HTTP. |
| redownload_url_template | Yes | HTTP address template of the free re-download; {token} is the receipt token. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/non-destructive, and the description adds genuinely new context: the call is free, it does not transact, and it returns a payment_required body for an HTTP purchase. It stops short of noting whether price/payment bodies can change between calls, which would have completed the picture.
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 what you get, then price mapping, then the purchase-boundary caveat. The x402/payment_required phrasing is dense but each 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 an output schema present, the description needn't document return shape, yet it still orients the agent on price_usd and how_to_buy. Combined with annotations, error behavior in the schema, and a single param, an agent has what it needs to call this correctly.
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?
Only one parameter at 100% schema coverage, including the unknown-slug error behavior, so the schema carries the semantics. The description's 'Price is price_usd on the card' clarifies a response field rather than the slug parameter, so it adds no parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get one skill card') and enumerates exactly what comes back: the card, the x402 payment_required body, and how_to_buy. It is distinguishable from search_skills/list_categories by being single-item retrieval, though it never names a 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?
Makes the key usage boundary explicit: retrieval is free, the purchase itself happens over HTTP, and 'MCP does not take payments.' The slug's dependency on search_skills is stated in the schema rather than the description, so guidance is clear but not fully self-contained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesList skill categoriesARead-onlyIdempotentInspect
List the twelve skill categories (free) with a short introduction and how many skills are listed in each. Use a slug as the category filter of search_skills.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| categories | Yes | All skill categories, in display order. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile needs no restating. The description adds genuinely new behavioral facts: the result set is bounded at twelve entries (no pagination paging needed), the listing is free, and each item carries an intro plus a count — none of which appear in 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 sentences, zero filler: the first defines the payload, the second tells the agent what to do with it. Front-loaded and appropriately sized for a trivial zero-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With rich annotations, an output schema, and no parameters, the description supplies everything an agent needs to decide to call it and how to chain it. Only a note on when it should be skipped in favour of a direct search would add anything.
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 still adds value by explaining that the output slugs are meaningful inputs to a sibling tool, clarifying the semantic role of the returned values.
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: 'List the twelve skill categories', plus what each entry contains (introduction, skill count). It is unmistakably distinct from get_skill and search_skills, which retrieve or query skills rather than enumerate the taxonomy.
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 second sentence gives the concrete downstream use: the returned slug feeds the category filter of search_skills, which positions this as a discovery step before searching. It stops short of an explicit when-not-to-use or a stated alternative, so it is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redownload_skillRe-download a bought skillAInspect
Re-download the SKILL.md file you already bought (free), using the token from your purchase receipt. Always returns the current version of the skill.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | The re-download token from your purchase receipt (the 'redownload' part): 64 lowercase hex characters. Not your payment signature. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | Always true on success. |
| file | Yes | The file itself. |
| name | Yes | Display name. |
| bytes | Yes | Size of the file in bytes. |
| skill | Yes | Slug of the skill. |
| sha256 | Yes | SHA-256 of the delivered file, lowercase hex. |
| install | Yes | Where to install the file. |
| license | Yes | |
| version | Yes | The current version being delivered (may be newer than the one first bought). |
| purchase | Yes | Your purchase record. |
| changelog | Yes | What changed in this version; null if not recorded. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real value beyond the annotations: the operation is free, requires the receipt token, and 'always returns the current version of the skill'. However, it does not reconcile the notable annotations readOnlyHint=false and idempotentHint=false for what reads like a retrieval, nor explain any side effect or why repeated calls are non-idempotent.
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 sentences with zero filler; the action, cost, and token provenance are front-loaded and the freshness guarantee closes it out.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need no explanation, and the description covers purpose, cost, token source, and freshness. The only gap is the unexplained non-read-only/non-idempotent behavior flagged by annotations.
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 token parameter is well documented there (64 lowercase hex, not the payment signature). The description's 'token from your purchase receipt' merely restates the schema's source hint, adding no syntax or format detail beyond it.
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+resource: 'Re-download the SKILL.md file you already bought', with the purchase-receipt token as the scoping mechanism. It implicitly separates itself from get_skill by requiring prior purchase and a receipt token, but never names a sibling, so the differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case (you already bought the skill and hold a receipt token) but gives no explicit when-not guidance or named alternative such as get_skill for unowned/browsing access. Adequate but leaves the agent to infer the boundary against siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_skillsSearch skillsARead-onlyIdempotentInspect
Search the tested agent skill files for sale (free). Give a plain-language query (for example: sound less like ChatGPT), or filter by category, tag or language, or combine them. With a query the results come ranked by relevance; without one you get the featured skills first. Each card has match_reason (the field that matched, or the filter), price_usd (a one-time purchase of the SKILL.md file, yours forever), what it is for, what it is not for, and how it was tested. limit is at most 24.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Only skills with this tag: lowercase letters, digits and hyphens, at most 32 characters, for example 'humanize'. | |
| limit | No | How many skills to return, 1 to 24. Default 24. | |
| query | No | Plain-language search text, for example 'sound less like ChatGPT'. At most 100 characters. Omit it to get the featured skills first instead of a ranked search. | |
| category | No | Only skills in this category. One of: writing, editing, marketing, seo, research, code, agents, sales-support, business, data, translation, education (see list_categories). Any other value is an error. | |
| language | No | Only skills that work in this language: a 2-3 letter code such as en, bg or de, or 'any'. Skills marked 'any' always match. |
Output Schema
| Name | Required | Description |
|---|---|---|
| skills | Yes | Matching skill cards, best first. Empty when nothing matched. |
| payment | Yes | Payment summary shared by the skills (same as each card's payment); null when nothing matched. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered. The description adds genuinely new behavior: relevance ranking vs featured ordering and how each result card is structured. It does not disclose result-set size beyond `limit`, truncation behavior, or whether ranking is stable across identical queries.
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 action and the two invocation modes, and tightly written at roughly 90 words. The middle sentence enumerating card fields (match_reason, price_usd, what it is for, what it is not for, how it was tested) is largely redundant given an output schema exists, though the price_usd clarification does real work.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present it needn't detail return values, yet it helpfully explains ranking semantics and the one-time-purchase price model. The only real gap is the unresolved "free" vs "price_usd" tension, which could make an agent misreport cost to a user.
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 schema already documents every parameter including the 24 cap and the query/filter trade-off; baseline would be 3. The description earns an extra point by explicitly sanctioning combining filters, a permissive fact the schema does not assert, and by framing `query` as plain-language rather than keyword syntax.
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 tested agent skill files") and describes both search and filter modes, which is enough to distinguish it from get_skill and list_categories. The parenthetical "(free)" undercuts it slightly, since the description later says price_usd is "a one-time purchase," leaving the cost model momentarily ambiguous.
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 how to invoke it two ways (plain-language query, or category/tag/language filters, "or combine them") and explains the ordering consequence of each: ranked by relevance with a query, featured first without one. It does not route to siblings, e.g. it never says to use list_categories to discover valid category values or get_skill to fetch a specific result.
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.
4 tool updates
- Changed
get_skill2 fields changed- added
Input schema / properties / slug / descriptionAdded value: +"The skill's slug, as returned by search_skills (for example 'humanize'). An unknown or unlisted slug is an error." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "buy_url": { + "description": "HTTP address to buy the file (x402).", + "type": "string" + }, + "category": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Category slug; null if the skill has no category yet." + }, + "category_url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Page of the category; null if there is no category." + }, + "examples": { + "description": "Before/after examples from the test.", + "items": {}, + "type": "array" + }, + "faq": { + "description": "Questions and answers about the skill.", + "items": { + "additionalProperties": {}, + "properties": { + "a": { + "type": "string" + }, + "q": { + "type": "string" + } + }, + "required": [ + "q", + "a" + ], + "type": "object" + }, + "type": "array" + }, + "how_to_buy": { + "description": "Steps to buy over HTTP.", + "type": "string" + }, + "image_url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Preview image; null if none." + }, + "keywords": { + "description": "Search keywords.", + "items": { + "type": "string" + }, + "type": "array" + }, + "languages": { + "description": "Language codes the skill works in, or 'any'.", + "items": { + "type": "string" + }, + "type": "array" + }, + "license": { + "additionalProperties": {}, + "properties": { + "holder": { + "description": "Who holds the rights.", + "type": "string" + }, + "summary": { + "description": "The license in one sentence.", + "type": "string" + }, + "url": { + "description": "Page with the full license text.", + "type": "string" + } + }, + "required": [ + "summary", + "holder", + "url" + ], + "type": "object" + }, + "markdown_url": { + "description": "The same page as Markdown.", + "type": "string" + }, + "mcp_tool": { + "description": "Always null: buying is over HTTP, not MCP.", + "type": "null" + }, + "name": { + "description": "Display name.", + "type": "string" + }, + "not_for": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "What the skill is not for; null if not stated." + }, + "outline": { + "description": "Headings of the file.", + "items": { + "type": "string" + }, + "type": "array" + }, + "page_url": { + "description": "Public page of the skill.", + "type": "string" + }, + "payment": { + "additionalProperties": {}, + "description": "Short payment summary: protocol, asset, network and whether selling is open.", + "properties": { + "asset": { + "description": "Payment asset, 'USDC'.", + "type": "string" + }, + "protocol": { + "description": "Always 'x402'.", + "type": "string" + }, + "scheme": { + "description": "x402 scheme, 'exact'.", + "type": "string" + }, + "selling": { + "description": "Whether the shop is open for payments right now.", + "type": "boolean" + } + }, + "required": [ + "protocol", + "scheme", + "asset", + "selling" + ], + "type": "object" + }, + "payment_required": { + "additionalProperties": {}, + "description": "The exact body the HTTP shop answers with HTTP 402; the client signs it. Buying is over HTTP.", + "properties": { + "accepts": { + "description": "Payment requirements to sign; sign accepts[0].", + "items": { + "additionalProperties": {}, + "properties": {}, + "type": "object" + }, + "type": "array" + }, + "x402Version": { + "description": "x402 protocol version, 2.", + "type": "number" + } + }, + "required": [ + "x402Version", + "accepts" + ], + "type": "object" + }, + "price_micro": { + "description": "The same price in millionths of a dollar.", + "type": "number" + }, + "price_usd": { + "description": "One-time price in US dollars, as a decimal string.", + "type": "string" + }, + "purchases_count": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "description": "Number of purchases; null until there are at least 10." + }, + "redownload_url_template": { + "description": "HTTP address template of the free re-download; {token} is the receipt token.", + "type": "string" + }, + "related_url": { + "description": "API address of the related skills.", + "type": "string" + }, + "sha256": { + "description": "SHA-256 of the file, lowercase hex.", + "type": "string" + }, + "size_bytes": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "description": "Size of the SKILL.md file in bytes." + }, + "slug": { + "description": "Stable identifier of the skill; use it with get_skill.", + "type": "string" + }, + "tags": { + "description": "Lowercase tags.", + "items": { + "type": "string" + }, + "type": "array" + }, + "tested": { + "anyOf": [ + { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } + ], + "description": "How the skill was tested; null if not recorded." + }, + "updated_at": { + "description": "ISO 8601 time of the last update.", + "type": "string" + }, + "use_when": { + "description": "What the skill is for.", + "type": "string" + }, + "version": { + "description": "Current semantic version of the SKILL.md file.", + "type": "string" + } + }, + "required": [ + "slug", + "name", + "version", + "updated_at", + "use_when", + "not_for", + "languages", + "tags", + "category", + "category_url", + "keywords", + "faq", + "examples", + "page_url", + "markdown_url", + "image_url", + "related_url", + "purchases_count", + "tested", + "price_usd", + "price_micro", + "size_bytes", + "sha256", + "outline", + "license", + "buy_url", + "redownload_url_template", + "mcp_tool", + "payment", + "payment_required", + "how_to_buy" + ], + "type": "object" +}
- Changed
list_categories1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "categories": { + "description": "All skill categories, in display order.", + "items": { + "additionalProperties": {}, + "properties": { + "intro": { + "description": "Short introduction to the category.", + "type": "string" + }, + "keywords": { + "description": "Category keywords.", + "items": { + "type": "string" + }, + "type": "array" + }, + "listed_count": { + "description": "How many skills are listed in the category.", + "type": "number" + }, + "name": { + "description": "Display name.", + "type": "string" + }, + "position": { + "description": "Order in the list, starting at 1.", + "type": "number" + }, + "slug": { + "description": "Category slug; use it as the category filter of search_skills.", + "type": "string" + }, + "url": { + "description": "Public page of the category.", + "type": "string" + } + }, + "required": [ + "slug", + "name", + "position", + "intro", + "keywords", + "listed_count", + "url" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "categories" + ], + "type": "object" +}
- Changed
redownload_skill2 fields changed- added
Input schema / properties / token / descriptionAdded value: +"The re-download token from your purchase receipt (the 'redownload' part): 64 lowercase hex characters. Not your payment signature." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "bytes": { + "description": "Size of the file in bytes.", + "type": "number" + }, + "changelog": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "What changed in this version; null if not recorded." + }, + "file": { + "additionalProperties": {}, + "description": "The file itself.", + "properties": { + "content": { + "description": "The full SKILL.md text.", + "type": "string" + }, + "encoding": { + "description": "Text encoding of content, 'utf-8'.", + "type": "string" + }, + "name": { + "description": "File name, 'SKILL.md'.", + "type": "string" + } + }, + "required": [ + "name", + "encoding", + "content" + ], + "type": "object" + }, + "install": { + "additionalProperties": {}, + "description": "Where to install the file.", + "properties": { + "claude_code": { + "description": "Where to put the file for Claude Code.", + "type": "string" + }, + "generic": { + "description": "The folder layout for any Agent Skills client.", + "type": "string" + } + }, + "required": [ + "claude_code", + "generic" + ], + "type": "object" + }, + "license": { + "additionalProperties": {}, + "properties": { + "holder": { + "description": "Who holds the rights.", + "type": "string" + }, + "summary": { + "description": "The license in one sentence.", + "type": "string" + }, + "url": { + "description": "Page with the full license text.", + "type": "string" + } + }, + "required": [ + "summary", + "holder", + "url" + ], + "type": "object" + }, + "name": { + "description": "Display name.", + "type": "string" + }, + "ok": { + "const": true, + "description": "Always true on success.", + "type": "boolean" + }, + "purchase": { + "additionalProperties": {}, + "description": "Your purchase record.", + "properties": { + "downloads": { + "description": "How many times the file has been delivered, including this call.", + "type": "number" + }, + "status": { + "description": "Purchase state, for example 'active' or 'pending' (payment settlement not yet confirmed).", + "type": "string" + } + }, + "required": [ + "status", + "downloads" + ], + "type": "object" + }, + "sha256": { + "description": "SHA-256 of the delivered file, lowercase hex.", + "type": "string" + }, + "skill": { + "description": "Slug of the skill.", + "type": "string" + }, + "version": { + "description": "The current version being delivered (may be newer than the one first bought).", + "type": "string" + } + }, + "required": [ + "ok", + "skill", + "name", + "version", + "sha256", + "bytes", + "license", + "file", + "install", + "changelog", + "purchase" + ], + "type": "object" +}
- Changed
search_skills6 fields changed- added
Input schema / properties / category / descriptionAdded value: +"Only skills in this category. One of: writing, editing, marketing, seo, research, code, agents, sales-support, business, data, translation, education (see list_categories). Any other value is an error." - added
Input schema / properties / language / descriptionAdded value: +"Only skills that work in this language: a 2-3 letter code such as en, bg or de, or 'any'. Skills marked 'any' always match." - added
Input schema / properties / limit / descriptionAdded value: +"How many skills to return, 1 to 24. Default 24." - added
Input schema / properties / query / descriptionAdded value: +"Plain-language search text, for example 'sound less like ChatGPT'. At most 100 characters. Omit it to get the featured skills first instead of a ranked search." - added
Input schema / properties / tag / descriptionAdded value: +"Only skills with this tag: lowercase letters, digits and hyphens, at most 32 characters, for example 'humanize'." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "payment": { + "anyOf": [ + { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Payment summary shared by the skills (same as each card's payment); null when nothing matched." + }, + "skills": { + "description": "Matching skill cards, best first. Empty when nothing matched.", + "items": { + "additionalProperties": {}, + "properties": { + "buy_url": { + "description": "HTTP address to buy the file (x402).", + "type": "string" + }, + "category": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Category slug; null if the skill has no category yet." + }, + "category_url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Page of the category; null if there is no category." + }, + "examples": { + "description": "Before/after examples from the test.", + "items": {}, + "type": "array" + }, + "faq": { + "description": "Questions and answers about the skill.", + "items": { + "additionalProperties": {}, + "properties": { + "a": { + "type": "string" + }, + "q": { + "type": "string" + } + }, + "required": [ + "q", + "a" + ], + "type": "object" + }, + "type": "array" + }, + "image_url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Preview image; null if none." + }, + "keywords": { + "description": "Search keywords.", + "items": { + "type": "string" + }, + "type": "array" + }, + "languages": { + "description": "Language codes the skill works in, or 'any'.", + "items": { + "type": "string" + }, + "type": "array" + }, + "license": { + "additionalProperties": {}, + "properties": { + "holder": { + "description": "Who holds the rights.", + "type": "string" + }, + "summary": { + "description": "The license in one sentence.", + "type": "string" + }, + "url": { + "description": "Page with the full license text.", + "type": "string" + } + }, + "required": [ + "summary", + "holder", + "url" + ], + "type": "object" + }, + "markdown_url": { + "description": "The same page as Markdown.", + "type": "string" + }, + "match_reason": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The field that matched the query (or the filter); null if there is no query or filter." + }, + "mcp_tool": { + "description": "Always null: buying is over HTTP, not MCP.", + "type": "null" + }, + "name": { + "description": "Display name.", + "type": "string" + }, + "not_for": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "What the skill is not for; null if not stated." + }, + "outline": { + "description": "Headings of the file.", + "items": { + "type": "string" + }, + "type": "array" + }, + "page_url": { + "description": "Public page of the skill.", + "type": "string" + }, + "payment": { + "additionalProperties": {}, + "description": "Short payment summary: protocol, asset, network and whether selling is open.", + "properties": { + "asset": { + "description": "Payment asset, 'USDC'.", + "type": "string" + }, + "protocol": { + "description": "Always 'x402'.", + "type": "string" + }, + "scheme": { + "description": "x402 scheme, 'exact'.", + "type": "string" + }, + "selling": { + "description": "Whether the shop is open for payments right now.", + "type": "boolean" + } + }, + "required": [ + "protocol", + "scheme", + "asset", + "selling" + ], + "type": "object" + }, + "price_micro": { + "description": "The same price in millionths of a dollar.", + "type": "number" + }, + "price_usd": { + "description": "One-time price in US dollars, as a decimal string.", + "type": "string" + }, + "purchases_count": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "description": "Number of purchases; null until there are at least 10." + }, + "redownload_url_template": { + "description": "HTTP address template of the free re-download; {token} is the receipt token.", + "type": "string" + }, + "related_url": { + "description": "API address of the related skills.", + "type": "string" + }, + "sha256": { + "description": "SHA-256 of the file, lowercase hex.", + "type": "string" + }, + "size_bytes": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "description": "Size of the SKILL.md file in bytes." + }, + "slug": { + "description": "Stable identifier of the skill; use it with get_skill.", + "type": "string" + }, + "tags": { + "description": "Lowercase tags.", + "items": { + "type": "string" + }, + "type": "array" + }, + "tested": { + "anyOf": [ + { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } + ], + "description": "How the skill was tested; null if not recorded." + }, + "updated_at": { + "description": "ISO 8601 time of the last update.", + "type": "string" + }, + "use_when": { + "description": "What the skill is for.", + "type": "string" + }, + "version": { + "description": "Current semantic version of the SKILL.md file.", + "type": "string" + } + }, + "required": [ + "slug", + "name", + "version", + "updated_at", + "use_when", + "not_for", + "languages", + "tags", + "category", + "category_url", + "keywords", + "faq", + "examples", + "page_url", + "markdown_url", + "image_url", + "related_url", + "purchases_count", + "tested", + "price_usd", + "price_micro", + "size_bytes", + "sha256", + "outline", + "license", + "buy_url", + "redownload_url_template", + "mcp_tool", + "payment", + "match_reason" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "payment", + "skills" + ], + "type": "object" +}
2 tool updates
- Added
list_categories - Changed
search_skills4 fields changed- added
Input schema / properties / categoryAdded value: +{ + "type": "string" +} - added
Input schema / properties / limitAdded value: +{ + "maximum": 24, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / query / maxLengthAdded value: +100 - added
Input schema / properties / tagAdded value: +{ + "type": "string" +}
2 tool updates
- Added
redownload_skill - Changed
search_skills1 field changed- added
Input schema / properties / languageAdded value: +{ + "type": "string" +}
2 tool updates
- Removed
execute_humanize - Removed
execute_humanize_long
4 tool updates
- First observed
execute_humanize - First observed
execute_humanize_long - First observed
get_skill - First observed
search_skills
Related MCP Connectors
37 paid x402 MCP tools for OSINT, prediction markets, web intel, and agent security on Base USDC.
Synergy: paid AI-agent utility tasks over x402 (USDC Base) via MCP.
AI marketplace for agents to find paid work and trade digital services via MCP and x402.
Information exchange for AI agents. Free product list; guides at 0.01 USDC via x402 on Base.
Related MCP Servers
- FlicenseAqualityNot gradedmaintenanceAn MCP server that transforms SKILL.md files into executable tools for AI agents, allowing them to discover and pay for services via the x402 protocol. It supports automatic payments on Stellar and EVM networks, enabling seamless integration of premium API skills.65 npm1-
- AlicenseAqualityFmaintenanceAgent-first skill marketplace MCP server. AI agents discover, install, and share skills across 7 platforms via MCP protocol. 15 tools including skill search, download, upload, and agent discovery.184MIT
- AlicenseNot gradedqualityCmaintenanceMarketplace of MCP servers and APIs that agents pay for per call in USDC over x402 on Base; connect anonymously, pay only when you callMIT
- AlicenseBqualityAmaintenanceMCP server exposing x402 Bazaar's paid Base APIs (token risk/honeypot, prices, gas, wallet intel, tx decode + AI utilities) as agent tools. Your agent pays per call in USDC over x402 — no API keys, no signup.17159 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.