loading…
Search for a command to run...
loading…
A high-performance MCP server providing up-to-date documentation for Go, npm, Python, Rust, Docker, Kubernetes, Terraform, and more — fetched from official sour
A high-performance MCP server providing up-to-date documentation for Go, npm, Python, Rust, Docker, Kubernetes, Terraform, and more — fetched from official sources, not training data.
CI
Go Report Card
License: MIT
A high-performance MCP (Model Context Protocol) server that provides up-to-date documentation for programming languages, frameworks, and tools. Built in Go for speed and simplicity.
Open Context fetches and caches documentation from official sources, making it instantly available to AI assistants like Claude. Instead of relying on outdated training data, get real-time access to:
Using Homebrew (macOS/Linux):
brew tap incu6us/homebrew-tap
brew install open-context
Using the install script:
curl -fsSL https://raw.githubusercontent.com/incu6us/open-context/master/install.sh | bash
Or build from source:
git clone https://github.com/incu6us/open-context
cd open-context
go build -o open-context
Prerequisites for building: Go 1.25 or higher
Choose your client and follow the setup instructions:
Find your config file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonAdd open-context:
{
"mcpServers": {
"open-context": {
"command": "/path/to/open-context"
}
}
}
Restart Claude Desktop
Go to Settings > Tools & Integrations > MCP Servers
Add this configuration:
{
"open-context": {
"command": "/path/to/open-context"
}
}
Restart Cursor
Option A: Local binary (stdio transport)
claude-code mcp add open-context /path/to/open-context
Option B: Remote server (HTTP transport)
Start the server on your remote machine:
./open-context --transport http --host 0.0.0.0 --port 9011
Install via Claude CLI:
claude mcp add --transport http open-context http://your-server.com:9011
In your conversation with Claude, just type:
use open-context for go
or
create dockerfile using latest alpine image. use open-context
Claude will automatically fetch and use the documentation to answer your questions!
brew tap incu6us/homebrew-tap
brew install open-context
The installation script automates everything:
curl -fsSL https://raw.githubusercontent.com/incu6us/open-context/master/install.sh | bash
# 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)
go install github.com/incu6us/open-context@latest
The binary will be in $GOPATH/bin/open-context (usually ~/go/bin/open-context).
Open Context creates a config file at ~/.open-context/config.yaml on first run.
# How long to keep cached documentation
# Formats: "7d" (days), "24h" (hours), "30m" (minutes), "0" (never expire)
cache_ttl: 7d
Example configurations:
cache_ttl: 0 (never expires)cache_ttl: 24hcache_ttl: 7d (default)# Use your preferred editor
nano ~/.open-context/config.yaml
code ~/.open-context/config.yaml
vim ~/.open-context/config.yaml
Changes take effect on next server start.
stdio transport (default) - For local MCP clients:
./open-context
HTTP transport - For remote access or HTTP-based clients:
# 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
HTTP endpoints:
GET /health - Health checkPOST /message - MCP JSON-RPC messagesGET /sse - Server-Sent Events stream# Clear cache (full flag)
./open-context --clear-cache
# Clear cache (short alias)
./open-context --cc
This removes ~/.open-context/cache/. Data will be refetched on next use.
# Show help
./open-context --help
# Show version
./open-context --version
Once configured, activate documentation in your conversation:
use open-context for go
use open-context for typescript
use open-context
Claude will automatically:
Go package documentation:
What's new in Go 1.21?
Show me how to use github.com/gin-gonic/gin
npm packages:
Get the latest version of express
Show me React 18 features
DevOps tools:
What's in Kubernetes 1.28?
Show me Terraform 1.6 changes
Get the golang:1.25-alpine Docker image details
See USING_PROMPTS.md for more examples.
The server provides 15 MCP tools for fetching documentation:
| Tool | Description |
|---|---|
open-context_search_docs |
Search across all documentation |
open-context_get_docs |
Get specific documentation topic |
open-context_list_docs |
List all available documentation |
| Tool | What it Fetches | Example |
|---|---|---|
open-context_get_go_info |
Go versions & packages | Go 1.21, github.com/gin-gonic/gin |
open-context_get_npm_info |
npm packages | express, react |
open-context_get_python_info |
Python packages (PyPI) | requests, django, numpy |
open-context_get_rust_info |
Rust crates (crates.io) | serde, tokio, actix-web |
open-context_get_node_info |
Node.js versions | 20.0.0, 18.17.0 |
open-context_get_typescript_info |
TypeScript versions | 5.0.0, 4.9.5 |
open-context_get_react_info |
React versions | 18.0.0, 17.0.2 |
open-context_get_nextjs_info |
Next.js versions | 14.0.0, 13.5.0 |
open-context_get_ansible_info |
Ansible versions | 2.15.0 |
open-context_get_terraform_info |
Terraform versions | 1.6.0 |
open-context_get_jenkins_info |
Jenkins versions | 2.420 |
open-context_get_kubernetes_info |
Kubernetes versions | 1.28.0 |
open-context_get_helm_info |
Helm versions | 3.13.0 |
open-context_get_docker_image |
Docker Hub images | golang:1.25-alpine |
open-context_get_github_action |
GitHub Actions | actions/checkout, docker/setup-buildx-action |
All tools automatically:
For detailed tool documentation, see the Tools Reference below.
You can add custom documentation for any language or framework.
1. Create directory structure:
mkdir -p data/jenkins/topics
2. Create metadata file (data/jenkins/metadata.json):
{
"name": "jenkins",
"displayName": "Jenkins",
"description": "Jenkins CI/CD automation documentation"
}
3. Add documentation topics (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. Restart the server
See data/README.md for complete documentation format guide.
Run tests:
# Quick automated test
./test.sh
# Unit tests
go test ./...
# With race detector
go test -race ./...
Add a new MCP tool:
server/server.go → handleToolsList()server/server.go → handleToolCall()docs/provider.go (if needed)Project structure:
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
Search for documentation topics across all languages.
Parameters:
query (required): Search querylanguage (optional): Filter by language (e.g., "go", "typescript")Example:
Search for "goroutines" in Go documentation
Get detailed documentation for a specific topic.
Parameters:
id (optional): Topic ID from search resultslanguage (optional): Programming languagetopic (optional): Topic name (alternative to ID)Example:
Get documentation for topic "basics" in Go
List all available documentation languages and topics.
Example:
List all available documentation
Fetch Go version information or package documentation.
Parameters:
type (required): "version" or "library"version (conditional): Go version (e.g., "1.21") for versions, or library versionimportPath (conditional): Import path (e.g., "github.com/gin-gonic/gin") for librariesExamples:
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
Sources:
See GO_VERSION_LIBRARY_FEATURE.md for details.
Fetch npm package information.
Parameters:
packageName (required): Package name (e.g., "express", "react")Source: npm registry
Fetch Python package information from PyPI.
Parameters:
packageName (required): Package name (e.g., "requests", "django", "numpy")version (optional): Specific version (defaults to latest)Source: PyPI (Python Package Index)
Fetch Rust crate information from crates.io.
Parameters:
crateName (required): Crate name (e.g., "serde", "tokio", "actix-web")version (optional): Specific version (defaults to latest)Source: crates.io
Fetch Node.js version information.
Parameters:
version (required): Node.js version (e.g., "20.0.0")Source: GitHub releases
Fetch TypeScript version information.
Parameters:
version (required): TypeScript version (e.g., "5.0.0")Source: GitHub releases
Fetch React version information.
Parameters:
version (required): React version (e.g., "18.0.0")Source: GitHub releases
Fetch Next.js version information.
Parameters:
version (required): Next.js version (e.g., "14.0.0")Source: GitHub releases
Fetch Ansible version information.
Parameters:
version (required): Ansible version (e.g., "2.15.0")Source: GitHub releases
Fetch Terraform version information.
Parameters:
version (required): Terraform version (e.g., "1.6.0")Source: GitHub releases
Fetch Jenkins version information.
Parameters:
version (required): Jenkins version (e.g., "2.420")Source: GitHub releases
Fetch Kubernetes version information.
Parameters:
version (required): Kubernetes version (e.g., "1.28.0")Source: GitHub releases
Fetch Helm version information.
Parameters:
version (required): Helm version (e.g., "3.13.0")Source: GitHub releases
Fetch Docker image information from Docker Hub.
Parameters:
image (required): Image name (e.g., "golang", "nginx", "myuser/myapp")tag (required): Image tag (e.g., "1.25-alpine", "latest")Example:
Get Docker image golang:1.25-alpine
Source: Docker Hub API
Fetch GitHub Action information from GitHub API.
Parameters:
repository (required): GitHub repository in format "owner/repo" (e.g., "actions/checkout", "docker/setup-buildx-action")version (optional): Specific version/tag of the action (defaults to latest release)Example:
Get GitHub Action actions/checkout
Get GitHub Action docker/setup-buildx-action with version v2.10.0
Source: GitHub API
Contributions welcome! Areas where you can help:
See TESTING.md for comprehensive testing guide.
MIT License - see LICENSE file for details.
Inspired by context7 by Upstash.
Questions? Open an issue on GitHub
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"open-context": {
"command": "npx",
"args": []
}
}
}PRs, issues, code search, CI status
Database, auth and storage
Reference / test server with prompts, resources, and tools.
Secure file operations with configurable access controls.