codesift-mcp 0.2.5 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -8
- package/package.json +2 -2
- package/rules/codesift.md +19 -6
- package/rules/codesift.mdc +4 -4
- package/rules/codex.md +4 -4
- package/rules/gemini.md +4 -4
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# CodeSift -- Token-efficient code intelligence for AI agents
|
|
2
2
|
|
|
3
|
-
CodeSift indexes your codebase with tree-sitter AST parsing and gives AI agents
|
|
3
|
+
CodeSift indexes your codebase with tree-sitter AST parsing and gives AI agents 66 search, retrieval, and analysis tools via CLI or MCP server. It uses 61-95% fewer tokens than raw grep/Read workflows on typical code navigation tasks.
|
|
4
4
|
|
|
5
5
|
**Works with:** Claude Code, Cursor, Codex, Gemini CLI, Zed, Aider, Continue — any MCP client.
|
|
6
6
|
|
|
@@ -185,9 +185,9 @@ codesift retrieve local/my-project \
|
|
|
185
185
|
| `codesift generate-claude-md <repo>` | Generate CLAUDE.md project summary |
|
|
186
186
|
| `codesift list-patterns` | List all built-in anti-pattern names |
|
|
187
187
|
|
|
188
|
-
## MCP tools (
|
|
188
|
+
## MCP tools (66 total — 14 core + 52 discoverable)
|
|
189
189
|
|
|
190
|
-
When running as an MCP server, CodeSift exposes
|
|
190
|
+
When running as an MCP server, CodeSift exposes 14 core tools directly. The remaining 52 tools are discoverable via `discover_tools` and `describe_tools` to minimize system prompt token overhead.
|
|
191
191
|
|
|
192
192
|
| Category | Tools |
|
|
193
193
|
|----------|-------|
|
|
@@ -291,7 +291,7 @@ scan_secrets(repo="local/my-project", file_pattern="src/config/**")
|
|
|
291
291
|
| Rename across files | `rename_symbol` | LSP type-safe rename in all files at once |
|
|
292
292
|
| Detect hardcoded secrets | `scan_secrets` | ~1,100 rules, AST-aware, masked output, auto-cached |
|
|
293
293
|
| Ranked text search | `search_text(ranked=true)` | Classifies hits by function, saves follow-up get_symbol calls |
|
|
294
|
-
| Find hidden tools | `discover_tools` + `describe_tools` |
|
|
294
|
+
| Find hidden tools | `discover_tools` + `describe_tools` | 52 tools hidden by default — search by keyword, get full schema |
|
|
295
295
|
| Find ALL occurrences | `grep -rn` | Exhaustive, no top_k cap |
|
|
296
296
|
| Count matches | `grep -c` | Simple exact count |
|
|
297
297
|
|
|
@@ -315,7 +315,7 @@ Custom regex is also supported: `codesift patterns local/project "Promise<.*any>
|
|
|
315
315
|
|
|
316
316
|
## MCP server setup
|
|
317
317
|
|
|
318
|
-
CodeSift runs as an [MCP](https://modelcontextprotocol.io) server, exposing
|
|
318
|
+
CodeSift runs as an [MCP](https://modelcontextprotocol.io) server, exposing 66 tools to AI agents (14 core + 52 discoverable). The fastest setup method is `codesift setup <platform>` which handles everything automatically. Manual configuration is also supported:
|
|
319
319
|
|
|
320
320
|
### OpenAI Codex
|
|
321
321
|
|
|
@@ -502,7 +502,7 @@ cd codesift-mcp
|
|
|
502
502
|
npm install
|
|
503
503
|
npm run download-wasm # Download tree-sitter WASM grammars
|
|
504
504
|
npm run build # TypeScript compilation
|
|
505
|
-
npm test # Run tests (Vitest,
|
|
505
|
+
npm test # Run tests (Vitest, 944+ tests)
|
|
506
506
|
npm run test:coverage # Coverage report
|
|
507
507
|
npm run lint # Type check (tsc --noEmit)
|
|
508
508
|
```
|
|
@@ -555,7 +555,7 @@ If using `npx -y codesift-mcp` (the default in MCP config), the latest version i
|
|
|
555
555
|
### Checklist before publishing
|
|
556
556
|
|
|
557
557
|
- [ ] `npm run build` — 0 TypeScript errors
|
|
558
|
-
- [ ] `npm test` —
|
|
558
|
+
- [ ] `npm test` — 944+ tests pass
|
|
559
559
|
- [ ] `rules/codesift.md` updated if hints or tools changed
|
|
560
560
|
- [ ] `src/instructions.ts` updated if rules changed (compact version)
|
|
561
561
|
- [ ] `README.md` updated if features added
|
|
@@ -570,7 +570,7 @@ BSL-1.1
|
|
|
570
570
|
<!-- Evidence Map
|
|
571
571
|
| Section | Source file(s) |
|
|
572
572
|
|---------|---------------|
|
|
573
|
-
| Tool count (
|
|
573
|
+
| Tool count (66) | src/register-tools.ts (64 in TOOL_DEFINITIONS + discover_tools + describe_tools) |
|
|
574
574
|
| Quick install | package.json:bin (line 8-11) |
|
|
575
575
|
| Quick start | src/cli/commands.ts |
|
|
576
576
|
| Benchmark | benchmarks/ directory, previously measured |
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codesift-mcp",
|
|
3
|
-
"version": "0.2.
|
|
4
|
-
"description": "MCP server for code intelligence —
|
|
3
|
+
"version": "0.2.6",
|
|
4
|
+
"description": "MCP server for code intelligence — 66 tools for symbol search, call graph, semantic search, route tracing, community detection, LSP bridge, secret detection, and conversation search",
|
|
5
5
|
"license": "BSL-1.1",
|
|
6
6
|
"author": "Greg Laskowski",
|
|
7
7
|
"type": "module",
|
package/rules/codesift.md
CHANGED
|
@@ -10,17 +10,28 @@ Run once per session:
|
|
|
10
10
|
2. If the repo is missing: `index_folder(path=<root>)` once to index it.
|
|
11
11
|
3. Use `"local/<folder-name>"` as the `repo` parameter for all tool calls.
|
|
12
12
|
|
|
13
|
+
## PREFER CodeSift over Bash/Glob/Grep
|
|
14
|
+
|
|
15
|
+
When CodeSift MCP tools are available, ALWAYS prefer them over shell commands:
|
|
16
|
+
- `Bash(find ... -name)` → use `get_file_tree(repo, compact=true, name_pattern="*.ts")`
|
|
17
|
+
- `Bash(grep -r ...)` or `Bash(rg ...)` → use `search_text(repo, query, file_pattern=)`
|
|
18
|
+
- `Glob(pattern)` for code discovery → use `get_file_tree(repo, name_pattern=)`
|
|
19
|
+
- `Grep(pattern)` for code search → use `search_text(repo, query)`
|
|
20
|
+
|
|
21
|
+
This applies to ALL agents including sub-agents spawned via the Agent tool.
|
|
22
|
+
Call `list_repos()` once to get the repo identifier, then use CodeSift tools for all exploration.
|
|
23
|
+
|
|
13
24
|
## Tool Discovery
|
|
14
25
|
|
|
15
|
-
**
|
|
26
|
+
**66 MCP tools total** (14 core + 52 discoverable).
|
|
16
27
|
|
|
17
|
-
Only
|
|
28
|
+
Only 14 core tools appear in ListTools. Hidden tools are discovered on demand:
|
|
18
29
|
|
|
19
|
-
- `discover_tools(query="dead code")` — keyword search across all
|
|
30
|
+
- `discover_tools(query="dead code")` — keyword search across all 66 tools
|
|
20
31
|
- `describe_tools(names=["find_dead_code"])` — get full parameter schema
|
|
21
32
|
- `describe_tools(names=["find_dead_code"], reveal=true)` — also reveal in ListTools
|
|
22
33
|
|
|
23
|
-
Core tools always visible: `search_text`, `
|
|
34
|
+
Core tools always visible: `search_text`, `codebase_retrieval`, `get_file_outline`, `search_symbols`, `list_repos`, `get_file_tree`, `index_file`, `get_symbol`, `index_conversations`, `search_patterns`, `index_folder`, `discover_tools`, `get_session_snapshot`, `describe_tools`.
|
|
24
35
|
|
|
25
36
|
## Tool Mapping
|
|
26
37
|
|
|
@@ -180,9 +191,11 @@ Setup auto-indexing and read-redirect hooks for Claude Code:
|
|
|
180
191
|
codesift setup claude --hooks
|
|
181
192
|
```
|
|
182
193
|
|
|
183
|
-
Installs
|
|
194
|
+
Installs hooks in `.claude/settings.local.json` and rules in `~/.claude/rules/codesift.md`:
|
|
184
195
|
|
|
185
196
|
- **PreToolUse** (`precheck-read`) — redirects `Read` on large code files to CodeSift tools
|
|
197
|
+
- **PreToolUse** (`precheck-bash`) — redirects `find`/`grep`/`rg` in Bash to CodeSift tools
|
|
186
198
|
- **PostToolUse** (`postindex-file`) — auto-runs `index_file` after `Edit` or `Write`
|
|
199
|
+
- **PreCompact** (`precompact-snapshot`) — injects session snapshot before context compaction
|
|
187
200
|
|
|
188
|
-
This ensures the index stays current
|
|
201
|
+
This ensures the index stays current and sub-agents use CodeSift tools automatically.
|
package/rules/codesift.mdc
CHANGED
|
@@ -17,15 +17,15 @@ Run once per session:
|
|
|
17
17
|
|
|
18
18
|
## Tool Discovery
|
|
19
19
|
|
|
20
|
-
**
|
|
20
|
+
**66 MCP tools total** (14 core + 52 discoverable).
|
|
21
21
|
|
|
22
|
-
Only
|
|
22
|
+
Only 14 core tools appear in ListTools. Hidden tools are discovered on demand:
|
|
23
23
|
|
|
24
|
-
- `discover_tools(query="dead code")` — keyword search across all
|
|
24
|
+
- `discover_tools(query="dead code")` — keyword search across all 66 tools
|
|
25
25
|
- `describe_tools(names=["find_dead_code"])` — get full parameter schema
|
|
26
26
|
- `describe_tools(names=["find_dead_code"], reveal=true)` — also reveal in ListTools
|
|
27
27
|
|
|
28
|
-
Core tools always visible: `search_text`, `
|
|
28
|
+
Core tools always visible: `search_text`, `codebase_retrieval`, `get_file_outline`, `search_symbols`, `list_repos`, `get_file_tree`, `index_file`, `get_symbol`, `index_conversations`, `search_patterns`, `index_folder`, `discover_tools`, `get_session_snapshot`, `describe_tools`.
|
|
29
29
|
|
|
30
30
|
## Tool Mapping
|
|
31
31
|
|
package/rules/codex.md
CHANGED
|
@@ -12,15 +12,15 @@ Run once per session:
|
|
|
12
12
|
|
|
13
13
|
## Tool Discovery
|
|
14
14
|
|
|
15
|
-
**
|
|
15
|
+
**66 MCP tools total** (14 core + 52 discoverable).
|
|
16
16
|
|
|
17
|
-
Only
|
|
17
|
+
Only 14 core tools appear in ListTools. Hidden tools are discovered on demand:
|
|
18
18
|
|
|
19
|
-
- `discover_tools(query="dead code")` — keyword search across all
|
|
19
|
+
- `discover_tools(query="dead code")` — keyword search across all 66 tools
|
|
20
20
|
- `describe_tools(names=["find_dead_code"])` — get full parameter schema
|
|
21
21
|
- `describe_tools(names=["find_dead_code"], reveal=true)` — also reveal in ListTools
|
|
22
22
|
|
|
23
|
-
Core tools always visible: `search_text`, `
|
|
23
|
+
Core tools always visible: `search_text`, `codebase_retrieval`, `get_file_outline`, `search_symbols`, `list_repos`, `get_file_tree`, `index_file`, `get_symbol`, `index_conversations`, `search_patterns`, `index_folder`, `discover_tools`, `get_session_snapshot`, `describe_tools`.
|
|
24
24
|
|
|
25
25
|
## Tool Mapping
|
|
26
26
|
|
package/rules/gemini.md
CHANGED
|
@@ -12,15 +12,15 @@ Run once per session:
|
|
|
12
12
|
|
|
13
13
|
## Tool Discovery
|
|
14
14
|
|
|
15
|
-
**
|
|
15
|
+
**66 MCP tools total** (14 core + 52 discoverable).
|
|
16
16
|
|
|
17
|
-
Only
|
|
17
|
+
Only 14 core tools appear in ListTools. Hidden tools are discovered on demand:
|
|
18
18
|
|
|
19
|
-
- `discover_tools(query="dead code")` — keyword search across all
|
|
19
|
+
- `discover_tools(query="dead code")` — keyword search across all 66 tools
|
|
20
20
|
- `describe_tools(names=["find_dead_code"])` — get full parameter schema
|
|
21
21
|
- `describe_tools(names=["find_dead_code"], reveal=true)` — also reveal in ListTools
|
|
22
22
|
|
|
23
|
-
Core tools always visible: `search_text`, `
|
|
23
|
+
Core tools always visible: `search_text`, `codebase_retrieval`, `get_file_outline`, `search_symbols`, `list_repos`, `get_file_tree`, `index_file`, `get_symbol`, `index_conversations`, `search_patterns`, `index_folder`, `discover_tools`, `get_session_snapshot`, `describe_tools`.
|
|
24
24
|
|
|
25
25
|
## Tool Mapping
|
|
26
26
|
|