Files
context-kit/README.md
Ajay Krishnan c905cf86c8 Initial public release
Three local MCP servers for coding agents, designed for Claude Code
and OpenCode:

- context-web-search: SearXNG-backed web search and URL fetch
- context-docs:       semantic search over curated llms.txt docs
- context-repomix:    pack local or remote repos into AI context

Defaults are local-first: SearXNG binds to 127.0.0.1, no hosted API
keys are required, and Repomix mounts only the current project read-only.
2026-05-21 08:43:38 -07:00

135 lines
3.4 KiB
Markdown

# Context Kit
Local context tools for Claude Code and OpenCode.
Local web search. Local docs. Repo packing. No API keys required.
## What You Get
Context Kit gives coding agents three local MCP servers:
| Server | Purpose | Default |
|---|---|---|
| `context-web-search` | Current web search and URL fetch through local SearXNG | Enabled |
| `context-docs` | Semantic search over curated `llms.txt` documentation | Enabled |
| `context-repomix` | Pack local or remote repositories into AI-friendly context | Enabled |
The first public release deliberately keeps the surface area small: web search,
docs search, and repository packing.
## Quick Start
```sh
git clone https://gitea.krishnan.ca/ajaynomics/context-kit.git
cd context-kit
cp .env.example .env
export PATH="$PWD/bin:$PATH"
bin/context-kit start
bin/context-kit doctor
```
Then connect your assistant.
For Claude Code:
```sh
bin/context-kit install claude
```
Copy the printed JSON into your project's `.mcp.json`, or use the equivalent
`claude mcp add` commands if you prefer managing servers through the Claude CLI.
The default snippet uses `context-kit` on `PATH`, which is the right shape for
shared project config. For a private user-only config, you can print absolute
paths with `bin/context-kit install claude --absolute`.
For OpenCode:
```sh
bin/context-kit install opencode
```
Merge the printed `mcp` block into your `opencode.json`, then restart OpenCode.
The default snippet uses `context-kit` on `PATH`. Use
`bin/context-kit install opencode --absolute` only for private, machine-local
config that will not be committed.
## Defaults
- SearXNG binds to `127.0.0.1:8099` only.
- Docs and model caches live in `$HOME/.local/share/context-kit`.
- Docs refresh TTL defaults to `7d`.
- MCP containers are labeled `dev.context-kit=true` for safe inspection and cleanup.
- Repomix mounts only the current project read-only, not your whole home directory.
- No code-editing MCP server is enabled by default.
## Docs Sources
The default docs index is intentionally small:
- Claude Code docs
- OpenAI API docs and reference
- Anthropic docs
- OpenRouter docs
- Model Context Protocol docs
Optional profiles live in `config/`:
- `sources.ruby-ai.txt`
- `sources.js.txt`
- `sources.cloudflare.txt`
Example:
```sh
CONTEXT_KIT_DOCS_SOURCES="config/sources.default.txt config/sources.js.txt" \
bin/context-kit docs
```
Cloudflare is opt-in because it can expand to thousands of sections and take a
while to embed.
## Commands
```sh
bin/context-kit start
bin/context-kit stop
bin/context-kit build
bin/context-kit status
bin/context-kit doctor
bin/context-kit redaction-check
```
MCP entrypoints:
```sh
bin/context-kit web-search
bin/context-kit docs
bin/context-kit repomix
```
## Security Model
Context Kit is local-first, but MCP tools still extend what your agent can do.
- Treat fetched web pages as untrusted input.
- Do not expose SearXNG publicly without changing the secret and reviewing its
configuration.
- Keep docs profiles curated. More sources means more background indexing and
more untrusted text in your retrieval corpus.
- Be cautious when adding code-editing MCP servers. Context Kit's default MCP
servers either read remote content or mount the current project read-only.
See `docs/security.md` for details.
## Requirements
- Docker with Compose v2
- Bash
- `curl` for health checks
No hosted API keys are required for the default stack.
## License
MIT