# Velvoite — EU Financial Regulatory Compliance MCP server

EU financial regulatory monitoring: DORA, MiCA, MiFID II, AML, Solvency II and more.

## Links
- Registry page: https://www.getdrio.com/mcp/eu-velvoite-compliance

## Install
- Endpoint: https://mcp.velvoite.eu/mcp
- Auth: Auth required by registry metadata

## Setup notes
- Remote header: X-API-Key (required; secret)
- The upstream registry signals required auth or secrets.
- Remote endpoint: https://mcp.velvoite.eu/mcp
- Header: X-API-Key

## Tools
- get_stats - 
    Get an overview of the Velvoite regulatory corpus.

    Returns document counts by source, regulation family, entity type,
    urgency distribution, obligation summary, and date range.

    Call this FIRST to orient yourself before running queries.
    No parameters needed.
     Endpoint: https://mcp.velvoite.eu/mcp
- search_regulations - 
    Search the regulatory corpus using keyword / trigram matching.

    Uses PostgreSQL trigram similarity on document titles and summaries.
    Returns documents ranked by relevance with summaries and classification tags.

    Prefer list_documents with filters (regulation, entity_type, source) first.
    Only use this for free-text keyword search when structured filters aren't sufficient.

    Args:
        query: Search terms (e.g. 'strong customer authentication', 'ICT risk', 'AML reporting').
        per_page: Number of results (default 20, max 100).
     Endpoint: https://mcp.velvoite.eu/mcp
- list_documents - 
    Browse regulatory documents with filters and pagination.

    Returns a paginated list of documents with summaries, tags, doc_purpose
    (regulation_text, enforcement, reference, irrelevant), and doc_jurisdictions
    (e.g. ['eu'], ['fi'], ['de']).
    Use this for filtered browsing (e.g. all DORA documents from the last 30 days).
    Use search_regulations instead when you have specific keywords to search for.

    Args:
        source: Filter by data source code: eur_lex, eba, esma, eiopa, finfsa, bafin.
        regulation: Filter by regulation family code: dora, mica, aml, mifid2, crd_crr, psd, csrd, sfdr, ai_act, emir, solvency, idd, gdpr.
        entity_type: Filter by entity type: credit_institution, payment_institution, e_money, investment_firm, fund_manager, aifm, insurance, pension, crypto_service, crowdfunding, credit_servicer.
        urgency_max: Max urgency level (1=critical, 2=high, 3=medium, 4=low, 5=informational). E.g. 2 returns only critical and high urgency items.
        days: Only return documents from the last N days (1-365).
        page: Page number (default 1).
        per_page: Results per page (default 20, max 100).
     Endpoint: https://mcp.velvoite.eu/mcp
- get_document - 
    Get full details of a specific regulatory document by its ID.

    Returns the document metadata, AI summary, all classification tags,
    inline obligations (up to 50 with total count), and a link to the original source.
    Use the URL to access the full text on the official regulatory website (EUR-Lex, EBA, ESMA, FIN-FSA).
    Get the document_id from search_regulations or list_documents results.

    Args:
        document_id: The Velvoite document ID (integer from search/list results).
     Endpoint: https://mcp.velvoite.eu/mcp
- get_obligations - 
    Get regulatory obligations - specific requirements extracted from regulations.

    Each obligation includes the requirement text, applicable article reference,
    deadline, which entity types it applies to, actor roles, and current status.
    Results are paginated (max 50 per page).

    Supports keyword search via the query parameter (trigram + ILIKE matching on obligation text).
    Combine with regulation, entity_type, and actor_role filters for precise results.

    Set canonical=True to get deduplicated canonical obligations with enforcement
    intelligence instead. Canonical obligations return one entry per unique legal
    requirement per actor role, with compliance difficulty and enforcement metrics.

    Use get_actor_roles first to discover available actor roles per regulation.

    Args:
        entity_type: Filter by entity type code (e.g. 'credit_institution', 'payment_institution').
        regulation: Filter by regulation code (e.g. 'dora', 'mica', 'aml').
        status: Filter by status: 'upcoming', 'active', 'overdue', or 'expired'.
        query: Keyword search on obligation text (e.g. 'ICT risk', 'strong customer authentication').
        actor_role: Comma-separated actor roles to filter by (e.g. 'credit_institution,significant_institution'). Use get_actor_roles to see available roles.
        canonical: If True, return deduplicated canonical obligations with enforcement intelligence instead of raw obligations.
        page: Page number (default 1).
        per_page: Results per page (default 20, max 50).
     Endpoint: https://mcp.velvoite.eu/mcp
- get_canonical_obligations - 
    Get deduplicated canonical obligations with enforcement intelligence.

    Returns one obligation per unique legal requirement per actor role.
    Each includes compliance difficulty, guidance, and enforcement metrics.

    Use this instead of get_obligations when you want a clean, deduplicated
    view of what a regulated entity must comply with, enriched with
    enforcement risk data.

    Args:
        regulation: Filter by regulation code (e.g. 'dora', 'mica', 'aml').
        actor_role: Comma-separated actor roles (e.g. 'credit_institution,significant_institution').
        entity_type: Filter by entity type code (e.g. 'credit_institution').
        compliance_difficulty: Filter by difficulty: 'low', 'medium', 'high', 'critical'.
        min_enforcement_count: Only return obligations with at least this many enforcement actions.
        sort: Sort order. Options: 'enforcement_count_desc' (default), 'compliance_difficulty_desc', 'regulation', 'actor_role'.
        page: Page number (default 1).
        per_page: Results per page (default 20, max 100).
     Endpoint: https://mcp.velvoite.eu/mcp
- get_enforcement_intelligence - 
    Get top enforced canonical obligations. Returns obligations ranked by
    enforcement activity for risk prioritization.

    This is a focused view of canonical obligations filtered to only those
    with at least one enforcement action. Use this to identify which
    obligations regulators are actively enforcing.

    Args:
        regulation: Filter by regulation code (e.g. 'dora', 'mica', 'aml').
        actor_role: Comma-separated actor roles (e.g. 'credit_institution,significant_institution').
        entity_type: Filter by entity type code (e.g. 'credit_institution').
        compliance_difficulty: Filter by difficulty: 'low', 'medium', 'high', 'critical'.
        min_enforcement_count: Minimum enforcement actions (default 1 — only enforced obligations).
        sort: Sort order (default 'enforcement_count_desc').
        page: Page number (default 1).
        per_page: Results per page (default 20, max 100).
     Endpoint: https://mcp.velvoite.eu/mcp
- get_deadlines - 
    Get upcoming regulatory deadlines for compliance calendar tracking.

    Returns obligations with deadlines in chronological order, annotated
    with days remaining or days overdue. Essential for compliance planning.

    Args:
        entity_type: Filter by entity type code (e.g. 'credit_institution').
        regulation: Filter by regulation code (e.g. 'dora').
        days_ahead: How many days ahead to look (default 90, max 730).
        include_overdue: Include past-due obligations (default true).
     Endpoint: https://mcp.velvoite.eu/mcp
- get_obligation_summary - 
    Get obligation counts grouped by regulation_code.

    Returns total count and per-regulation breakdown with status counts
    (active, upcoming, overdue, expired) plus verified and with_deadline counts.
    No full obligation text — just counts for a quick overview.

    Args:
        entity_type: Filter to obligations applying to this entity type (e.g. 'credit_institution', 'payment_institution').
        actor_role: Comma-separated actor roles to filter by (e.g. 'financial_entity,credit_institution').
            Use get_company_profile to see the company's roles, or get_actor_roles to browse all available roles.
     Endpoint: https://mcp.velvoite.eu/mcp
- get_recent_changes - 
    Get recently published or updated regulatory documents.

    Shortcut for 'what is new this week' - returns documents from the last N days,
    sorted by publication date (newest first). Useful for weekly regulatory briefings.

    Args:
        days: Look back N days (default 7).
        entity_type: Filter by entity type code.
        regulation: Filter by regulation family code.
        urgency_max: Only include items at or above this urgency (1=critical, 2=high, etc.).
     Endpoint: https://mcp.velvoite.eu/mcp
- get_verification_stats - 
    Get verification progress for obligations across all regulations.

    Returns total, verified, unverified counts overall and per regulation,
    with percentage verified. Use this to track human review progress.
    No parameters needed.
     Endpoint: https://mcp.velvoite.eu/mcp
- get_actor_roles - 
    Get available actor roles per regulation with obligation counts.

    Actor roles define WHO an obligation applies to within a specific regulation
    (e.g. 'credit_institution', 'significant_institution' for CRD/CRR, or
    'ai_provider', 'high_risk_deployer' for AI Act).

    Use this to discover which roles exist before filtering obligations with
    get_obligations(actor_role=...).

    Returns roles grouped by regulation, sorted by obligation count.
    Each role includes a human-readable label and description.

    Args:
        regulation: Filter to a specific regulation code (e.g. 'dora', 'ai_act'). If omitted, returns roles for all regulations.
     Endpoint: https://mcp.velvoite.eu/mcp
- get_company_profile - 
    Get the calling company's regulatory posture — saved entity types,
    actor roles per regulation, and active conditions.

    The profile defines WHICH regulations and roles apply to this company.
    Use the actor_roles to filter obligations with get_obligations(actor_role=...).

    The profile is the baseline — you can extend beyond it using get_actor_roles()
    to discover additional roles if your analysis suggests they may be relevant.

    If the profile is empty (profile_complete=false), the company hasn't completed
    onboarding yet. Guide them to set up their profile at app.velvoite.eu/account.

    No parameters needed — the profile is determined by the API key.

    Returns:
        company_name: Company name
        jurisdictions: Active jurisdictions (always includes 'eu')
        profile:
            entity_types: List of entity type codes (e.g. ['credit_institution'])
            actor_roles: Dict of regulation_code -> list of role codes
                (e.g. {'dora': ['financial_entity'], 'ai_act': ['ai_deployer']})
            conditions: Dict of regulation_code -> list of active conditions
                (e.g. {'dora': ['uses_ict_third_party'], 'ai_act': ['always']})
        profile_complete: Whether the company has selected at least one actor role
     Endpoint: https://mcp.velvoite.eu/mcp
- get_enforcement_decisions - 
    Get enforcement decisions with structured penalty data.

    Returns enforcement actions (fines, warnings, license withdrawals) imposed
    by regulators. Each action includes penalty amount, sanctioned entity,
    violation categories, and appeal status.

    Use this to answer questions like:
    - "What fines has FIN-FSA given to credit institutions?"
    - "What are the largest penalties for AML violations?"
    - "Has anyone been fined for ICT risk management failures?"
    - "What's the total penalty exposure for my entity type?"

    Combine with get_company_profile to find enforcement actions relevant
    to the caller's entity type and regulations.

    Args:
        regulation: Filter by regulation code (e.g. 'aml', 'dora', 'mifid2', 'gdpr', 'crd_crr').
        entity_type: Filter by sanctioned entity type (e.g. 'credit_institution', 'investment_firm', 'crypto_service').
        authority: Filter by sanction authority (e.g. 'FIN-FSA', 'ECB', 'Data Protection Ombudsman').
        penalty_min: Minimum penalty amount in EUR (e.g. 1000000 for fines >= EUR 1M).
        violation_category: Filter by violation type (e.g. 'aml_cdd', 'ict_risk', 'sca', 'governance', 'conduct').
        page: Page number (default 1).
        per_page: Results per page (default 20, max 100).
     Endpoint: https://mcp.velvoite.eu/mcp
- audit_taxonomy - 
    Audit the actor role taxonomy: compare model-defined roles vs deployed roles in the database.

    Returns per-regulation analysis showing:
    - model_only: roles the enrichment model can produce but aren't in the DB yet (gap)
    - deployed_only: roles in the DB but not in the model (unexpected — data quality issue)
    - role_counts: each deployed role with obligation count
    - known_issues: overlaps, naming issues, investigation items

    Use this for QA validation of the actor role taxonomy.
    Requires admin API key.

    No parameters needed — returns full corpus audit.
     Endpoint: https://mcp.velvoite.eu/mcp
- get_feedback - Get user feedback for QA review. Requires admin API key.

    Filters: status (new/reviewed/resolved/dismissed), feedback_type (data_quality/bug/feature_request/other),
    context_type (document/obligation/general).
     Endpoint: https://mcp.velvoite.eu/mcp

## Resources
Not captured

## Prompts
Not captured

## Metadata
- Owner: eu.velvoite
- Version: 1.0.0
- Runtime: Streamable Http
- Transports: HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: Mar 14, 2026
- Source: https://registry.modelcontextprotocol.io
