Seraph
Local code search and Git-aware code intelligence for coding agents. Seraph indexes a local Git checkout into a SQLite database and exposes working-tree search, change impact, task context, repository maps, symbols, dependencies, history, and version comparison over MCP.
Install from a checkout
Requires Python 3.12 and Git. With uv:
uv tool install --from . seraph-mcp
For development directly from this directory:
uv sync
uv run seraph-mcp
Install the published package from PyPI:
python -m pip install seraph-mcp
Agent setup
Register a local stdio MCP server in your agent with command seraph-mcp and no arguments, then reload the MCP connection. Use your agent's own MCP setup UI or command because configuration differs by host. On every Seraph tool call, pass repo as the absolute path to the local Git checkout you want searched. Use the active workspace path for that project, or a different repository path when the question is about another checkout.
Seraph runs on the user's machine. Each tool accepts repo, the absolute path to the local Git checkout to search. The agent should pass the active workspace path on every call; if asked about another checkout, pass that checkout's path. The index is stored at <repo>/.seraph/index.sqlite and ignored by Git.
MCP tools
search_code: retrieve relevant code from the selected checkout.search_at_version: retrieve code from a commit, branch, or tag.search_history: search indexed Git versions.find_symbol: locate a function, class, or method.find_dependencies: walk call, import, and inheritance relationships.get_working_tree_status: see staged, unstaged, and untracked source changes.search_worktree: search current on-disk source, including uncommitted edits and untracked files.change_impact: find statically resolved callers, importers, and related tests for symbols or changed paths.prepare_change_context: bundle task-relevant code, a repo map, change impact, and Git history in one bounded response.get_repo_map: get a compact file-to-symbol overview; selectscope="worktree"for current on-disk files, expand a subtree withpath_prefix, or raisemax_filesandmax_chars.compare_versions: compare symbols, dependencies, and commits.index_repository: explicitly index a Git version; searches index automatically when needed.
The default retrieval setup is local and needs no API key. Benchmark/evaluation code and submission assets are intentionally excluded from this slim distribution.
prepare_change_context caps its response by characters, reports when it truncates, and suggests focused follow-up tools. The coding agent decides how that evidence fits its own token budget. Working-tree tools overlay changed supported source files on indexed HEAD; the overlay itself is temporary.
Optional local semantic search
The default install uses BM25 and does not install Torch or download a model.
For BGE-Code-v1 or GTE-ModernBERT, opt in to the Transformers 4 extra:
python -m pip install 'seraph-mcp[cpu]' # CPU / Apple Silicon
# or, on an NVIDIA CUDA machine:
python -m pip install 'seraph-mcp[gpu]'
Seraph downloads BGE-Code-v1 (about 6 GB) from Hugging Face the first time semantic search needs it. Hugging Face caches the files, so the same user account reuses that model across repositories. Each teammate only downloads their own local cache if they opt in.
EmbeddingGemma-2 needs Transformers 5, so use its separate extra instead of cpu or gpu:
python -m pip install 'seraph-mcp[gemma2]'
Choose embeddinggemma-2 in Seraph's model configuration. The selected model weights download on first use and are then cached locally.
CLI
seraph --repo /path/to/repo index
seraph --repo /path/to/repo search "where is request authentication checked?"
seraph --repo /path/to/repo symbol authenticate_request
seraph --repo /path/to/repo deps authenticate_request
seraph --repo /path/to/repo compare <old-commit> <new-commit>
License
Released under the MIT License.
Metadata
Release files for seraph-mcp 0.1.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| seraph_mcp-0.1.6.tar.gz | 68.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| seraph_mcp-0.1.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 153.8 kB
Release files / seraph_mcp-0.1.6.tar.gz
| Download URL | seraph_mcp-0.1.6.tar.gz |
|---|---|
| Size | 68.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
783d469a37418befb3eb8065bf5628a719a65f5f626c5a9bc493ac3afe0575c9
|
|
BLAKE2b-256 checksum How to use checksums |
7da5b674c7977b048066b0740129af3b476f69cd6b3e30048c783becf56e9e29
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / seraph_mcp-0.1.6-py3-none-any.whl
| Download URL | seraph_mcp-0.1.6-py3-none-any.whl |
|---|---|
| Size | 85.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c6863d1b0970f8a604c181703714757861b1e5bc71e53d6fb8a37a92dbe5fa14
|
|
BLAKE2b-256 checksum How to use checksums |
7d495357e1a48a9524671e484d316a9509a0ea87691cd41eb1d88f8dea086724
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Security for seraph-mcp 0.1.6
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.