open-context
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.
Open Context
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.
What is Open Context?
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
Key Features
- 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
Quick Start
1. Install
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
2. Configure Your MCP Client
Choose your client and follow the setup instructions:
Claude Desktop
-
Find your config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
Add open-context:
{ "mcpServers": { "open-context": { "command": "/path/to/open-context" } } } -
Restart Claude Desktop
Cursor
-
Go to Settings > Tools & Integrations > MCP Servers
-
Add this configuration:
{ "open-context": { "command": "/path/to/open-context" } } -
Restart Cursor
Claude Code
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
3. Start Using It
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!
Installation Options
Homebrew (macOS/Linux)
brew tap incu6us/homebrew-tap
brew install open-context
Quick Install Script
The installation script automates everything:
curl -fsSL https://raw.githubusercontent.com/incu6us/open-context/master/install.sh | bash
Manual Installation
# 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)
Install via go install
go install github.com/incu6us/open-context@latest
The binary will be in $GOPATH/bin/open-context (usually ~/go/bin/open-context).
Configuration
Open Context creates a config file at ~/.open-context/config.yaml on first run.
Cache Configuration
# How long to keep cached documentation
# Formats: "7d" (days), "24h" (hours), "30m" (minutes), "0" (never expire)
cache_ttl: 7d
Example configurations:
- Offline work:
cache_ttl: 0(never expires) - Daily updates:
cache_ttl: 24h - Weekly updates:
cache_ttl: 7d(default)
Edit Configuration
# 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.
Usage
Server Modes
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
Cache Management
# 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.
Other Commands
# Show help
./open-context --help
# Show version
./open-context --version
Using with Claude
Simple Activation
Once configured, activate documentation in your conversation:
use open-context for go
use open-context for typescript
use open-context
Claude will automatically:
- Discover available documentation
- Use the appropriate tools
- Fetch information from official sources
- Cache results locally
Example Queries
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.
Available Tools
The server provides 15 MCP tools for fetching documentation:
Documentation Tools
| 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 |
Version & Package Fetchers
| 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:
- Fetch from official sources
- Cache results locally
- Return markdown-formatted documentation
- Include installation/usage examples
For detailed tool documentation, see the Tools Reference below.
Advanced Topics
Adding Custom Documentation
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.
Development
Run tests:
# Quick automated test
./test.sh
# Unit tests
go test ./...
# With race detector
go test -race ./...
Add a new MCP tool:
- Add tool definition in
server/server.go→handleToolsList() - Implement handler in
server/server.go→handleToolCall() - Add provider method in
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
Tools Reference
open-context_search_docs
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
open-context_get_docs
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
open-context_list_docs
List all available documentation languages and topics.
Example:
List all available documentation
open-context_get_go_info
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 libraries
Examples:
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:
- Versions: go.dev release notes
- Libraries: pkg.go.dev package documentation
See GO_VERSION_LIBRARY_FEATURE.md for details.
open-context_get_npm_info
Fetch npm package information.
Parameters:
packageName(required): Package name (e.g., "express", "react")
Source: npm registry
open-context_get_python_info
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)
open-context_get_rust_info
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
open-context_get_node_info
Fetch Node.js version information.
Parameters:
version(required): Node.js version (e.g., "20.0.0")
Source: GitHub releases
open-context_get_typescript_info
Fetch TypeScript version information.
Parameters:
version(required): TypeScript version (e.g., "5.0.0")
Source: GitHub releases
open-context_get_react_info
Fetch React version information.
Parameters:
version(required): React version (e.g., "18.0.0")
Source: GitHub releases
open-context_get_nextjs_info
Fetch Next.js version information.
Parameters:
version(required): Next.js version (e.g., "14.0.0")
Source: GitHub releases
open-context_get_ansible_info
Fetch Ansible version information.
Parameters:
version(required): Ansible version (e.g., "2.15.0")
Source: GitHub releases
open-context_get_terraform_info
Fetch Terraform version information.
Parameters:
version(required): Terraform version (e.g., "1.6.0")
Source: GitHub releases
open-context_get_jenkins_info
Fetch Jenkins version information.
Parameters:
version(required): Jenkins version (e.g., "2.420")
Source: GitHub releases
open-context_get_kubernetes_info
Fetch Kubernetes version information.
Parameters:
version(required): Kubernetes version (e.g., "1.28.0")
Source: GitHub releases
open-context_get_helm_info
Fetch Helm version information.
Parameters:
version(required): Helm version (e.g., "3.13.0")
Source: GitHub releases
open-context_get_docker_image
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
open-context_get_github_action
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
Roadmap
- Go package fetching from pkg.go.dev
- HTTP transport for remote servers
- Version fetchers for major tools
- Python packages (PyPI)
- Rust crates (crates.io)
- Version-specific documentation
- Web UI for browsing docs
Contributing
Contributions welcome! Areas where you can help:
- Add new language/framework fetchers
- Improve documentation
- Add test coverage
- Report bugs or suggest features
- Share your use cases
Testing
See TESTING.md for comprehensive testing guide.
License
MIT License - see LICENSE file for details.
Acknowledgments
Inspired by context7 by Upstash.
Questions? Open an issue on GitHub
Servidores relacionados
Scout Monitoring MCP
patrocinadorPut performance and error data directly in the hands of your AI assistant.
Alpha Vantage MCP Server
patrocinadorAccess financial market data: realtime & historical stock, ETF, options, forex, crypto, commodities, fundamentals, technical indicators, & more
GenSpec MCP Server
Converts a USER-STORIES.md file into README, ROADMAP, and SYSTEM-ARCHITECTURE documents for the GenSpec workflow.
Superpower MCP
Allows MCP execution of superpowers
Cursor Chat History MCP
Provides local access to Cursor chat history for AI analysis and insights, with no external services or API keys required.
maximumsats-mcp
Bitcoin Lightning + Nostr Web-of-Trust tools for agents (L402 pay-per-call endpoints)
Claude-FAF-MCP
Only Persistent Project Context MCP Server - Official Anthropic Registry
Prompt Registry
A lightweight, file-based server for managing and serving prompts via stdio.
Storybook MCP
A universal MCP server that connects to any Storybook site and extracts documentation in real-time using Playwright. Use it with any AI or client that supports MCP (Model Context Protocol)—Cursor, Claude Desktop, Windsurf, or other MCP hosts.
Squads MCP
A secure MCP implementation for Squads multisig management on the Solana blockchain.
Jinni
A tool to provide Large Language Models with project context by intelligently filtering and concatenating relevant files.
Photon
A TypeScript framework that turns a single class into an MCP server, CLI tool, and web dashboard with a marketplace of 35 ready-made photons.