open-context
About
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.
Details
- Author
- incu6us
- Categories
- Developer Tools, Knowledge Base, Other
Jump to
Setup
Install open-context in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/incu6us/open-context
Follow the installation instructions in the repository README, then restart your MCP client.
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:
- Go: Standard library docs, third-party packages, version release notes
- JavaScript/TypeScript: npm packages, Node.js, React, Next.js versions
- Python: PyPI packages with installation instructions and package metadata
- Rust: Crates.io packages with version info and documentation links
- DevOps Tools: Docker, Kubernetes, Helm, Terraform, Ansible, Jenkins, GitHub Actions
- And more: Easy to extend with any language or framework
- Always Up-to-Date: Fetches from official sources (pkg.go.dev, npm registry, PyPI, crates.io, GitHub releases, GitHub API, Docker Hub)
- Smart Caching: Local cache with configurable TTL (default: 7 days)
- Fast & Lightweight: Written in Go, starts in milliseconds
- Two Transport Modes: stdio for local use, HTTP for remote servers
- MCP Native: Seamless integration with Claude Desktop, Cursor, and Claude Code
brew tap incu6us/homebrew-tap brew install open-context
curl -fsSL https://raw.githubusercontent.com/incu6us/open-context/master/install.sh | bash
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:
- macOS:~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:%APPDATA%\Claude\claude_desktop_config.json
{ "mcpServers": { "open-context": { "command": "/path/to/open-context" } } }
-
Go toSettings>Tools & Integrations>MCP Servers
{ "open-context": { "command": "/path/to/open-context" } }
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
claude mcp add --transport http open-context http://your-server.com:9011
In your conversation with Claude, just type:
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.yamlon first run.
# How long to keep cached documentation # Formats: "7d" (days), "24h" (hours), "30m" (minutes), "0" (never expire) cache_ttl: 7d
- Offline work:cache_ttl: 0(never expires)
- Daily updates:cache_ttl: 24h
- Weekly updates:cache_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:
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
- GET /health- Health check
- POST /message- MCP JSON-RPC messages
- GET /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
- Discover available documentation
- Use the appropriate tools
- Fetch information from official sources
- Cache results locally
What's new in Go 1.21? Show me how to use github.com/gin-gonic/gin
Get the latest version of express Show me React 18 features
What's in Kubernetes 1.28? Show me Terraform 1.6 changes Get the golang:1.25-alpine Docker image details
The server provides 15 MCP tools for fetching documentation:
- Fetch from official sources
- Cache results locally
- Return markdown-formatted documentation
- Include installation/usage examples
For detailed tool documentation, see theTools Referencebelow.
You can add custom documentation for any language or framework.
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]" }
Seedata/README.mdfor complete documentation format guide.
# Quick automated test ./test.sh # Unit tests go test ./... # With race detector go test -race ./...
- Add tool definition inserver/server.go→handleToolsList()
- Implement handler inserver/server.go→handleToolCall()
- Add provider method indocs/provider.go(if needed)
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.
- query(required): Search query
- language(optional): Filter by language (e.g., "go", "typescript")
Search for "goroutines" in Go documentation
Get detailed documentation for a specific topic.
- id(optional): Topic ID from search results
- language(optional): Programming language
- topic(optional): Topic name (alternative to ID)
Get documentation for topic "basics" in Go
List all available documentation languages and topics.
Fetch Go version information or package documentation.
- type(required):"version"or"library"
- version(conditional): Go version (e.g., "1.21") for versions, or library version
- importPath(conditional): Import path (e.g., "github.com/gin-gonic/gin") for libraries
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
- Versions: go.dev release notes
- Libraries: pkg.go.dev package documentation
SeeGO_VERSION_LIBRARY_FEATURE.mdfor details.
- packageName(required): Package name (e.g., "express", "react")
Fetch Python package information from PyPI.
- packageName(required): Package name (e.g., "requests", "django", "numpy")
- version(optional): Specific version (defaults to latest)
Fetch Rust crate information from crates.io.
- crateName(required): Crate name (e.g., "serde", "tokio", "actix-web")
- version(optional): Specific version (defaults to latest)
- version(required): Node.js version (e.g., "20.0.0")
- version(required): TypeScript version (e.g., "5.0.0")
- version(required): React version (e.g., "18.0.0")
- version(required): Next.js version (e.g., "14.0.0")
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





