Cross-repository dependency intelligence for AI agents via MCP
Project description
Merovingian
Cross-repository dependency intelligence for AI agents via MCP.
Merovingian maps cross-repo dependencies — API contracts, shared schemas, consumer relationships — and detects breaking changes before they propagate. It answers: "What else will break if I change this?"
Part of the EvoIntel MCP Suite (Sentinel, Niobe, Merovingian, Seraph, Anno).
Features
- OpenAPI spec parsing — detects endpoints, request/response schemas,
$refresolution (recursive, with cycle detection),allOf/anyOf/oneOfsupport - Pydantic model extraction — AST-parses Python files for BaseModel subclasses, no runtime imports needed
- Direction-aware breaking change detection — request vs response changes have opposite breaking semantics
- Consumer registry — track which services consume which endpoints
- Dependency graph — visualize producer/consumer relationships across repos
- Contract versioning — deterministic SHA256 spec hashing, version history with diff tracking
- MCP interface — 8 tools for AI agent consumption
- CLI — 12 commands via Typer with Rich output
Installation
pip install merovingian
Quick Start
# Register repositories
merovingian register user-service /path/to/user-service --type openapi
merovingian register billing-service /path/to/billing-service
# Scan for contracts
merovingian scan user-service
# Register consumer relationships
merovingian add-consumer billing-service user-service GET /users/{id}
# Check for breaking changes
merovingian breaking user-service
# Full impact assessment with consumer mapping
merovingian impact user-service
# View dependency graph
merovingian graph
# Contract version history
merovingian contracts user-service
CLI Commands
| Command | Description |
|---|---|
register <name> <path> |
Register a repository for scanning |
unregister <name> |
Remove a registered repository |
repos |
List all registered repositories |
scan <repo> |
Scan and update endpoints |
consumers |
List consumer relationships |
add-consumer <consumer> <producer> <method> <path> |
Register a consumer |
breaking <repo> |
Check for breaking changes |
impact <repo> |
Full impact assessment with consumer mapping |
contracts <repo> |
View contract version history |
graph |
View dependency graph |
feedback <target_id> <outcome> |
Submit feedback |
audit |
View audit log |
MCP Server
Add to your Claude Code configuration (~/.claude.json):
{
"mcpServers": {
"merovingian": {
"command": "merovingian-mcp",
"args": []
}
}
}
MCP Tools
| Tool | Description |
|---|---|
merovingian_register |
Register a repository for contract scanning |
merovingian_consumers |
List consumers of endpoints |
merovingian_breaking |
Check for breaking changes |
merovingian_impact |
Full impact assessment with consumer mapping |
merovingian_contracts |
List contract versions |
merovingian_graph |
Query the dependency graph |
merovingian_feedback |
Submit feedback on assessments |
merovingian_audit |
Query the audit log |
Breaking Change Detection
Merovingian classifies changes with direction-aware logic:
Breaking (blocks consumers):
- Endpoint removed
- Required field added to request body
- Response field removed
- Field type changed (non-widening)
- Optional field made required in request
Warning:
- Type widened (e.g.,
integer→number) - Required field made optional in response
Info (non-breaking):
- Endpoint added
- Optional field added to request
- Response field added
- Summary/description changed
Configuration
Merovingian uses layered configuration: TOML file → environment variables → defaults.
Create .merovingian/config.toml in your project root:
[store]
db_name = "merovingian.db"
[scanner]
openapi_patterns = ["openapi.yaml", "openapi.json", "swagger.yaml", "swagger.json"]
pydantic_scan_dirs = ["src", "app", "lib"]
[mcp]
default_query_limit = 50
Part of the EvoIntel MCP Suite
Merovingian solves AI Blindness #3: Cross-Service Dependencies — API contracts, consumer relationships, and breaking changes that span repository boundaries.
Part of the EvoIntel MCP Suite by Evolving Intelligence AI: five tools for five blindnesses no model improvement will ever fix.
| Tool | Blindness | Install |
|---|---|---|
| Sentinel | Project History | pip install git-sentinel |
| Niobe | Runtime Behavior | pip install niobe |
| Merovingian | Cross-Service Dependencies | pip install merovingian |
| Seraph | Code Quality | pip install seraph-ai |
| Anno | Web Content | npm install -g @evointel/anno |
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file merovingian-0.1.4.tar.gz.
File metadata
- Download URL: merovingian-0.1.4.tar.gz
- Upload date:
- Size: 33.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
593ca01a683cbe5bea5de4eb1c22e6eb772428c05f64e0182c4630dafe277a10
|
|
| MD5 |
44aef96b243e62a7549c74e7d5610b85
|
|
| BLAKE2b-256 |
138a79c7f3b50cd47ca0dd5c08d332833551444b404056410d665f6820d736bb
|
File details
Details for the file merovingian-0.1.4-py3-none-any.whl.
File metadata
- Download URL: merovingian-0.1.4-py3-none-any.whl
- Upload date:
- Size: 28.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4cf77eb1ef6b11361aa073e9c9f76cc4a5910382b1188962c816a850577df0c5
|
|
| MD5 |
3cb2d34ff0d8f22def22ec55ec7e75e4
|
|
| BLAKE2b-256 |
c4335ec0877746238357b26c14599d58509302cad03f3d0c08be93271b25e3c8
|