cyanheads-mcp-server
Fleet discovery for the cyanheads MCP ecosystem — semantic search + install snippets.
我该使用它吗
质量与安全性
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"cyanheads-mcp-server": {
"command": "node",
"args": [
"@cyanheads/cyanheads-mcp-server"
]
}
}
}可运行的软件包
0.4.2streamable-http远程端点
https://cyanheads.caseyjhand.com/mcpstreamable-http它能做什么
工具清单
工具(2)
🟢cyanheads_search_catalog(query, scope, category, limit)
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.
输入模式
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 500,
"description": "Natural language search query. Describe what you want to accomplish, a workflow, or a capability area. 1-500 characters."
},
"scope": {
"default": "tools",
"description": "What to search. \"tools\" returns individual tool matches; \"servers\" returns server-level matches.",
"type": "string",
"enum": [
"tools",
"servers"
]
},
"category": {
"description": "Filter by catalog category. Omit to search all categories.",
"type": "string",
"enum": [
"research",
"government",
"public-data",
"utility"
]
},
"limit": {
"default": 5,
"description": "Maximum number of results to return (1-20). Default 5.",
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"required": [
"query"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}输出模式
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Tool name (snake_case) or server name (kebab-case) depending on scope."
},
"server": {
"type": "string",
"description": "Server package name that owns this tool (e.g. \"arxiv-mcp-server\"). Same as name when scope is \"servers\"."
},
"brief": {
"type": "string",
"description": "One-line summary of what this tool or server does."
},
"category": {
"type": "string",
"enum": [
"research",
"government",
"public-data",
"utility"
],
"description": "Catalog category for the owning server."
},
"score": {
"type": "number",
"description": "Cosine similarity between query and entry, in [0, 1]. Higher is better. Compare only within a single response."
}
},
"required": [
"name",
"server",
"brief",
"category",
"score"
],
"additionalProperties": false,
"description": "A single search result entry."
},
"description": "Ranked matches, best first."
},
"scope": {
"type": "string",
"enum": [
"tools",
"servers"
],
"description": "Scope that was searched."
},
"servers": {
"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.",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Server package name (e.g. \"cdc-health-mcp-server\")."
},
"brief": {
"type": "string",
"description": "One-line description of what the server does."
},
"category": {
"type": "string",
"enum": [
"research",
"government",
"public-data",
"utility"
],
"description": "Catalog category."
},
"matchedTools": {
"type": "number",
"description": "Count of this server's tools in the full match set."
},
"topScore": {
"type": "number",
"description": "Best cosine similarity among this server's matched tools. Drives ordering. Distinct from the score a server gets under scope \"servers\"."
}
},
"required": [
"name",
"brief",
"category",
"matchedTools",
"topScore"
],
"additionalProperties": false,
"description": "A server roll-up entry."
}
},
"serversTotal": {
"description": "Total distinct servers in the full match set (before the cap of 10 is applied). Present only when servers is present.",
"type": "number"
},
"effectiveQuery": {
"type": "string",
"description": "The query that was searched."
},
"totalCount": {
"type": "number",
"description": "Total relevant matches before the limit was applied."
},
"notice": {
"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"
},
"error": {
"description": "Present when the call failed. Absent on success.",
"type": "object",
"properties": {
"code": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "JSON-RPC error code for this failure."
},
"message": {
"type": "string",
"description": "Human-readable description of what went wrong."
},
"data": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"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"
]
},
"recovery": {
"description": "Actionable next step for the caller.",
"type": "object",
"properties": {
"hint": {
"type": "string"
}
},
"required": [
"hint"
],
"additionalProperties": {}
},
"retryable": {
"description": "Whether retrying may succeed.",
"type": "boolean"
}
},
"additionalProperties": {}
}
},
"required": [
"code",
"message"
],
"additionalProperties": {}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"results",
"scope",
"effectiveQuery",
"totalCount"
]
},
{
"required": [
"error"
]
}
]
}🟢cyanheads_describe_entry(name, kind, client)
Return the description and install snippets for a named tool or server. For tools: the description and the server it belongs to. For servers: 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.
输入模式
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "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."
},
"kind": {
"description": "Whether 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.",
"type": "string",
"enum": [
"tool",
"server"
]
},
"client": {
"description": "Return install snippets for this client only (both local and remote transports when available). Omit to return snippets for all supported clients.",
"type": "string",
"enum": [
"claude-code",
"codex",
"cursor",
"curl",
"gemini",
"streamable-http"
]
}
},
"required": [
"name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}输出模式
{
"type": "object",
"properties": {
"result": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "tool",
"description": "Resolved as a tool entry."
},
"name": {
"type": "string",
"description": "Resolved name (as looked up)."
},
"description": {
"type": "string",
"description": "Brief description of what the tool does."
},
"server": {
"type": "string",
"description": "Server package name that owns this tool."
}
},
"required": [
"kind",
"name",
"description",
"server"
],
"additionalProperties": false,
"description": "A resolved tool entry — its description and the server that owns it."
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "server",
"description": "Resolved as a server entry."
},
"name": {
"type": "string",
"description": "Resolved name (as looked up)."
},
"displayName": {
"type": "string",
"description": "Human-readable server label."
},
"description": {
"type": "string",
"description": "Brief description of what the server does."
},
"version": {
"type": "string",
"description": "Published version captured at fleet-generation time."
},
"npm": {
"type": "string",
"description": "npm package name (e.g. \"@cyanheads/arxiv-mcp-server\"). Drives the local stdio snippets."
},
"github": {
"type": "string",
"description": "GitHub repository URL."
},
"endpoint": {
"description": "Streamable HTTP endpoint for the hosted deployment. Absent for local-only (stdio) servers.",
"type": "string"
},
"auth": {
"type": "string",
"description": "Auth requirement for the hosted deployment (currently always \"none\")."
},
"requiredEnvVars": {
"description": "Env var names the local (stdio) install requires (e.g. [\"MAILCHIMP_API_KEY\"]). Absent when none.",
"type": "array",
"items": {
"type": "string"
}
},
"toolCount": {
"type": "number",
"description": "Number of tools exposed by this server."
},
"tools": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Tool name (snake_case, e.g. \"earthquake_search\")."
},
"description": {
"type": "string",
"description": "Brief description of what the tool does."
}
},
"required": [
"name",
"description"
],
"additionalProperties": false,
"description": "A single tool exposed by this server."
},
"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."
},
"installSnippets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"client": {
"type": "string",
"enum": [
"claude-code",
"codex",
"cursor",
"curl",
"gemini",
"streamable-http"
],
"description": "MCP client this snippet targets."
},
"transport": {
"type": "string",
"enum": [
"stdio",
"http"
],
"description": "Transport this snippet installs — stdio (local) or http (remote)."
},
"label": {
"type": "string",
"description": "Human-readable install method label."
},
"payload": {
"type": "string",
"description": "Install payload (JSON fragment or CLI command)."
}
},
"required": [
"client",
"transport",
"label",
"payload"
],
"additionalProperties": false,
"description": "A single install instruction entry."
},
"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."
}
},
"required": [
"kind",
"name",
"displayName",
"description",
"version",
"npm",
"github",
"auth",
"toolCount",
"tools",
"installSnippets"
],
"additionalProperties": false,
"description": "A resolved server entry — metadata, optional hosted endpoint, and per-client install snippets."
}
],
"description": "The resolved entry — either a tool detail or a server detail depending on the resolved kind."
},
"error": {
"description": "Present when the call failed. Absent on success.",
"type": "object",
"properties": {
"code": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "JSON-RPC error code for this failure."
},
"message": {
"type": "string",
"description": "Human-readable description of what went wrong."
},
"data": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"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"
]
},
"recovery": {
"description": "Actionable next step for the caller.",
"type": "object",
"properties": {
"hint": {
"type": "string"
}
},
"required": [
"hint"
],
"additionalProperties": {}
},
"retryable": {
"description": "Whether retrying may succeed.",
"type": "boolean"
}
},
"additionalProperties": {}
}
},
"required": [
"code",
"message"
],
"additionalProperties": {}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"anyOf": [
{
"not": {
"required": [
"error"
]
},
"required": [
"result"
]
},
{
"required": [
"error"
]
}
]
}社区
证据