Context7
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Description from the maker (original English)
Fleet discovery for the cyanheads MCP ecosystem — semantic search + install snippets.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
MCP_LOG_LEVEL, CATALOG_URL, CATALOG_FETCH_TIMEOUT_MS, CATALOG_REFRESH_SECONDS, EMBEDDING_MODEL_ID, SIMILARITY_FLOORYou need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Works in Claude on the web, desktop and mobile:
https://cyanheads.caseyjhand.com/mcpOpen Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"cyanheads": {
"command": "npx",
"args": [
"-y",
"@cyanheads/cyanheads-mcp-server"
],
"env": {
"MCP_LOG_LEVEL": "your-value",
"CATALOG_URL": "your-value",
"CATALOG_FETCH_TIMEOUT_MS": "your-value",
"CATALOG_REFRESH_SECONDS": "your-value",
"EMBEDDING_MODEL_ID": "your-value",
"SIMILARITY_FLOOR": "your-value"
}
}
}
}Run this in your terminal
claude mcp add --transport http cyanheads https://cyanheads.caseyjhand.com/mcpclaude mcp add cyanheads --env MCP_LOG_LEVEL=your-value --env CATALOG_URL=your-value --env CATALOG_FETCH_TIMEOUT_MS=your-value --env CATALOG_REFRESH_SECONDS=your-value --env EMBEDDING_MODEL_ID=your-value --env SIMILARITY_FLOOR=your-value -- npx -y @cyanheads/cyanheads-mcp-serverFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"cyanheads": {
"url": "https://cyanheads.caseyjhand.com/mcp"
}
}
}Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"cyanheads": {
"command": "npx",
"args": [
"-y",
"@cyanheads/cyanheads-mcp-server"
],
"env": {
"MCP_LOG_LEVEL": "your-value",
"CATALOG_URL": "your-value",
"CATALOG_FETCH_TIMEOUT_MS": "your-value",
"CATALOG_REFRESH_SECONDS": "your-value",
"EMBEDDING_MODEL_ID": "your-value",
"SIMILARITY_FLOOR": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"cyanheads": {
"type": "http",
"url": "https://cyanheads.caseyjhand.com/mcp"
}
}
}Paste into .vscode/mcp.json in your project
{
"servers": {
"cyanheads": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@cyanheads/cyanheads-mcp-server"
],
"env": {
"MCP_LOG_LEVEL": "your-value",
"CATALOG_URL": "your-value",
"CATALOG_FETCH_TIMEOUT_MS": "your-value",
"CATALOG_REFRESH_SECONDS": "your-value",
"EMBEDDING_MODEL_ID": "your-value",
"SIMILARITY_FLOOR": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
ChatGPT connects only to servers on the internet:
https://cyanheads.caseyjhand.com/mcpMenu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
MCP_LOG_LEVEL envCATALOG_URL envCATALOG_FETCH_TIMEOUT_MS envCATALOG_REFRESH_SECONDS envEMBEDDING_MODEL_ID envSIMILARITY_FLOOR envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Tool names and descriptions exactly as the server reported them on Nov 7, 2026. The maker wrote them, not us; we show them as plain text.
cyanheads_search_catalogSearch 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.
cyanheads_describe_entryReturn 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 en
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account cyanheads, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Responded in 250 ms (HTTP 200)
No sign-in needed
Read 2 tool descriptions and found no hidden instructions to the AI
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 3 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
Either way works: install it on your computer or connect to the cloud version.
The GitHub repo last changed –, and the latest version (0.5.0) reached the registry 9 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Context7, Codebase Memory, Exa
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
@cyanheads/cyanheads-mcp-server Fleet discovery for the cyanheads MCP ecosystem — semantic search + install snippets. 2 Tools • 0 Resources • 0 Prompts
Public Hosted Server: https://cyanheads.caseyjhand.com/mcp
Find the right MCP tool for the job across the cyanheads fleet. Describe a task in plain language to search every tool and server, then get a description, connection URL, and install snippet for your client.
| Tool | Description |
|---|---|
cyanheads_search_catalog | Search fleet tools and servers by natural-language query. Returns ranked matches with brief summaries and the owning server. |
cyanheads_describe_entry | Return the description, connection URL, and per-client install snippet for a named tool or server. |
| Skill | Description |
|---|---|
cyanheads-guide | Find a fleet server for a task and hand over a working install: telling real matches from near misses, the category filter, hosted vs local installs, and env vars the snippets leave out. Served over MCP as skill://cyanheads-guide/SKILL.md and loaded by Claude Code and Codex plugin installs. |
cyanheads_search_catalog toolquery 1–500 raw characters, with non-whitespace text required; surrounding whitespace is trimmed before embedding and echo. scope selects tools (default) or servers; optional category: research, government, public-data, utility; limit 1–1000 (default 5), served at most 20 per call: when a larger limit leaves matches past the page, the response adds truncated, shown, cap, and a notice naming the offset to continue from.score ([0, 1], comparable within one response). Tool searches include a servers roll-up with ten entries per page and serversTotal; an unloaded catalog returns retryable catalog_empty.offset and the tools-scope roll-up independently with serversOffset (both default to 0). Reuse the same query, scope, category, and limit with nextOffset / nextServersOffset; null means exhausted. Each call uses the current catalog, so a refresh between pages can change ordering. Servers scope requires serversOffset: 0 and omits roll-up fields.SIMILARITY_FLOOR (default 0.3) filters matches before the limit applies.category string is treated as omitted; other unknown category values are rejected. Categories are catalog labels, not publisher types, and a wrong one drops the matching server without a notice unless nothing else matches.cyanheads_describe_entry toolname 1–64 characters accepts a tool or server name, auto-detected or pinned via kind. Exact names win, then unique case-insensitive names; output uses canonical names. client optionally selects claude-code, cline, codex, cursor, gemini, streamable-http (generic mcpServers JSON), or curl.server (optional, 1–64 characters) names the owning server: a search result's name + server describes exactly that row, in either scope. It is required when more than one server owns the tool name; with a server name, it must name the same server.kind, client, and server strings are treated as omitted. Other unknown kind or client values are rejected.client: "curl" returns successful metadata with an installNotice naming a stdio client to try. Required environment variables remain visible even without snippets; they list what the server's manifest marks required, so a key it leaves optional is absent.tools/list.not_found, ambiguous_kind (set kind), ambiguous_owner (set server; the error lists the owners), or retryable catalog_empty.Built on @cyanheads/mcp-ts-core: stdio and Streamable HTTP transports, pluggable auth (none / jwt / oauth), swappable storage (in-memory, filesystem, Supabase, Cloudflare KV/R2/D1), structured logging with optional OpenTelemetry tracing.
Catalog-specific:
CATALOG_REFRESH_SECONDS, default 3600) with an atomic index swap when generatedAt changes — no restart needed@huggingface/transformers; document embeddings are pre-computed, L2-normalized, and Matryoshka-truncated, shipped inside fleet.json. The server normalizes each document vector again at load, so scores stay cosine similarities even when a catalog's vectors drift from unit length, and a bounded warning names vectors more than 1e-4 off.fetch — avoids a cold-cache model-load failure under OTELcyanheads_describe_entry resolves this server's own name and tools from a static fallback record, consulted only when the remote catalog doesn't carry an entry for itCATALOG_URL can point at any endpoint serving the same schema, to front a custom fleetAgent-friendly output:
limit above 20 is cut to the per-call capresult.kind (tool | server) on cyanheads_describe_entry lets callers branch on data, not string parsingscore field for trust calibration, plus a servers roll-up so agents can see which servers matched without a second callConnect to the hosted instance, no install:
claude mcp add --transport http cyanheads-mcp-server https://cyanheads.caseyjhand.com/mcp
Or run it locally:
claude mcp add cyanheads-mcp-server -- npx -y @cyanheads/cyanheads-mcp-server
For other clients, add this to the MCP config file:
{
"mcpServers": { "cyanheads-mcp-server": { "command": "npx", "args": ["-y", "@cyanheads/cyanheads-mcp-server"] } } }
The Claude Desktop bundle (the install badge above) runs the embedding model on ONNX WebAssembly, so it needs no platform-specific native libraries; npm and Docker installs use native CPU inference. Either way, the first start downloads the embedding model and later starts reuse the model cache. For Docker or a source build, see Running the server.
All configuration is validated at startup via Zod schemas in src/config/server-config.ts. Every variable has a sensible default — out of the box, the server points at the canonical cyanheads fleet.
| Variable | Description | Default |
|---|---|---|
MCP_TRANSPORT_TYPE | Transport: stdio or http | stdio |
MCP_HTTP_PORT | HTTP server port | 3010 |
MCP_HTTP_HOST | HTTP server bind host | 127.0.0.1 |
MCP_HTTP_ENDPOINT_PATH | HTTP endpoint path where the MCP server is mounted | /mcp |
MCP_AUTH_MODE | Authentication: none, jwt, or oauth | none |
MCP_SESSION_MODE | HTTP session posture: auto, stateful, or stateless. src/index.ts declares stateless; set this only to override it. | stateless |
MCP_LOG_LEVEL | Log level (debug, info, warning, error, etc.) | info |
CATALOG_URL | Remote fleet.json endpoint (schema v2 with baked embeddings). Must be an absolute URL. Override to front your own fleet. | https://caseyjhand.com/fleet.json |
CATALOG_FETCH_TIMEOUT_MS | Per-request timeout for fleet.json fetches: integer milliseconds, 1–2147483647. | 10000 |
CATALOG_REFRESH_SECONDS | Background poll interval for fleet.json refresh. 0 disables; positive values up to 2147483.647 seconds use the runtime's millisecond timer resolution. | 3600 |
EMBEDDING_MODEL_ID | Hugging Face model id for query embedding. Must match fleet.json.embeddingModel. | Snowflake/snowflake-arctic-embed-m-v1.5 |
SIMILARITY_FLOOR | Cosine similarity cutoff for cyanheads_search_catalog results. Must be within [0, 1]. | 0.3 |
OTEL_ENABLED | Enable OpenTelemetry | false |
OTEL_EXPORTER_OTLP_ENDPOINT | OTLP base URL for traces and metrics | Unset |
OTEL_EXPORTER_OTLP_LOGS_ENDPOINT | Explicit OTLP logs URL; requires the OTel log peers included in the default Docker build | Unset |
LOG_TOOL_FAILURE_PAYLOADS | Log failed arguments and results, redacted by key name. Secrets inside free-form values are not redacted. | false |
LOG_TOOL_FAILURE_PAYLOAD_MAX_BYTES | UTF-8 byte cap for each logged failure payload | 16384 |
See .env.example for the full list of optional overrides.
Requires Bun v1.4.0 or higher (or Node.js v24+).
git clone https://github.com/cyanheads/cyanheads-mcp-server.git
cd cyanheads-mcp-server && bun install cp .env.example .env # every variable has a default; override as needed
# One-time build
bun run rebuild
bun run start:http
bun run start:
Only the beginning is shown; read the rest in the repo