Pulls current, version-specific library docs into the conversation.
- Started in our test
- ★ 63.7K GitHub stars
- 440.9K downloads a week
- Last commit 26 Oct 2026
At a glance
Models learn a library at one moment in time and then keep using that version. Context7 looks up the library you are working with and returns current documentation and examples, so the code you get matches the version you have installed.
It has two tools: one turns a library name into a Context7 ID, the other fetches docs for that ID, optionally narrowed to a topic.
- Made by
- Upstash
- Licence
- MIT
- Latest version
- 4.4.4 (19 Oct 2026)
- npm package
- @upstash/context7-mcp
- GitHub stars
- 63.7K
- Downloads
- 440.9K a week
- Last commit
- 26 Oct 2026
- Tools
- 2
- Runs on
- Your computer or hosted
Our check: We ran this exact config on 26 Oct 2026: it started and answered with 2 tools.
What's in the pod: its tools
We found 2 tools when we started it on 26 Oct 2026. Every one of them only reads, so nothing changes unless you act on what it finds.
Only reads2 tools · Looks things up and changes nothing.
| Tool | What it is for |
|---|---|
query-docs | Pulls the current docs and code samples for one library, ranked against your question and, if you say, your language. |
resolve-library-id | Turns a plain library name like "next.js" into the Context7 id that query-docs needs. |
Grouped and described by us. The README on GitHub lists the inputs each tool takes.
Set it up
Pick your app for the exact snippet and where it goes.
Where it goes: claude_desktop_config.json (Settings → Developer → Edit Config)
{
"mcpServers": {
"context7": {
"command": "npx",
"args": [
"-y",
"@upstash/context7-mcp"
]
}
}
}Where it goes: Your terminal, in the project folder
claude mcp add-json context7 '{"command":"npx","args":["-y","@upstash/context7-mcp"]}'Where it goes: ~/.cursor/mcp.json, or .cursor/mcp.json in a project
{
"mcpServers": {
"context7": {
"command": "npx",
"args": [
"-y",
"@upstash/context7-mcp"
]
}
}
}Where it goes: .vscode/mcp.json in your project
{
"servers": {
"context7": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@upstash/context7-mcp"
]
}
}
}Where it goes: ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"context7": {
"command": "npx",
"args": [
"-y",
"@upstash/context7-mcp"
]
}
}
}Where it goes: Not supported
ChatGPT only connects to remote servers by URL. This one runs on your computer, so use Claude, Cursor or VS Code.
Remote option
Upstash also runs it as a remote server, which is the easy route for ChatGPT and other clients that only take a URL.
https://mcp.context7.com/mcpNew to this? See the setup guides for Claude Code, Cursor, Claude Desktop and ChatGPT.
Settings
Names are exactly as the project spells them. Required ones are marked.
| Setting | What it does |
|---|---|
https://mcp.context7.com/mcpConfig | The hosted server address. Point any client that supports remote servers here and nothing runs on your machine. |
Authorization: BearerConfig | Header carrying your Context7 API key when you use the hosted address. Optional, but it lifts the rate limit.Authorization: Bearer ctx7sk-xxxx |
--api-keyCommand line flag | Your API key when you run the npm package locally instead.--api-key ctx7sk-xxxx |
CONTEXT7_API_KEYEnvironment variable | The same key set through the environment for the local package. |
What it can touch
It can read
- Context7's public index of library docs, fetched over the internet
- Only the question text you send, not your code
It can change
- Nothing on your machine or in your project
Safer setup: It is read-only already. If you prefer not to send queries to a third party, keep it out of projects that discuss private code names.
Before you start
- Node.js 18 or newer for the local server
- A free Context7 API key for higher rate limits (optional)
If it does not work
- Rate limit or 429 errors
- Get a free key from the Context7 dashboard and add it as the Bearer header or --api-key.
- The agent never calls Context7
- Add "use context7" to your prompt, or add a standing rule in CLAUDE.md or Cursor rules telling it to fetch docs for any library question.
- It picks the wrong library
- Name the id yourself with slash syntax, for example /vercel/next.js, so the lookup step is skipped.
- npx ctx7 setup fails
- The CLI needs Node.js 22.13 or newer. Check node --version and upgrade.
Peas in a pod: similar servers
How Context7 lines up against other developer tools servers on the shelf.
| Server | Tools | Runs on | Licence | Stars |
|---|---|---|---|---|
| Context7 | 2 | Your computer or hosted | MIT | 63.7K |
| GitHub | 46 | Hosted | – | 34K |
| MCP Inspector | – | Your computer | – | 11.2K |
| XcodeBuildMCP | 24 | Your computer | MIT | 6.5K |
| Peekaboo | 3 | Your computer | MIT | 5.4K |
Questions
Is Context7 free?
Yes, the server is MIT licensed and the hosted service works without a key. A free key raises the request limits.
Can I get docs for an older version?
Yes. Mention the version in your question, such as "Next.js 14", and Context7 matches it where the index has it.
My library is missing. Can I add it?
Yes. Context7 accepts submissions through its website, and the index is built from public repos and docs sites.
Do I need MCP at all?
Not strictly. Context7 also ships a ctx7 command line tool with a skill that tells your agent when to call it.
Something wrong on this page? Tell us.