context7/README.md

296 lines
8.9 KiB
Markdown
Raw Normal View History

2025-04-21 00:24:57 -07:00
# Context7 MCP - Up-to-date Docs For Any Prompt
2025-04-23 20:00:50 +03:00
[![Website](https://img.shields.io/badge/Website-context7.com-blue)](https://context7.com) [![smithery badge](https://smithery.ai/badge/@upstash/context7-mcp)](https://smithery.ai/server/@upstash/context7-mcp) [<img alt="Install in VS Code (npx)" src="https://img.shields.io/badge/VS_Code-VS_Code?style=flat-square&label=Install%20Context7%20MCP&color=0098FF">](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522context7%2522%252C%2522config%2522%253A%257B%2522command%2522%253A%2522npx%2522%252C%2522args%2522%253A%255B%2522-y%2522%252C%2522%2540upstash%252Fcontext7-mcp%2540latest%2522%255D%257D%257D)
2025-04-23 19:59:38 +03:00
[![中文文档](https://img.shields.io/badge/docs-中文版-yellow)](./docs/README.zh-CN.md) [![한국어 문서](https://img.shields.io/badge/docs-한국어-green)](./docs/README.ko.md)
2025-04-11 10:44:37 +02:00
## ❌ Without Context7
2025-04-11 10:44:37 +02:00
LLMs rely on outdated or generic information about the libraries you use. You get:
2025-04-11 10:44:37 +02:00
- ❌ Code examples are outdated and based on year-old training data
- ❌ Hallucinated APIs don't even exist
- ❌ Generic answers for old package versions
2025-04-11 10:44:37 +02:00
## ✅ 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.
2025-04-21 21:15:58 -07:00
Add `use context7` to your prompt in Cursor:
2025-04-11 10:44:37 +02:00
```txt
2025-04-21 21:15:58 -07:00
Create a basic Next.js project with app router. use context7
2025-04-11 10:44:37 +02:00
```
```txt
2025-04-21 21:15:58 -07:00
Create a script to delete the rows where the city is "" given PostgreSQL credentials. use context7
2025-04-11 10:44:37 +02:00
```
2025-04-21 21:15:58 -07:00
Context7 fetches up-to-date code examples and documentation right into your LLM's context.
2025-04-11 10:44:37 +02:00
2025-04-21 21:15:58 -07:00
- 1⃣ Write your prompt naturally
2025-04-11 10:44:37 +02:00
- 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
2025-04-20 08:05:25 +00:00
### Installing via Smithery
To install Context7 MCP Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@upstash/context7-mcp):
```bash
npx -y @smithery/cli install @upstash/context7-mcp --client claude
```
2025-04-11 10:44:37 +02:00
### Install in Cursor
2025-04-11 10:44:37 +02:00
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](https://docs.cursor.com/context/model-context-protocol) for more info.
2025-04-11 10:44:37 +02:00
```json
{
"mcpServers": {
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp@latest"]
2025-04-11 10:44:37 +02:00
}
}
}
```
<details>
<summary>Alternative: Use Bun</summary>
```json
{
"mcpServers": {
"context7": {
"command": "bunx",
"args": ["-y", "@upstash/context7-mcp@latest"]
}
}
}
```
</details>
<details>
<summary>Alternative: Use Deno</summary>
```json
{
"mcpServers": {
"context7": {
"command": "deno",
"args": ["run", "--allow-net", "npm:@upstash/context7-mcp"]
}
}
}
```
</details>
### Install in Windsurf
Add this to your Windsurf MCP config file. See [Windsurf MCP docs](https://docs.windsurf.com/windsurf/mcp) for more info.
```json
{
"mcpServers": {
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp@latest"]
}
}
}
```
### Install in VS Code
[<img alt="Install in VS Code (npx)" src="https://img.shields.io/badge/VS_Code-VS_Code?style=flat-square&label=Install%20Context7%20MCP&color=0098FF">](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522context7%2522%252C%2522config%2522%253A%257B%2522command%2522%253A%2522npx%2522%252C%2522args%2522%253A%255B%2522-y%2522%252C%2522%2540upstash%252Fcontext7-mcp%2540latest%2522%255D%257D%257D)
[<img alt="Install in VS Code Insiders (npx)" src="https://img.shields.io/badge/VS_Code_Insiders-VS_Code_Insiders?style=flat-square&label=Install%20Context7%20MCP&color=24bfa5">](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522context7%2522%252C%2522config%2522%253A%257B%2522command%2522%253A%2522npx%2522%252C%2522args%2522%253A%255B%2522-y%2522%252C%2522%2540upstash%252Fcontext7-mcp%2540latest%2522%255D%257D%257D)
Add this to your VS Code MCP config file. See [VS Code MCP docs](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) for more info.
```json
{
"servers": {
"Context7": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@upstash/context7-mcp@latest"]
}
}
}
```
### Install in Claude Code
Run this command. See [Claude Code MCP docs](https://docs.anthropic.com/en/docs/agents-and-tools/claude-code/tutorials#set-up-model-context-protocol-mcp) for more info.
```sh
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](https://modelcontextprotocol.io/quickstart/user) for more info.
```json
{
"mcpServers": {
"Context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp@latest"]
}
}
}
```
### Using Docker
If you prefer to run the MCP server in a Docker container:
1. **Build the Docker Image:**
First, create a `Dockerfile` in the project root (or anywhere you prefer):
<details>
<summary>Click to see Dockerfile content</summary>
```Dockerfile
FROM node:18-alpine
WORKDIR /app
# Install the latest version globally
RUN npm install -g @upstash/context7-mcp@latest
# Expose default port if needed (optional, depends on MCP client interaction)
# EXPOSE 3000
# Default command to run the server
CMD ["context7-mcp"]
```
</details>
Then, build the image using a tag (e.g., `context7-mcp`). **Make sure Docker Desktop (or the Docker daemon) is running.** Run the following command in the same directory where you saved the `Dockerfile`:
```bash
docker build -t context7-mcp .
```
2. **Configure Your MCP Client:**
Update your MCP client's configuration to use the Docker command.
*Example for a cline_mcp_settings.json:*
```json
{
"mcpServers": {
"Сontext7": {
"command": "docker",
"args": ["run", "-i", "--rm", "context7-mcp"],
"transportType": "stdio"
}
}
}
```
*Note: This is an example configuration. Please refer to the specific examples for your MCP client (like Cursor, VS Code, etc.) earlier in this README to adapt the structure (e.g., `mcpServers` vs `servers`) and server name (`context7` vs `Context7`). Also, ensure the image name in `args` matches the tag used during the `docker build` command.*
2025-04-11 10:44:37 +02:00
### Available Tools
2025-04-11 15:10:59 +02:00
- `resolve-library-id`: Resolves a general library name into a Context7-compatible library ID.
- `libraryName` (required)
2025-04-11 10:44:37 +02:00
- `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
2025-04-11 11:03:46 +02:00
Clone the project and install dependencies:
```bash
2025-04-11 11:03:46 +02:00
bun i
```
2025-04-11 10:44:37 +02:00
Build:
```bash
2025-04-11 11:03:46 +02:00
bun run build
```
2025-04-11 10:44:37 +02:00
### Local Configuration Example
2025-04-08 20:29:04 +03:00
```json
{
"mcpServers": {
"context7": {
2025-04-11 10:44:37 +02:00
"command": "npx",
"args": ["tsx", "/path/to/folder/context7-mcp/src/index.ts"]
2025-04-08 20:29:04 +03:00
}
}
}
```
### Testing with MCP Inspector
```bash
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`.
```json
{
"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.
2025-04-23 00:11:04 +03:00
## Context7 In Media
- [Better Stack: "Free Tool Makes Cursor 10x Smarter"](https://youtu.be/52FC3qObp9E)
2025-04-23 00:11:04 +03:00
- [Cole Medin: "This is Hands Down the BEST MCP Server for AI Coding Assistants"](https://www.youtube.com/watch?v=G7gK8H6u7Rs)
- [Income stream surfers: "Context7 + SequentialThinking MCPs: Is This AGI?"](https://www.youtube.com/watch?v=-ggvzyLpK6o)
- [Julian Goldie SEO: "Context7: New MCP AI Agent Update"](https://www.youtube.com/watch?v=CTZm6fBYisc)
- [JeredBlu: "Context 7 MCP: Get Documentation Instantly + VS Code Setup"](https://www.youtube.com/watch?v=-ls0D-rtET4)
- [Income stream surfers: "Context7: The New MCP Server That Will CHANGE AI Coding"](https://www.youtube.com/watch?v=PS-2Azb-C3M)
## Star History
[![Star History Chart](https://api.star-history.com/svg?repos=upstash/context7&type=Date)](https://www.star-history.com/#upstash/context7&Date)
## License
MIT