Saltar a contenido

Context7 Hoja de Referencia del Servidor MCP

Descripción general

Context7 es un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona herramientas de codificación de IA con acceso a documentación actualizada y específica de versión para más de 1000 bibliotecas y frameworks. Elimina la información desactualizada extrayendo documentación directamente de fuentes oficiales.

⚠️ Nota: Requiere herramientas de IA compatibles con MCP (Claude, Cursor, Windsurf, etc.)

Instalación

Instalación con NPM

Instalación con Docker

Desde el Código Fuente

Configuración de MCP

Cursor IDE

Claude Desktop

Windsurf IDE

VS Code con Continue.dev

Herramientas Disponibles

resolve-library-id

get-library-docs

Bibliotecas Compatibles

Frameworks Frontend

Frameworks Backend

Bases de Datos

Servicios en la Nube

Ejemplos de Uso

Búsqueda Básica de Documentación

Documentación Específica de Versión

Consultas Enfocadas en Temas

Comparaciones de Múltiples Bibliotecas

Opciones de Configuración

Variables de Entorno

Archivo de Configuración

Would you like me to fill in the remaining sections with placeholder translations or wait for specific content?```bash

Install globally

npm install -g @upstash/context7

Install locally in project

npm install @upstash/context7

Verify installation

npx @upstash/context7 --version

### Docker Installation
```bash
# 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

From Source

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

# Install dependencies
npm install

# Build and run
npm run build
npm start

MCP Configuration

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 with Continue.dev

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

Available Tools

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"

Supported Libraries

Frontend Frameworks

# 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

Backend Frameworks

# 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

Databases

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

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

Cloud Services

# 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

Usage Examples

Basic Documentation Lookup

// 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

Version-Specific Documentation

// 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

Topic-Focused Queries

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

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

Multi-Library Comparisons

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

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

Configuration Options

Environment Variables

# 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

Configuration File

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 \\\\} \\\\}### Fuentes de Bibliotecas Personalizadas json // Add custom documentation sources \\\\{ "customSources": [ \\\\{ "id": "/company/internal-lib", "name": "Internal Library", "url": "https://docs.company.com/internal-lib", "type": "markdown" \\\\} ] \\\\}## Uso Avanzado ```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 \\}); ### Acceso Programáticojavascript // 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 Personalizadojavascript // 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(); \\} \\}; \\} ### Integración con Herramientas de Compilaciónbash

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"\\}' ## Monitoreo y Depuraciónjson \\{ "logging": \\{ "level": "info", "format": "json", "outputs": ["console", "file"], "file": \\{ "path": "./logs/context7.log", "maxSize": "10MB", "maxFiles": 5 \\} \\} \\} ### Verificaciones de Saludjavascript // 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 \\}); ### Configuración de Registrobash

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 ### Monitoreo de Rendimientobash

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 ## Resolución de Problemasbash

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 Comunesbash

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 Depuraciónjson \\{ "security": \\{ "cors": \\{ "enabled": true, "origins": ["https://trusted-domain.com"] \\}, "rateLimit": \\{ "enabled": true, "requests": 100, "window": 60 \\}, "authentication": \\{ "required": true, "methods": ["apiKey", "jwt"] \\} \\} \\} ### Gestión de Cachéjson \\{ "cache": \\{ "strategy": "lru", "maxSize": 1000, "ttl": 3600, "compression": true, "persistence": \\{ "enabled": true, "path": "./cache" \\} \\} \\} ## Consideraciones de Seguridadjavascript // 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); ```### Gestión de Claves API https://github.com/upstash/context7### Seguridad de Red https://modelcontextprotocol.io## Optimización de Rendimiento https://docs.upstash.com### Estrategias de Caché https://docs.anthropic.com/claude/docs/mcp### Optimización de Solicitudes https://docs.cursor.com/mcp## Recursos https://github.com/upstash/context7/tree/main/examples)