open-context
Servidor MCP de alto rendimiento que proporciona documentación actualizada para Go, npm, Python, Rust, Docker, Kubernetes, Terraform y más — obtenida de fuentes oficiales, no de datos de entrenamiento.
Documentación
Open Context
Un servidor MCP (Model Context Protocol) de alto rendimiento que proporciona documentación actualizada para lenguajes de programación, frameworks y herramientas. Construido en Go para velocidad y simplicidad.
¿Qué es Open Context?
Open Context obtiene y almacena en caché documentación de fuentes oficiales, poniéndola a disposición de asistentes de IA como Claude de forma instantánea. En lugar de depender de datos de entrenamiento desactualizados, obtén acceso en tiempo real a:
- Go: Documentación de la biblioteca estándar, paquetes de terceros, notas de versiones
- JavaScript/TypeScript: Paquetes npm, Node.js, React, versiones de Next.js
- Python: Paquetes PyPI con instrucciones de instalación y metadatos del paquete
- Rust: Paquetes de Crates.io con información de versiones y enlaces de documentación
- Herramientas DevOps: Docker, Kubernetes, Helm, Terraform, Ansible, Jenkins, GitHub Actions
- Y más: Fácil de extender con cualquier lenguaje o framework
Características Principales
- Siempre Actualizado: Obtiene de fuentes oficiales (pkg.go.dev, npm registry, PyPI, crates.io, GitHub releases, GitHub API, Docker Hub)
- Caché Inteligente: Caché local con TTL configurable (predeterminado: 7 días)
- Rápido y Ligero: Escrito en Go, se inicia en milisegundos
- Dos Modos de Transporte: stdio para uso local, HTTP para servidores remotos
- MCP Nativo: Integración perfecta con Claude Desktop, Cursor y Claude Code
Inicio Rápido
1. Instalación
Usando Homebrew (macOS/Linux):
brew tap incu6us/homebrew-tap
brew install open-context
Usando el script de instalación:
curl -fsSL https://raw.githubusercontent.com/incu6us/open-context/master/install.sh | bash
O compilar desde el código fuente:
git clone https://github.com/incu6us/open-context
cd open-context
go build -o open-context
Requisitos previos para compilar: Go 1.25 o superior
2. Configura Tu Cliente MCP
Elige tu cliente y sigue las instrucciones de configuración:
Claude Desktop
-
Encuentra tu archivo de configuración:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
Añade open-context:
{ "mcpServers": { "open-context": { "command": "/path/to/open-context" } } } -
Reinicia Claude Desktop
Cursor
-
Ve a Configuración > Herramientas e Integraciones > Servidores MCP
-
Añade esta configuración:
{ "open-context": { "command": "/path/to/open-context" } } -
Reinicia Cursor
Claude Code
Opción A: Binario local (transporte stdio)
claude-code mcp add open-context /path/to/open-context
Opción B: Servidor remoto (transporte HTTP)
-
Inicia el servidor en tu máquina remota:
./open-context --transport http --host 0.0.0.0 --port 9011 -
Instala mediante la CLI de Claude:
claude mcp add --transport http open-context http://your-server.com:9011
3. Empieza a Usarlo
En tu conversación con Claude, simplemente escribe:
use open-context for go
o
create dockerfile using latest alpine image. use open-context
¡Claude obtendrá y usará automáticamente la documentación para responder tus preguntas!
Opciones de Instalación
Homebrew (macOS/Linux)
brew tap incu6us/homebrew-tap
brew install open-context
Script de Instalación Rápida
El script de instalación automatiza todo:
curl -fsSL https://raw.githubusercontent.com/incu6us/open-context/master/install.sh | bash
Instalación Manual
# Clone repository
git clone https://github.com/incu6us/open-context
cd open-context
# Option 1: Build manually
go build -o open-context
# Option 2: Use make
make build
# Or: make setup (builds + shows next steps)
Instalar mediante go install
go install github.com/incu6us/open-context@latest
El binario estará en $GOPATH/bin/open-context (normalmente ~/go/bin/open-context).
Configuración
Open Context crea un archivo de configuración en ~/.open-context/config.yaml en la primera ejecución.
Configuración de Caché
# How long to keep cached documentation
# Formats: "7d" (days), "24h" (hours), "30m" (minutes), "0" (never expire)
cache_ttl: 7d
Ejemplos de configuración:
- Trabajo sin conexión:
cache_ttl: 0(nunca expira) - Actualizaciones diarias:
cache_ttl: 24h - Actualizaciones semanales:
cache_ttl: 7d(predeterminado)
Editar Configuración
# Use your preferred editor
nano ~/.open-context/config.yaml
code ~/.open-context/config.yaml
vim ~/.open-context/config.yaml
Los cambios se aplican en el siguiente inicio del servidor.
Uso
Modos del Servidor
Transporte stdio (predeterminado) - Para clientes MCP locales:
./open-context
Transporte HTTP - Para acceso remoto o clientes basados en HTTP:
# Default (localhost:9011)
./open-context --transport http
# Custom host and port
./open-context --transport http --host 0.0.0.0 --port 3000
# Short flags
./open-context -t http -H 0.0.0.0 -p 9011
Endpoints HTTP:
GET /health- Verificación de estadoPOST /message- Mensajes MCP JSON-RPCGET /sse- Flujo de eventos del servidor (Server-Sent Events)
Gestión de Caché
# Clear cache (full flag)
./open-context --clear-cache
# Clear cache (short alias)
./open-context --cc
Esto elimina ~/.open-context/cache/. Los datos se volverán a obtener en el siguiente uso.
Otros Comandos
# Show help
./open-context --help
# Show version
./open-context --version
Uso con Claude
Activación Simple
Una vez configurado, activa la documentación en tu conversación:
use open-context for go
use open-context for typescript
use open-context
Claude automáticamente:
- Descubrirá la documentación disponible
- Usará las herramientas apropiadas
- Obtendrá información de fuentes oficiales
- Almacenará los resultados en caché localmente
Consultas de Ejemplo
Documentación de paquetes Go:
What's new in Go 1.21?
Show me how to use github.com/gin-gonic/gin
Paquetes npm:
Get the latest version of express
Show me React 18 features
Herramientas DevOps:
What's in Kubernetes 1.28?
Show me Terraform 1.6 changes
Get the golang:1.25-alpine Docker image details
Consulta USING_PROMPTS.md para más ejemplos.
Herramientas Disponibles
El servidor proporciona 15 herramientas MCP para obtener documentación:
Herramientas de Documentación
| Herramienta | Descripción |
|---|---|
open-context_search_docs | Buscar en toda la documentación |
open-context_get_docs | Obtener un tema de documentación específico |
open-context_list_docs | Listar toda la documentación disponible |
Obtenedores de Versiones y Paquetes
| Herramienta | Qué Obtiene | Ejemplo |
|---|---|---|
open-context_get_go_info | Versiones y paquetes de Go | Go 1.21, github.com/gin-gonic/gin |
open-context_get_npm_info | Paquetes npm | express, react |
open-context_get_python_info | Paquetes de Python (PyPI) | requests, django, numpy |
open-context_get_rust_info | Crates de Rust (crates.io) | serde, tokio, actix-web |
open-context_get_node_info | Versiones de Node.js | 20.0.0, 18.17.0 |
open-context_get_typescript_info | Versiones de TypeScript | 5.0.0, 4.9.5 |
open-context_get_react_info | Versiones de React | 18.0.0, 17.0.2 |
open-context_get_nextjs_info | Versiones de Next.js | 14.0.0, 13.5.0 |
open-context_get_ansible_info | Versiones de Ansible | 2.15.0 |
open-context_get_terraform_info | Versiones de Terraform | 1.6.0 |
open-context_get_jenkins_info | Versiones de Jenkins | 2.420 |
open-context_get_kubernetes_info | Versiones de Kubernetes | 1.28.0 |
open-context_get_helm_info | Versiones de Helm | 3.13.0 |
open-context_get_docker_image | Imágenes de Docker Hub | golang:1.25-alpine |
open-context_get_github_action | GitHub Actions | actions/checkout, docker/setup-buildx-action |
Todas las herramientas automáticamente:
- Obtienen de fuentes oficiales
- Almacenan resultados en caché localmente
- Devuelven documentación formateada en Markdown
- Incluyen ejemplos de instalación/uso
Para documentación detallada de herramientas, consulta la Referencia de Herramientas a continuación.
Temas Avanzados
Añadir Documentación Personalizada
Puedes añadir documentación personalizada para cualquier lenguaje o framework.
1. Crea la estructura de directorios:
mkdir -p data/jenkins/topics
2. Crea el archivo de metadatos (data/jenkins/metadata.json):
{
"name": "jenkins",
"displayName": "Jenkins",
"description": "Jenkins CI/CD automation documentation"
}
3. Añade temas de documentación (data/jenkins/topics/pipeline-basics.json):
{
"id": "pipeline-basics",
"title": "Jenkins Pipeline Basics",
"description": "Introduction to Jenkins declarative pipelines",
"keywords": ["pipeline", "jenkinsfile", "ci", "cd"],
"content": "# Jenkins Pipeline Basics\n\n[Your markdown content here]"
}
4. Reinicia el servidor
Consulta data/README.md para la guía completa del formato de documentación.
Desarrollo
Ejecutar pruebas:
# Quick automated test
./test.sh
# Unit tests
go test ./...
# With race detector
go test -race ./...
Añadir una nueva herramienta MCP:
- Añade la definición de la herramienta en
server/server.go→handleToolsList() - Implementa el manejador en
server/server.go→handleToolCall() - Añade el método del proveedor en
docs/provider.go(si es necesario)
Estructura del proyecto:
open-context/
├── main.go # Entry point & CLI
├── server/
│ ├── server.go # MCP protocol & tool handlers
│ └── http.go # HTTP transport
├── docs/
│ └── provider.go # Documentation search & retrieval
├── fetcher/ # External source fetchers
│ ├── go_fetcher.go
│ ├── npm_fetcher.go
│ └── ...
├── cache/ # Cache management
└── data/ # Local documentation storage
Referencia de Herramientas
open-context_search_docs
Busca temas de documentación en todos los lenguajes.
Parámetros:
query(obligatorio): Consulta de búsquedalanguage(opcional): Filtrar por lenguaje (ej., "go", "typescript")
Ejemplo:
Search for "goroutines" in Go documentation
open-context_get_docs
Obtén documentación detallada para un tema específico.
Parámetros:
id(opcional): ID del tema de los resultados de búsquedalanguage(opcional): Lenguaje de programacióntopic(opcional): Nombre del tema (alternativa al ID)
Ejemplo:
Get documentation for topic "basics" in Go
open-context_list_docs
Lista todos los lenguajes y temas de documentación disponibles.
Ejemplo:
List all available documentation
open-context_get_go_info
Obtén información de versiones de Go o documentación de paquetes.
Parámetros:
type(obligatorio):"version"o"library"version(condicional): Versión de Go (ej., "1.21") para versiones, o versión de la bibliotecaimportPath(condicional): Ruta de importación (ej., "github.com/gin-gonic/gin") para bibliotecas
Ejemplos:
Get information about Go version 1.21
Get information about github.com/gin-gonic/gin
Get information about github.com/spf13/cobra version v1.8.0
Fuentes:
- Versiones: notas de versiones de go.dev
- Bibliotecas: documentación de paquetes de pkg.go.dev
Consulta GO_VERSION_LIBRARY_FEATURE.md para más detalles.
open-context_get_npm_info
Obtén información de paquetes npm.
Parámetros:
packageName(obligatorio): Nombre del paquete (ej., "express", "react")
Fuente: registro npm
open-context_get_python_info
Obtén información de paquetes de Python desde PyPI.
Parámetros:
packageName(obligatorio): Nombre del paquete (ej., "requests", "django", "numpy")version(opcional): Versión específica (predeterminado: la más reciente)
Fuente: PyPI (Python Package Index)
open-context_get_rust_info
Obtén información de crates de Rust desde crates.io.
Parámetros:
crateName(obligatorio): Nombre del crate (ej., "serde", "tokio", "actix-web")version(opcional): Versión específica (predeterminado: la más reciente)
Fuente: crates.io
open-context_get_node_info
Obtén información de versiones de Node.js.
Parámetros:
version(obligatorio): Versión de Node.js (ej., "20.0.0")
Fuente: GitHub releases
open-context_get_typescript_info
Obtén información de versiones de TypeScript.
Parámetros:
version(obligatorio): Versión de TypeScript (ej., "5.0.0")
Fuente: GitHub releases
open-context_get_react_info
Obtén información de versiones de React.
Parámetros:
version(obligatorio): Versión de React (ej., "18.0.0")
Fuente: GitHub releases
open-context_get_nextjs_info
Obtén información de versiones de Next.js.
Parámetros:
version(obligatorio): Versión de Next.js (ej., "14.0.0")
Fuente: GitHub releases
open-context_get_ansible_info
Obtén información de versiones de Ansible.
Parámetros:
version(obligatorio): Versión de Ansible (ej., "2.15.0")
Fuente: GitHub releases
open-context_get_terraform_info
Obtén información de versiones de Terraform.
Parámetros:
version(obligatorio): Versión de Terraform (ej., "1.6.0")
Fuente: GitHub releases
open-context_get_jenkins_info
Obtén información de versiones de Jenkins.
Parámetros:
version(obligatorio): Versión de Jenkins (ej., "2.420")
Fuente: GitHub releases
open-context_get_kubernetes_info
Obtén información de versiones de Kubernetes.
Parámetros:
version(obligatorio): Versión de Kubernetes (ej., "1.28.0")
Fuente: GitHub releases
open-context_get_helm_info
Obtén información de versiones de Helm.
Parámetros:
version(obligatorio): Versión de Helm (ej., "3.13.0")
Fuente: GitHub releases
open-context_get_docker_image
Obtén información de imágenes de Docker desde Docker Hub.
Parámetros:
image(obligatorio): Nombre de la imagen (ej., "golang", "nginx", "myuser/myapp")tag(obligatorio): Etiqueta de la imagen (ej., "1.25-alpine", "latest")
Ejemplo:
Get Docker image golang:1.25-alpine
Fuente: API de Docker Hub
open-context_get_github_action
Obtén información de GitHub Actions desde la API de GitHub.
Parámetros:
repository(obligatorio): Repositorio de GitHub en formato "owner/repo" (ej., "actions/checkout", "docker/setup-buildx-action")version(opcional): Versión/etiqueta específica de la acción (predeterminado: la última versión)
Ejemplo:
Get GitHub Action actions/checkout
Get GitHub Action docker/setup-buildx-action with version v2.10.0
Fuente: API de GitHub
Hoja de Ruta
- Obtención de paquetes Go desde pkg.go.dev
- Transporte HTTP para servidores remotos
- Obtenedores de versiones para herramientas principales
- Paquetes de Python (PyPI)
- Crates de Rust (crates.io)
- Documentación específica por versión
- Interfaz web para explorar documentación
Contribuciones
¡Las contribuciones son bienvenidas! Áreas en las que puedes ayudar:
- Añadir nuevos fetchers de lenguaje/framework
- Mejorar la documentación
- Añadir cobertura de pruebas
- Reportar errores o sugerir funciones
- Compartir tus casos de uso
Pruebas
Consulta TESTING.md para obtener una guía completa de pruebas.
Licencia
Licencia MIT: consulta el archivo LICENSE para más detalles.
Agradecimientos
Inspirado por context7 de Upstash.
¿Preguntas? Abre un issue en GitHub