Context7
Up-to-date docs for AI agents
作者による説明(英語の原文)
High-performance knowledge graph MCP server for AI coding agents with semantic search.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"lain": {
"command": "npx",
"args": [
"-y",
"@spuentesp/lain-mcp"
]
}
}
}ターミナルでこれを実行します
claude mcp add lain -- npx -y @spuentesp/lain-mcpプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"lain": {
"command": "npx",
"args": [
"-y",
"@spuentesp/lain-mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"lain": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@spuentesp/lain-mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント spuentesp で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.10.0)がレジストリに届いたのは23 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Context7, Codebase Memory, Exa
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Up-to-date docs for AI agents
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
A code graph for coding agents. Lain maps callers, dependencies, symbols, and Git co-changes, then exposes them through the Model Context Protocol (MCP). Before an agent edits a function, it can inspect what depends on it and how the rest of the code reaches it.
The demo traces a symbol across the bytes and tokio repositories. Agents query the same graph through MCP; the browser shows what Lain indexed and where an answer came from.
Ask your agent:
If I change validate_token, what breaks?
Show me the call chain from entry to helper_a. Which files usually change with auth.rs? Is another agent already editing this code?
Lain answers with symbol names and source paths from a local index. The index stays on disk between runs and can cover more than one repository. It follows commits, not uncommitted edits: after committing, a re-index pass (lain reindex or a fresh session) brings it current — and answers that may miss recent work say so instead of going quiet. Semantic search is optional; graph queries work without an embedding model.
Using the release installer:
curl -fsSL https://raw.githubusercontent.com/spuentesp/lain/main/install.sh | bash
source ~/.zshrc # or ~/.bashrc lain --version
Or from npm (macOS, Linux, and x64 Windows):
npm install -g @spuentesp/lain-mcp
lain --version
Two npm notes:
npm install -g fails with EEXIST when an unrelated lain file already sits in npm's global bin directory — for example an older manual copy in ~/.local/bin when your npm prefix is ~/.local. The npm error itself cannot tell the file is unrelated; move or remove it, or install under a different prefix: npm install -g --prefix ~/.local/lain-npm @spuentesp/lain-mcp (then add ~/.local/lain-npm/bin to your PATH).--ignore-scripts, a locked-down CI), the platform binary is not fetched during install. The first lain run downloads and verifies it, so that first run needs network access; once cached, lain works offline.Rust 1.89 or newer is only needed when building from source. The quickstart covers non-interactive installation and the optional local embedding model.
Run one setup command from the repository you want Lain to index:
lain setup --agent claude-code
lain setup --agent codex lain setup --agent cursor lain setup --agent vscode lain setup --agent continue
Use lain setup --agent generic for another MCP host. Each adapter writes the client's own configuration — claude mcp add for Claude Code, ~/.codex/config.toml for Codex, ~/.cursor/mcp.json for Cursor, .vscode/mcp.json (or the user-scoped mcp.json) for VS Code, a block file under the repository's .continue/mcpServers/ for Continue. generic writes this project-level .mcp.json:
{
"mcpServers": { "lain": { "command": "/home/you/.local/lain/lain", "args": ["mcp"] } } }
command is always the absolute path of the lain binary that ran setup — not the bare name — so the agent runs the same binary no matter which PATH it inherits. That path depends on the install: the release installer puts the binary at ~/.local/lain/lain, while the npm package registers the verified cache binary it launches (~/.cache/lain/ / /lain on Linux, ~/Library/Caches/lain/… on macOS, %LOCALAPPDATA%\lain\Cache\… on Windows). Setup finishes by starting exactly that command once and verifying the MCP handshake.
On a terminal, lain setup without --agent asks which client to configure (Enter picks Claude Code), and without --lsp asks which optional language servers to install (Enter installs none). Non-interactive runs default to generic and no language servers, so scripts should pass --agent and --lsp explicitly.
Restart the agent after setup. Lain walks up from the agent's working directory to find .git, builds .lain/graph.bin, and serves the repository over stdio. No repos.yaml is needed for one repository.
Parsers for Rust, Python, TypeScript, JavaScript, Go, Java, C, C++, C#, Ruby, Swift, Kotlin, Scala and PHP are built into the binary, as are the blocks of Vue and Svelte components. Every one gets definitions and a call graph with nothing else installed.
Language servers are optional and only add precision. lain setup lists the languages it found and asks which servers to install; pressing Enter installs none. Non-interactive runs install none unless you name them:
lain setup --lsp python,go # just these
lain setup --lsp detected # every missing one for this repository lain setup --lsp none
Ask the connected agent:
Use Lain to show the blast radius of validate_token.
Or call the same tool from a terminal:
lain oneshot get_blast_radius validate_token
Use a symbol from your repository in place of validate_token. If the graph isn't ready or an answer looks stale, run lain doctor.
lain repos add bytes https://github.com/tokio-rs/bytes.git
lain repos add tokio https://github.com/tokio-rs/tokio.git lain workspaces create tokio-stack --members bytes,tokio lain server --config ./repos.yaml --transport http --port 9999
Open http://localhost:9999 for the Command Center. The server listens on localhost only; set LAIN_BIND_ADDR=0.0.0.0 (with LAIN_API_KEYS=key1,…) to expose it on the network. Federation adds organization-wide search and cross-repository blast-radius queries. The federation guide covers configuration, source types, and failure states. After a federation schema upgrade, run lain reindex to rebuild the on-disk graph from the sources.
From a source checkout:
scripts/demo.sh --quick
The script creates a small repository with a known call graph, starts a real Lain server, and compares the answers with that graph. It exits non-zero when a check fails. A full run also records timings against this repository.
| Need | Tool or feature |
|---|---|
| See callers before changing a symbol | get_blast_radius, assess_change |
| Trace how two functions connect | get_call_chain |
| Find architectural entry points | find_anchors, list_entry_points |
| Search by name or meaning | find_symbol, search_code |
| Follow a symbol across repositories | get_cross_repo_blast_radius, search_org |
| Keep agents from editing the same code blindly | intents, presence, and advisory file claims |
Static analysis can't prove every dynamic call through a message bus, dependency injection container, or reflective router. explain_dispatch combines static callers with convention matches, runtime traces, and Git co-change evidence; an empty result becomes insufficient_evidence, not a claim that the edit is safe.
| Start here | Covers |
|---|---|
| Quickstart | Installation, first query, and first aid |
| User manual | CLI reference, tuning, operation, and troubleshooting |
| Tool guide | MCP tools, arguments, outputs, and limits |
| Skill bundle | Agent-loadable skills and role recipes |
| Federation | Multi-repository configuration and queries |
| Multiplayer | Agent presence, intents, claims, and hooks |
| Architecture | Graph construction and design choices |
| Documentation index | Every maintained document |
MIT — Copyright (c) 2026 spuentesp