Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Persistent code indexing for AI assistants. 50x less context than grep. 11 languages.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"aidex": {
"command": "npx",
"args": [
"-y",
"aidex-mcp"
]
}
}
}ターミナルでこれを実行します
claude mcp add aidex -- npx -y aidex-mcpプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"aidex": {
"command": "npx",
"args": [
"-y",
"aidex-mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"aidex": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"aidex-mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント CSCSoftware で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(1.8.0)がレジストリに届いたのは9 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, LickityClick
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Create, edit and track LickityClick short links, campaigns and click stats from your AI assistant.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
The persistent brain for AI coding agents.
AiDex is an MCP server that gives AI coding assistants a memory, semantic search, and live telemetry — local-first, model-agnostic. Works with any MCP-compatible AI assistant: Claude Code, Claude Desktop, Cursor, Windsurf, Gemini CLI, VS Code Copilot, and more.
🧠 Memory — Tasks, notes, and session-notes survive every chat. Auto-logged history, scheduled tasks, cross-session continuity. Your AI knows tomorrow what mattered today.
🔍 Search — Three modes: exact (identifier), semantic (concept), hybrid (RRF fusion of both). Embeds code, docs, and workspace items into one ranking. Cross-project — every repo in one query. Optional LLM layer translates non-English queries and reranks results.
🌐 Telemetry — LogHub receives live logs from any app via HTTP (no SDK). The AI watches what your code actually does, not just what it says. Live-streamed in the Viewer.
And yes — it's still 50× more token-efficient than grep.
| Without AiDex | With AiDex | |
|---|---|---|
Find PlayerHealth | Grep → 200 hits in 40 files → reads 5 files → 2,000+ tokens | 1 query → 3 exact locations → ~50 tokens |
| Get file structure | Reads entire 500-line file → 1,500 tokens | Signatures → classes + methods → ~80 tokens |
| What changed today? | git diff + grep + context → 3,000+ tokens | Time-filtered query → ~50 tokens |
| Category | Tools | What it does |
|---|---|---|
| Semantic Search 🆕 | search, settings | Hybrid / semantic / exact retrieval over code, docs & workspace. Settings tab to configure embeddings + LLM layer |
| Index & Identifier Search | init, query, update, remove, status | Index your project, search identifiers by name (exact/contains/starts_with), time-based filtering |
| Signatures | signature, signatures | Get classes + methods of any file without reading it — single file or glob pattern |
| Project Overview | summary, tree, describe, files | Entry points, language breakdown, file tree with stats, file listing by type |
| Cross-Project | link, unlink, links, scan | Link dependencies, discover indexed projects |
| Global Search | global_init, global_query, global_signatures, global_status, global_refresh | Search identifiers across ALL your projects — "Have I ever written X?" |
| Guidelines | global_guideline | Persistent AI instructions & coding conventions — shared across all projects |
| Sessions | session, note | Track sessions, detect external changes, leave notes for next session (with searchable history) |
| Task Backlog | task, tasks | Built-in task management with priorities, tags, auto-logged history, and scheduled/recurring tasks |
| Log Hub | log | Universal log receiver — any program sends logs via HTTP, queryable by the AI, live in Viewer |
| Screenshots | screenshot, windows | Cross-platform screen capture with LLM optimization — scale + color reduction saves up to 95% tokens |
| Viewer | viewer | Interactive browser UI with file tree, signatures, tasks, logs, search, and live reload |
14 languages — C#, TypeScript, JavaScript, Rust, Python, C, C++, Java, Go, PHP, Ruby, HCL/Terraform, Kotlin, Swift — plus Astro frontmatter
Quick Examples — see it in action
# Find where "PlayerHealth" is defined — 1 call, ~50 tokens
aidex_query({ term: "PlayerHealth" }) → Engine.cs:45, Player.cs:23, UI.cs:156
aidex_signature({ file: "src/Engine.cs" }) → class GameEngine { Update(), Render(), LoadScene(), ... }
aidex_query({ term: "render", modified_since: "2h" })
aidex_global_query({ term: "TransparentWindow", mode: "contains" }) → Found in: LibWebAppGpu (3 hits), DebugViewer (1 hit)
aidex_note({ path: ".", note: "Test the parser fix after restart" })
aidex_task({ path: ".", action: "create", title: "Fix edge case in parser", priority: 1, tags: "bug" })
v2.0 added semantic search via locally-run embeddings — your AI can find a function even when it doesn't know the exact identifier.
| Mode | What it does | When to use |
|---|---|---|
exact | Identifier match (same as aidex_query) | You know the name. PlayerHealth → 3 hits |
semantic | Vector KNN over embedded code+docs+workspace | You know the *concept*. "how do we cache the model" → finds getQueryEmbedder |
hybrid (default) | RRF fusion of both | Mixed queries. Robust by default |
One ranking, all kinds. A query like *"how to write logs from external programs"* surfaces the README's ## Log Hub section first, then the log method in commands/log.ts, then any related task.
// Enable embeddings on a project (one-time, ~30s for AiDex itself, cached afterwards)
aidex_init({ path: ".", embeddings: true })
// Search aidex_search({ query: "how do we batch requests to the LLM", path: "." }) aidex_search({ query: "retry with backoff", scope: "all" }) // across every embedded project
Or use the Settings tab in the Viewer (aidex_settings({ path: ".", open: true })) — toggles for embeddings, LLM provider, model, and the privacy switch.
When an Anthropic / OpenAI / OpenRouter / Ollama / HuggingFace API key is configured, AiDex can:
Privacy switch llm_send_code defaults to off — only your literal query and metadata (paths, names, anchors) are sent. Code bodies stay local. Per-project, easy to verify in Settings.
Local-first: works fully offline with pure embeddings. The LLM layer is opt-in, never required.
Every time your AI assistant searches for code, it:
A single "Where is X defined?" question can eat 2,000+ tokens. Do that 10 times and you've burned half your context on navigation alone.
Index once, query forever:
# Before: grep flooding your context
AI: grep "PlayerHealth" → 200 hits in 40 files AI: read File1.cs, File2.cs, File3.cs... → 2000+ tokens consumed, 5+ tool calls
AI: aidex_query({ term: "PlayerHealth" }) → Engine.cs:45, Player.cs:23, UI.cs:156 → ~50 tokens, 1 tool call
Result: 50-80% less context used for code navigation.
| Grep/Ripgrep | AiDex | |
|---|---|---|
| Context usage | 2000+ tokens per search | ~50 tokens |
| Results | All text matches | Only identifiers |
| Precision | log matches catalog, logarithm | log finds only log |
| Persistence | Starts fresh every time | Index survives sessions |
| Structure | Flat text search | Knows methods, classes, types |
The real cost of grep: Every grep result includes surrounding context. Search for User in a large project and you'll get hundreds of hits - comments, strings, partial matches. Your AI reads through all of them, burning context tokens on noise.
AiDex indexes identifiers: It uses Tree-sitter to actually parse your code. When you search for User, you get the class definition, the method parameters, the variable declarations - not every comment that mentions "user".
aidex_init({ path: "/path/to/project" })
aidex_query({ term: "Calculate", mode: "starts_with" })
→ All functions starting with "Calculate" + exact line numbers
aidex_query({ term: "Player", modified_since: "2h" }) → Only matches changed in the last 2 hours
aidex_signature({ file: "src/Engine.cs" })
→ All classes, methods, and their signatures
The index lives in .aidex/index.db (SQLite) - fast, portable, no external dependencies.
| Language | Extensions |
|---|---|
| C# | .cs |
| TypeScript | .ts, .tsx |
| JavaScript | .js, .jsx, .mjs, .cjs |
| Rust | .rs |
| Python | .py, .pyw |
| C | .c, .h |
| C++ | .cpp, .cc, .cxx, .hpp, .hxx |
| Java | .java |
| Go | .go |
| PHP | .php |
| Ruby | .rb, .rake |
| HCL/Terraform | .tf, .tfvars, .hcl |
| Kotlin | .kt, .kts |
| Swift | .swift |
| Astro | .astro (TypeScript frontmatter) |
node --version)brew install node or nvm install 20 && nvm use 20冒頭だけを表示しています。続きはリポジトリで読めます