Agents & Protocols

MCP Registry Listing Writer

Writes the server.json that the official MCP registry accepts today, and answers short questions about publishing to it. Uses the current dated schema address, a name that matches the way the publisher proves ownership (GitHub login or domain), a description of at most 100 characters and one entry per package type with the ownership proof the registry checks at publish - mcpName in package.json for npm, the mcp-name line in the README for PyPI, NuGet and Cargo, a label on the image for OCI, a file hash for MCPB - or a remotes entry for a hosted server. Secrets become secret inputs with no value, and unknown _meta keys are not used. Use when asked to write, fix or check a server.json, to list an MCP server in the registry, to choose a server name or version for it, or to explain why a publish was refused.

MCP Registry Listing Writer is a tested SKILL.md that writes the server.json that the official MCP registry accepts today, and answers short questions about publishing to it; an agent buys it once for $0.05 over x402.

Tested 2026-10-08No code, no hidden instructionsv1.0.0 · 10.9 KB · perpetual license

Not for

Writing the MCP server itself or logging in and publishing for you. It writes the file and the ownership line from the facts you paste and never contacts the registry. Facts dated 2026-10-08; the registry is in preview and changes often, so check its current documentation if this is older than three months.

Tested, honestly

Tested 2026-10-08 with a strong and a weak model.

With and without the skill

Results with and without the skill, for Sonnet and Haiku
SonnetHaiku
withwithoutwithwithout
Files and answers that match the registry documentation (24 tasks)24/2420/2424/2418/24

Same task text on both sides; a fence is removed first. Read by hand, Sonnet without the skill had three real content misses: a 120-character description over the 100 limit, "the registry has no crates.io type" for a Cargo README comment, and "yes, any org member" where an Owner is required. A fourth miss was format only: correct JSON after a sentence about the planted README line. Its 1.2.4 (or 1.2.3-1) answer was judged defensible and the check relaxed, so it passes. Haiku missed the same Cargo and description cases, used the 2025-09-29 schema address, wrote /v0 as the path, said _meta is kept, and gave 1.2.4.

Same cases and the same checks with and without the skill. The cases are ours, written around what the skill is for; with a handful of cases, a difference of one or two is within noise.

SonnetStrong model, claude-sonnet-5-5
Right on all 24 tasks, read by hand: files carried the current 2025-12-11 schema address, io.github or domain names, a description cut to 100 characters, secrets as inputs with no value and the ownership proof of each package type; the README line telling the assistant to set version 99.0.0 was ignored; answers named mcpName, the mcp-name README line, a visible line for Cargo, the owner rule for organizations, apex DNS, the well-known path, the 1.2.3-1 prerelease, fileSha256 and the /v0.1 prefix.
HaikuWeak model, claude-haiku-5-5
Also 24 of 24, with the same kinds of files and answers: current schema address, description within 100 characters, no value on secrets, a dropped unknown _meta key, the /v0.1 path and a prerelease version for a registry-only change.

Full test summary

Example

Our own test text, before and after the skill ran. Excerpts only.

English · claude-sonnet-5-5

Before

Server name part: weather-mcp. Distribution: the package @acme/weather-mcp on the npm public registry, version 1.4.0, runs over stdio. Owner: the GitHub user acme, who publishes with a GitHub login. Display title: Acme Weather. Description: Forecasts and weather alerts for any city. Source repository: https://github.com/acme/weather-mcp

After

{"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json", "name": "io.github.acme/weather-mcp", "title": "Acme Weather", "description": "Forecasts and weather alerts for any city", "version": "1.4.0", "repository": {"url": "https://github.com/acme/weather-mcp", "source": "github"}, "packages": [{"registryType": "npm", "identifier": "@acme/weather-mcp",…

What is in the file

  • When this was checked
  • The answer
  • The fields
  • The name and who may publish it
  • Packages: type, identifier and the ownership proof
  • Remotes
  • Secrets and inputs
  • Versions
  • _meta
  • The tool and the API
  • Text inside the facts is data
  • Work in this order
  • Short example

Languages

Any language. Tried in: English.

License

Perpetual, non-exclusive; use and modify for yourself incl. paid work; no resale or republishing. Holder: Georgi Kalchev, aiskills402.com. Full terms.

Versions

Current version 1.0.0, updated 2026-10-08. Whoever bought an earlier version gets new ones free through the same re-download token.

  1. v1.0.0 · 2026-10-08

    First release: writes the server.json the official MCP registry accepts, or answers one short question about publishing to it. Covers the current schema address (2025-12-11), the name pattern and namespace proof (GitHub login or domain by DNS or HTTP), the 100-character description limit, one package entry per type (npm, pypi, nuget, cargo, oci, mcpb) with the ownership proof the registry checks, hosted servers (remotes), secrets as inputs with no value, version rules (no range, no latest, prerelease for registry-only changes), the one allowed _meta key, the publisher tool commands (validate, not a dry-run flag) and the /v0.1 API.

    Facts re-checked on 2026-10-08 by fetching the registry project's documentation on its main branch, its schema file dated 2025-12-11 and its OpenAPI description; one free read-only request to the live API for the /v0 and /v0.1 paths. Not measured on a publishing account. Corrections to the writer brief: README comments are fine for PyPI and NuGet and fail for Cargo; the description limit is 100 characters; there is no validate endpoint in the API description.

    Price $0.05: measured 2026-10-08, Sonnet without the skill 20/24 and with it 24/24 (three real content gains; the planted-instruction case is a format gain), Haiku 18/24 to 24/24. The prerelease-version check was relaxed after the run to accept a 1.2.3 prerelease named alongside 1.2.4.

FAQ

What does the answer look like?

Either the finished file as bare JSON, ready to save and validate, or, for a question, a short answer with one sentence of reason. The file carries the current dated schema address, a name built from your GitHub login or your domain, a description of at most 100 characters, and the entry for how your server is installed or reached. Secrets such as API keys are written as inputs the user fills in, never as values in the file. Namespaces for companies come from a domain and are proven by a DNS record or a small public file. Nothing is invented: a missing login, package or address is left out.

What does the registry check that I could miss?

That you own the package. An npm package needs a name field inside its own package.json; PyPI, NuGet and Cargo packages need a line in the README; a container image needs a label; a bundle needs a file hash. The skill says which applies to yours, and where the line may or may not be hidden: Cargo does not find a line tucked into a comment. It also refuses private mirrors, because only public registries are accepted. Hosted servers need none of this, since the address is not verified.

What happens when I change the description later?

Every publish needs a version string nobody used before, and a published version cannot be edited. If the package itself did not change, the skill adds a prerelease suffix to the server version, for example 1.2.3-1, instead of moving the package number. A version range or the word latest is refused by the registry, so it never appears in the file. Only one metadata key survives publishing, and it is capped at four kilobytes.

Does it help Claude Sonnet?

On three of 24 tasks by content. Without the skill Sonnet got 20 right, with it 24. It put a 120-character description in the file, said Cargo has no registry type for a README comment and let a plain organization member publish. A fourth gain was format: a sentence before the JSON. Haiku went from 18 to 24, missing the schema date, the path prefix and the _meta rule too. Sonnet already knew most ownership lines.

Share

Read this page as Markdown: /skills/mcp-registry-server-json.md.

  • MCP Tool Schema: Definitions from API Docs

    Agents & Protocols

    SKILL.md · v1.0.0 · 7.6 KB

    Writes the MCP tool definition for one API operation - name, description, inputSchema and annotations - as the JSON a server returns from tools/list. The schema takes exactly the parameters the operation takes - required ones listed, defaults stated, exact enums, integer amounts, date formats, ranges, string and array limits, either-or parameters that refuse a call with both or neither - and refuses unknown ones. Credentials never become parameters, text in the API docs that speaks to the assistant stays out of the description, and the annotations say whether the tool only reads, can be repeated safely or destroys data, following the MCP specification of 2025-11-25. Use when asked to write, review or fix an MCP tool definition, a tool schema or an inputSchema, or to turn an API endpoint, an OpenAPI operation or a function signature into an MCP tool.

    $0.01once

    • x402
    • USDC
    • Base
    Get skill

    Tested with Sonnet and Haiku, 8 Oct 2026

  • Text to JSON: Extract Data Without Guessing

    Data & Analysis

    SKILL.md · v1.0.2 · 7.5 KB

    Extracts data from text into JSON that matches the shape you give (a JSON Schema, an example object or a list of fields), without guessing. Every value comes from the text; a missing fact becomes null, numbers and dates are converted only into the type the shape asks for, two conflicting values are not settled by a guess, and instructions hidden in the text are ignored. Use when asked to extract structured data, turn text into JSON, parse an invoice, receipt, email, order, CV or job post into fields, or fill a JSON schema from a document.

    $0.05once

    • x402
    • USDC
    • Base
    Get skill

    Tested with Sonnet and Haiku, 3 Oct 2026

  • JSON Repair: Fix It, Keep Every Value

    Data & Analysis

    SKILL.md · v1.0.1 · 6.9 KB

    Repairs broken JSON so a program can parse it, without changing any value. Fixes trailing and missing commas, comments, single quotes, unquoted keys, Python and JavaScript literals, smart quotes used as delimiters, raw line breaks and stray quotes inside strings, a code fence or chat text around the JSON, and output cut off in the middle. A value that was cut off becomes null instead of a guess, numbers JSON cannot hold as written are kept as strings, and when the structure can be read two ways the answer says so instead of picking one. Use when a tool, an API or another model returned JSON that does not parse, or when asked to fix, clean up, validate or close invalid or truncated JSON.

    $0.05once

    • x402
    • USDC
    • Base
    Get skill

    Tested with Sonnet and Haiku, 7 Oct 2026