代码文档更新服务

Context7 MCP 是一款为开发者提供最新代码文档和示例的服务,通过集成到开发环境中,确保LLM生成的代码基于最新的库文档。

  • by antonioevans
  • 本地部署
  • 更新于
在 GitHub 查看 antonioevans/context7

使用说明

Context7 MCP-任何提示的最新代码文档

❌ 无上下文7

LLM依赖于您使用的库的过时或通用信息。你得到:

  • ❌ 代码示例已经过时,并且基于一年前的训练数据
  • ❌ 幻觉式的API甚至不存在
  • ❌ 旧软件包版本的通用答案

✅ 与上下文7

Context7MCP直接从源代码中提取最新的、特定于版本的文档和代码示例,并将其直接放置在您的提示符中。

添加 use context7 根据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将最新的代码示例和文档直接提取到LLM的上下文中。

  • 1.️⃣ 自然地写下你的提示
  • 2.️⃣ 告诉LLM use context7
  • 3.️⃣ 获取可用代码答案

没有标签切换,没有不存在的幻觉API,没有过时的代码生成。

🛠️ 入门指南

需求

  • Node.js>=v18.0.0
  • 光标、Windsurf、Claude Desktop或其他MCP客户端

通过Smithery安装

通过以下方式自动安装克劳德桌面的Context7 MCP服务器 史密瑟里:

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

在游标中安装

首选 Settings -> Cursor Settings -> MCP -> Add new global MCP server

将以下配置粘贴到游标中 ~/.cursor/mcp.json 文件是推荐的方法。您还可以通过创建以下内容在特定项目中安装 .cursor/mcp.json 在您的项目文件夹中。看 光标MCP文档 了解更多信息。

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

安装在Windsurf中

将此添加到您的Windsurf MCP配置文件中。看 Windsurf MCP文件 了解更多信息。

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

在VS代码中安装

将此添加到您的VS Code MCP配置文件中。看 VS代码MCP文档 了解更多信息。

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

在Zed中安装

它可以通过以下方式安装 Zed扩展 或者你可以把它添加到你的Zed中 settings.json。参见 Zed上下文服务器文档 了解更多信息。

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

在Claude代码中安装

运行此命令。看 克劳德代码MCP文档 了解更多信息。

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

在Claude桌面中安装

将此添加到您的Claude桌面 claude_desktop_config.json 文件。看 克劳德桌面MCP文档 了解更多信息。

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

使用Docker

如果你更喜欢在Docker容器中运行MCP服务器:

  1. 构建Docker镜像:

    首先,创建一个 Dockerfile 在项目根目录中(或您喜欢的任何位置):

    Click to see Dockerfile content
    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"]
    

    然后使用标签(例如。, context7-mcp). 确保Docker桌面(或Docker守护进程)正在运行。 在保存的同一目录中运行以下命令 Dockerfile:

    docker build -t context7-mcp .
    
  2. 配置您的MCP客户端:

    更新MCP客户端的配置以使用Docker命令。

    cline_mcp_settings.json示例:

    {
      "mcpServers": {
        "Сontext7": {
        "autoApprove": [],
        "disabled": false,
        "timeout": 60,
          "command": "docker",
          "args": ["run", "-i", "--rm", "context7-mcp"],
          "transportType": "stdio"
        }
      }
    }
    

    注意:这是一个示例配置。请参阅本自述中前面的MCP客户端的具体示例(如Cursor、VS Code等),以调整结构(例如。, mcpServers 兽医 servers).此外,请确保图像名称在 args 匹配期间使用的标签 docker build 命令。

环境变量

  • DEFAULT_MINIMUM_TOKENS:设置文档检索的最小令牌计数(默认值:10000)。

示例:

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

可用工具

  • resolve-library-id:将常规库名称解析为与Context7兼容的库ID。
    • libraryName (必填)
  • get-library-docs:使用与Context7兼容的库ID获取库的文档。
    • context7CompatibleLibraryID (必填)
    • topic (可选):将文档集中在特定主题上(例如,“路由”、“钩子”)
    • tokens (可选,默认10000):要返回的最大令牌数。值小于配置值 DEFAULT_MINIMUM_TOKENS 值或默认值10000会自动增加到该值。

发展

克隆项目并安装依赖项:

bun i

构建:

bun run build

本地配置示例

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

MCP检验员测试

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

故障排除

ERR_MODULE_NOT_FOUND

如果您看到此错误,请尝试使用 bunx 而不是 npx.

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

这通常可以解决模块解析问题,特别是在以下环境中 npx 无法正确安装或解析软件包。

ESM解决问题

如果您遇到以下错误: Error: Cannot find module 'uriTemplate.js' 试着用 --experimental-vm-modules 标志:

{
  "mcpServers": {
    "context7": {
      "command": "npx",
      "args": [
        "-y",
        "--node-options=--experimental-vm-modules",
        "@upstash/context7-mcp@1.0.6"
      ]
    }
  }
}

MCP客户端错误

  1. 尝试删除 @latest 从包名称。

  2. 尝试使用 bunx 作为一种替代方案。

  3. 尝试使用 deno 作为一种替代方案。

  4. 确保您使用的是Node v18或更高版本,以获得本机fetch支持 npx.

免责声明

Context7项目是由社区贡献的,虽然我们努力保持高质量,但我们无法保证所有图书馆文档的准确性、完整性或安全性。Context7中列出的项目由其各自的所有者开发和维护,而不是由Context7开发和维护。如果您遇到任何可疑、不恰当或可能有害的内容,请使用项目页面上的“报告”按钮立即通知我们。我们认真对待所有报告,并将及时审查标记的内容,以维护我们平台的完整性和安全性。通过使用Context7,您承认您可以自行决定并承担风险。

情境7媒体

明星历史

许可证

麻省理工学院