feat(skills): add neuledge-context skill for @neuledge/context MCP server

Adds a complete cross-cutting skill to install, configure, and manage
@neuledge/context — a local-first MCP server that delivers version-specific
library docs to AI agents via SQLite FTS5.

Includes:
- SKILL.md with 9-step process: install, global MCP registration, per-project
  --libs scoping, package management, auth, custom registry, upgrade, uninstall
- setup-neuledge-context.sh: pinned version install, idempotent version check
- secure-context-config.sh: chmod 600 on ~/.context/config.json after auth
- 13-case test suite covering both scripts (all pass)
- eval.yaml with 6 trigger tests and 4 output tests
- references/: context-cli-reference.md, http-mode.md, install-notes.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TP4EGbBg3XMcyF28Lx78XJ
This commit is contained in:
2026-06-20 23:16:27 +00:00
parent 8f5e4eeaa5
commit 75c6ea1dd5
9 changed files with 850 additions and 0 deletions

View File

@@ -0,0 +1,248 @@
# Context CLI Reference
Binary: `context`
Package: `@neuledge/context`
---
## `context add <source>`
Build and install a documentation package from any source.
**Arguments:**
- `<source>` — Package source. Auto-detected type:
- Local `.db` file path → copies directly
- HTTP(S) URL ending in `.db` → downloads
- GitHub URL or git repo URL → clones and builds
- Local directory path → builds from local docs
- Website URL → fetches `llms.txt` and builds
**Options:**
| Flag | Description |
|------|-------------|
| `--tag <tag>` | Git tag to checkout (for git repos) |
| `--pkg-version <version>` | Custom version label for the built package |
| `--path <path>` | Path to docs folder within the repo or directory |
| `--name <name>` | Custom package name (overrides auto-detected name) |
| `--save <path>` | Save a copy of the built `.db` file to this location |
| `--lang <code>` | Language filter: `all` for all languages, or ISO code (`en`, `de`, etc.) |
**Examples:**
```bash
context add https://github.com/prisma/prisma
context add ./my-local-docs --name mylib --pkg-version 2.0
context add https://mysite.com/docs --lang en
context add /tmp/react-19.0.db
```
---
## `context install <package> [version]`
Download and install a pre-built package from the registry.
**Arguments:**
- `<package>` — Package identifier, e.g. `npm/next` or `next`
- `[version]` — Specific version (latest used if omitted)
**Options:**
| Flag | Description |
|------|-------------|
| `--server <name>` | Named server from config (default: `neuledge`) |
**Examples:**
```bash
context install npm/next
context install npm/react 18.0.0
context install prisma --server myserver
```
---
## `context browse <package>`
Search for packages available on the registry.
**Arguments:**
- `<package>` — Package name or `registry/name`, e.g. `npm/next` or just `react`
**Options:**
| Flag | Description |
|------|-------------|
| `--server <name>` | Named server from config |
**Examples:**
```bash
context browse react
context browse npm/next
```
---
## `context list`
Display all installed packages with sizes and section counts.
```bash
context list
```
---
## `context remove <name>`
Remove an installed documentation package.
**Arguments:**
- `<name>` — Package name or name with version, e.g. `next` or `next@v16.2.0`
**Examples:**
```bash
context remove next
context remove next@v16.2.0
```
---
## `context serve`
Start the MCP server.
**Options:**
| Flag | Description |
|------|-------------|
| `--http [port]` | Run as HTTP server (default port: 8080) instead of stdio |
| `--host <host>` | Binding address for HTTP mode (default: `127.0.0.1`) |
| `--libs <names...>` | Restrict session to specific libraries; hides search/download tools |
**Examples:**
```bash
context serve # stdio mode (for Claude Code, Cursor, etc.)
context serve --http # HTTP on port 8080
context serve --http 3000 # HTTP on port 3000
context serve --http --host 0.0.0.0 # HTTP accessible on all interfaces
context serve --libs react next # locked to react and next only
```
---
## `context query <library> <topic>`
Query documentation from an installed package via CLI (no MCP needed).
**Arguments:**
- `<library>` — Installed package in `name@version` format, e.g. `nextjs@15.0`
- `<topic>` — Documentation topic, e.g. `createServer`, `cors middleware`
**Examples:**
```bash
context query nextjs@15.0 "app router"
context query react@18.0 useState
```
---
## `context auth`
Manage per-domain authentication for subscriber-only or private content.
### `context auth add <domain>`
Add or update authentication for a domain.
**Arguments:**
- `<domain>` — Domain to authenticate against
**Options:**
| Flag | Description |
|------|-------------|
| `--cookies <cookies>` | Cookie header value |
| `--header <header>` | Custom HTTP header (e.g. `Authorization: Bearer token`) |
**Example:**
```bash
context auth add docs.example.com --header "Authorization: Bearer mytoken"
context auth add private.site.com --cookies "session=abc123"
```
### `context auth list`
Display all configured authentication entries.
### `context auth remove <domain>`
Delete authentication for a domain.
---
## Config File
Location: `~/.context/config.json`
Format: JSON
```json
{
"servers": [
{
"name": "neuledge",
"url": "https://api.context.neuledge.com",
"default": true
}
]
}
```
**Config keys:**
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| `servers` | array | single Neuledge entry | Registry server configurations |
| `servers[].name` | string | `"neuledge"` | Identifier used with `--server` flag |
| `servers[].url` | string | `"https://api.context.neuledge.com"` | Server endpoint |
| `servers[].default` | boolean | `true` | Primary server used when `--server` is omitted |
To add a self-hosted registry server:
```json
{
"servers": [
{ "name": "neuledge", "url": "https://api.context.neuledge.com", "default": true },
{ "name": "myorg", "url": "https://context.myorg.internal" }
]
}
```
---
## Environment Variables
None documented. Config is file-based (`~/.context/config.json`).
---
## MCP Tool Reference (server-side)
When running `context serve`, these MCP tools are registered:
### `get_docs`
Primary documentation lookup. Use before web searches when the library is installed.
- `library` — `name@version`, e.g. `react@18.0`
- `topic` — Short API name or keyword, e.g. `useState`, `cors middleware`
### `search_packages`
Find available packages in a registry.
- `registry` — `npm`, `pip`, `cargo`, `go`
- `name` — Package name
- `version` (optional) — Specific version
- `server` (optional) — Named server from config
### `download_package`
Download and install a package from the registry.
- `registry` — Registry identifier
- `name` — Package name
- `version` — Version string
- `server` (optional) — Named server from config