open-context

by incu6us

Not rated
GitHub

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

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.gohandleToolsList()
- Implement handler inserver/server.gohandleToolCall()
- 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")

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.