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

CI Go Report Card License: MIT Stars MCP

open-context MCP server

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
  1. Encuentra tu archivo de configuración:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. Añade open-context:

    {
      "mcpServers": {
        "open-context": {
          "command": "/path/to/open-context"
        }
      }
    }
    
  3. Reinicia Claude Desktop

Cursor
  1. Ve a Configuración > Herramientas e Integraciones > Servidores MCP

  2. Añade esta configuración:

    {
      "open-context": {
        "command": "/path/to/open-context"
      }
    }
    
  3. 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)

  1. Inicia el servidor en tu máquina remota:

    ./open-context --transport http --host 0.0.0.0 --port 9011
    
  2. 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 estado
  • POST /message - Mensajes MCP JSON-RPC
  • GET /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:

  1. Descubrirá la documentación disponible
  2. Usará las herramientas apropiadas
  3. Obtendrá información de fuentes oficiales
  4. 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

HerramientaDescripción
open-context_search_docsBuscar en toda la documentación
open-context_get_docsObtener un tema de documentación específico
open-context_list_docsListar toda la documentación disponible

Obtenedores de Versiones y Paquetes

HerramientaQué ObtieneEjemplo
open-context_get_go_infoVersiones y paquetes de GoGo 1.21, github.com/gin-gonic/gin
open-context_get_npm_infoPaquetes npmexpress, react
open-context_get_python_infoPaquetes de Python (PyPI)requests, django, numpy
open-context_get_rust_infoCrates de Rust (crates.io)serde, tokio, actix-web
open-context_get_node_infoVersiones de Node.js20.0.0, 18.17.0
open-context_get_typescript_infoVersiones de TypeScript5.0.0, 4.9.5
open-context_get_react_infoVersiones de React18.0.0, 17.0.2
open-context_get_nextjs_infoVersiones de Next.js14.0.0, 13.5.0
open-context_get_ansible_infoVersiones de Ansible2.15.0
open-context_get_terraform_infoVersiones de Terraform1.6.0
open-context_get_jenkins_infoVersiones de Jenkins2.420
open-context_get_kubernetes_infoVersiones de Kubernetes1.28.0
open-context_get_helm_infoVersiones de Helm3.13.0
open-context_get_docker_imageImágenes de Docker Hubgolang:1.25-alpine
open-context_get_github_actionGitHub Actionsactions/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:

  1. Añade la definición de la herramienta en server/server.go → handleToolsList()
  2. Implementa el manejador en server/server.go → handleToolCall()
  3. 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úsqueda
  • language (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úsqueda
  • language (opcional): Lenguaje de programación
  • topic (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 biblioteca
  • importPath (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