testigo-recall-mcp
MCP server that exposes a pre-scanned codebase knowledge base to AI agents. Instead of reading source files directly, agents query pre-extracted facts about code behavior, design decisions, and assumptions — saving time and tokens.
Works with Claude Code, Cursor, Windsurf, and any MCP-compatible client.
Installation
pip install testigo-recall-mcp
Configuration
GitHub Releases (default)
Auto-downloads knowledge base .db files from a GitHub release:
{
"mcpServers": {
"testigo-recall": {
"command": "testigo-recall-mcp",
"env": {
"TESTIGO_RECALL_REPO": "owner/repo",
"GITHUB_TOKEN": "ghp_..."
}
}
}
}
Azure Blob Storage
Downloads .db files from an Azure Blob Storage container. Auth uses your existing az login session — no secrets needed:
{
"mcpServers": {
"testigo-recall": {
"command": "testigo-recall-mcp",
"env": {
"TESTIGO_RECALL_AZURE_URL": "https://account.blob.core.windows.net/container"
}
}
}
}
Auth priority: SAS token > az login bearer token > public container.
Local files
Point directly at local .db files (useful for development/demos):
{
"mcpServers": {
"testigo-recall": {
"command": "testigo-recall-mcp",
"env": {
"TESTIGO_RECALL_DB_PATH": "/path/to/knowledge.db"
}
}
}
}
All backends can be combined — DBs are merged at startup.
Environment Variables
| Variable | Description |
|---|---|
TESTIGO_RECALL_REPO |
GitHub repo(s), comma-separated (e.g. owner/repo). Auto-downloads from knowledge-base release tag. |
TESTIGO_RECALL_AZURE_URL |
Azure Blob Storage container URL(s), comma-separated. |
TESTIGO_RECALL_AZURE_SAS |
Optional SAS token for Azure (read+list). Not needed if az login is active. |
TESTIGO_RECALL_DB_PATH |
Local .db file path(s), comma-separated. |
GITHUB_TOKEN |
GitHub token for private repos. Public repos work without auth. |
Tools
The server exposes 6 tools to AI agents:
search_codebase
Full-text search across the knowledge base. Returns facts ranked by relevance. Supports semicolon-separated multi-query batching (e.g. "auth login; session JWT; middleware").
query— search keywordscategory— optional filter:behavior,design, orassumptionmin_confidence— confidence threshold 0.0-1.0limit— max results (default: 20)repo_name— optional filter to scope to one repository
get_module_facts
Deep dive into a specific module. Use search_codebase first to discover module IDs.
module_id— e.g.SCAN:backend/app/apiorPR-123
get_recent_changes
Most recently extracted facts across the codebase.
category— optional filterlimit— number of results (default: 10)
get_component_impact
Blast radius analysis — shows what depends on a component and what it depends on.
component_name— file path or service name (e.g.api_service.py)
list_modules
Lists all scanned modules in the knowledge base. Call without arguments for a compact repo summary.
repo_name— optional repository filter
get_repo_dependencies
Cross-repo dependency graph from package manifests (go.mod, package.json).
repo_name— optional filterdirection—outgoing,incoming, orboth
How It Works
The knowledge base contains pre-extracted facts organized by category:
- behavior — what the code does (triggers, outcomes)
- design — how it's built (decisions, patterns, trade-offs)
- assumption — what it expects (invariants, prerequisites)
Facts come from two sources:
- SCAN facts (
SCAN:module/path) — current state of a module, refreshed automatically - PR facts (
PR-123) — what a specific PR changed, preserved as history
The server uses SQLite with FTS5 full-text search for fast, relevance-ranked queries.
Multi-repo support
All backends support multiple repositories in a single MCP server instance. Each repo gets its own .db file, stored in a shared location (GitHub release, Azure container, or local directory). The server downloads all .db files and merges them into a unified knowledge base at startup.
knowledge-base/
├── frontend-app.db
├── backend-api.db
├── shared-lib.db
└── infrastructure.db
Use list_modules() to see all available repos, and repo_name parameter on search_codebase to scope queries.
Metadata
Release files for testigo-recall-mcp 0.5.7
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 | Actions |
|---|---|---|---|---|
| testigo_recall_mcp-0.5.7.tar.gz | 20.4 kB | Without provenance | Details for testigo_recall_mcp-0.5.7.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| testigo_recall_mcp-0.5.7-py3-none-any.whl | Python 3 | none | any | Details for testigo_recall_mcp-0.5.7-py3-none-any.whl |
Total release size: 41.0 kB
Release files / testigo_recall_mcp-0.5.7.tar.gz
| Download URL | testigo_recall_mcp-0.5.7.tar.gz |
|---|---|
| Size | 20.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f7853c6a49e234e9c2b608f0fc01ede431c5508ba59cfaaa947ccdb984ba7e7f
|
|
BLAKE2b-256 checksum How to use checksums |
fe7045db6a77d8fbba7f85437eb4468f8c4658f158acfb390ad216e9c9620976
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / testigo_recall_mcp-0.5.7-py3-none-any.whl
| Download URL | testigo_recall_mcp-0.5.7-py3-none-any.whl |
|---|---|
| Size | 20.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fbf2fd8fad0a8f5a79d1cdd06eea8776125c46e54da02c2f1653cb4e90995bd5
|
|
BLAKE2b-256 checksum How to use checksums |
fc260a6d297c5bd6c939efe4081cd7ef577f9ad900097be8a367ae0da89b6865
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Security for testigo-recall-mcp 0.5.7
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.
To learn more about protecting yourself from malicious actors, visit our package security documentation.