Context 7

Context7 MCP - Up-to-date Docs For Any Cursor Prompt

Context7 MCP - Up-to-date Docs For Any Prompt

Website smithery badge

中文文档 한국어 문서

❌ Without Context7

LLMs rely on outdated or generic information about the libraries you use. You get:

  • ❌ Code examples are outdated and based on year-old training data
  • ❌ Hallucinated APIs don't even exist
  • ❌ Generic answers for old package versions

✅ With Context7

Context7 MCP pulls up-to-date, version-specific documentation and code examples straight from the source — and places them directly into your prompt.

Add use context7 to your prompt in Cursor:

Create a basic Next.js project with app router. use context7
Create a script to delete the rows where the city is "" given PostgreSQL credentials. use context7

Context7 fetches up-to-date code examples and documentation right into your LLM's context.

  • 1️⃣ Write your prompt naturally
  • 2️⃣ Tell the LLM to use context7
  • 3️⃣ Get working code answers

No tab-switching, no hallucinated APIs that don't exist, no outdated code generations.

🛠️ Getting Started

Requirements

  • Node.js >= v18.0.0
  • Cursor, Windsurf, Claude Desktop or another MCP Client

Installing via Smithery

To install Context7 MCP Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @upstash/context7-mcp --client claude

Install in Cursor

Go to: Settings -> Cursor Settings -> MCP -> Add new global MCP server

Pasting the following configuration into your Cursor ~/.cursor/mcp.json file is the recommended approach. See Cursor MCP docs for more info.

{
  "mcpServers": {
    "context7": {
      "command": "npx",
      "args": ["-y", "@upstash/context7-mcp@latest"]
    }
  }
}
{
  "mcpServers": {
    "context7": {
      "command": "bunx",
      "args": ["-y", "@upstash/context7-mcp@latest"]
    }
  }
}
{
  "mcpServers": {
    "context7": {
      "command": "deno",
      "args": ["run", "--allow-net", "npm:@upstash/context7-mcp"]
    }
  }
}

Install in Windsurf

Add this to your Windsurf MCP config file. See Windsurf MCP docs for more info.

{
  "mcpServers": {
    "context7": {
      "command": "npx",
      "args": ["-y", "@upstash/context7-mcp@latest"]
    }
  }
}

Install in VS Code

Add this to your VS Code MCP config file. See VS Code MCP docs for more info.

{
  "servers": {
    "Context7": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@upstash/context7-mcp@latest"]
    }
  }
}

Install in Claude Code

Run this command. See Claude Code MCP docs for more info.

claude mcp add context7 -- npx -y @upstash/context7-mcp@latest

Install in Claude Desktop

Add this to your Claude Desktop claude_desktop_config.json file. See Claude Desktop MCP docs for more info.

{
  "mcpServers": {
    "Context7": {
      "command": "npx",
      "args": ["-y", "@upstash/context7-mcp@latest"]
    }
  }
}

Available Tools

  • resolve-library-id: Resolves a general library name into a Context7-compatible library ID.
    • libraryName (required)
  • get-library-docs: Fetches documentation for a library using a Context7-compatible library ID.
    • context7CompatibleLibraryID (required)
    • topic (optional): Focus the docs on a specific topic (e.g., "routing", "hooks")
    • tokens (optional, default 5000): Max number of tokens to return. Values less than 5000 are automatically increased to 5000.

Development

Clone the project and install dependencies:

bun i

Build:

bun run build

Local Configuration Example

{
  "mcpServers": {
    "context7": {
      "command": "npx",
      "args": ["tsx", "/path/to/folder/context7-mcp/src/index.ts"]
    }
  }
}

Testing with MCP Inspector

npx -y @modelcontextprotocol/inspector npx @upstash/context7-mcp@latest

Troubleshooting

ERR_MODULE_NOT_FOUND

If you see this error, try using bunx instead of npx.

{
  "mcpServers": {
    "context7": {
      "command": "bunx",
      "args": ["-y", "@upstash/context7-mcp@latest"]
    }
  }
}

This often resolves module resolution issues, especially in environments where npx does not properly install or resolve packages.

MCP Client Errors

  1. Try removing @latest from the package name.

  2. Try using bunx as an alternative.

  3. Try using deno as an alternative.

Context7 In Media

Star History

Star History Chart

License

MIT

Related Servers