Releases: upstash/context7
Releases · upstash/context7
@upstash/context7-mcp@3.0.0
ctx7@0.4.3
Patch Changes
- dea0e43: Declare
@inquirer/coreas a direct dependency of the CLI. It was previously imported inselectOrInput.tsbut only resolvable as a transitive of@inquirer/prompts, which causedctx7to fail at startup withERR_MODULE_NOT_FOUNDunder pnpm's isolated node linker. - 34fda7d: Add
--stdioflag toctx7 setupto configure Context7 as a local stdio MCP server. - 61de754: Harden skill name handling during
ctx7 skills installandctx7 skills remove. Skill names from remoteSKILL.mdfiles are now restricted to a safe character set, and the install sinks assert the target directory is a direct child of the skills root before writing.
@upstash/context7-mcp@2.3.0
Minor Changes
- 34fda7d: Prompt anonymous users to sign in. After the backend signals (via the
X-Context7-Auth-Prompt: 1response header on/v2/libs/searchor/v2/context) that an anonymous client has crossed the per-IP threshold, the MCP server appends a one-time sign-in invitation to the tool result.- Both stdio and HTTP transports surface the same nudge: a tool-result notice asking the assistant to run
npx ctx7 setup --<client> --mcp -y(with--stdioappended when the MCP server is running on stdio) after explicit user confirmation. The CLI handles OAuth and writes credentials into the MCP client's config; the user restarts their MCP server / editor to pick up the new credentials. - Detects the calling client from
X-Context7-Client-IDE/ User-Agent and selects the matching CLI flag (--cursor,--claude,--codex,--opencode,--gemini); falls back to interactive setup when unknown. - HTTP transport remains stateless — the threshold is tracked by the backend (per-IP, 24h TTL), the MCP server only reacts to the signal.
- Both stdio and HTTP transports surface the same nudge: a tool-result notice asking the assistant to run
ctx7@0.4.2
Patch Changes
- 6c71e4d: Handle malformed MCP config files gracefully during
ctx7 removeagent detection. Previously, an unparseable JSON config at any agent's well-known path (e.g. a hand-edited~/.claude.json) would crash the command with an unhandledSyntaxErrorbefore it could do anything. The detector now skips the offending file and logs a warning naming the path and parse error so the user can fix it, while detection continues for the remaining agents. - 4056850: Respect
CLAUDE_CONFIG_DIRenv var when resolving Claude Code's global config, rules, skills, and detection paths
@upstash/context7-mcp@2.2.5
Patch Changes
- 187287c: Accept hallucinated argument names on
tools/callrequests by rewriting them to the canonical names before validation.userQueryandquestionare mapped toqueryon either tool; onquery-docs,context7CompatibleLibraryID,libraryID, andlibraryNameare mapped tolibraryId. Some LLM clients produce these alternative names — likely echoing phrasing from each tool's description — and previously triggeredInvalid input: expected string, received undefinederrors.libraryNameis only rewritten onquery-docscalls because it is the canonical arg forresolve-library-id. Tool input schemas published viatools/listare unchanged: canonical names remain the documented required fields, the rewrite is purely a server-side compatibility shim that runs only ontools/calland only when the canonical key is absent. - 78b9826: Exit the stdio MCP server when the parent process closes its stdio. Previously, if the parent (e.g. Claude Code) was force-killed shortly after a tool call, an idle undici keep-alive socket to the Context7 API would keep libuv's event loop alive past stdin EOF, leaving an orphaned
nodeprocess that consumed memory until the kernel tore the socket down (which on Cloudflare-fronted endpoints can take hours). The server now listens forend/closeon stdin andSIGHUPand exits cleanly. Fixes #2542.
ctx7@0.4.1
Patch Changes
- 1aa3430: Remove research mode entirely from the MCP server and CLI. The
query-docsMCP tool no longer accepts or forwards aresearchModeparameter, and the CLI no longer exposes a--researchflag onctx7 docs.
@upstash/context7-mcp@2.2.4
Patch Changes
- d0e4a48: Create a fresh
McpServerper HTTP request. Sharing one across requests let any concurrenttransport.closeclear the sharedProtocol._transport, which brokesendNotificationfor in-flight long-running tool calls. - 1aa3430: Remove research mode entirely from the MCP server and CLI. The
query-docsMCP tool no longer accepts or forwards aresearchModeparameter, and the CLI no longer exposes a--researchflag onctx7 docs.
@upstash/context7-mcp@2.2.3
Patch Changes
- 772da3a: Stream MCP tool responses over SSE so HTTP headers flush before client
fetchtimeouts. SwitchingenableJsonResponsetofalsemakes the SDK return the HTTP response synchronously after request validation, so headers are sent in milliseconds instead of being buffered until the tool completes. This fixes clients that cap the underlyingfetchwaiting for headers (e.g., Claude Code's 60swrapFetchWithTimeout).
@upstash/context7-mcp@2.2.2
Patch Changes
- 8274bd0: Add missing tool annotations
- ff6c1be: Remove the
researchModeparameter from thequery-docstool's input schema. The underlying API still supports research mode, but several MCP clients hit per-request timeouts (60s defaults) on long-running research calls in ways that can't always be solved server-side. Hiding the parameter prevents agents from invoking it through MCP until the timeout story is reliable across clients.
@upstash/context7-mcp@2.2.1
Patch Changes
- 1b0c211: Add endpoint for OpenAI Apps SDK domain verification.