Pular para o conteúdo

Folha de Referência do Servidor Context7 MCP

Visão Geral

Context7 é um servidor de Protocolo de Contexto de Modelo (MCP) que fornece ferramentas de codificação de IA com acesso a documentação atualizada e específica de versão para mais de 1000 bibliotecas e frameworks. Ele elimina informações desatualizadas, puxando documentação diretamente de fontes oficiais.

⚠️ Nota: Requer ferramentas de IA compatíveis com MCP (Claude, Cursor, Windsurf, etc.)

Instalação

Instalação via NPM

# Install globally
npm install -g @upstash/context7

# Install locally in project
npm install @upstash/context7

# Verify installation
npx @upstash/context7 --version

Instalação com Docker

# Pull Docker image
docker pull mcp/context7

# Run Context7 server
docker run -p 3000:3000 mcp/context7

# Run with custom configuration
docker run -p 3000:3000 -v $(pwd)/config:/app/config mcp/context7

A partir do Código-Fonte

# Clone repository
git clone https://github.com/upstash/context7.git
cd context7

# Install dependencies
npm install

# Build and run
npm run build
npm start

Configuração do MCP

Cursor IDE

// Add to Cursor MCP settings
\\\\{
  "mcpServers": \\\\{
    "context7": \\\\{
      "command": "npx",
      "args": ["@upstash/context7"],
      "env": \\\\{
        "CONTEXT7_API_KEY": "your-api-key"
      \\\\}
    \\\\}
  \\\\}
\\\\}

Claude Desktop

// ~/.claude/claude_desktop_config.json
\\\\{
  "mcpServers": \\\\{
    "context7": \\\\{
      "command": "npx",
      "args": ["@upstash/context7"],
      "env": \\\\{
        "CONTEXT7_API_KEY": "your-api-key"
      \\\\}
    \\\\}
  \\\\}
\\\\}

Windsurf IDE

// Add to Windsurf MCP configuration
\\\\{
  "mcpServers": \\\\{
    "context7": \\\\{
      "command": "npx",
      "args": ["@upstash/context7", "--port", "3000"],
      "env": \\\\{
        "CONTEXT7_API_KEY": "your-api-key"
      \\\\}
    \\\\}
  \\\\}
\\\\}

VS Code com Continue.dev

// .continue/config.json
\\\\{
  "mcpServers": [
    \\\\{
      "name": "context7",
      "command": "npx",
      "args": ["@upstash/context7"],
      "env": \\\\{
        "CONTEXT7_API_KEY": "your-api-key"
      \\\\}
    \\\\}
  ]
\\\\}

Ferramentas Disponíveis

resolve-library-id

# Resolve library name to Context7 ID
# Input: General library name
# Output: Context7-compatible library ID

# Example usage in AI chat:
"Find the Context7 ID for React"
# Returns: /facebook/react

get-library-docs

# Fetch documentation for specific library
# Parameters:
# - context7CompatibleLibraryID (required)
# - topic (optional)
# - tokens (optional, default: 10000)

# Example usage in AI chat:
"Get React documentation for hooks"
# Uses: /facebook/react with topic "hooks"

Bibliotecas Suportadas

Frameworks Frontend

# React ecosystem
/facebook/react
/vercel/next.js
/gatsbyjs/gatsby
/vuejs/vue
/nuxt/nuxt
/angular/angular

# State management
/reduxjs/redux
/pmndrs/zustand
/mobxjs/mobx
/vuejs/pinia

Frameworks Backend

# Node.js frameworks
/expressjs/express
/fastify/fastify
/nestjs/nest
/koajs/koa

# Python frameworks
/django/django
/pallets/flask
/fastapi/fastapi
/tornadoweb/tornado

# Other languages
/spring-projects/spring-boot
/rails/rails
/laravel/laravel

Bancos de Dados

# SQL databases
/mongodb/docs
/prisma/prisma
/typeorm/typeorm
/sequelize/sequelize

# NoSQL databases
/redis/redis
/elastic/elasticsearch
/apache/cassandra

Serviços em Nuvem

# AWS services
/aws/aws-sdk-js
/aws/aws-cdk
/aws/aws-cli

# Google Cloud
/googleapis/google-cloud-node
/firebase/firebase-js-sdk

# Azure
/azure/azure-sdk-for-js
/azure/azure-cli

Exemplos de Uso

Consulta Básica de Documentação

// In AI chat with Context7 enabled:
"Show me the latest React useState documentation"

// Context7 automatically:
// 1. Resolves "React" to /facebook/react
// 2. Fetches current useState documentation
// 3. Provides up-to-date examples and API reference

Documentação Específica de Versão

// Get specific version documentation
"Get Next.js 14 documentation for app router"

// Context7 provides:
// - Version 14 specific features
// - App router implementation details
// - Migration guides from pages router

Consultas Focadas em Tópicos

// Focus on specific topics
"Get MongoDB documentation for aggregation pipelines"

// Context7 returns:
// - Aggregation framework documentation
// - Pipeline stage references
// - Performance optimization tips

Comparações entre Múltiplas Bibliotecas

// Compare similar libraries
"Compare Prisma and TypeORM query builders"

// Context7 fetches:
// - Current Prisma query documentation
// - Current TypeORM query documentation
// - Enables accurate comparison

Opções de Configuração

Variáveis de Ambiente

# API configuration
export CONTEXT7_API_KEY="your-api-key"
export CONTEXT7_PORT=3000
export CONTEXT7_HOST="localhost"

# Cache settings
export CONTEXT7_CACHE_TTL=3600
export CONTEXT7_CACHE_SIZE=1000

# Rate limiting
export CONTEXT7_RATE_LIMIT=100
export CONTEXT7_RATE_WINDOW=60

Arquivo de Configuração

Would you like me to continue with the remaining sections?```json // context7.config.json \\{ “server”: \\{ “port”: 3000, “host”: “localhost” \\}, “cache”: \\{ “ttl”: 3600, “maxSize”: 1000, “enabled”: true \\}, “rateLimit”: \\{ “requests”: 100, “window”: 60 \\}, “libraries”: \\{ “autoUpdate”: true, “updateInterval”: 86400 \\} \\}

```json
// Add custom documentation sources
\\\\{
  "customSources": [
    \\\\{
      "id": "/company/internal-lib",
      "name": "Internal Library",
      "url": "https://docs.company.com/internal-lib",
      "type": "markdown"
    \\\\}
  ]
\\\\}
```## Uso Avançado
```javascript
// Use Context7 programmatically
const \\\\{ Context7Client \\\\} = require('@upstash/context7');

const client = new Context7Client(\\\\{
  apiKey: process.env.CONTEXT7_API_KEY
\\\\});

// Resolve library ID
const libraryId = await client.resolveLibraryId('React');
console.log(libraryId); // /facebook/react

// Get documentation
const docs = await client.getLibraryDocs(\\\\{
  libraryId: '/facebook/react',
  topic: 'hooks',
  tokens: 5000
\\\\});
```### Acesso Programático
```javascript
// Create custom MCP server with Context7
const \\\\{ MCPServer \\\\} = require('@modelcontextprotocol/sdk');
const \\\\{ Context7Client \\\\} = require('@upstash/context7');

const server = new MCPServer(\\\\{
  name: 'custom-context7',
  version: '1.0.0'
\\\\});

const context7 = new Context7Client();

server.addTool(\\\\{
  name: 'get-docs',
  description: 'Get documentation with custom processing',
  inputSchema: \\\\{
    type: 'object',
    properties: \\\\{
      library: \\\\{ type: 'string' \\\\},
      topic: \\\\{ type: 'string' \\\\}
    \\\\}
  \\\\},
  handler: async (\\\\{ library, topic \\\\}) => \\\\{
    const libraryId = await context7.resolveLibraryId(library);
    const docs = await context7.getLibraryDocs(\\\\{
      libraryId,
      topic,
      tokens: 8000
    \\\\});

    // Custom processing
    return processDocumentation(docs);
  \\\\}
\\\\});
```### Servidor MCP Personalizado
```javascript
// Webpack plugin for Context7
class Context7WebpackPlugin \\\\{
  apply(compiler) \\\\{
    compiler.hooks.beforeCompile.tapAsync('Context7Plugin', async (params, callback) => \\\\{
      // Update documentation cache before build
      await updateContext7Cache();
      callback();
    \\\\});
  \\\\}
\\\\}

// Vite plugin
export function context7Plugin() \\\\{
  return \\\\{
    name: 'context7',
    buildStart() \\\\{
      // Initialize Context7 for development
      initializeContext7();
    \\\\}
  \\\\};
\\\\}
```### Integração com Ferramentas de Build
```bash
# Check server status
curl http://localhost:3000/health

# Check library availability
curl http://localhost:3000/libraries

# Test library resolution
curl -X POST http://localhost:3000/resolve \
  -H "Content-Type: application/json" \
  -d '\\\\{"libraryName": "React"\\\\}'
```## Monitoramento e Depuração
```json
\\\\{
  "logging": \\\\{
    "level": "info",
    "format": "json",
    "outputs": ["console", "file"],
    "file": \\\\{
      "path": "./logs/context7.log",
      "maxSize": "10MB",
      "maxFiles": 5
    \\\\}
  \\\\}
\\\\}
```### Verificações de Saúde
```javascript
// Monitor Context7 performance
const \\\\{ Context7Monitor \\\\} = require('@upstash/context7/monitor');

const monitor = new Context7Monitor(\\\\{
  metricsInterval: 60000,
  alertThresholds: \\\\{
    responseTime: 5000,
    errorRate: 0.05
  \\\\}
\\\\});

monitor.on('alert', (alert) => \\\\{
  console.log('Context7 Alert:', alert);
  // Send to monitoring system
\\\\});
```### Configuração de Registro (Logging)
```bash
# Server not starting
# Check port availability
netstat -an|grep 3000

# Check configuration
npx @upstash/context7 --validate-config

# Library not found
# Update library index
npx @upstash/context7 --update-libraries

# Slow responses
# Check cache status
curl http://localhost:3000/cache/stats
```### Monitoramento de Desempenho
```bash
# Enable debug logging
export CONTEXT7_DEBUG=true
npx @upstash/context7

# Verbose output
npx @upstash/context7 --verbose

# Test specific library
npx @upstash/context7 --test-library /facebook/react
```## Resolução de Problemas
```bash
# Clear cache
curl -X DELETE http://localhost:3000/cache

# Warm cache for popular libraries
curl -X POST http://localhost:3000/cache/warm

# Cache statistics
curl http://localhost:3000/cache/stats
```### Problemas Comuns
```bash
# Use environment variables
export CONTEXT7_API_KEY="$(cat ~/.context7/api-key)"

# Rotate API keys regularly
npx @upstash/context7 --rotate-key

# Restrict API access
export CONTEXT7_ALLOWED_ORIGINS="https://your-domain.com"
```### Modo de Depuração
```json
\\\\{
  "security": \\\\{
    "cors": \\\\{
      "enabled": true,
      "origins": ["https://trusted-domain.com"]
    \\\\},
    "rateLimit": \\\\{
      "enabled": true,
      "requests": 100,
      "window": 60
    \\\\},
    "authentication": \\\\{
      "required": true,
      "methods": ["apiKey", "jwt"]
    \\\\}
  \\\\}
\\\\}
```### Gerenciamento de Cache
```json
\\\\{
  "cache": \\\\{
    "strategy": "lru",
    "maxSize": 1000,
    "ttl": 3600,
    "compression": true,
    "persistence": \\\\{
      "enabled": true,
      "path": "./cache"
    \\\\}
  \\\\}
\\\\}
```## Considerações de Segurança
```javascript
// Batch requests for better performance
const batchRequests = [
  \\\\{ library: 'React', topic: 'hooks' \\\\},
  \\\\{ library: 'Next.js', topic: 'routing' \\\\},
  \\\\{ library: 'TypeScript', topic: 'interfaces' \\\\}
];

const results = await context7.batchGetDocs(batchRequests);
```### Gerenciamento de Chaves de API
https://github.com/upstash/context7##

# Segurança de Rede
https://modelcontextprotocol.io#

# Otimização de Desempenho
https://docs.upstash.com##

# Estratégias de Cache
https://docs.anthropic.com/claude/docs/mcp##

# Otimização de Requisições
https://docs.cursor.com/mcp#

# Recursos
https://github.com/upstash/context7/tree/main/examples)