Zum Inhalt

Context7 MCP Server Spickzettel

Überblick

Context7 ist ein Model Context Protocol (MCP) Server, der KI-Coding-Tools Zugriff auf aktuelle, versionsspezifische Dokumentationen für über 1000 Bibliotheken und Frameworks bietet. Er eliminiert veraltete Informationen, indem er Dokumentationen direkt von offiziellen Quellen abruft.

⚠️ Hinweis: Erfordert MCP-kompatible KI-Tools (Claude, Cursor, Windsurf, etc.)

Installation

NPM-Installation

# Install globally
npm install -g @upstash/context7

# Install locally in project
npm install @upstash/context7

# Verify installation
npx @upstash/context7 --version

Docker-Installation

# 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

Aus Quellcode

# 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-Konfiguration

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

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

Verfügbare 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"

Unterstützte Bibliotheken

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

Datenbanken

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

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

Cloud-Dienste

# 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

Verwendungsbeispiele

Grundlegende Dokumentationssuche

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

Versionsspezifische Dokumentation

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

Themenorientierte Abfragen

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

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

Bibliotheksübergreifende Vergleiche

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

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

Konfigurationsoptionen

Umgebungsvariablen

# 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

Konfigurationsdatei

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 \\\\} \\\\}### Benutzerdefinierte Bibliotheksquellen json // Add custom documentation sources \\\\{ "customSources": [ \\\\{ "id": "/company/internal-lib", "name": "Internal Library", "url": "https://docs.company.com/internal-lib", "type": "markdown" \\\\} ] \\\\}## Erweiterte Nutzung ```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 \\}); ### Programmatischer Zugriffjavascript // 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);

\\} \\}); ### Benutzerdefinierter MCP-Serverjavascript // 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(); \\} \\}; \\} ### Integration mit Build-Toolsbash

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"\\}' ## Monitoring und Debuggingjson \\{ "logging": \\{ "level": "info", "format": "json", "outputs": ["console", "file"], "file": \\{ "path": "./logs/context7.log", "maxSize": "10MB", "maxFiles": 5 \\} \\} \\} ### Gesundheitschecksjavascript // 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 \\}); ### Logging-Konfigurationbash

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 ### Leistungsüberwachungbash

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 ## Fehlerbehebungbash

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 ### Häufige Problemebash

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" ### Debug-Modusjson \\{ "security": \\{ "cors": \\{ "enabled": true, "origins": ["https://trusted-domain.com"] \\}, "rateLimit": \\{ "enabled": true, "requests": 100, "window": 60 \\}, "authentication": \\{ "required": true, "methods": ["apiKey", "jwt"] \\} \\} \\} ### Cache-Verwaltungjson \\{ "cache": \\{ "strategy": "lru", "maxSize": 1000, "ttl": 3600, "compression": true, "persistence": \\{ "enabled": true, "path": "./cache" \\} \\} \\} ## Sicherheitsaspektejavascript // 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); ```### API-Schlüssel-Verwaltung https://github.com/upstash/context7##

Netzwerksicherheit

https://modelcontextprotocol.io#

Leistungsoptimierung

https://docs.upstash.com##

Caching-Strategien

https://docs.anthropic.com/claude/docs/mcp##

Anfrage-Optimierung

https://docs.cursor.com/mcp#

Ressourcen

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