Skip to main content
Glama
Merovingian MCP Server

Merovingian MCP Server

by evo-hydra

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, $ref resolution (recursive, with cycle detection), allOf/anyOf/oneOf support

  • 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

Related MCP server: coderadius

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

Available Tools

10 tools
merovingian_add_consumerA

Register a consumer relationship between two repositories.

Call this to tell Merovingian that consumer_repo calls an endpoint on producer_repo. Once registered, merovingian_impact will include this relationship in its blast radius analysis.

Args: consumer_repo: Name of the repo that calls the endpoint (e.g. 'web-client') producer_repo: Name of the repo that owns the endpoint (e.g. 'api-server') endpoint_method: HTTP method (e.g. 'GET', 'POST') endpoint_path: Endpoint path (e.g. '/api/v1/transactions')

Inputs: consumer_repo (required), endpoint_path (required), producer_repo (required), endpoint_method (required). Returns: result

merovingian_auditC

Query the audit log of tool invocations.

Args: tool_name: Filter by tool name (optional) since: Look back N minutes (optional) limit: Max entries to return (optional, default 50)

Inputs: limit, since, tool_name. Returns: result

merovingian_breakingC

Check for breaking changes in a repository's contracts.

Args: repo_name: Name of the repository to check

Inputs: repo_name (required). Returns: result

merovingian_consumersC

List consumers of endpoints.

Args: producer_repo: Filter by producer repository name (optional) endpoint_method: Filter by HTTP method (optional) endpoint_path: Filter by endpoint path (optional)

Inputs: endpoint_path, producer_repo, endpoint_method. Returns: result

merovingian_contractsC

List contract versions for a repository.

Args: repo_name: Name of the repository limit: Maximum number of versions to return (optional, default 50)

Inputs: repo_name (required), limit. Returns: result

merovingian_feedbackB

Submit feedback on an assessment or change.

Args: target_id: ID of the report or change to give feedback on outcome: One of: accepted, rejected, modified target_type: Type of target (e.g., 'report', 'change') (optional) context: Explanation of why (optional)

Inputs: outcome (required), target_id (required), context, target_type. Returns: result

merovingian_graphC

Query the dependency graph.

Args: repo_name: Filter to a specific repository's dependencies (optional)

Inputs: repo_name. Returns: result

merovingian_impactC

Full impact assessment with consumer mapping for a repository.

Args: repo_name: Name of the repository to assess

Inputs: repo_name (required). Returns: result

merovingian_registerA

Register a repository for contract scanning.

Args: name: Unique name for the repository path: Filesystem path to the repository root contract_type: Contract type: 'openapi' or 'pydantic' (optional, auto-detect if omitted)

Inputs: name (required), path (required), contract_type. Returns: result

merovingian_scanA

Scan a registered repository and ingest its API contracts.

Must be called after merovingian_register before contracts are visible. Safe to re-run — updates endpoints without deleting contract history.

Args: name: Repository name (as registered with merovingian_register)

Inputs: name (required). Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 10 tools

    Disambiguation4/5

    The tools are largely distinct, each covering lifecycle stages (register, scan, add_consumer, breaking, impact). The only slight overlap is between `merovingian_consumers` and `merovingian_impact`, as both deal with consumers, but their focus differs (listing consumers vs. full impact assessment).

    Naming Consistency5/5

    All tools follow a consistent `merovingian_<verb>` pattern with clear, descriptive verb choices (e.g., register, scan, add_consumer, breaking, impact). The naming is uniform and predictable.

    Tool Count5/5

    With 10 tools, the count is well-scoped for a contract scanning and dependency analysis server. Each tool covers a distinct step in the workflow without being excessive or sparse.

    Completeness4/5

    The tool surface covers registration, scanning, dependency management, contract listing, breaking change detection, impact analysis, feedback, and audit. Minor gap: no tool to unregister a repository or delete consumer relationships, which could cause dead ends in cleanup scenarios.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI agents to query architecture context, data contracts, and blast radius to prevent cross-repo architectural breakage before merging.
      23
      Apache 2.0
    • A
      license
      Not graded
      quality
      B
      maintenance
      Provides a dependency graph of any local repository with tools for change impact, transitive dependents, health audits, and more, enabling AI coding agents to see structure and refactor safely.
      4,912 npm
      4
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI agents to query and analyze code across multiple repositories through a unified knowledge graph, with tools for symbol search, impact analysis, and graph algorithms.
      54 npm
      MIT