open-context
Um servidor MCP de alto desempenho que fornece documentação atualizada para Go, npm, Python, Rust, Docker, Kubernetes, Terraform e mais — obtida de fontes oficiais, não de dados de treinamento.
Documentação
Open Context
Um servidor MCP (Model Context Protocol) de alto desempenho que fornece documentação atualizada para linguagens de programação, frameworks e ferramentas. Construído em Go para velocidade e simplicidade.
O que é o Open Context?
O Open Context busca e armazena em cache documentação de fontes oficiais, tornando-a instantaneamente disponível para assistentes de IA como o Claude. Em vez de depender de dados de treinamento desatualizados, tenha acesso em tempo real a:
- Go: Documentação da biblioteca padrão, pacotes de terceiros, notas de versão
- JavaScript/TypeScript: Pacotes npm, Node.js, React, versões do Next.js
- Python: Pacotes PyPI com instruções de instalação e metadados do pacote
- Rust: Pacotes do crates.io com informações de versão e links de documentação
- Ferramentas de DevOps: Docker, Kubernetes, Helm, Terraform, Ansible, Jenkins, GitHub Actions
- E mais: Fácil de estender com qualquer linguagem ou framework
Principais Recursos
- Sempre Atualizado: Busca em fontes oficiais (pkg.go.dev, registro npm, PyPI, crates.io, GitHub releases, GitHub API, Docker Hub)
- Cache Inteligente: Cache local com TTL configurável (padrão: 7 dias)
- Rápido e Leve: Escrito em Go, inicia em milissegundos
- Dois Modos de Transporte: stdio para uso local, HTTP para servidores remotos
- Nativo MCP: Integração perfeita com Claude Desktop, Cursor e Claude Code
Início Rápido
1. Instalação
Usando Homebrew (macOS/Linux):
brew tap incu6us/homebrew-tap
brew install open-context
Usando o script de instalação:
curl -fsSL https://raw.githubusercontent.com/incu6us/open-context/master/install.sh | bash
Ou compile a partir do código-fonte:
git clone https://github.com/incu6us/open-context
cd open-context
go build -o open-context
Pré-requisitos para compilar: Go 1.25 ou superior
2. Configure Seu Cliente MCP
Escolha seu cliente e siga as instruções de configuração:
Claude Desktop
-
Encontre seu arquivo de configuração:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
Adicione open-context:
{ "mcpServers": { "open-context": { "command": "/path/to/open-context" } } } -
Reinicie o Claude Desktop
Cursor
-
Vá para Configurações > Ferramentas e Integrações > Servidores MCP
-
Adicione esta configuração:
{ "open-context": { "command": "/path/to/open-context" } } -
Reinicie o Cursor
Claude Code
Opção A: Binário local (transporte stdio)
claude-code mcp add open-context /path/to/open-context
Opção B: Servidor remoto (transporte HTTP)
-
Inicie o servidor na sua máquina remota:
./open-context --transport http --host 0.0.0.0 --port 9011 -
Instale via CLI do Claude:
claude mcp add --transport http open-context http://your-server.com:9011
3. Comece a Usar
Na sua conversa com o Claude, basta digitar:
use open-context for go
ou
create dockerfile using latest alpine image. use open-context
O Claude buscará e usará automaticamente a documentação para responder suas perguntas!
Opções de Instalação
Homebrew (macOS/Linux)
brew tap incu6us/homebrew-tap
brew install open-context
Script de Instalação Rápida
O script de instalação automatiza tudo:
curl -fsSL https://raw.githubusercontent.com/incu6us/open-context/master/install.sh | bash
Instalação 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 via go install
go install github.com/incu6us/open-context@latest
O binário estará em $GOPATH/bin/open-context (geralmente ~/go/bin/open-context).
Configuração
O Open Context cria um arquivo de configuração em ~/.open-context/config.yaml na primeira execução.
Configuração de Cache
# How long to keep cached documentation
# Formats: "7d" (days), "24h" (hours), "30m" (minutes), "0" (never expire)
cache_ttl: 7d
Exemplos de configuração:
- Trabalho offline:
cache_ttl: 0(nunca expira) - Atualizações diárias:
cache_ttl: 24h - Atualizações semanais:
cache_ttl: 7d(padrão)
Editar Configuração
# Use your preferred editor
nano ~/.open-context/config.yaml
code ~/.open-context/config.yaml
vim ~/.open-context/config.yaml
As alterações entram em vigor na próxima inicialização do servidor.
Uso
Modos de Servidor
Transporte stdio (padrão) - Para clientes MCP locais:
./open-context
Transporte HTTP - Para acesso remoto ou clientes baseados em 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- Verificação de saúdePOST /message- Mensagens MCP JSON-RPCGET /sse- Fluxo de eventos do servidor (Server-Sent Events)
Gerenciamento de Cache
# Clear cache (full flag)
./open-context --clear-cache
# Clear cache (short alias)
./open-context --cc
Isso remove ~/.open-context/cache/. Os dados serão buscados novamente no próximo uso.
Outros Comandos
# Show help
./open-context --help
# Show version
./open-context --version
Usando com o Claude
Ativação Simples
Após configurado, ative a documentação na sua conversa:
use open-context for go
use open-context for typescript
use open-context
O Claude automaticamente:
- Descobrirá a documentação disponível
- Usará as ferramentas apropriadas
- Buscará informações de fontes oficiais
- Armazenará resultados em cache localmente
Exemplos de Consultas
Documentação de pacote Go:
What's new in Go 1.21?
Show me how to use github.com/gin-gonic/gin
Pacotes npm:
Get the latest version of express
Show me React 18 features
Ferramentas de DevOps:
What's in Kubernetes 1.28?
Show me Terraform 1.6 changes
Get the golang:1.25-alpine Docker image details
Veja USING_PROMPTS.md para mais exemplos.
Ferramentas Disponíveis
O servidor fornece 15 ferramentas MCP para buscar documentação:
Ferramentas de Documentação
| Ferramenta | Descrição |
|---|---|
open-context_search_docs | Pesquisar em toda a documentação |
open-context_get_docs | Obter tópico específico de documentação |
open-context_list_docs | Listar toda a documentação disponível |
Buscadores de Versão e Pacotes
| Ferramenta | O que Busca | Exemplo |
|---|---|---|
open-context_get_go_info | Versões e pacotes Go | Go 1.21, github.com/gin-gonic/gin |
open-context_get_npm_info | Pacotes npm | express, react |
open-context_get_python_info | Pacotes Python (PyPI) | requests, django, numpy |
open-context_get_rust_info | Crates Rust (crates.io) | serde, tokio, actix-web |
open-context_get_node_info | Versões do Node.js | 20.0.0, 18.17.0 |
open-context_get_typescript_info | Versões do TypeScript | 5.0.0, 4.9.5 |
open-context_get_react_info | Versões do React | 18.0.0, 17.0.2 |
open-context_get_nextjs_info | Versões do Next.js | 14.0.0, 13.5.0 |
open-context_get_ansible_info | Versões do Ansible | 2.15.0 |
open-context_get_terraform_info | Versões do Terraform | 1.6.0 |
open-context_get_jenkins_info | Versões do Jenkins | 2.420 |
open-context_get_kubernetes_info | Versões do Kubernetes | 1.28.0 |
open-context_get_helm_info | Versões do Helm | 3.13.0 |
open-context_get_docker_image | Imagens do Docker Hub | golang:1.25-alpine |
open-context_get_github_action | GitHub Actions | actions/checkout, docker/setup-buildx-action |
Todas as ferramentas automaticamente:
- Buscam de fontes oficiais
- Armazenam resultados em cache localmente
- Retornam documentação formatada em markdown
- Incluem exemplos de instalação/uso
Para documentação detalhada das ferramentas, veja a Referência de Ferramentas abaixo.
Tópicos Avançados
Adicionando Documentação Personalizada
Você pode adicionar documentação personalizada para qualquer linguagem ou framework.
1. Crie a estrutura de diretórios:
mkdir -p data/jenkins/topics
2. Crie o arquivo de metadados (data/jenkins/metadata.json):
{
"name": "jenkins",
"displayName": "Jenkins",
"description": "Jenkins CI/CD automation documentation"
}
3. Adicione tópicos de documentação (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. Reinicie o servidor
Veja data/README.md para o guia completo de formato de documentação.
Desenvolvimento
Execute os testes:
# Quick automated test
./test.sh
# Unit tests
go test ./...
# With race detector
go test -race ./...
Adicione uma nova ferramenta MCP:
- Adicione a definição da ferramenta em
server/server.go→handleToolsList() - Implemente o handler em
server/server.go→handleToolCall() - Adicione o método do provedor em
docs/provider.go(se necessário)
Estrutura do projeto:
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
Referência de Ferramentas
open-context_search_docs
Pesquise tópicos de documentação em todas as linguagens.
Parâmetros:
query(obrigatório): Consulta de pesquisalanguage(opcional): Filtrar por linguagem (ex.: "go", "typescript")
Exemplo:
Search for "goroutines" in Go documentation
open-context_get_docs
Obtenha documentação detalhada para um tópico específico.
Parâmetros:
id(opcional): ID do tópico dos resultados da pesquisalanguage(opcional): Linguagem de programaçãotopic(opcional): Nome do tópico (alternativa ao ID)
Exemplo:
Get documentation for topic "basics" in Go
open-context_list_docs
Liste todas as linguagens e tópicos de documentação disponíveis.
Exemplo:
List all available documentation
open-context_get_go_info
Busque informações de versão do Go ou documentação de pacotes.
Parâmetros:
type(obrigatório):"version"ou"library"version(condicional): Versão do Go (ex.: "1.21") para versões, ou versão da bibliotecaimportPath(condicional): Caminho de importação (ex.: "github.com/gin-gonic/gin") para bibliotecas
Exemplos:
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
Fontes:
- Versões: notas de versão do go.dev
- Bibliotecas: documentação de pacotes do pkg.go.dev
Veja GO_VERSION_LIBRARY_FEATURE.md para detalhes.
open-context_get_npm_info
Busque informações de pacotes npm.
Parâmetros:
packageName(obrigatório): Nome do pacote (ex.: "express", "react")
Fonte: registro npm
open-context_get_python_info
Busque informações de pacotes Python do PyPI.
Parâmetros:
packageName(obrigatório): Nome do pacote (ex.: "requests", "django", "numpy")version(opcional): Versão específica (padrão: mais recente)
Fonte: PyPI (Python Package Index)
open-context_get_rust_info
Busque informações de crates Rust do crates.io.
Parâmetros:
crateName(obrigatório): Nome do crate (ex.: "serde", "tokio", "actix-web")version(opcional): Versão específica (padrão: mais recente)
Fonte: crates.io
open-context_get_node_info
Busque informações de versão do Node.js.
Parâmetros:
version(obrigatório): Versão do Node.js (ex.: "20.0.0")
Fonte: GitHub releases
open-context_get_typescript_info
Busque informações de versão do TypeScript.
Parâmetros:
version(obrigatório): Versão do TypeScript (ex.: "5.0.0")
Fonte: GitHub releases
open-context_get_react_info
Busque informações de versão do React.
Parâmetros:
version(obrigatório): Versão do React (ex.: "18.0.0")
Fonte: GitHub releases
open-context_get_nextjs_info
Busque informações de versão do Next.js.
Parâmetros:
version(obrigatório): Versão do Next.js (ex.: "14.0.0")
Fonte: GitHub releases
open-context_get_ansible_info
Busque informações de versão do Ansible.
Parâmetros:
version(obrigatório): Versão do Ansible (ex.: "2.15.0")
Fonte: GitHub releases
open-context_get_terraform_info
Busque informações de versão do Terraform.
Parâmetros:
version(obrigatório): Versão do Terraform (ex.: "1.6.0")
Fonte: GitHub releases
open-context_get_jenkins_info
Busque informações de versão do Jenkins.
Parâmetros:
version(obrigatório): Versão do Jenkins (ex.: "2.420")
Fonte: GitHub releases
open-context_get_kubernetes_info
Busque informações de versão do Kubernetes.
Parâmetros:
version(obrigatório): Versão do Kubernetes (ex.: "1.28.0")
Fonte: GitHub releases
open-context_get_helm_info
Busque informações de versão do Helm.
Parâmetros:
version(obrigatório): Versão do Helm (ex.: "3.13.0")
Fonte: GitHub releases
open-context_get_docker_image
Busque informações de imagem Docker do Docker Hub.
Parâmetros:
image(obrigatório): Nome da imagem (ex.: "golang", "nginx", "myuser/myapp")tag(obrigatório): Tag da imagem (ex.: "1.25-alpine", "latest")
Exemplo:
Get Docker image golang:1.25-alpine
Fonte: API do Docker Hub
open-context_get_github_action
Busque informações de GitHub Action da API do GitHub.
Parâmetros:
repository(obrigatório): Repositório GitHub no formato "owner/repo" (ex.: "actions/checkout", "docker/setup-buildx-action")version(opcional): Versão/tag específica da action (padrão: release mais recente)
Exemplo:
Get GitHub Action actions/checkout
Get GitHub Action docker/setup-buildx-action with version v2.10.0
Fonte: API do GitHub
Roadmap
- Busca de pacotes Go do pkg.go.dev
- Transporte HTTP para servidores remotos
- Buscadores de versão para ferramentas principais
- Pacotes Python (PyPI)
- Crates Rust (crates.io)
- Documentação específica por versão
- Interface web para navegar na documentação
Contribuindo
Contribuições são bem-vindas! Áreas onde você pode ajudar:
- Adicionar novos fetchers de linguagem/framework
- Melhorar a documentação
- Adicionar cobertura de testes
- Reportar bugs ou sugerir funcionalidades
- Compartilhar seus casos de uso
Testes
Consulte TESTING.md para o guia completo de testes.
Licença
Licença MIT - consulte o arquivo LICENSE para detalhes.
Agradecimentos
Inspirado por context7 da Upstash.
Perguntas? Abra uma issue no GitHub