search-mesh
Ships with search-mesh: Search-Mesh is a Rust-native codebase intelligence service for autonomous coding agents.
Claude Code
> /plugin marketplace add jamestkelly/search-mesh> /plugin install search-mesh@search-mesh
Codex
$ cargo install search-mesh-mcp
Cursor
$ cargo install search-mesh-mcp
Gemini CLI
$ cargo install search-mesh-mcp
GitHub Copilot
$ cargo install search-mesh-mcp
OpenCode
$ cargo install search-mesh-mcp
Windsurf
$ cargo install search-mesh-mcp
Security report
Not enough data
Known flaws
Not published
Signed build
Not published
Maintained
Jul 10, 2026
Last push
Licence
MIT
Runs as
Local process
On your machine
Deprecated
Not published
Signals from public registries, not an audit. Checked Nov 12, 2026.
search-mesh README
Search-Mesh
Search-Mesh is a Rust-native codebase intelligence service for autonomous coding agents.
The goal is to reduce agent latency and token waste by moving repository search, syntax-aware filtering, context extraction, and precise patching into a local MCP-compatible process.
Status
This repository is in early setup. The current focus is a small, correct MVP:
- A Rust workspace with separate core and MCP crates.
- A JSON-RPC over stdio server implementing the MCP
initializelifecycle handshake, suitable for Claude Code, OpenCode, and other MCP-compatible agents. - A first search tool,
scan, backed by multi-keyword scanning. - A syntax probe tool,
ast_probe, backed by tree-sitter for Rust, Python, JavaScript, and TypeScript. - A context extraction tool,
squeeze, that returns AST-bounded source blocks. - A patch tool,
patch, that applies precise line/column edits and reports syntax validity.
SIMD acceleration, tree-sitter verification, semantic squeezing, and atomic patching are planned phases, not current guarantees.
Intended Tools
scan: scan target directories for multiple keywords in one pass.ast_probe: validate raw hits against syntax tree node types.squeeze: return the smallest useful AST-bounded code block around a hit.patch: apply byte-offset edits and verify syntax after mutation.
See docs/usage.md for local examples and docs/mcp-protocol.md for the draft protocol.
Install
Claude Code Plugin (Recommended)
This repository is a self-hosted Claude Code plugin marketplace. It bundles the search-mesh MCP server registration and the agent skill together, so /plugin install wires up both in one step:
/plugin marketplace add jamestkelly/search-mesh
/plugin install search-mesh@search-mesh
On macOS and Linux, the plugin downloads and verifies the correct prebuilt search-mesh-mcp binary automatically the first time it's used — no separate install step. Windows isn't supported by the automatic installer yet; use cargo install search-mesh-mcp or a manual binary install there.
Manual Install
For OpenCode, or Claude Code configured manually rather than through the plugin, search-mesh-mcp needs to be on your PATH first.
search-mesh-mcp is published to crates.io and as prebuilt GitHub Release binaries.
Via cargo:
cargo install search-mesh-mcp
Via prebuilt binary: download search-mesh-mcp-<target>.tar.gz for your platform (macOS arm64, macOS x64, or Linux x64) from the Releases page, extract it, and put search-mesh-mcp on your PATH.
Configure Claude Code Manually
Add to .mcp.json at your project root:
{
"mcpServers": {
"search-mesh": {
"command": "search-mesh-mcp",
"args": []
}
}
}
Configure OpenCode
Add to opencode.jsonc:
{
"mcp": {
"search-mesh": {
"type": "local",
"command": ["search-mesh-mcp"],
"enabled": true
}
}
}
Agent Skill
The Claude Code plugin install above already includes this skill. To install it manually for other agents/setups, skills/search-mesh/SKILL.md teaches an agent when to prefer scan, ast_probe, squeeze, and patch over shell tools like grep, cat, and sed. Copy it into your own skills directory:
mkdir -p ~/.claude/skills/search-mesh
cp skills/search-mesh/SKILL.md ~/.claude/skills/search-mesh/SKILL.md
Repository Layout
.claude-plugin/
plugin.json Claude Code plugin manifest.
marketplace.json Self-hosted marketplace catalog listing this plugin.
.mcp.json Bundled MCP server registration (used by the plugin).
crates/
search-mesh-core/ Core search, parsing, squeezing, and patching logic.
search-mesh-mcp/ JSON-RPC/MCP stdio server.
docs/
architecture.md System shape and phased design.
mcp-protocol.md Tool schemas and response shapes.
roadmap.md Near-term implementation plan.
usage.md Local MCP usage examples.
examples/
scan-request.jsonl Example newline-delimited JSON-RPC requests.
initialize-request.jsonl
ast-probe-request.jsonl
squeeze-request.jsonl
patch-request.jsonl
patch-target.txt
scripts/
search-mesh-mcp-launcher.sh Installs search-mesh-mcp on first use (macOS/Linux), then execs it.
skills/
search-mesh/SKILL.md Agent skill teaching when to use these tools.
Development
Install Rust with rustup, then run:
just check
Equivalent commands:
cargo fmt --all -- --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace
CI And Releases
Pull requests and pushes to main run the Review workflow:
cargo fmt --all -- --checkcargo clippy --workspace --all-targets -- -D warningscargo test --workspace- MCP JSONL example smoke tests
Releases are prepared with release-plz from Conventional Commits:
release-plzopens a release PR that bumpsCargo.toml/Cargo.lockversions and updates the changelog.- Merging that PR to
maincreates a git tag and GitHub Release per changed package, and publishes both crates to crates.io. - When a
search-mesh-mcp-v*release is published, theRelease Binariesworkflow builds and attachessearch-mesh-mcpbinaries (plus a.sha256checksum file for each) for macOS (arm64, x64) and Linux (x64) as release assets.
Design Principles
- Prefer the smallest correct implementation before optimization.
- Keep protocol handling separate from core repository intelligence.
- Measure performance before adding specialized acceleration paths.
- Avoid
.unwrap()and.expect()outside tests. - Return agent-friendly payloads instead of whole files when possible.
License
MIT. See LICENSE.
More MCP servers from other plugins.
Questions about search-mesh.
- Which coding agents can use search-mesh?
- search-mesh works in any agent that reads an MCP config file: Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf. Each agent reads it from its own file; this page names the file for each one.
- How do I add search-mesh to Claude Code?
- Run these in order, one at a time. 1. In Claude Code: /plugin marketplace add jamestkelly/search-mesh 2. In Claude Code: /plugin install search-mesh@search-mesh

