io.github.neuledge/context

编码与调试

by neuledge

为 AI agents 提供 local-first 文档能力,支持离线、即时且私密的文档检索与访问体验。

给AI代理补上本地文档检索能力,离线也能即时访问私有资料,速度快且更私密,开发调试更踏实。

什么是 io.github.neuledge/context

为 AI agents 提供 local-first 文档能力,支持离线、即时且私密的文档检索与访问体验。

README

<p align="center"> <h1 align="center">Context</h1> <p align="center"> <strong>Up-to-date docs for AI agents — local, instant, plug and play.</strong> </p> </p> <p align="center"> <a href="https://www.npmjs.com/package/@neuledge/context"><img src="https://img.shields.io/npm/v/@neuledge/context.svg" alt="npm version"></a> <a href="https://github.com/neuledge/context/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-blue.svg" alt="License"></a> <a href="https://www.typescriptlang.org/"><img src="https://img.shields.io/badge/TypeScript-5.0-blue.svg" alt="TypeScript"></a> </p>

AI agents are trained on outdated docs. When libraries release new versions, your AI doesn't know — and confidently gives you wrong answers.

js
// Your AI, mass-trained on AI SDK v5 docs, will suggest:
import { Experimental_Agent as Agent, stepCountIs } from 'ai';

// But v6 changed the API entirely:
import { ToolLoopAgent } from 'ai';

The fix isn't better prompting. It's giving your AI the right docs.

How It Works

Context is an MCP server backed by a community-driven package registry with 100+ popular libraries already built and ready to use. When your AI agent needs documentation, it searches the registry, downloads the right package, and queries it locally — all automatically.

Install once. Configure once. Then just ask your AI.

<p align="center"> <img src="https://media.githubusercontent.com/media/neuledge/context/main/packages/context/assets/ai-sdk-demo.gif" alt="Context demo" width="800"> </p>

:rocket: Quick Start

1. Install

bash
npm install -g @neuledge/context

2. Connect to your AI agent

Context works with any MCP-compatible agent. Pick yours:

<details> <summary><strong>Claude Code</strong></summary>
bash
claude mcp add context -- context serve
</details> <details> <summary><strong>Claude Desktop</strong></summary>

Add to your config file:

  • Linux: ~/.config/claude/claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
json
{
  "mcpServers": {
    "context": {
      "command": "context",
      "args": ["serve"]
    }
  }
}

Restart Claude Desktop to apply changes.

</details> <details> <summary><strong>Cursor</strong></summary>

Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project-specific):

json
{
  "mcpServers": {
    "context": {
      "command": "context",
      "args": ["serve"]
    }
  }
}

Or use Settings > Developer > Edit Config to add the server through the UI.

</details> <details> <summary><strong>OpenAI Codex</strong></summary>

Either use the CLI

bash
codex mcp add context -- context serve

Or add to ~/.codex/config.toml (global) or .codex/config.toml (project-specific):

toml
[mcp_servers.context]
command = "context"
args = ["serve"]

Restart OpenAI Codex to apply changes.

</details> <details> <summary><strong>VS Code (GitHub Copilot)</strong></summary>

Requires VS Code 1.102+ with GitHub Copilot

Add to .vscode/mcp.json in your workspace:

json
{
  "servers": {
    "context": {
      "type": "stdio",
      "command": "context",
      "args": ["serve"]
    }
  }
}

Click the Start button that appears in the file, then use Agent mode in Copilot Chat.

</details> <details> <summary><strong>Windsurf</strong></summary>

Add to ~/.codeium/windsurf/mcp_config.json:

  • Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json
json
{
  "mcpServers": {
    "context": {
      "command": "context",
      "args": ["serve"]
    }
  }
}

Or access via Windsurf Settings > Cascade > MCP Servers.

</details> <details> <summary><strong>Zed</strong></summary>

Add to your Zed settings.json (press cmd+, or ctrl+, twice):

json
{
  "context_servers": {
    "context": {
      "command": {
        "path": "context",
        "args": ["serve"]
      }
    }
  }
}

Check the Agent Panel settings to verify the server shows a green indicator.

</details> <details> <summary><strong>Goose</strong></summary>

Run goose configure and select Command-line Extension, or add directly to ~/.config/goose/config.yaml:

yaml
extensions:
  context:
    type: stdio
    command: context
    args:
      - serve
    timeout: 300
</details> <details> <summary><strong>OpenCode</strong></summary>

Add to ~/.config/opencode/opencode.json:

json
{
  "mcp": {
    "context": {
      "command": ["context", "serve"],
      "enabled": true,
      "type": "local"
    }
  }
}
</details>

3. Ask your AI anything

That's it. Just ask:

"How do I create middleware in Next.js?"

Your agent searches the community registry, downloads the docs, and answers with accurate, version-specific information. Everything happens automatically — no manual context install needed for registry packages.


The Community Registry

The registry is what makes Context plug and play. It's a growing collection of 100+ pre-built documentation packages maintained by the community. Think of it like a package manager, but for AI-ready docs.

Popular packages available today:

CategoryLibraries
FrameworksNext.js, Nuxt, Astro, SvelteKit, Remix, Hono
React ecosystemReact, React Router, TanStack Query, Zustand, Redux Toolkit
Databases & ORMsPrisma, Drizzle, Mongoose, TypeORM
StylingTailwind CSS, shadcn/ui, Styled Components
TestingVitest, Playwright, Jest, Testing Library
APIs & AuthtRPC, GraphQL, NextAuth.js, Passport
AI & LLMsLangChain, AI SDK, OpenAI, Anthropic SDK

Browse the full registry →

Anyone can contribute. If a library you use isn't listed, submit a PR to add it — your contribution helps every Context user.


Why Local?

Context runs entirely on your machine. Docs are downloaded once and stored as compact SQLite databases in ~/.context/packages/. After that, everything is local.

  • Fast — Local SQLite queries return in under 10ms
  • Offline — Works on flights, in coffee shops, anywhere
  • Private — Your queries never leave your machine
  • Free — No subscriptions, no rate limits, no usage caps
  • Reliable — No outages, no API changes, no service shutdowns

Beyond the Registry

The registry covers popular open-source libraries, but Context also works with any documentation source. Use context add to build packages from private repos, internal libraries, websites with llms.txt, or anything not yet in the registry.

bash
# Build from a git repository
context add https://github.com/your-company/design-system

# Build from a local directory
context add ./my-project

# Specific version tag
context add https://github.com/vercel/next.js/tree/v16.0.0

# Build from a website's llms.txt
context add https://svelte.dev

Once built, share packages with your team — they're portable .db files that install instantly:

bash
# Export a package
context add ./my-project --name my-lib --pkg-version 2.0 --save ./packages/

# Teammate installs it (no build step needed)
context add ./packages/my-lib@2.0.db

:whale: Docker

Run Context as a containerized HTTP server for multi-client or Kubernetes deployments:

bash
# Run from the repository root (required for the monorepo lockfile)
docker build -t context:local -f packages/context/Dockerfile .
docker run --rm -p 8080:8080 context:local

The container starts Context with HTTP transport on port 8080, accessible at http://localhost:8080/mcp. The image uses a multi-stage build with node:22-bookworm-slim for native module compatibility.


:books: CLI Reference

context browse <package>

Search for packages available on the registry server.

bash
# Browse by registry/name
context browse npm/next

# Output:
#   npm/next@15.1.3           3.4 MB  The React Framework for the Web
#   npm/next@15.0.4           3.2 MB  The React Framework for the Web
#   ...
#
#   Found 12 versions. Install with: context install npm/next

# Browse with just a name (defaults to npm)
context browse react

context install <registry/name> [version]

Download and install a pre-built package from the registry server.

bash
# Install latest version
context install npm/next

# Install a specific version
context install npm/next 15.0.4

# Install from other registries
context install pip/django

context add <source>

Build and install a documentation package from source. Use this for libraries not in the registry, or for private/internal docs. The source type is auto-detected.

From git repository:

Works with GitHub, GitLab, Bitbucket, Codeberg, or any git URL:

bash
# HTTPS URLs
context add https://github.com/vercel/next.js
context add https://gitlab.com/org/repo
context add https://bitbucket.org/org/repo

# Specific tag or branch
context add https://github.com/vercel/next.js/tree/v16.0.0

# SSH URLs
context add git@github.com:user/repo.git
context add ssh://git@github.com/user/repo.git

# Custom options
context add https://github.com/vercel/next.js --path packages/docs --name nextjs

From local directory:

Build a package from documentation in a local folder:

bash
# Auto-detects docs folder (docs/, documentation/, doc/)
context add ./my-project

# Specify docs path explicitly
context add /path/to/repo --path docs

# Custom package name and version
context add ./my-lib --name my-library --pkg-version 1.0.0
OptionDescription
--pkg-version <version>Custom version label
--path <path>Path to docs folder in repo/directory
--name <name>Custom package name
--save <path>Save a copy of the package to the specified path

Saving packages for sharing:

bash
# Save to a directory (auto-names as name@version.db)
context add https://github.com/vercel/next.js --save ./packages/

# Save to a specific file
context add ./my-docs --save ./my-package.db

From website (llms.txt):

Many websites publish an llms.txt file with AI-ready documentation. Context auto-detects and fetches it. When the site only provides llms.txt (an index of links rather than the inlined llms-full.txt), Context follows each link and fetches the linked document:

bash
# Auto-fetches llms-full.txt or llms.txt from the site
context add https://svelte.dev
context add https://mui.com/material-ui

# Direct URL to a specific llms.txt file
context add https://svelte.dev/docs/svelte/llms.txt

# Custom package name
context add https://react-aria.adobe.com --name react-aria

From an arbitrary URL (blog posts, articles, raw Markdown):

If no llms.txt is found, Context falls back to fetching the page directly. HTML pages are run through a readability extractor (defuddle) so subscribe CTAs, navigation, and comment widgets don't end up in the package:

bash
# A blog post
context add https://overreacted.io/things-i-dont-know-as-of-2018/

# Raw Markdown from GitHub
context add https://raw.githubusercontent.com/neuledge/context/main/README.md --name context-readme

For subscriber-only content on platforms you have a paid account for, see context auth below.

From URL:

bash
context add https://cdn.example.com/react@18.db

From local file:

bash
context add ./nextjs@15.0.db

Finding the right documentation repository:

Many popular projects keep their documentation in a separate repository from their main codebase. If you see a warning about few sections found, the docs likely live elsewhere:

bash
# Example: React's docs are in a separate repo
context add https://github.com/facebook/react
# ⚠️  Warning: Only 45 sections found...
# The warning includes a Google search link to help find the docs repo

# The actual React docs repository:
context add https://github.com/reactjs/react.dev

Common patterns for documentation repositories:

  • project-docs (e.g., prisma/docs)
  • project.dev or project.io (e.g., reactjs/react.dev)
  • project-website (e.g., expressjs/expressjs.com)

When the CLI detects few documentation sections, it will show a Google search link to help you find the correct repository.

context list

Show installed packages.

bash
$ context list

Installed packages:

  nextjs@16.0              4.2 MB    847 sections
  react@18                 2.1 MB    423 sections

Total: 2 packages (6.3 MB)

context remove <name>

Remove a package.

bash
context remove nextjs

context auth

Store per-platform cookies or headers so context add <url> can fetch subscriber-only content you have a legitimate account for (e.g., a paid Substack or Medium subscription). Credentials are stored in ~/.context/auth.json with 0600 permissions, and matched by domain (with one level of parent-domain fallback for subdomains).

bash
# Store cookies for a domain
context auth add substack.com --cookies "substack.sid=YOUR_SID"

# Add a custom header too
context auth add medium.com --cookies "sid=..." --header "x-frontend: web"

# List configured auth
context auth list

# Remove auth
context auth remove substack.com

context serve

Start the MCP server (used by AI agents).

bash
# Stdio transport (default, for single-client MCP integrations)
context serve

# HTTP transport (for multi-client access over the network)
context serve --http
context serve --http 3000
context serve --http 3000 --host 0.0.0.0

# Restrict the session to a subset of installed packages
context serve --libs react next@15.0.4
OptionDescription
--http [port]Start as HTTP server instead of stdio (default port: 8080)
--host <host>Host to bind to (default: 127.0.0.1)
--libs <names...>Restrict the session to a fixed set of installed libraries. Each entry is a name (react) or name@version (react@18.3.1). When set, search_packages and download_package are hidden so the session is locked to that list. Useful for per-project scoping when you have many packages installed globally.

The HTTP transport uses the MCP Streamable HTTP protocol, enabling multiple clients on the local network to connect to a single server instance. The endpoint is available at http://<host>:<port>/mcp.

context query <library> <topic>

Query documentation directly from the command line. Useful for testing and debugging.

bash
# Query a package (use name@version format from 'context list')
context query 'nextjs@16.0' 'middleware authentication'

# Returns the same JSON format as the MCP get_docs tool

:gear: Architecture

code
┌─────────────────────────────────────────────────────────┐
│                     Your Machine                        │
│                                                         │
│  ┌──────────┐    ┌──────────────────┐    ┌────────────┐ │
│  │    AI    │    │   Context MCP    │    │ ~/.context │ │
│  │  Agent   │───▶│     Server       │───▶│  /packages │ │
│  │          │    │                  │    └────────────┘ │
│  └──────────┘    └────────┬─────────┘         │         │
│                           │            ┌──────────┐     │
│                           │            │  SQLite  │     │
│                           │            │   FTS5   │     │
│                           │            └──────────┘     │
└───────────────────────────┼─────────────────────────────┘
                            │ (first use only)
                            ▼
                   ┌────────────────┐
                   │   Community    │
                   │   Registry     │
                   └────────────────┘

First time you ask about a library:

  1. The MCP server searches the community registry
  2. Downloads the pre-built documentation package (a SQLite .db file)
  3. Stores it locally in ~/.context/packages/

Every time after:

  1. FTS5 full-text search finds relevant sections locally
  2. Smart filtering keeps results within token budget
  3. Your AI gets focused, accurate documentation in under 10ms

:question: FAQ

Can I use Context with non-JavaScript frameworks like Spring Boot, Django, or Rails?

Yes! Context is language-agnostic. It natively supports Markdown (.md, .mdx), AsciiDoc (.adoc), reStructuredText (.rst), and HTML — no conversion needed.

bash
# Python - FastAPI (Markdown)
context add https://github.com/fastapi/fastapi --path docs/en/docs

# Python - Django (reStructuredText)
context add https://github.com/django/django --path docs

# Java - Spring Boot (AsciiDoc)
context add https://github.com/spring-projects/spring-boot --path spring-boot-project/spring-boot-docs/src/docs

# Rust - The Rust Book
context add https://github.com/rust-lang/book --path src

Point Context at the docs folder with --path and it handles the rest.

Can I contribute package definitions for new ecosystems?

Yes! The registry/ directory has YAML definitions organized by package manager:

  • registry/npm/ — JavaScript/TypeScript (Next.js, React, Tailwind, etc.)
  • registry/pip/ — Python (FastAPI, Flask, Django, Pydantic)
  • registry/maven/ — Java (Spring Boot, JUnit, Micrometer)

To add a package, create a YAML file. Two source types are supported:

Git source — clone a repo at a version tag:

yaml
# registry/pip/my-library.yaml
name: my-library
description: "Short description of the library"
repository: https://github.com/org/my-library

versions:
  - min_version: "2.0.0"
    source:
      type: git
      url: https://github.com/org/my-library
      docs_path: docs
    tag_pattern: "v{version}"

ZIP source — download HTML docs from a URL (supports {version} placeholder):

yaml
# registry/python/python.yaml
name: python
description: "Python programming language official documentation"

versions:
  - versions: ["3.14", "3.13", "3.12"]
    source:
      type: zip
      url: "https://docs.python.org/3/archives/python-{version}-docs-html.zip"
      docs_path: "python-{version}-docs-html"
      exclude_paths:
        - "whatsnew/**"
        - "changelog.html"

Version discovery is supported for npm, PyPI, and Maven Central. See existing definitions for examples.


:wrench: Development

bash
# Install dependencies
pnpm install

# Build
pnpm build

# Test
pnpm test

# Lint
pnpm lint

:page_facing_up: License

Apache-2.0

常见问题

io.github.neuledge/context 是什么?

为 AI agents 提供 local-first 文档能力,支持离线、即时且私密的文档检索与访问体验。

相关 Skills

前端设计

by anthropics

Universal
热门

面向组件、页面、海报和 Web 应用开发,按鲜明视觉方向生成可直接落地的前端代码与高质感 UI,适合做 landing page、Dashboard 或美化现有界面,避开千篇一律的 AI 审美。

想把页面做得既能上线又有设计感,就用前端设计:组件到整站都能产出,难得的是能避开千篇一律的 AI 味。

编码与调试
未扫描148.2k

网页应用测试

by anthropics

Universal
热门

用 Playwright 为本地 Web 应用编写自动化测试,支持启动开发服务器、校验前端交互、排查 UI 异常、抓取截图与浏览器日志,适合调试动态页面和回归验证。

借助 Playwright 一站式验证本地 Web 应用前端功能,调 UI 时还能同步查看日志和截图,定位问题更快。

编码与调试
未扫描148.2k

网页构建器

by anthropics

Universal
热门

面向复杂 claude.ai HTML artifact 开发,快速初始化 React + Tailwind CSS + shadcn/ui 项目并打包为单文件 HTML,适合需要状态管理、路由或多组件交互的页面。

在 claude.ai 里做复杂网页 Artifact 很省心,多组件、状态和路由都能顺手搭起来,React、Tailwind 与 shadcn/ui 组合效率高、成品也更精致。

编码与调试
未扫描148.2k

相关 MCP Server

GitHub

编辑精选

by GitHub

热门

GitHub 是 MCP 官方参考服务器,让 Claude 直接读写你的代码仓库和 Issues。

这个参考服务器解决了开发者想让 AI 安全访问 GitHub 数据的问题,适合需要自动化代码审查或 Issue 管理的团队。但注意它只是参考实现,生产环境得自己加固安全。

编码与调试
86.6k

by Context7

热门

Context7 是实时拉取最新文档和代码示例的智能助手,让你告别过时资料。

它能解决开发者查找文档时信息滞后的问题,特别适合快速上手新库或跟进更新。不过,依赖外部源可能导致偶尔的数据延迟,建议结合官方文档使用。

编码与调试
57.0k

by tldraw

热门

tldraw 是让 AI 助手直接在无限画布上绘图和协作的 MCP 服务器。

这解决了 AI 只能输出文本、无法视觉化协作的痛点——想象让 Claude 帮你画流程图或白板讨论。最适合需要快速原型设计或头脑风暴的开发者。不过,目前它只是个基础连接器,你得自己搭建画布应用才能发挥全部潜力。

编码与调试
47.7k

评论