Skip to main content
Glama

cyanheads-mcp-server

Server Details

Fleet discovery for the cyanheads MCP ecosystem — semantic search + install snippets.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over the last 24 hours
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
cyanheads/cyanheads-mcp-server
GitHub Stars
1
Server Listing
cyanheads-mcp-server
ChatGPT
–
Claude
–

TDQS

A4/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct roles: search_catalog finds matching tools or servers by description, while describe_entry returns detailed metadata and install snippets for a named entry. An agent can easily choose search first for discovery and describe for details.

Naming Consistency5/5

Both names use the same server prefix and a consistent verb_noun snake_case pattern: cyanheads_search_catalog and cyanheads_describe_entry. The convention is predictable throughout.

Tool Count4/5

Two tools is slightly below the typical 3-15 range, but the server has a narrow catalog-lookup purpose. Search plus describe form a reasonable minimal pair, with each tool earning its place.

Completeness4/5

The surface covers the core workflow of discovering catalog entries and retrieving their descriptions/install snippets. Minor gaps exist, such as explicit listing or browsing without a search query, but agents can work around them.

Available Tools

2 tools
cyanheads_describe_entryDescribe Fleet Tool or ServerA
Read-only
Inspect

Return the description and install snippets for a named tool or server. For tools: the description, owning server, and connection metadata. For either kind: local (stdio, via npx) install snippets for every published server, plus remote (HTTP) connection snippets when a hosted endpoint exists — for every supported client, or one client via the client parameter.

NameRequiredDescriptionDefault
kindNoWhether name refers to a tool or server. Omit to auto-detect: names containing underscores are treated as tools; names containing hyphens are treated as servers.
nameYesTool name (snake_case, e.g. "earthquake_search_events") or server name (kebab-case, e.g. "earthquake-mcp-server"). 1-64 characters. Exact names win; unique case-insensitive names resolve to canonical names. A tool name that more than one server owns also needs server. Use cyanheads_search_catalog to discover valid names.
clientNoReturn install snippets for this client only (both local and remote transports when available). "streamable-http" selects the generic mcpServers JSON; "curl" selects a connectivity probe for hosted servers. Omit to return snippets for all supported clients.
serverNoServer that owns the tool to describe — the server value cyanheads_search_catalog returned with this name. 1-64 characters, resolved like a server name. Required when the tool name has more than one owner; with a server name, it must name the same server.

Output Schema

NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
resultNoThe resolved entry — either a tool detail or a server detail depending on the resolved kind.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safe-read profile is covered. The description adds real context beyond that: what is returned per kind, and that remote HTTP snippets appear only when a hosted endpoint exists. No contradiction 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then two scoped clauses for tool vs either-kind output. Dense but every clause carries information; the em-dash clause is slightly long but not padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema, full param descriptions, and read-only annotations, the description only needs to frame scope and it does: both entity kinds, local vs remote snippets, all-client vs single-client. An agent can call it correctly without further context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the enum values, auto-detection rules, and ambiguity resolution are already documented. The description restates the client default ('every supported client, or one client via the client parameter') but adds no semantics the schema lacks. Baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Return the description and install snippets for a named tool or server') and splits behavior by entity kind (tool vs server). It never names the sibling search_catalog, so the boundary between lookup and discovery is left implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: describing an entry after you know its name. It does not say 'use cyanheads_search_catalog first to find the name' in the description (that guidance lives only in the schema), and it states no exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cyanheads_search_catalogSearch Fleet Tools and ServersA
Read-only
Inspect

Search fleet tools and servers by natural-language description. Returns ranked matches with brief summaries and the server each tool belongs to. Use scope "servers" to find which server handles a workflow; use the default scope "tools" to find specific tools.

NameRequiredDescriptionDefault
limitNoMaximum number of results to return (1-1000). Default 5. At most 20 per call: a larger limit returns up to 20, with a notice naming the offset to continue from when more matches follow.
queryYesNatural language search query. Describe what you want to accomplish, a workflow, or a capability area. 1-500 raw characters; surrounding whitespace is trimmed. Must contain non-whitespace text.
scopeNoWhat to search. "tools" returns individual tool matches; "servers" returns server-level matches.tools
offsetNoResult offset. Use nextOffset with the same query, scope, category, and limit; pages use the current catalog.
categoryNoFilter by catalog category. Omit to search all categories. Categories are catalog labels, not publisher types (a federal agency API can be public-data), and a wrong guess silently drops the matching server, so set this only when the category is known.
serversOffsetNoIndependent server roll-up offset (10 per page). Use nextServersOffset; must be zero in servers scope.

Output Schema

NameRequiredDescription
capNoPer-call result cap that was applied.
errorNoPresent when the call failed. Absent on success.
scopeNoScope that was searched.
shownNoResults returned on this capped page.
noticeNoGuidance for zero matches, an exhausted result page, or a page cut to the 20-per-call cap with more matches following (names the offset to continue from). Absent otherwise.
offsetNoCurrent ranked-result offset.
resultsNoRanked matches, best first.
serversNoServer roll-up from the full match set, independent of result offset/limit. Tools scope only. Ordered by topScore desc (name-tiebroken); 10 per page starting at serversOffset. Use nextServersOffset to continue and serversTotal for the full distinct count.
truncatedNoTrue when limit exceeded the 20-per-call cap and more matches follow this page.
nextOffsetNoNext ranked-result offset, or null when exhausted.
totalCountNoTotal relevant matches before the limit was applied.
serversTotalNoTotal distinct servers in the full match set (before the cap of 10 is applied). Present only when servers is present.
serversOffsetNoCurrent server roll-up offset; tools scope only.
effectiveQueryNoThe query that was searched.
nextServersOffsetNoNext server roll-up offset, or null when exhausted; tools scope only.

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered structurally. The description adds the ranked-summary return shape, but says nothing about result caps, pagination continuation, or the server roll-up that the schema's limit/offset descriptions allude to. With annotations present the bar is lower, but this is thin added context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the action and the return shape, then the scope guidance. No filler, no restatement of the name or title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 annotations cover read-only semantics. What remains unaddressed is pagination and the 20-per-call cap, but those are documented thoroughly in the schema's limit/offset descriptions, so an agent can still call this correctly. Near-complete for a six-parameter search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 earns above that by explaining the practical meaning of the 'scope' parameter (find a workflow owner vs. find a specific tool) rather than repeating the enum's own wording. The other five parameters, including the category filter and pagination behavior, are left entirely to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Search fleet tools and servers by natural-language description') and describes the return shape ('ranked matches with brief summaries and the server each tool belongs to'). It implicitly distinguishes itself from the describe sibling by offering brief summaries rather than full entries, but never names cyanheads_describe_entry, so the separation 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit scope-selection guidance: 'servers' to locate which server handles a workflow, default 'tools' to find specific tools. That is a genuine use-case routing decision rather than a restatement of the enum. It stops short of saying when to search versus when to call the sibling describe tool for detail.

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.

  1. 2 tool updates
    • Changedcyanheads_describe_entry1 field changed
      • changedOutput schema / properties / result / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "description": "A resolved tool entry — its description and the server that owns it.",
        -    "properties": {
        -      "auth": {
        -        "description": "Owning server hosted authentication requirement.",
        -        "type": "string"
        -      },
        -      "description": {
        -        "description": "Brief description of what the tool does.",
        -        "type": "string"
        -      },
        -      "endpoint": {
        -        "description": "Owning server hosted HTTP endpoint, when available.",
        -        "type": "string"
        -      },
        -      "github": {
        -        "description": "Owning server GitHub repository URL.",
        -        "type": "string"
        -      },
        -      "installNotice": {
        -        "description": "Actionable guidance when the requested client has no compatible installation snippet.",
        -        "type": "string"
        -      },
        -      "installSnippets": {
        -        "description": "Owning server install snippets, filtered by client when supplied.",
        -        "items": {
        -          "additionalProperties": false,
        -          "description": "An installation snippet for the owning server.",
        -          "properties": {
        -            "client": {
        -              "description": "Target MCP client.",
        -              "enum": [
        -                "claude-code",
        -                "cline",
        -                "codex",
        -                "cursor",
        -                "curl",
        -                "gemini",
        -                "streamable-http"
        -              ],
        -              "type": "string"
        -            },
        -            "label": {
        -              "description": "Install method label.",
        -              "type": "string"
        -            },
        -            "payload": {
        -              "description": "Install command or configuration.",
        -              "type": "string"
        -            },
        -            "transport": {
        -              "description": "Local stdio or hosted HTTP transport.",
        -              "enum": [
        -                "stdio",
        -                "http"
        -              ],
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "client",
        -            "transport",
        -            "label",
        -            "payload"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "kind": {
        -        "const": "tool",
        -        "description": "Resolved as a tool entry.",
        -        "type": "string"
        -      },
        -      "name": {
        -        "description": "Canonical resolved tool name.",
        -        "type": "string"
        -      },
        -      "npm": {
        -        "description": "Owning server npm package for local installation.",
        -        "type": "string"
        -      },
        -      "requiredEnvVars": {
        -        "description": "Environment variable names required for local installation.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "server": {
        -        "description": "Server package name that owns this tool.",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "kind",
        -      "name",
        -      "description",
        -      "server",
        -      "npm",
        -      "github",
        -      "auth",
        -      "installSnippets"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "description": "A resolved server entry — metadata, optional hosted endpoint, and per-client install snippets.",
        -    "properties": {
        -      "auth": {
        -        "description": "Auth requirement for the hosted deployment (currently always \"none\").",
        -        "type": "string"
        -      },
        -      "description": {
        -        "description": "Brief description of what the server does.",
        -        "type": "string"
        -      },
        -      "displayName": {
        -        "description": "Human-readable server label.",
        -        "type": "string"
        -      },
        -      "endpoint": {
        -        "description": "Streamable HTTP endpoint for the hosted deployment. Absent for local-only (stdio) servers.",
        -        "type": "string"
        -      },
        -      "github": {
        -        "description": "GitHub repository URL.",
        -        "type": "string"
        -      },
        -      "installNotice": {
        -        "description": "Actionable guidance when the requested client has no compatible installation snippet.",
        -        "type": "string"
        -      },
        -      "installSnippets": {
        -        "description": "Install instructions: local (stdio) snippets for every server, plus remote (HTTP) snippets when an endpoint exists. Filtered to one client when input.client is set.",
        -        "items": {
        -          "additionalProperties": false,
        -          "description": "A single install instruction entry.",
        -          "properties": {
        -            "client": {
        -              "description": "MCP client this snippet targets.",
        -              "enum": [
        -                "claude-code",
        -                "cline",
        -                "codex",
        -                "cursor",
        -                "curl",
        -                "gemini",
        -                "streamable-http"
        -              ],
        -              "type": "string"
        -            },
        -            "label": {
        -              "description": "Human-readable install method label.",
        -              "type": "string"
        -            },
        -            "payload": {
        -              "description": "Install payload (JSON fragment or CLI command).",
        -              "type": "string"
        -            },
        -            "transport": {
        -              "description": "Transport this snippet installs — stdio (local) or http (remote).",
        -              "enum": [
        -                "stdio",
        -                "http"
        -              ],
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "client",
        -            "transport",
        -            "label",
        -            "payload"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "kind": {
        -        "const": "server",
        -        "description": "Resolved as a server entry.",
        -        "type": "string"
        -      },
        -      "name": {
        -        "description": "Canonical resolved server name.",
        -        "type": "string"
        -      },
        -      "npm": {
        -        "description": "npm package name (e.g. \"@cyanheads/arxiv-mcp-server\"). Drives the local stdio snippets.",
        -        "type": "string"
        -      },
        -      "requiredEnvVars": {
        -        "description": "Env var names the local (stdio) install requires (e.g. [\"MAILCHIMP_API_KEY\"]). Absent when none.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "toolCount": {
        -        "description": "Number of tools exposed by this server.",
        -        "type": "number"
        -      },
        -      "tools": {
        -        "description": "Every tool this server exposes, each with its name and a brief description — one describe call reveals the full surface without a second lookup.",
        -        "items": {
        -          "additionalProperties": false,
        -          "description": "A single tool exposed by this server.",
        -          "properties": {
        -            "description": {
        -              "description": "Brief description of what the tool does.",
        -              "type": "string"
        -            },
        -            "name": {
        -              "description": "Tool name (snake_case, e.g. \"earthquake_search_events\").",
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "name",
        -            "description"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "version": {
        -        "description": "Published version captured at fleet-generation time.",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "kind",
        -      "name",
        -      "displayName",
        -      "description",
        -      "version",
        -      "npm",
        -      "github",
        -      "auth",
        -      "toolCount",
        -      "tools",
        -      "installSnippets"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "description": "A resolved tool entry — its description and the server that owns it.",
        +    "properties": {
        +      "auth": {
        +        "description": "Owning server hosted authentication requirement.",
        +        "type": "string"
        +      },
        +      "description": {
        +        "description": "Brief description of what the tool does.",
        +        "type": "string"
        +      },
        +      "endpoint": {
        +        "description": "Owning server hosted HTTP endpoint, when available.",
        +        "type": "string"
        +      },
        +      "github": {
        +        "description": "Owning server GitHub repository URL.",
        +        "type": "string"
        +      },
        +      "installNotice": {
        +        "description": "Actionable guidance when the requested client has no compatible installation snippet.",
        +        "type": "string"
        +      },
        +      "installSnippets": {
        +        "description": "Owning server install snippets, filtered by client when supplied.",
        +        "items": {
        +          "additionalProperties": false,
        +          "description": "An installation snippet for the owning server.",
        +          "properties": {
        +            "client": {
        +              "description": "Target MCP client.",
        +              "enum": [
        +                "claude-code",
        +                "cline",
        +                "codex",
        +                "cursor",
        +                "curl",
        +                "gemini",
        +                "streamable-http"
        +              ],
        +              "type": "string"
        +            },
        +            "label": {
        +              "description": "Install method label.",
        +              "type": "string"
        +            },
        +            "payload": {
        +              "description": "Install command or configuration.",
        +              "type": "string"
        +            },
        +            "transport": {
        +              "description": "Local stdio or hosted HTTP transport.",
        +              "enum": [
        +                "stdio",
        +                "http"
        +              ],
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "client",
        +            "transport",
        +            "label",
        +            "payload"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "kind": {
        +        "const": "tool",
        +        "description": "Resolved as a tool entry.",
        +        "type": "string"
        +      },
        +      "name": {
        +        "description": "Canonical resolved tool name.",
        +        "type": "string"
        +      },
        +      "npm": {
        +        "description": "Owning server npm package for local installation.",
        +        "type": "string"
        +      },
        +      "requiredEnvVars": {
        +        "description": "Environment variable names the owning server's manifest marks required for a local install; a key the manifest leaves optional is not listed.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "server": {
        +        "description": "Server package name that owns this tool.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "kind",
        +      "name",
        +      "description",
        +      "server",
        +      "npm",
        +      "github",
        +      "auth",
        +      "installSnippets"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "description": "A resolved server entry — metadata, optional hosted endpoint, and per-client install snippets.",
        +    "properties": {
        +      "auth": {
        +        "description": "Auth requirement for the hosted deployment (currently always \"none\").",
        +        "type": "string"
        +      },
        +      "description": {
        +        "description": "Brief description of what the server does.",
        +        "type": "string"
        +      },
        +      "displayName": {
        +        "description": "Human-readable server label.",
        +        "type": "string"
        +      },
        +      "endpoint": {
        +        "description": "Streamable HTTP endpoint for the hosted deployment. Absent for local-only (stdio) servers.",
        +        "type": "string"
        +      },
        +      "github": {
        +        "description": "GitHub repository URL.",
        +        "type": "string"
        +      },
        +      "installNotice": {
        +        "description": "Actionable guidance when the requested client has no compatible installation snippet.",
        +        "type": "string"
        +      },
        +      "installSnippets": {
        +        "description": "Install instructions: local (stdio) snippets for every server, plus remote (HTTP) snippets when an endpoint exists. Filtered to one client when input.client is set.",
        +        "items": {
        +          "additionalProperties": false,
        +          "description": "A single install instruction entry.",
        +          "properties": {
        +            "client": {
        +              "description": "MCP client this snippet targets.",
        +              "enum": [
        +                "claude-code",
        +                "cline",
        +                "codex",
        +                "cursor",
        +                "curl",
        +                "gemini",
        +                "streamable-http"
        +              ],
        +              "type": "string"
        +            },
        +            "label": {
        +              "description": "Human-readable install method label.",
        +              "type": "string"
        +            },
        +            "payload": {
        +              "description": "Install payload (JSON fragment or CLI command).",
        +              "type": "string"
        +            },
        +            "transport": {
        +              "description": "Transport this snippet installs — stdio (local) or http (remote).",
        +              "enum": [
        +                "stdio",
        +                "http"
        +              ],
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "client",
        +            "transport",
        +            "label",
        +            "payload"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "kind": {
        +        "const": "server",
        +        "description": "Resolved as a server entry.",
        +        "type": "string"
        +      },
        +      "name": {
        +        "description": "Canonical resolved server name.",
        +        "type": "string"
        +      },
        +      "npm": {
        +        "description": "npm package name (e.g. \"@cyanheads/arxiv-mcp-server\"). Drives the local stdio snippets.",
        +        "type": "string"
        +      },
        +      "requiredEnvVars": {
        +        "description": "Env var names the server's manifest marks required for a local (stdio) install (e.g. [\"MAILCHIMP_API_KEY\"]). Absent when none. A key the manifest leaves optional, such as one only some tools need, is not listed, so check the README before treating a local install as keyless.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "toolCount": {
        +        "description": "Number of tools exposed by this server.",
        +        "type": "number"
        +      },
        +      "tools": {
        +        "description": "Every tool this server exposes, each with its name and a brief description — one describe call reveals the full surface without a second lookup.",
        +        "items": {
        +          "additionalProperties": false,
        +          "description": "A single tool exposed by this server.",
        +          "properties": {
        +            "description": {
        +              "description": "Brief description of what the tool does.",
        +              "type": "string"
        +            },
        +            "name": {
        +              "description": "Tool name (snake_case, e.g. \"earthquake_search_events\").",
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "name",
        +            "description"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "version": {
        +        "description": "Published version captured at fleet-generation time.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "kind",
        +      "name",
        +      "displayName",
        +      "description",
        +      "version",
        +      "npm",
        +      "github",
        +      "auth",
        +      "toolCount",
        +      "tools",
        +      "installSnippets"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcyanheads_search_catalog1 field changed
      • changedInput schema / properties / category / description
        Previous value: -"Filter by catalog category. Omit to search all categories."New value: +"Filter by catalog category. Omit to search all categories. Categories are catalog labels, not publisher types (a federal agency API can be public-data), and a wrong guess silently drops the matching server, so set this only when the category is known."
  2. 1 tool update
    • Changedcyanheads_describe_entry2 fields changed
      • changedInput schema / properties / name / description
        Previous value: -"Tool name (snake_case, e.g. \"earthquake_search\") or server name (kebab-case, e.g. \"earthquake-mcp-server\"). 1-64 characters. Exact names win; unique case-insensitive names resolve to canonical names. A tool name that more than one server owns also needs server. Use cyanheads_search_catalog to discover valid names."New value: +"Tool name (snake_case, e.g. \"earthquake_search_events\") or server name (kebab-case, e.g. \"earthquake-mcp-server\"). 1-64 characters. Exact names win; unique case-insensitive names resolve to canonical names. A tool name that more than one server owns also needs server. Use cyanheads_search_catalog to discover valid names."
      • changedOutput schema / properties / result / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "description": "A resolved tool entry — its description and the server that owns it.",
        -    "properties": {
        -      "auth": {
        -        "description": "Owning server hosted authentication requirement.",
        -        "type": "string"
        -      },
        -      "description": {
        -        "description": "Brief description of what the tool does.",
        -        "type": "string"
        -      },
        -      "endpoint": {
        -        "description": "Owning server hosted HTTP endpoint, when available.",
        -        "type": "string"
        -      },
        -      "github": {
        -        "description": "Owning server GitHub repository URL.",
        -        "type": "string"
        -      },
        -      "installNotice": {
        -        "description": "Actionable guidance when the requested client has no compatible installation snippet.",
        -        "type": "string"
        -      },
        -      "installSnippets": {
        -        "description": "Owning server install snippets, filtered by client when supplied.",
        -        "items": {
        -          "additionalProperties": false,
        -          "description": "An installation snippet for the owning server.",
        -          "properties": {
        -            "client": {
        -              "description": "Target MCP client.",
        -              "enum": [
        -                "claude-code",
        -                "cline",
        -                "codex",
        -                "cursor",
        -                "curl",
        -                "gemini",
        -                "streamable-http"
        -              ],
        -              "type": "string"
        -            },
        -            "label": {
        -              "description": "Install method label.",
        -              "type": "string"
        -            },
        -            "payload": {
        -              "description": "Install command or configuration.",
        -              "type": "string"
        -            },
        -            "transport": {
        -              "description": "Local stdio or hosted HTTP transport.",
        -              "enum": [
        -                "stdio",
        -                "http"
        -              ],
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "client",
        -            "transport",
        -            "label",
        -            "payload"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "kind": {
        -        "const": "tool",
        -        "description": "Resolved as a tool entry.",
        -        "type": "string"
        -      },
        -      "name": {
        -        "description": "Canonical resolved tool name.",
        -        "type": "string"
        -      },
        -      "npm": {
        -        "description": "Owning server npm package for local installation.",
        -        "type": "string"
        -      },
        -      "requiredEnvVars": {
        -        "description": "Environment variable names required for local installation.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "server": {
        -        "description": "Server package name that owns this tool.",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "kind",
        -      "name",
        -      "description",
        -      "server",
        -      "npm",
        -      "github",
        -      "auth",
        -      "installSnippets"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "description": "A resolved server entry — metadata, optional hosted endpoint, and per-client install snippets.",
        -    "properties": {
        -      "auth": {
        -        "description": "Auth requirement for the hosted deployment (currently always \"none\").",
        -        "type": "string"
        -      },
        -      "description": {
        -        "description": "Brief description of what the server does.",
        -        "type": "string"
        -      },
        -      "displayName": {
        -        "description": "Human-readable server label.",
        -        "type": "string"
        -      },
        -      "endpoint": {
        -        "description": "Streamable HTTP endpoint for the hosted deployment. Absent for local-only (stdio) servers.",
        -        "type": "string"
        -      },
        -      "github": {
        -        "description": "GitHub repository URL.",
        -        "type": "string"
        -      },
        -      "installNotice": {
        -        "description": "Actionable guidance when the requested client has no compatible installation snippet.",
        -        "type": "string"
        -      },
        -      "installSnippets": {
        -        "description": "Install instructions: local (stdio) snippets for every server, plus remote (HTTP) snippets when an endpoint exists. Filtered to one client when input.client is set.",
        -        "items": {
        -          "additionalProperties": false,
        -          "description": "A single install instruction entry.",
        -          "properties": {
        -            "client": {
        -              "description": "MCP client this snippet targets.",
        -              "enum": [
        -                "claude-code",
        -                "cline",
        -                "codex",
        -                "cursor",
        -                "curl",
        -                "gemini",
        -                "streamable-http"
        -              ],
        -              "type": "string"
        -            },
        -            "label": {
        -              "description": "Human-readable install method label.",
        -              "type": "string"
        -            },
        -            "payload": {
        -              "description": "Install payload (JSON fragment or CLI command).",
        -              "type": "string"
        -            },
        -            "transport": {
        -              "description": "Transport this snippet installs — stdio (local) or http (remote).",
        -              "enum": [
        -                "stdio",
        -                "http"
        -              ],
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "client",
        -            "transport",
        -            "label",
        -            "payload"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "kind": {
        -        "const": "server",
        -        "description": "Resolved as a server entry.",
        -        "type": "string"
        -      },
        -      "name": {
        -        "description": "Canonical resolved server name.",
        -        "type": "string"
        -      },
        -      "npm": {
        -        "description": "npm package name (e.g. \"@cyanheads/arxiv-mcp-server\"). Drives the local stdio snippets.",
        -        "type": "string"
        -      },
        -      "requiredEnvVars": {
        -        "description": "Env var names the local (stdio) install requires (e.g. [\"MAILCHIMP_API_KEY\"]). Absent when none.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "toolCount": {
        -        "description": "Number of tools exposed by this server.",
        -        "type": "number"
        -      },
        -      "tools": {
        -        "description": "Every tool this server exposes, each with its name and a brief description — one describe call reveals the full surface without a second lookup.",
        -        "items": {
        -          "additionalProperties": false,
        -          "description": "A single tool exposed by this server.",
        -          "properties": {
        -            "description": {
        -              "description": "Brief description of what the tool does.",
        -              "type": "string"
        -            },
        -            "name": {
        -              "description": "Tool name (snake_case, e.g. \"earthquake_search\").",
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "name",
        -            "description"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "version": {
        -        "description": "Published version captured at fleet-generation time.",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "kind",
        -      "name",
        -      "displayName",
        -      "description",
        -      "version",
        -      "npm",
        -      "github",
        -      "auth",
        -      "toolCount",
        -      "tools",
        -      "installSnippets"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "description": "A resolved tool entry — its description and the server that owns it.",
        +    "properties": {
        +      "auth": {
        +        "description": "Owning server hosted authentication requirement.",
        +        "type": "string"
        +      },
        +      "description": {
        +        "description": "Brief description of what the tool does.",
        +        "type": "string"
        +      },
        +      "endpoint": {
        +        "description": "Owning server hosted HTTP endpoint, when available.",
        +        "type": "string"
        +      },
        +      "github": {
        +        "description": "Owning server GitHub repository URL.",
        +        "type": "string"
        +      },
        +      "installNotice": {
        +        "description": "Actionable guidance when the requested client has no compatible installation snippet.",
        +        "type": "string"
        +      },
        +      "installSnippets": {
        +        "description": "Owning server install snippets, filtered by client when supplied.",
        +        "items": {
        +          "additionalProperties": false,
        +          "description": "An installation snippet for the owning server.",
        +          "properties": {
        +            "client": {
        +              "description": "Target MCP client.",
        +              "enum": [
        +                "claude-code",
        +                "cline",
        +                "codex",
        +                "cursor",
        +                "curl",
        +                "gemini",
        +                "streamable-http"
        +              ],
        +              "type": "string"
        +            },
        +            "label": {
        +              "description": "Install method label.",
        +              "type": "string"
        +            },
        +            "payload": {
        +              "description": "Install command or configuration.",
        +              "type": "string"
        +            },
        +            "transport": {
        +              "description": "Local stdio or hosted HTTP transport.",
        +              "enum": [
        +                "stdio",
        +                "http"
        +              ],
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "client",
        +            "transport",
        +            "label",
        +            "payload"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "kind": {
        +        "const": "tool",
        +        "description": "Resolved as a tool entry.",
        +        "type": "string"
        +      },
        +      "name": {
        +        "description": "Canonical resolved tool name.",
        +        "type": "string"
        +      },
        +      "npm": {
        +        "description": "Owning server npm package for local installation.",
        +        "type": "string"
        +      },
        +      "requiredEnvVars": {
        +        "description": "Environment variable names required for local installation.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "server": {
        +        "description": "Server package name that owns this tool.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "kind",
        +      "name",
        +      "description",
        +      "server",
        +      "npm",
        +      "github",
        +      "auth",
        +      "installSnippets"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "description": "A resolved server entry — metadata, optional hosted endpoint, and per-client install snippets.",
        +    "properties": {
        +      "auth": {
        +        "description": "Auth requirement for the hosted deployment (currently always \"none\").",
        +        "type": "string"
        +      },
        +      "description": {
        +        "description": "Brief description of what the server does.",
        +        "type": "string"
        +      },
        +      "displayName": {
        +        "description": "Human-readable server label.",
        +        "type": "string"
        +      },
        +      "endpoint": {
        +        "description": "Streamable HTTP endpoint for the hosted deployment. Absent for local-only (stdio) servers.",
        +        "type": "string"
        +      },
        +      "github": {
        +        "description": "GitHub repository URL.",
        +        "type": "string"
        +      },
        +      "installNotice": {
        +        "description": "Actionable guidance when the requested client has no compatible installation snippet.",
        +        "type": "string"
        +      },
        +      "installSnippets": {
        +        "description": "Install instructions: local (stdio) snippets for every server, plus remote (HTTP) snippets when an endpoint exists. Filtered to one client when input.client is set.",
        +        "items": {
        +          "additionalProperties": false,
        +          "description": "A single install instruction entry.",
        +          "properties": {
        +            "client": {
        +              "description": "MCP client this snippet targets.",
        +              "enum": [
        +                "claude-code",
        +                "cline",
        +                "codex",
        +                "cursor",
        +                "curl",
        +                "gemini",
        +                "streamable-http"
        +              ],
        +              "type": "string"
        +            },
        +            "label": {
        +              "description": "Human-readable install method label.",
        +              "type": "string"
        +            },
        +            "payload": {
        +              "description": "Install payload (JSON fragment or CLI command).",
        +              "type": "string"
        +            },
        +            "transport": {
        +              "description": "Transport this snippet installs — stdio (local) or http (remote).",
        +              "enum": [
        +                "stdio",
        +                "http"
        +              ],
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "client",
        +            "transport",
        +            "label",
        +            "payload"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "kind": {
        +        "const": "server",
        +        "description": "Resolved as a server entry.",
        +        "type": "string"
        +      },
        +      "name": {
        +        "description": "Canonical resolved server name.",
        +        "type": "string"
        +      },
        +      "npm": {
        +        "description": "npm package name (e.g. \"@cyanheads/arxiv-mcp-server\"). Drives the local stdio snippets.",
        +        "type": "string"
        +      },
        +      "requiredEnvVars": {
        +        "description": "Env var names the local (stdio) install requires (e.g. [\"MAILCHIMP_API_KEY\"]). Absent when none.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "toolCount": {
        +        "description": "Number of tools exposed by this server.",
        +        "type": "number"
        +      },
        +      "tools": {
        +        "description": "Every tool this server exposes, each with its name and a brief description — one describe call reveals the full surface without a second lookup.",
        +        "items": {
        +          "additionalProperties": false,
        +          "description": "A single tool exposed by this server.",
        +          "properties": {
        +            "description": {
        +              "description": "Brief description of what the tool does.",
        +              "type": "string"
        +            },
        +            "name": {
        +              "description": "Tool name (snake_case, e.g. \"earthquake_search_events\").",
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "name",
        +            "description"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "version": {
        +        "description": "Published version captured at fleet-generation time.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "kind",
        +      "name",
        +      "displayName",
        +      "description",
        +      "version",
        +      "npm",
        +      "github",
        +      "auth",
        +      "toolCount",
        +      "tools",
        +      "installSnippets"
        +    ],
        +    "type": "object"
        +  }
        +]
  3. 2 tool updates
    • Changedcyanheads_describe_entry7 fields changed
      • changedInput schema / properties / client / description
        Previous value: -"Return install snippets for this client only (both local and remote transports when available). Omit to return snippets for all supported clients."New value: +"Return install snippets for this client only (both local and remote transports when available). \"streamable-http\" selects the generic mcpServers JSON; \"curl\" selects a connectivity probe for hosted servers. Omit to return snippets for all supported clients."
      • changedInput schema / properties / client / enum
        Previous value: -[
        -  "claude-code",
        -  "codex",
        -  "cursor",
        -  "curl",
        -  "gemini",
        -  "streamable-http"
        -]New value: +[
        +  "claude-code",
        +  "cline",
        +  "codex",
        +  "cursor",
        +  "curl",
        +  "gemini",
        +  "streamable-http"
        +]
      • changedInput schema / properties / name / description
        Previous value: -"Tool name (snake_case, e.g. \"earthquake_search\") or server name (kebab-case, e.g. \"earthquake-mcp-server\"). 1-64 characters. Exact names win; unique case-insensitive names resolve to canonical names. Use cyanheads_search_catalog to discover valid names."New value: +"Tool name (snake_case, e.g. \"earthquake_search\") or server name (kebab-case, e.g. \"earthquake-mcp-server\"). 1-64 characters. Exact names win; unique case-insensitive names resolve to canonical names. A tool name that more than one server owns also needs server. Use cyanheads_search_catalog to discover valid names."
      • addedInput schema / properties / server
        Added value: +{
        +  "description": "Server that owns the tool to describe — the server value cyanheads_search_catalog returned with this name. 1-64 characters, resolved like a server name. Required when the tool name has more than one owner; with a server name, it must name the same server.",
        +  "maxLength": 64,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • changedOutput schema / properties / error / properties / data / properties / reason / description
        Previous value: -"Machine-readable failure mode. Declared by this tool: `not_found`: No tool or server with the given name exists in the catalog. `ambiguous_kind`: Name matches both a tool and a server (collision in catalog). `catalog_empty`: Catalog has not finished loading. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `not_found`: No tool or server with the given name, under the given server when set, exists in the catalog. `ambiguous_kind`: Name matches both a tool and a server (collision in catalog). `ambiguous_owner`: The tool name has more than one owning server and server is not set. `catalog_empty`: Catalog has not finished loading. Other values are possible when a failure originates below the handler."
      • changedOutput schema / properties / error / properties / data / properties / reason / examples
        Previous value: -[
        -  "not_found",
        -  "ambiguous_kind",
        -  "catalog_empty"
        -]New value: +[
        +  "not_found",
        +  "ambiguous_kind",
        +  "ambiguous_owner",
        +  "catalog_empty"
        +]
      • changedOutput schema / properties / result / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "description": "A resolved tool entry — its description and the server that owns it.",
        -    "properties": {
        -      "auth": {
        -        "description": "Owning server hosted authentication requirement.",
        -        "type": "string"
        -      },
        -      "description": {
        -        "description": "Brief description of what the tool does.",
        -        "type": "string"
        -      },
        -      "endpoint": {
        -        "description": "Owning server hosted HTTP endpoint, when available.",
        -        "type": "string"
        -      },
        -      "github": {
        -        "description": "Owning server GitHub repository URL.",
        -        "type": "string"
        -      },
        -      "installNotice": {
        -        "description": "Actionable guidance when the requested client has no compatible installation snippet.",
        -        "type": "string"
        -      },
        -      "installSnippets": {
        -        "description": "Owning server install snippets, filtered by client when supplied.",
        -        "items": {
        -          "additionalProperties": false,
        -          "description": "An installation snippet for the owning server.",
        -          "properties": {
        -            "client": {
        -              "description": "Target MCP client.",
        -              "enum": [
        -                "claude-code",
        -                "codex",
        -                "cursor",
        -                "curl",
        -                "gemini",
        -                "streamable-http"
        -              ],
        -              "type": "string"
        -            },
        -            "label": {
        -              "description": "Install method label.",
        -              "type": "string"
        -            },
        -            "payload": {
        -              "description": "Install command or configuration.",
        -              "type": "string"
        -            },
        -            "transport": {
        -              "description": "Local stdio or hosted HTTP transport.",
        -              "enum": [
        -                "stdio",
        -                "http"
        -              ],
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "client",
        -            "transport",
        -            "label",
        -            "payload"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "kind": {
        -        "const": "tool",
        -        "description": "Resolved as a tool entry.",
        -        "type": "string"
        -      },
        -      "name": {
        -        "description": "Canonical resolved tool name.",
        -        "type": "string"
        -      },
        -      "npm": {
        -        "description": "Owning server npm package for local installation.",
        -        "type": "string"
        -      },
        -      "requiredEnvVars": {
        -        "description": "Environment variable names required for local installation.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "server": {
        -        "description": "Server package name that owns this tool.",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "kind",
        -      "name",
        -      "description",
        -      "server",
        -      "npm",
        -      "github",
        -      "auth",
        -      "installSnippets"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "description": "A resolved server entry — metadata, optional hosted endpoint, and per-client install snippets.",
        -    "properties": {
        -      "auth": {
        -        "description": "Auth requirement for the hosted deployment (currently always \"none\").",
        -        "type": "string"
        -      },
        -      "description": {
        -        "description": "Brief description of what the server does.",
        -        "type": "string"
        -      },
        -      "displayName": {
        -        "description": "Human-readable server label.",
        -        "type": "string"
        -      },
        -      "endpoint": {
        -        "description": "Streamable HTTP endpoint for the hosted deployment. Absent for local-only (stdio) servers.",
        -        "type": "string"
        -      },
        -      "github": {
        -        "description": "GitHub repository URL.",
        -        "type": "string"
        -      },
        -      "installNotice": {
        -        "description": "Actionable guidance when the requested client has no compatible installation snippet.",
        -        "type": "string"
        -      },
        -      "installSnippets": {
        -        "description": "Install instructions: local (stdio) snippets for every server, plus remote (HTTP) snippets when an endpoint exists. Filtered to one client when input.client is set.",
        -        "items": {
        -          "additionalProperties": false,
        -          "description": "A single install instruction entry.",
        -          "properties": {
        -            "client": {
        -              "description": "MCP client this snippet targets.",
        -              "enum": [
        -                "claude-code",
        -                "codex",
        -                "cursor",
        -                "curl",
        -                "gemini",
        -                "streamable-http"
        -              ],
        -              "type": "string"
        -            },
        -            "label": {
        -              "description": "Human-readable install method label.",
        -              "type": "string"
        -            },
        -            "payload": {
        -              "description": "Install payload (JSON fragment or CLI command).",
        -              "type": "string"
        -            },
        -            "transport": {
        -              "description": "Transport this snippet installs — stdio (local) or http (remote).",
        -              "enum": [
        -                "stdio",
        -                "http"
        -              ],
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "client",
        -            "transport",
        -            "label",
        -            "payload"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "kind": {
        -        "const": "server",
        -        "description": "Resolved as a server entry.",
        -        "type": "string"
        -      },
        -      "name": {
        -        "description": "Canonical resolved server name.",
        -        "type": "string"
        -      },
        -      "npm": {
        -        "description": "npm package name (e.g. \"@cyanheads/arxiv-mcp-server\"). Drives the local stdio snippets.",
        -        "type": "string"
        -      },
        -      "requiredEnvVars": {
        -        "description": "Env var names the local (stdio) install requires (e.g. [\"MAILCHIMP_API_KEY\"]). Absent when none.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "toolCount": {
        -        "description": "Number of tools exposed by this server.",
        -        "type": "number"
        -      },
        -      "tools": {
        -        "description": "Every tool this server exposes, each with its name and a brief description — one describe call reveals the full surface without a second lookup.",
        -        "items": {
        -          "additionalProperties": false,
        -          "description": "A single tool exposed by this server.",
        -          "properties": {
        -            "description": {
        -              "description": "Brief description of what the tool does.",
        -              "type": "string"
        -            },
        -            "name": {
        -              "description": "Tool name (snake_case, e.g. \"earthquake_search\").",
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "name",
        -            "description"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "version": {
        -        "description": "Published version captured at fleet-generation time.",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "kind",
        -      "name",
        -      "displayName",
        -      "description",
        -      "version",
        -      "npm",
        -      "github",
        -      "auth",
        -      "toolCount",
        -      "tools",
        -      "installSnippets"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "description": "A resolved tool entry — its description and the server that owns it.",
        +    "properties": {
        +      "auth": {
        +        "description": "Owning server hosted authentication requirement.",
        +        "type": "string"
        +      },
        +      "description": {
        +        "description": "Brief description of what the tool does.",
        +        "type": "string"
        +      },
        +      "endpoint": {
        +        "description": "Owning server hosted HTTP endpoint, when available.",
        +        "type": "string"
        +      },
        +      "github": {
        +        "description": "Owning server GitHub repository URL.",
        +        "type": "string"
        +      },
        +      "installNotice": {
        +        "description": "Actionable guidance when the requested client has no compatible installation snippet.",
        +        "type": "string"
        +      },
        +      "installSnippets": {
        +        "description": "Owning server install snippets, filtered by client when supplied.",
        +        "items": {
        +          "additionalProperties": false,
        +          "description": "An installation snippet for the owning server.",
        +          "properties": {
        +            "client": {
        +              "description": "Target MCP client.",
        +              "enum": [
        +                "claude-code",
        +                "cline",
        +                "codex",
        +                "cursor",
        +                "curl",
        +                "gemini",
        +                "streamable-http"
        +              ],
        +              "type": "string"
        +            },
        +            "label": {
        +              "description": "Install method label.",
        +              "type": "string"
        +            },
        +            "payload": {
        +              "description": "Install command or configuration.",
        +              "type": "string"
        +            },
        +            "transport": {
        +              "description": "Local stdio or hosted HTTP transport.",
        +              "enum": [
        +                "stdio",
        +                "http"
        +              ],
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "client",
        +            "transport",
        +            "label",
        +            "payload"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "kind": {
        +        "const": "tool",
        +        "description": "Resolved as a tool entry.",
        +        "type": "string"
        +      },
        +      "name": {
        +        "description": "Canonical resolved tool name.",
        +        "type": "string"
        +      },
        +      "npm": {
        +        "description": "Owning server npm package for local installation.",
        +        "type": "string"
        +      },
        +      "requiredEnvVars": {
        +        "description": "Environment variable names required for local installation.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "server": {
        +        "description": "Server package name that owns this tool.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "kind",
        +      "name",
        +      "description",
        +      "server",
        +      "npm",
        +      "github",
        +      "auth",
        +      "installSnippets"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "description": "A resolved server entry — metadata, optional hosted endpoint, and per-client install snippets.",
        +    "properties": {
        +      "auth": {
        +        "description": "Auth requirement for the hosted deployment (currently always \"none\").",
        +        "type": "string"
        +      },
        +      "description": {
        +        "description": "Brief description of what the server does.",
        +        "type": "string"
        +      },
        +      "displayName": {
        +        "description": "Human-readable server label.",
        +        "type": "string"
        +      },
        +      "endpoint": {
        +        "description": "Streamable HTTP endpoint for the hosted deployment. Absent for local-only (stdio) servers.",
        +        "type": "string"
        +      },
        +      "github": {
        +        "description": "GitHub repository URL.",
        +        "type": "string"
        +      },
        +      "installNotice": {
        +        "description": "Actionable guidance when the requested client has no compatible installation snippet.",
        +        "type": "string"
        +      },
        +      "installSnippets": {
        +        "description": "Install instructions: local (stdio) snippets for every server, plus remote (HTTP) snippets when an endpoint exists. Filtered to one client when input.client is set.",
        +        "items": {
        +          "additionalProperties": false,
        +          "description": "A single install instruction entry.",
        +          "properties": {
        +            "client": {
        +              "description": "MCP client this snippet targets.",
        +              "enum": [
        +                "claude-code",
        +                "cline",
        +                "codex",
        +                "cursor",
        +                "curl",
        +                "gemini",
        +                "streamable-http"
        +              ],
        +              "type": "string"
        +            },
        +            "label": {
        +              "description": "Human-readable install method label.",
        +              "type": "string"
        +            },
        +            "payload": {
        +              "description": "Install payload (JSON fragment or CLI command).",
        +              "type": "string"
        +            },
        +            "transport": {
        +              "description": "Transport this snippet installs — stdio (local) or http (remote).",
        +              "enum": [
        +                "stdio",
        +                "http"
        +              ],
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "client",
        +            "transport",
        +            "label",
        +            "payload"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "kind": {
        +        "const": "server",
        +        "description": "Resolved as a server entry.",
        +        "type": "string"
        +      },
        +      "name": {
        +        "description": "Canonical resolved server name.",
        +        "type": "string"
        +      },
        +      "npm": {
        +        "description": "npm package name (e.g. \"@cyanheads/arxiv-mcp-server\"). Drives the local stdio snippets.",
        +        "type": "string"
        +      },
        +      "requiredEnvVars": {
        +        "description": "Env var names the local (stdio) install requires (e.g. [\"MAILCHIMP_API_KEY\"]). Absent when none.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "toolCount": {
        +        "description": "Number of tools exposed by this server.",
        +        "type": "number"
        +      },
        +      "tools": {
        +        "description": "Every tool this server exposes, each with its name and a brief description — one describe call reveals the full surface without a second lookup.",
        +        "items": {
        +          "additionalProperties": false,
        +          "description": "A single tool exposed by this server.",
        +          "properties": {
        +            "description": {
        +              "description": "Brief description of what the tool does.",
        +              "type": "string"
        +            },
        +            "name": {
        +              "description": "Tool name (snake_case, e.g. \"earthquake_search\").",
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "name",
        +            "description"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "version": {
        +        "description": "Published version captured at fleet-generation time.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "kind",
        +      "name",
        +      "displayName",
        +      "description",
        +      "version",
        +      "npm",
        +      "github",
        +      "auth",
        +      "toolCount",
        +      "tools",
        +      "installSnippets"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcyanheads_search_catalog7 fields changed
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum number of results to return (1-20). Default 5."New value: +"Maximum number of results to return (1-1000). Default 5. At most 20 per call: a larger limit returns up to 20, with a notice naming the offset to continue from when more matches follow."
      • changedInput schema / properties / limit / maximum
        Previous value: -20New value: +1000
      • addedOutput schema / properties / cap
        Added value: +{
        +  "description": "Per-call result cap that was applied.",
        +  "type": "number"
        +}
      • changedOutput schema / properties / notice / description
        Previous value: -"Guidance for zero matches or an exhausted result page. Absent on nonempty result pages."New value: +"Guidance for zero matches, an exhausted result page, or a page cut to the 20-per-call cap with more matches following (names the offset to continue from). Absent otherwise."
      • changedOutput schema / properties / results / items / properties / server / description
        Previous value: -"Server package name that owns this tool (e.g. \"arxiv-mcp-server\"). Same as name when scope is \"servers\"."New value: +"Server package name that owns this tool (e.g. \"arxiv-mcp-server\"). Same as name when scope is \"servers\". Pass name and server to cyanheads_describe_entry to describe exactly this row."
      • addedOutput schema / properties / shown
        Added value: +{
        +  "description": "Results returned on this capped page.",
        +  "type": "number"
        +}
      • addedOutput schema / properties / truncated
        Added value: +{
        +  "description": "True when limit exceeded the 20-per-call cap and more matches follow this page.",
        +  "type": "boolean"
        +}
  4. 2 tool updates
    • Changedcyanheads_describe_entry2 fields changed
      • changedInput schema / properties / name / description
        Previous value: -"Tool name (snake_case, e.g. \"earthquake_search\") or server name (kebab-case, e.g. \"earthquake-mcp-server\"). 1-64 characters. Use cyanheads_search_catalog to discover valid names."New value: +"Tool name (snake_case, e.g. \"earthquake_search\") or server name (kebab-case, e.g. \"earthquake-mcp-server\"). 1-64 characters. Exact names win; unique case-insensitive names resolve to canonical names. Use cyanheads_search_catalog to discover valid names."
      • changedOutput schema / properties / result / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "description": "A resolved tool entry — its description and the server that owns it.",
        -    "properties": {
        -      "description": {
        -        "description": "Brief description of what the tool does.",
        -        "type": "string"
        -      },
        -      "kind": {
        -        "const": "tool",
        -        "description": "Resolved as a tool entry.",
        -        "type": "string"
        -      },
        -      "name": {
        -        "description": "Resolved name (as looked up).",
        -        "type": "string"
        -      },
        -      "server": {
        -        "description": "Server package name that owns this tool.",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "kind",
        -      "name",
        -      "description",
        -      "server"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "description": "A resolved server entry — metadata, optional hosted endpoint, and per-client install snippets.",
        -    "properties": {
        -      "auth": {
        -        "description": "Auth requirement for the hosted deployment (currently always \"none\").",
        -        "type": "string"
        -      },
        -      "description": {
        -        "description": "Brief description of what the server does.",
        -        "type": "string"
        -      },
        -      "displayName": {
        -        "description": "Human-readable server label.",
        -        "type": "string"
        -      },
        -      "endpoint": {
        -        "description": "Streamable HTTP endpoint for the hosted deployment. Absent for local-only (stdio) servers.",
        -        "type": "string"
        -      },
        -      "github": {
        -        "description": "GitHub repository URL.",
        -        "type": "string"
        -      },
        -      "installSnippets": {
        -        "description": "Install instructions: local (stdio) snippets for every server, plus remote (HTTP) snippets when an endpoint exists. Filtered to one client when input.client is set.",
        -        "items": {
        -          "additionalProperties": false,
        -          "description": "A single install instruction entry.",
        -          "properties": {
        -            "client": {
        -              "description": "MCP client this snippet targets.",
        -              "enum": [
        -                "claude-code",
        -                "codex",
        -                "cursor",
        -                "curl",
        -                "gemini",
        -                "streamable-http"
        -              ],
        -              "type": "string"
        -            },
        -            "label": {
        -              "description": "Human-readable install method label.",
        -              "type": "string"
        -            },
        -            "payload": {
        -              "description": "Install payload (JSON fragment or CLI command).",
        -              "type": "string"
        -            },
        -            "transport": {
        -              "description": "Transport this snippet installs — stdio (local) or http (remote).",
        -              "enum": [
        -                "stdio",
        -                "http"
        -              ],
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "client",
        -            "transport",
        -            "label",
        -            "payload"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "kind": {
        -        "const": "server",
        -        "description": "Resolved as a server entry.",
        -        "type": "string"
        -      },
        -      "name": {
        -        "description": "Resolved name (as looked up).",
        -        "type": "string"
        -      },
        -      "npm": {
        -        "description": "npm package name (e.g. \"@cyanheads/arxiv-mcp-server\"). Drives the local stdio snippets.",
        -        "type": "string"
        -      },
        -      "requiredEnvVars": {
        -        "description": "Env var names the local (stdio) install requires (e.g. [\"MAILCHIMP_API_KEY\"]). Absent when none.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "toolCount": {
        -        "description": "Number of tools exposed by this server.",
        -        "type": "number"
        -      },
        -      "tools": {
        -        "description": "Every tool this server exposes, each with its name and a brief description — one describe call reveals the full surface without a second lookup.",
        -        "items": {
        -          "additionalProperties": false,
        -          "description": "A single tool exposed by this server.",
        -          "properties": {
        -            "description": {
        -              "description": "Brief description of what the tool does.",
        -              "type": "string"
        -            },
        -            "name": {
        -              "description": "Tool name (snake_case, e.g. \"earthquake_search\").",
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "name",
        -            "description"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "version": {
        -        "description": "Published version captured at fleet-generation time.",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "kind",
        -      "name",
        -      "displayName",
        -      "description",
        -      "version",
        -      "npm",
        -      "github",
        -      "auth",
        -      "toolCount",
        -      "tools",
        -      "installSnippets"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "description": "A resolved tool entry — its description and the server that owns it.",
        +    "properties": {
        +      "auth": {
        +        "description": "Owning server hosted authentication requirement.",
        +        "type": "string"
        +      },
        +      "description": {
        +        "description": "Brief description of what the tool does.",
        +        "type": "string"
        +      },
        +      "endpoint": {
        +        "description": "Owning server hosted HTTP endpoint, when available.",
        +        "type": "string"
        +      },
        +      "github": {
        +        "description": "Owning server GitHub repository URL.",
        +        "type": "string"
        +      },
        +      "installNotice": {
        +        "description": "Actionable guidance when the requested client has no compatible installation snippet.",
        +        "type": "string"
        +      },
        +      "installSnippets": {
        +        "description": "Owning server install snippets, filtered by client when supplied.",
        +        "items": {
        +          "additionalProperties": false,
        +          "description": "An installation snippet for the owning server.",
        +          "properties": {
        +            "client": {
        +              "description": "Target MCP client.",
        +              "enum": [
        +                "claude-code",
        +                "codex",
        +                "cursor",
        +                "curl",
        +                "gemini",
        +                "streamable-http"
        +              ],
        +              "type": "string"
        +            },
        +            "label": {
        +              "description": "Install method label.",
        +              "type": "string"
        +            },
        +            "payload": {
        +              "description": "Install command or configuration.",
        +              "type": "string"
        +            },
        +            "transport": {
        +              "description": "Local stdio or hosted HTTP transport.",
        +              "enum": [
        +                "stdio",
        +                "http"
        +              ],
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "client",
        +            "transport",
        +            "label",
        +            "payload"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "kind": {
        +        "const": "tool",
        +        "description": "Resolved as a tool entry.",
        +        "type": "string"
        +      },
        +      "name": {
        +        "description": "Canonical resolved tool name.",
        +        "type": "string"
        +      },
        +      "npm": {
        +        "description": "Owning server npm package for local installation.",
        +        "type": "string"
        +      },
        +      "requiredEnvVars": {
        +        "description": "Environment variable names required for local installation.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "server": {
        +        "description": "Server package name that owns this tool.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "kind",
        +      "name",
        +      "description",
        +      "server",
        +      "npm",
        +      "github",
        +      "auth",
        +      "installSnippets"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "description": "A resolved server entry — metadata, optional hosted endpoint, and per-client install snippets.",
        +    "properties": {
        +      "auth": {
        +        "description": "Auth requirement for the hosted deployment (currently always \"none\").",
        +        "type": "string"
        +      },
        +      "description": {
        +        "description": "Brief description of what the server does.",
        +        "type": "string"
        +      },
        +      "displayName": {
        +        "description": "Human-readable server label.",
        +        "type": "string"
        +      },
        +      "endpoint": {
        +        "description": "Streamable HTTP endpoint for the hosted deployment. Absent for local-only (stdio) servers.",
        +        "type": "string"
        +      },
        +      "github": {
        +        "description": "GitHub repository URL.",
        +        "type": "string"
        +      },
        +      "installNotice": {
        +        "description": "Actionable guidance when the requested client has no compatible installation snippet.",
        +        "type": "string"
        +      },
        +      "installSnippets": {
        +        "description": "Install instructions: local (stdio) snippets for every server, plus remote (HTTP) snippets when an endpoint exists. Filtered to one client when input.client is set.",
        +        "items": {
        +          "additionalProperties": false,
        +          "description": "A single install instruction entry.",
        +          "properties": {
        +            "client": {
        +              "description": "MCP client this snippet targets.",
        +              "enum": [
        +                "claude-code",
        +                "codex",
        +                "cursor",
        +                "curl",
        +                "gemini",
        +                "streamable-http"
        +              ],
        +              "type": "string"
        +            },
        +            "label": {
        +              "description": "Human-readable install method label.",
        +              "type": "string"
        +            },
        +            "payload": {
        +              "description": "Install payload (JSON fragment or CLI command).",
        +              "type": "string"
        +            },
        +            "transport": {
        +              "description": "Transport this snippet installs — stdio (local) or http (remote).",
        +              "enum": [
        +                "stdio",
        +                "http"
        +              ],
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "client",
        +            "transport",
        +            "label",
        +            "payload"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "kind": {
        +        "const": "server",
        +        "description": "Resolved as a server entry.",
        +        "type": "string"
        +      },
        +      "name": {
        +        "description": "Canonical resolved server name.",
        +        "type": "string"
        +      },
        +      "npm": {
        +        "description": "npm package name (e.g. \"@cyanheads/arxiv-mcp-server\"). Drives the local stdio snippets.",
        +        "type": "string"
        +      },
        +      "requiredEnvVars": {
        +        "description": "Env var names the local (stdio) install requires (e.g. [\"MAILCHIMP_API_KEY\"]). Absent when none.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "toolCount": {
        +        "description": "Number of tools exposed by this server.",
        +        "type": "number"
        +      },
        +      "tools": {
        +        "description": "Every tool this server exposes, each with its name and a brief description — one describe call reveals the full surface without a second lookup.",
        +        "items": {
        +          "additionalProperties": false,
        +          "description": "A single tool exposed by this server.",
        +          "properties": {
        +            "description": {
        +              "description": "Brief description of what the tool does.",
        +              "type": "string"
        +            },
        +            "name": {
        +              "description": "Tool name (snake_case, e.g. \"earthquake_search\").",
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "name",
        +            "description"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "version": {
        +        "description": "Published version captured at fleet-generation time.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "kind",
        +      "name",
        +      "displayName",
        +      "description",
        +      "version",
        +      "npm",
        +      "github",
        +      "auth",
        +      "toolCount",
        +      "tools",
        +      "installSnippets"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedcyanheads_search_catalog13 fields changed
      • addedInput schema / properties / offset
        Added value: +{
        +  "default": 0,
        +  "description": "Result offset. Use nextOffset with the same query, scope, category, and limit; pages use the current catalog.",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • changedInput schema / properties / query / description
        Previous value: -"Natural language search query. Describe what you want to accomplish, a workflow, or a capability area. 1-500 characters."New value: +"Natural language search query. Describe what you want to accomplish, a workflow, or a capability area. 1-500 raw characters; surrounding whitespace is trimmed. Must contain non-whitespace text."
      • addedInput schema / properties / query / pattern
        Added value: +"\\S"
      • addedInput schema / properties / serversOffset
        Added value: +{
        +  "default": 0,
        +  "description": "Independent server roll-up offset (10 per page). Use nextServersOffset; must be zero in servers scope.",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "not": {
        -      "required": [
        -        "error"
        -      ]
        -    },
        -    "required": [
        -      "results",
        -      "scope",
        -      "effectiveQuery",
        -      "totalCount"
        -    ]
        -  },
        -  {
        -    "required": [
        -      "error"
        -    ]
        -  }
        -]New value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "offset",
        +      "nextOffset",
        +      "results",
        +      "scope",
        +      "effectiveQuery",
        +      "totalCount"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • changedOutput schema / properties / error / properties / data / properties / reason / description
        Previous value: -"Machine-readable failure mode. Declared by this tool: `catalog_empty`: Catalog has not finished loading. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `invalid_servers_offset`: A nonzero serversOffset is supplied in servers scope. `catalog_empty`: Catalog has not finished loading. Other values are possible when a failure originates below the handler."
      • changedOutput schema / properties / error / properties / data / properties / reason / examples
        Previous value: -[
        -  "catalog_empty"
        -]New value: +[
        +  "invalid_servers_offset",
        +  "catalog_empty"
        +]
      • addedOutput schema / properties / nextOffset
        Added value: +{
        +  "description": "Next ranked-result offset, or null when exhausted.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / nextServersOffset
        Added value: +{
        +  "description": "Next server roll-up offset, or null when exhausted; tools scope only.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • changedOutput schema / properties / notice / description
        Previous value: -"Guidance when no results matched — e.g. how to broaden the query or try a different scope. Absent on successful result pages."New value: +"Guidance for zero matches or an exhausted result page. Absent on nonempty result pages."
      • addedOutput schema / properties / offset
        Added value: +{
        +  "description": "Current ranked-result offset.",
        +  "type": "number"
        +}
      • changedOutput schema / properties / servers / description
        Previous value: -"Roll-up of distinct servers across the full match set, before the limit slice. Present only for scope \"tools\". Ordered by topScore desc (name-tiebroken); capped at 10. Use serversTotal to see how many distinct servers matched in total."New value: +"Server roll-up from the full match set, independent of result offset/limit. Tools scope only. Ordered by topScore desc (name-tiebroken); 10 per page starting at serversOffset. Use nextServersOffset to continue and serversTotal for the full distinct count."
      • addedOutput schema / properties / serversOffset
        Added value: +{
        +  "description": "Current server roll-up offset; tools scope only.",
        +  "type": "number"
        +}
  5. 2 tool updates
    • Changedcyanheads_describe_entry6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedOutput schema / anyOf
        Added value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "result"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • addedOutput schema / properties / error
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Present when the call failed. Absent on success.",
        +  "properties": {
        +    "code": {
        +      "description": "JSON-RPC error code for this failure.",
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    "data": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "reason": {
        +          "description": "Machine-readable failure mode. Declared by this tool: `not_found`: No tool or server with the given name exists in the catalog. `ambiguous_kind`: Name matches both a tool and a server (collision in catalog). `catalog_empty`: Catalog has not finished loading. Other values are possible when a failure originates below the handler.",
        +          "examples": [
        +            "not_found",
        +            "ambiguous_kind",
        +            "catalog_empty"
        +          ],
        +          "type": "string"
        +        },
        +        "recovery": {
        +          "additionalProperties": {},
        +          "description": "Actionable next step for the caller.",
        +          "properties": {
        +            "hint": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "hint"
        +          ],
        +          "type": "object"
        +        },
        +        "retryable": {
        +          "description": "Whether retrying may succeed.",
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "message": {
        +      "description": "Human-readable description of what went wrong.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "code",
        +    "message"
        +  ],
        +  "type": "object"
        +}
      • removedOutput schema / required
        Removed value: -[
        -  "result"
        -]
    • Changedcyanheads_search_catalog6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedOutput schema / anyOf
        Added value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "results",
        +      "scope",
        +      "effectiveQuery",
        +      "totalCount"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • addedOutput schema / properties / error
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Present when the call failed. Absent on success.",
        +  "properties": {
        +    "code": {
        +      "description": "JSON-RPC error code for this failure.",
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    "data": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "reason": {
        +          "description": "Machine-readable failure mode. Declared by this tool: `catalog_empty`: Catalog has not finished loading. Other values are possible when a failure originates below the handler.",
        +          "examples": [
        +            "catalog_empty"
        +          ],
        +          "type": "string"
        +        },
        +        "recovery": {
        +          "additionalProperties": {},
        +          "description": "Actionable next step for the caller.",
        +          "properties": {
        +            "hint": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "hint"
        +          ],
        +          "type": "object"
        +        },
        +        "retryable": {
        +          "description": "Whether retrying may succeed.",
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "message": {
        +      "description": "Human-readable description of what went wrong.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "code",
        +    "message"
        +  ],
        +  "type": "object"
        +}
      • removedOutput schema / required
        Removed value: -[
        -  "results",
        -  "scope",
        -  "effectiveQuery",
        -  "totalCount"
        -]
  6. 4 tool updates
    • Removedcyanheads_describe
    • Addedcyanheads_describe_entry
    • Removedcyanheads_search
    • Addedcyanheads_search_catalog
  7. 1 tool update
    • Changedcyanheads_describe1 field changed
      • changedOutput schema / properties / result / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "description": "A resolved tool entry — its description and the server that owns it.",
        -    "properties": {
        -      "description": {
        -        "description": "Brief description of what the tool does.",
        -        "type": "string"
        -      },
        -      "kind": {
        -        "const": "tool",
        -        "description": "Resolved as a tool entry.",
        -        "type": "string"
        -      },
        -      "name": {
        -        "description": "Resolved name (as looked up).",
        -        "type": "string"
        -      },
        -      "server": {
        -        "description": "Server package name that owns this tool.",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "kind",
        -      "name",
        -      "description",
        -      "server"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "description": "A resolved server entry — metadata, optional hosted endpoint, and per-client install snippets.",
        -    "properties": {
        -      "auth": {
        -        "description": "Auth requirement for the hosted deployment (currently always \"none\").",
        -        "type": "string"
        -      },
        -      "description": {
        -        "description": "Brief description of what the server does.",
        -        "type": "string"
        -      },
        -      "displayName": {
        -        "description": "Human-readable server label.",
        -        "type": "string"
        -      },
        -      "endpoint": {
        -        "description": "Streamable HTTP endpoint for the hosted deployment. Absent for local-only (stdio) servers.",
        -        "type": "string"
        -      },
        -      "github": {
        -        "description": "GitHub repository URL.",
        -        "type": "string"
        -      },
        -      "installSnippets": {
        -        "description": "Install instructions: local (stdio) snippets for every server, plus remote (HTTP) snippets when an endpoint exists. Filtered to one client when input.client is set.",
        -        "items": {
        -          "additionalProperties": false,
        -          "description": "A single install instruction entry.",
        -          "properties": {
        -            "client": {
        -              "description": "MCP client this snippet targets.",
        -              "enum": [
        -                "claude-code",
        -                "codex",
        -                "cursor",
        -                "curl",
        -                "gemini",
        -                "streamable-http"
        -              ],
        -              "type": "string"
        -            },
        -            "label": {
        -              "description": "Human-readable install method label.",
        -              "type": "string"
        -            },
        -            "payload": {
        -              "description": "Install payload (JSON fragment or CLI command).",
        -              "type": "string"
        -            },
        -            "transport": {
        -              "description": "Transport this snippet installs — stdio (local) or http (remote).",
        -              "enum": [
        -                "stdio",
        -                "http"
        -              ],
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "client",
        -            "transport",
        -            "label",
        -            "payload"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "kind": {
        -        "const": "server",
        -        "description": "Resolved as a server entry.",
        -        "type": "string"
        -      },
        -      "name": {
        -        "description": "Resolved name (as looked up).",
        -        "type": "string"
        -      },
        -      "npm": {
        -        "description": "npm package name (e.g. \"@cyanheads/arxiv-mcp-server\"). Drives the local stdio snippets.",
        -        "type": "string"
        -      },
        -      "requiredEnvVars": {
        -        "description": "Env var names the local (stdio) install requires (e.g. [\"MAILCHIMP_API_KEY\"]). Absent when none.",
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "toolCount": {
        -        "description": "Number of tools exposed by this server.",
        -        "type": "number"
        -      },
        -      "version": {
        -        "description": "Published version captured at fleet-generation time.",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "kind",
        -      "name",
        -      "displayName",
        -      "description",
        -      "version",
        -      "npm",
        -      "github",
        -      "auth",
        -      "toolCount",
        -      "installSnippets"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "description": "A resolved tool entry — its description and the server that owns it.",
        +    "properties": {
        +      "description": {
        +        "description": "Brief description of what the tool does.",
        +        "type": "string"
        +      },
        +      "kind": {
        +        "const": "tool",
        +        "description": "Resolved as a tool entry.",
        +        "type": "string"
        +      },
        +      "name": {
        +        "description": "Resolved name (as looked up).",
        +        "type": "string"
        +      },
        +      "server": {
        +        "description": "Server package name that owns this tool.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "kind",
        +      "name",
        +      "description",
        +      "server"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "description": "A resolved server entry — metadata, optional hosted endpoint, and per-client install snippets.",
        +    "properties": {
        +      "auth": {
        +        "description": "Auth requirement for the hosted deployment (currently always \"none\").",
        +        "type": "string"
        +      },
        +      "description": {
        +        "description": "Brief description of what the server does.",
        +        "type": "string"
        +      },
        +      "displayName": {
        +        "description": "Human-readable server label.",
        +        "type": "string"
        +      },
        +      "endpoint": {
        +        "description": "Streamable HTTP endpoint for the hosted deployment. Absent for local-only (stdio) servers.",
        +        "type": "string"
        +      },
        +      "github": {
        +        "description": "GitHub repository URL.",
        +        "type": "string"
        +      },
        +      "installSnippets": {
        +        "description": "Install instructions: local (stdio) snippets for every server, plus remote (HTTP) snippets when an endpoint exists. Filtered to one client when input.client is set.",
        +        "items": {
        +          "additionalProperties": false,
        +          "description": "A single install instruction entry.",
        +          "properties": {
        +            "client": {
        +              "description": "MCP client this snippet targets.",
        +              "enum": [
        +                "claude-code",
        +                "codex",
        +                "cursor",
        +                "curl",
        +                "gemini",
        +                "streamable-http"
        +              ],
        +              "type": "string"
        +            },
        +            "label": {
        +              "description": "Human-readable install method label.",
        +              "type": "string"
        +            },
        +            "payload": {
        +              "description": "Install payload (JSON fragment or CLI command).",
        +              "type": "string"
        +            },
        +            "transport": {
        +              "description": "Transport this snippet installs — stdio (local) or http (remote).",
        +              "enum": [
        +                "stdio",
        +                "http"
        +              ],
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "client",
        +            "transport",
        +            "label",
        +            "payload"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "kind": {
        +        "const": "server",
        +        "description": "Resolved as a server entry.",
        +        "type": "string"
        +      },
        +      "name": {
        +        "description": "Resolved name (as looked up).",
        +        "type": "string"
        +      },
        +      "npm": {
        +        "description": "npm package name (e.g. \"@cyanheads/arxiv-mcp-server\"). Drives the local stdio snippets.",
        +        "type": "string"
        +      },
        +      "requiredEnvVars": {
        +        "description": "Env var names the local (stdio) install requires (e.g. [\"MAILCHIMP_API_KEY\"]). Absent when none.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "toolCount": {
        +        "description": "Number of tools exposed by this server.",
        +        "type": "number"
        +      },
        +      "tools": {
        +        "description": "Every tool this server exposes, each with its name and a brief description — one describe call reveals the full surface without a second lookup.",
        +        "items": {
        +          "additionalProperties": false,
        +          "description": "A single tool exposed by this server.",
        +          "properties": {
        +            "description": {
        +              "description": "Brief description of what the tool does.",
        +              "type": "string"
        +            },
        +            "name": {
        +              "description": "Tool name (snake_case, e.g. \"earthquake_search\").",
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "name",
        +            "description"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "version": {
        +        "description": "Published version captured at fleet-generation time.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "kind",
        +      "name",
        +      "displayName",
        +      "description",
        +      "version",
        +      "npm",
        +      "github",
        +      "auth",
        +      "toolCount",
        +      "tools",
        +      "installSnippets"
        +    ],
        +    "type": "object"
        +  }
        +]
  8. 1 tool update
    • Changedcyanheads_describe2 fields changed
      • changedInput schema / properties / client / description
        Previous value: -"Return the install snippet for this specific client only. Omit to return snippets for all supported clients."New value: +"Return install snippets for this client only (both local and remote transports when available). Omit to return snippets for all supported clients."
      • changedOutput schema / properties / result / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "description": {
        -        "description": "Brief description of what the tool does.",
        -        "type": "string"
        -      },
        -      "kind": {
        -        "const": "tool",
        -        "description": "Resolved as a tool entry.",
        -        "type": "string"
        -      },
        -      "name": {
        -        "description": "Resolved name (as looked up).",
        -        "type": "string"
        -      },
        -      "server": {
        -        "description": "Server package name that owns this tool.",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "kind",
        -      "name",
        -      "description",
        -      "server"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "auth": {
        -        "description": "Auth requirement for the hosted deployment (currently always \"none\").",
        -        "type": "string"
        -      },
        -      "description": {
        -        "description": "Brief description of what the server does.",
        -        "type": "string"
        -      },
        -      "displayName": {
        -        "description": "Human-readable server label.",
        -        "type": "string"
        -      },
        -      "endpoint": {
        -        "description": "Streamable HTTP endpoint for the hosted deployment.",
        -        "type": "string"
        -      },
        -      "github": {
        -        "description": "GitHub repository URL.",
        -        "type": "string"
        -      },
        -      "installSnippets": {
        -        "description": "Install instructions, one per supported client (or filtered by input.client).",
        -        "items": {
        -          "additionalProperties": false,
        -          "description": "A single install instruction entry.",
        -          "properties": {
        -            "client": {
        -              "description": "MCP client this snippet targets.",
        -              "enum": [
        -                "claude-code",
        -                "codex",
        -                "cursor",
        -                "curl",
        -                "gemini",
        -                "streamable-http"
        -              ],
        -              "type": "string"
        -            },
        -            "label": {
        -              "description": "Human-readable install method label.",
        -              "type": "string"
        -            },
        -            "payload": {
        -              "description": "Install payload (JSON fragment or CLI command).",
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "client",
        -            "label",
        -            "payload"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "kind": {
        -        "const": "server",
        -        "description": "Resolved as a server entry.",
        -        "type": "string"
        -      },
        -      "name": {
        -        "description": "Resolved name (as looked up).",
        -        "type": "string"
        -      },
        -      "npm": {
        -        "description": "npm package name (e.g. \"@cyanheads/arxiv-mcp-server\").",
        -        "type": "string"
        -      },
        -      "toolCount": {
        -        "description": "Number of tools exposed by this server.",
        -        "type": "number"
        -      },
        -      "version": {
        -        "description": "Published version captured at fleet-generation time.",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "kind",
        -      "name",
        -      "displayName",
        -      "description",
        -      "version",
        -      "npm",
        -      "github",
        -      "endpoint",
        -      "auth",
        -      "toolCount",
        -      "installSnippets"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "description": "A resolved tool entry — its description and the server that owns it.",
        +    "properties": {
        +      "description": {
        +        "description": "Brief description of what the tool does.",
        +        "type": "string"
        +      },
        +      "kind": {
        +        "const": "tool",
        +        "description": "Resolved as a tool entry.",
        +        "type": "string"
        +      },
        +      "name": {
        +        "description": "Resolved name (as looked up).",
        +        "type": "string"
        +      },
        +      "server": {
        +        "description": "Server package name that owns this tool.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "kind",
        +      "name",
        +      "description",
        +      "server"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "description": "A resolved server entry — metadata, optional hosted endpoint, and per-client install snippets.",
        +    "properties": {
        +      "auth": {
        +        "description": "Auth requirement for the hosted deployment (currently always \"none\").",
        +        "type": "string"
        +      },
        +      "description": {
        +        "description": "Brief description of what the server does.",
        +        "type": "string"
        +      },
        +      "displayName": {
        +        "description": "Human-readable server label.",
        +        "type": "string"
        +      },
        +      "endpoint": {
        +        "description": "Streamable HTTP endpoint for the hosted deployment. Absent for local-only (stdio) servers.",
        +        "type": "string"
        +      },
        +      "github": {
        +        "description": "GitHub repository URL.",
        +        "type": "string"
        +      },
        +      "installSnippets": {
        +        "description": "Install instructions: local (stdio) snippets for every server, plus remote (HTTP) snippets when an endpoint exists. Filtered to one client when input.client is set.",
        +        "items": {
        +          "additionalProperties": false,
        +          "description": "A single install instruction entry.",
        +          "properties": {
        +            "client": {
        +              "description": "MCP client this snippet targets.",
        +              "enum": [
        +                "claude-code",
        +                "codex",
        +                "cursor",
        +                "curl",
        +                "gemini",
        +                "streamable-http"
        +              ],
        +              "type": "string"
        +            },
        +            "label": {
        +              "description": "Human-readable install method label.",
        +              "type": "string"
        +            },
        +            "payload": {
        +              "description": "Install payload (JSON fragment or CLI command).",
        +              "type": "string"
        +            },
        +            "transport": {
        +              "description": "Transport this snippet installs — stdio (local) or http (remote).",
        +              "enum": [
        +                "stdio",
        +                "http"
        +              ],
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "client",
        +            "transport",
        +            "label",
        +            "payload"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "kind": {
        +        "const": "server",
        +        "description": "Resolved as a server entry.",
        +        "type": "string"
        +      },
        +      "name": {
        +        "description": "Resolved name (as looked up).",
        +        "type": "string"
        +      },
        +      "npm": {
        +        "description": "npm package name (e.g. \"@cyanheads/arxiv-mcp-server\"). Drives the local stdio snippets.",
        +        "type": "string"
        +      },
        +      "requiredEnvVars": {
        +        "description": "Env var names the local (stdio) install requires (e.g. [\"MAILCHIMP_API_KEY\"]). Absent when none.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "toolCount": {
        +        "description": "Number of tools exposed by this server.",
        +        "type": "number"
        +      },
        +      "version": {
        +        "description": "Published version captured at fleet-generation time.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "kind",
        +      "name",
        +      "displayName",
        +      "description",
        +      "version",
        +      "npm",
        +      "github",
        +      "auth",
        +      "toolCount",
        +      "installSnippets"
        +    ],
        +    "type": "object"
        +  }
        +]
  9. 1 tool update
    • Changedcyanheads_search2 fields changed
      • addedOutput schema / properties / servers
        Added value: +{
        +  "description": "Roll-up of distinct servers across the full match set, before the limit slice. Present only for scope \"tools\". Ordered by topScore desc (name-tiebroken); capped at 10. Use serversTotal to see how many distinct servers matched in total.",
        +  "items": {
        +    "additionalProperties": false,
        +    "description": "A server roll-up entry.",
        +    "properties": {
        +      "brief": {
        +        "description": "One-line description of what the server does.",
        +        "type": "string"
        +      },
        +      "category": {
        +        "description": "Catalog category.",
        +        "enum": [
        +          "research",
        +          "government",
        +          "public-data",
        +          "utility"
        +        ],
        +        "type": "string"
        +      },
        +      "matchedTools": {
        +        "description": "Count of this server's tools in the full match set.",
        +        "type": "number"
        +      },
        +      "name": {
        +        "description": "Server package name (e.g. \"cdc-health-mcp-server\").",
        +        "type": "string"
        +      },
        +      "topScore": {
        +        "description": "Best cosine similarity among this server's matched tools. Drives ordering. Distinct from the score a server gets under scope \"servers\".",
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "name",
        +      "brief",
        +      "category",
        +      "matchedTools",
        +      "topScore"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / serversTotal
        Added value: +{
        +  "description": "Total distinct servers in the full match set (before the cap of 10 is applied). Present only when servers is present.",
        +  "type": "number"
        +}
  10. 1 tool update
    • Changedcyanheads_search6 fields changed
      • addedOutput schema / properties / effectiveQuery
        Added value: +{
        +  "description": "The query that was searched.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / notice
        Added value: +{
        +  "description": "Guidance when no results matched — e.g. how to broaden the query or try a different scope. Absent on successful result pages.",
        +  "type": "string"
        +}
      • removedOutput schema / properties / query
        Removed value: -{
        -  "description": "The query that was searched.",
        -  "type": "string"
        -}
      • addedOutput schema / properties / totalCount
        Added value: +{
        +  "description": "Total relevant matches before the limit was applied.",
        +  "type": "number"
        +}
      • removedOutput schema / properties / totalMatched
        Removed value: -{
        -  "description": "Total relevant matches before the limit was applied.",
        -  "type": "number"
        -}
      • changedOutput schema / required
        Previous value: -[
        -  "results",
        -  "totalMatched",
        -  "query",
        -  "scope"
        -]New value: +[
        +  "results",
        +  "scope",
        +  "effectiveQuery",
        +  "totalCount"
        +]
  11. 2 tool updates
    • First observedcyanheads_describe
    • First observedcyanheads_search

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Lets MCP clients such as Claude, Cursor, VS Code and Codex search a hand-checked directory of MCP servers, AI plugins and agent tools, returning summaries, copy-paste install configs and setup guides. Also supports keyword and category browsing plus troubleshooting guide lookups, working offline from a bundled snapshot when needed.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    AI-first MCP server discovery tool that enables agents to search, inspect, and install MCP servers from multiple registries.
    13
    AGPL 3.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables MCP-based hybrid semantic code search over repositories, providing tools for searching code by meaning or keyword, retrieving symbol definitions, finding usages, reading chunks, and listing indexed repos.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables semantic code search across repositories via MCP, returning exact source excerpts with paths and line numbers.
    234 npm
    110
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.