Skip to main content
Glama
Ansvar-Systems

romanian-financial-regulation-mcp

Romanian Financial Regulation MCP

The Romanian financial-regulation corpus is now served through the Ansvar Gateway. Connect your AI assistant (Claude, Copilot, Cursor, or any MCP client) to https://gateway.ansvar.eu/mcp — one OAuth connection, free tier available, covering this corpus plus EU regulations, national law across 28 audited jurisdictions (Europe + the US), and CVE/security intelligence, every result with a verbatim source citation. Start at https://ansvar.eu/docs/quickstart

Connect

Claude Code (one line):

claude mcp add ansvar --transport http https://gateway.ansvar.eu/mcp

Claude Desktop / Cursor — add to claude_desktop_config.json (or mcp.json):

{
  "mcpServers": {
    "ansvar": {
      "type": "url",
      "url": "https://gateway.ansvar.eu/mcp"
    }
  }
}

Claude.ai — Settings → Connectors → Add custom connector → paste https://gateway.ansvar.eu/mcp

First request opens an OAuth signup flow (setup details: ansvar.eu/docs/quickstart). After signup, your client is bound to your account; tier (free / premium / team / company) determines fan-out, quota, and which downstream MCPs are reachable.


Self-host this MCP

You can also clone this repo and build the corpus yourself. The schema, fetcher, and tool implementations all live here. What is not in the repo is the pre-built database — TDM and standards-licensing constraints on the upstream sources mean we host the corpus on Ansvar infrastructure rather than redistribute it as a public artifact.

Build your own: run this repo's ingestion script (entry-point varies per repo — typically scripts/ingest.sh, npm run ingest, or make ingest; check the repo root).

Romanian financial regulation data for AI compliance tools.

License CI

Query Romanian financial regulation data -- regulations, decisions, and requirements from ASF (Financial Supervisory Authority) -- directly from Claude, Cursor, or any MCP-compatible client.

Built by Ansvar Systems -- Stockholm, Sweden


Related MCP server: Romanian Data Protection MCP

Available Tools (6)

Tool

Description

ro_fin_search_regulations

Full-text search across Romanian financial regulation provisions. Returns matching ASF norme, instructiuni, BNR regul...

ro_fin_get_regulation

Get a specific Romanian financial regulation provision by sourcebook and reference. Accepts references like

ro_fin_list_sourcebooks

List all Romanian financial regulation sourcebooks with their names and descriptions. Covers ASF and BNR regulatory o...

ro_fin_search_enforcement

Search ASF and BNR enforcement actions — sanctiuni, avertismente, and interdictii. Returns matching enforcement decis...

ro_fin_check_currency

Check whether a specific Romanian financial regulation provision reference is currently in force. Returns status and ...

ro_fin_about

Return metadata about this MCP server: version, data source, tool list.

All tools return structured data with source references and timestamps.


Data Sources and Freshness

All content is sourced from official Romanian regulatory publications:

  • ASF (Financial Supervisory Authority) -- Official regulatory authority

Data Currency

  • Database updates are periodic and may lag official publications

  • Freshness checks run via GitHub Actions workflows

  • Last-updated timestamps in tool responses indicate data age

See sources.yml for full provenance metadata.


Security

This project uses multiple layers of automated security scanning:

Scanner

What It Does

Schedule

CodeQL

Static analysis for security vulnerabilities

Weekly + PRs

Semgrep

SAST scanning (OWASP top 10, secrets, TypeScript)

Every push

Gitleaks

Secret detection across git history

Every push

Trivy

CVE scanning on filesystem and npm dependencies

Daily

Docker Security

Container image scanning + SBOM generation

Daily

Socket.dev

Supply chain attack detection

PRs

Dependabot

Automated dependency updates

Weekly

See SECURITY.md for the full policy and vulnerability reporting.


Important Disclaimers

Not Regulatory Advice

THIS TOOL IS NOT REGULATORY OR LEGAL ADVICE

Regulatory data is sourced from official publications by ASF (Financial Supervisory Authority). However:

  • This is a research tool, not a substitute for professional regulatory counsel

  • Verify all references against primary sources before making compliance decisions

  • Coverage may be incomplete -- do not rely solely on this for regulatory research

Before using professionally, read: DISCLAIMER.md | PRIVACY.md

Confidentiality

Queries go through the Claude API. For privileged or confidential matters, use on-premise deployment. See PRIVACY.md for details.


Development

Setup

git clone https://github.com/Ansvar-Systems/romanian-financial-regulation-mcp
cd romanian-financial-regulation-mcp
npm install
npm run build
npm test

Running Locally

npm run dev                                       # Start MCP server
npx @anthropic/mcp-inspector node dist/index.js   # Test with MCP Inspector

Data Management

npm run build:db       # Rebuild SQLite database from seed data
npm run check-updates  # Check for new regulatory data

More Ansvar MCPs

Full fleet coverage at ansvar.eu/coverage.

Contributing

Contributions welcome! See CONTRIBUTING.md for guidelines.


License

Apache License 2.0. See LICENSE for details.

Data Licenses

Regulatory data sourced from official government publications. See sources.yml for per-source licensing details.


About Ansvar Systems

We build AI-powered compliance and legal research tools for the European market. Our MCP fleet provides structured, verified regulatory data to AI assistants -- so compliance professionals can work with accurate sources instead of guessing.

ansvar.eu -- Stockholm, Sweden


Available Tools

6 tools
ro_fin_aboutA

Return metadata about this MCP server: version, data source, tool list.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses the return content (version, data source, tool list) but does not mention any behavioral details such as idempotency, side effects, or authorization requirements. Adequate for a read-only metadata endpoint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 9 words, front-loaded with the action and object. Every word earns its place, and no extraneous information is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple info tool with no input schema and no output schema, the description is sufficient. It lists the specific metadata fields returned. Could be slightly more detailed about the format, but it meets the minimum completeness for the given complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema coverage is 100% (empty schema). The description correctly notes the tool takes no input. With no parameters to document, this is effectively a baseline score of 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: return metadata about the MCP server including version, data source, and tool list. It distinguishes well from sibling tools which deal with regulations and enforcement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving server metadata but does not provide explicit guidance on when to use or when not to use, nor does it mention alternatives. The context is clear enough given the simple nature of the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ro_fin_check_currencyA

Check whether a specific Romanian financial regulation provision reference is currently in force. Returns status and effective date.

ParametersJSON Schema
NameRequiredDescriptionDefault
referenceYesFull provision reference to check

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. The description mentions it returns status and effective date, but does not disclose whether it is read-only, authentication needs, or error behavior. Moderate transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one sentence, front-loaded, and contains no unnecessary words. Every part adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple nature (single parameter, no output schema), the description adequately covers input and output. No missing critical information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter. Description adds no extra meaning beyond the schema's 'Full provision reference to check', so baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool checks whether a Romanian financial regulation provision reference is currently in force, distinguishing it from sibling tools like search or get regulation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the usage (checking currency of a reference), but does not provide explicit when-to-use or alternatives compared to siblings, relying on context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ro_fin_get_regulationA

Get a specific Romanian financial regulation provision by sourcebook and reference. Accepts references like 'ASF_NORME 15/2015 art.3' or 'BNR_REGULAMENTE 5/2013 art.10'.

ParametersJSON Schema
NameRequiredDescriptionDefault
referenceYesFull provision reference (e.g., 'ASF_NORME 15/2015 art.3')
sourcebookYesSourcebook identifier (e.g., ASF_NORME, BNR_REGULAMENTE)

TDQS

A4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It only states the basic function without disclosing any behavioral traits like error handling, rate limits, or authentication requirements. For a read-only lookup, this might be sufficient, but it lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, with the first stating the purpose and the second giving examples. It is front-loaded and contains no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 required params, no output schema), the description is fairly complete. It explains what the tool does and how to use it with examples. However, it could mention that the sourcebook must be a valid identifier from the list.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are already described. The description adds value by providing concrete examples of valid references, which clarifies the expected format beyond the schema's generic descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the specific resource 'Romanian financial regulation provision' with distinct identifiers 'sourcebook' and 'reference'. It distinguishes from sibling tools like ro_fin_search_regulations by focusing on a specific provision retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit examples of valid references (e.g., 'ASF_NORME 15/2015 art.3') and implies that this tool is for fetching a specific provision, not for searching or listing. However, it does not explicitly exclude cases where the reference might be malformed or when to use alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ro_fin_list_sourcebooksA

List all Romanian financial regulation sourcebooks with their names and descriptions. Covers ASF and BNR regulatory output.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It correctly indicates a read-only list operation with no side effects. While minimal, it suffices for this simple, parameterless tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words. The action ('list') and scope are front-loaded, making it instantly understandable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, no-output-schema tool, the description fully specifies what the tool returns (names and descriptions) and its coverage (ASF and BNR). No gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the description naturally adds no parameter details. The schema coverage is trivial at 100%, earning a baseline score of 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all Romanian financial regulation sourcebooks with their names and descriptions, explicitly covering ASF and BNR outputs. It is distinct from sibling tools like search or get.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context is clear: use this tool to obtain a list of sourcebooks. No explicit exclusions or alternatives are stated, but the purpose is self-evident among the set of related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ro_fin_search_enforcementA

Search ASF and BNR enforcement actions — sanctiuni, avertismente, and interdictii. Returns matching enforcement decisions.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return. Defaults to 20.
queryYesSearch query (e.g., firm name, type of breach, 'abuz de piata')
action_typeNoFilter by action type. Optional.

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only states it 'searches' and 'returns' results, with no mention of read-only nature, side effects, rate limits, or pagination. This is insufficient for full transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, directly states the purpose and return value, and contains no wasted words. It is efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 parameters and no output schema, the description is somewhat sparse. It does not explain what ASF and BNR are, does not describe the return format or fields beyond 'matching enforcement decisions', and lacks any discussion of pagination or result limits.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all three parameters with descriptions (100% coverage), so the description adds marginal value. It provides context about action types (fine, ban, restriction, warning) that align with the enum, but beyond that it does not enhance parameter understanding significantly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Search' and the resource 'ASF and BNR enforcement actions' with specific types ('sanctiuni, avertismente, and interdictii'). It also mentions it returns matching enforcement decisions, distinguishing it from siblings like ro_fin_search_regulations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions or prerequisites. Usage is implied by the tool name and description, but no direct guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ro_fin_search_regulationsA

Full-text search across Romanian financial regulation provisions. Returns matching ASF norme, instructiuni, BNR regulamente, and norme on capital markets and prudential requirements.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return. Defaults to 20.
queryYesSearch query in Romanian (e.g., 'cerinte de capital', 'piata de capital', 'cerinte prudentiale')
statusNoFilter by provision status. Defaults to all statuses.
sourcebookNoFilter by sourcebook ID (e.g., ASF_NORME, ASF_INSTRUCTIUNI, BNR_REGULAMENTE, BNR_NORME). Optional.

TDQS

A3.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must disclose behavioral traits but only states it returns matching documents. It does not mention whether the tool is read-only (safe to call multiple times), any rate limits, authentication requirements, or the output format (e.g., list of IDs, snippets). This omission forces the agent to guess behavior from the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently conveys the tool's purpose and scope. Every word earns its place, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 4 parameters but no output schema, the description should explain what the response looks like (e.g., list of regulation IDs with metadata). It only says 'returns matching...', leaving the structure unclear. The tool's complexity is moderate, but the description fails to fully equip an agent to use it correctly without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

While schema coverage is 100% and baseline is 3, the description adds domain context by naming specific regulatory bodies (ASF, BNR) and document types. This helps an agent understand the 'sourcebook' parameter's significance and that 'query' should be in Romanian. The examples in the schema description for 'query' further aid interpretation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it performs full-text search across Romanian financial regulation provisions and lists the specific document types returned (ASF norme, instructiuni, BNR regulamente, norme). This distinctively differentiates it from siblings like ro_fin_get_regulation (retrieve specific regulation) and ro_fin_search_enforcement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use the tool: when searching Romanian financial regulations. It implicitly tells the agent not to use this tool for retrieving a single regulation (use ro_fin_get_regulation) or searching enforcement (use ro_fin_search_enforcement). However, it lacks explicit when-not-to-use or alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

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

  1. 6 tool updatesv0.1.0
    • First observedro_fin_about
    • First observedro_fin_check_currency
    • First observedro_fin_get_regulation
    • First observedro_fin_list_sourcebooks
    • First observedro_fin_search_enforcement
    • First observedro_fin_search_regulations

TDQS

A4.2/5.0

Scored across 6 tools

Disambiguation5/5

Each tool serves a distinct purpose: full-text search, specific provision retrieval, sourcebook listing, enforcement search, status checking, and server metadata. No overlap.

Naming Consistency5/5

All tools follow a consistent 'ro_fin_' prefix with a verb_noun pattern (search_regulations, get_regulation, list_sourcebooks, search_enforcement, check_currency, about).

Tool Count5/5

6 tools is appropriate for the domain—covers essential operations without being too few or too many.

Completeness5/5

The server provides search, retrieval, listing, enforcement checking, and regulatory status. For a read-only regulatory lookup server, the surface is complete.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers