关于 Romania
Romania 是用于查询罗马尼亚企业公开记录的 MCP 服务,涵盖财务申报、诉讼、合同和增值税状态。它还支持本地保存报告、快照和监控,并标明数据源状态及缺失信息。
主要功能
- 01企业报告与财务趋势
- 02ONRC 名称搜索及本地导入
- 03诉讼案件与公共合同
- 04增值税、汇率和 IBAN 检查
- 05本地快照与企业监控
适用场景
- 01查看企业财务申报和诉讼记录
- 02搜索已导入的 ONRC 与 SEAP 数据集
- 03跟踪已保存企业报告的变化
- 04检查供应商名单并导出结果
MCP 相关
该服务向 MCP 客户端提供企业、数据集、快照、监控和供应商检查工具,支持 Claude Desktop、Cursor 等客户端的 stdio 配置。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
6收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| cuis | array | 是 | 一个或多个 CUI,可带或不带 RO,例如 ["14399840", "RO18547290"]。单次最多 500 个。 |
| date | any | 否 | 查询此日期的状态(YYYY-MM-DD 或 DD.MM.YYYY),例如发票日期,以确认供应商当时是否已登记 VAT。默认为今天。 |
详细介绍
romania-mcp
通过 MCP 客户端查询罗马尼亚公司:ANAF 状态、已申报财务数据、法院案件、公共合同和欧盟 VAT 注册信息。按名称搜索导入的 ONRC 数据,保存本地快照并查看变化。无需 API 密钥。
按名称或 CUI 查询公司,查看其资产负债表和案件,然后保存报告以便日后对比。如果某个数据源没有响应,报告会指出缺少哪些信息。
安装
Python 3.10 或更高版本:
pip install romania-mcp-server
要运行此代码库中的代码(包括尚未发布到 PyPI 的更改):
pip install -e .
对于 Claude Desktop,请将以下内容添加到 claude_desktop_config.json:
{
"mcpServers": {
"romania": {
"command": "uvx",
"args": ["romania-mcp-server"]
}
}
}
如果你使用 pip 安装了此代码库,请使用 "command": "romania-mcp-server" 并省略 args。这样会运行你安装的代码库,而不是已发布的软件包。Cursor 和其他 stdio MCP 客户端也接受相同的配置。
对于 Claude Code:
claude mcp add romania -- romania-mcp-server
公司查询
| 工具 | 功能 |
|---|---|
company_report | ANAF 状态、最多十个财年、趋势、法院案件候选项和导入的公共合同,并附带数据来源凭据 |
company_search | 在导入的 ONRC 导出数据中按名称搜索,可按县或 CAEN 筛选 |
company_lookup | 查询最多 500 个 CUI 的 ANAF 状态,可指定过去的日期 |
company_financials | 已申报报表:收入、利润或亏损、员工人数、债务、权益及其他申报数据 |
court_cases | 按公司 CUI、当事人名称或案件编号搜索案件,并提供当事人角色和听证会信息 |
company_contracts | 在导入的 SEAP 导出数据中按供应商 CUI 匹配合同,并按币种汇总金额 |
vat_check | 通过 VIES 查询交易伙伴当前的欧盟内部 VAT 注册信息 |
shop_check | 查询网店背后的公司详情、财务数据、法院案件候选项和域名证据 |
exchange_rate | BNR 参考汇率及兑换为 RON |
iban_check | 离线验证 IBAN 格式和校验和,并识别罗马尼亚银行 |
试试:
- “按这个名称查找公司,并显示克卢日的匹配项。”
- “为 CUI 14399840 生成过去五年的报告。也告诉我哪些内容无法核实。”
- “营业额、利润和员工人数发生了什么变化?”
- “在已加载的导出数据中,你能找到这家公司签订的哪些公共合同?”
- “在 VIES 中核实这位德国合作伙伴的 VAT 编号。”
company_report 返回数据和计算得出的趋势,不提供信用评分。百分比变化按连续财年计算;缺失年份和分母为零时,结果为 null。ANAF 的金额以 RON 为单位。
每个报告数据源都包含状态、URL、检查时间、缓存标记,以及在已知时提供其缓存输入的最早获取时间。available 表示请求成功,no_data 表示未返回所请求的财务申报数据,unavailable 表示请求失败。not_checked 说明未能尝试检查的原因。申报数据缺失与数据源故障会分别标明,两者都会使覆盖范围保持不完整。
法院记录不包含 CUI。标准化后的精确名称、法律形式和注册县有助于缩小候选范围,但不能证明身份。公司是债权人或原告本身并不意味着存在问题。达到搜索上限的搜索仍会标记为不完整。
名称搜索和公共合同
ANAF 的公共状态服务需要 CUI。名称搜索使用来自 data.gov.ro 的 ONRC 导出文件。公共合同搜索使用导入的 SEAP 导出文件。
| 工具 | 功能 |
|---|---|
dataset_catalog | 查找导出文件、资源 ID、发布方详情和来源链接 |
dataset_import | 下载选定的 data.gov.ro CSV、XLSX 或 ODS 文件,并在本地建立索引 |
dataset_status | 列出来源、日期、覆盖期间、行数、跳过的行和 SHA-256 哈希值 |
先查找文件:
romania-mcp-data catalog "organization:onrc"
romania-mcp-data catalog "achizitii publice"
将 OD_FIRME.CSV 作为 onrc 导入。经授权的 CAEN 经营活动单独发布在 OD_CAEN_AUTORIZAT.CSV 中;请将其作为 caen 导入,并使用相同的快照日期。两者通过 COD_INMATRICULARE 关联。索引会保留 CAEN 版本。使用 caen_version(或 --caen-version)选择第 2 或第 3 版。筛选器使用的快照日期与公司索引相同。
romania-mcp-data sync RESOURCE_ID --kind onrc --published-on 2026-10-19
romania-mcp-data sync CAEN_RESOURCE_ID --kind caen --published-on 2026-10-19
romania-mcp-data search "numele firmei" --county Cluj
对于合同导出文件,请提供发布方注明的日期:
romania-mcp-data sync CONTRACT_RESOURCE_ID --kind procurement --published-on 2026-10-06 --period-start 2026-07-01 --period-end 2026-09-30
上面的 ID 是占位符。请使用目录搜索结果并阅读来源说明:元数据修改时间并不一定是文件的发布日期或覆盖日期。
你也可以导入已下载的文件:
romania-mcp-data import ./OD_FIRME.CSV --kind onrc --published-on 2026-10-19 --source-url https://data.gov.ro/URL-OF-THE-EXPORT
导入时会以流式方式读取 CSV 行,并读取工作簿,而不会将其全部载入内存。重新导入相同来源时,会在一个事务中替换其行;如果导入内容为空或无效,则保留旧索引。下载大小限制为 2 GB。大型 ONRC 导出文件可能需要几分钟,因此 CLI 通常比交互式工具调用更方便。旧版二进制 XLS 文件必须先转换为 CSV 或 XLSX。
合同总额仅涵盖已导入的记录。这些是合同金额,并非付款金额,也不能证明收入。可识别合同的重复副本会去重。没有单个有效供应商 CUI 的行(包括部分联合投标和外国供应商)会被跳过并计数。结果为空并不能证明某家公司没有公共合同。
快照和监控
| 工具 | 功能 |
|---|---|
company_snapshot | 获取最新报告并保存到本地 |
company_history | 读取已保存的观测记录 |
company_changes | 比较最近两个快照 |
company_watch | 添加、更新或暂停本地监控项 |
company_watchlist | 列出监控项及其下次到期时间 |
monitor_run | 检查到期的监控项、保存报告并返回变更 |
历史记录从首次保存报告时开始。来源失败属于可用性变化,并不表示公司已删除或案件已结案。仅检查时间戳发生变化不会触发事件。超出结果页范围的案件不会被报告为已结案。
romania-mcp-data report 14399840 --years 5 --save
romania-mcp-data watch 14399840 --interval-hours 24
romania-mcp-data monitor
monitor 会执行一轮检查,并且仅在出现变更或首次检查不完整时写入 JSON 行。首次检查成功时会静默建立基线。检查结果未变化时不会产生标准输出。请使用 Task Scheduler、cron 或你已有的服务定期运行。添加监控项不会安装调度程序,也不会向任何地方发送消息。
对于需要持续运行的进程:
romania-mcp-data monitor --loop --poll-seconds 60
轮询间隔决定何时检查待处理任务;每家公司的间隔决定实际检查时间。监控会获取最新来源数据。使用 romania-mcp-data watch 14399840 --disable 暂停监控项。
供应商列表
supplier_check 会启动任务,或通过 job_id 恢复任务。每个供应商完成检查后,都会在开始下一个之前保存。supplier_results 会返回 JSON 或 CSV,依次优先列出发现的问题、检查不完整的结果,以及没有标记的问题。CSV 导出会包含来源凭据,并对外部文本中的公式前缀进行中和处理。
romania-mcp-data suppliers 14399840 18547290 --years 3 --limit 1
romania-mcp-data suppliers --job-id JOB_ID --limit 3
romania-mcp-data export JOB_ID --format csv > suppliers.csv
继续执行,直到 pending 为 0。每个任务最多接受 500 个 CUI,并会删除重复项。创建任务前会拒绝无效输入。部分供应商报告会明确标示为不完整。MCP 结果通过 offset 和 next_offset 分页;CLI 会导出整个任务。
存储和数据源限制
HTTP 响应会缓存在 ~/.cache/romania-mcp/cache.sqlite3 中。公司状态缓存六小时,财务数据缓存一天,法院搜索缓存三小时,当前 BNR 汇率缓存一小时。往年 BNR 数据缓存三十天。对于必须重新查询数据源的报告,请使用 refresh=true。
快照、监控列表、供应商任务和数据集索引分别存储在 ~/.local/share/romania-mcp/data.sqlite3 中。使用以下配置其他位置:
ROMANIA_MCP_CACHE=off
ROMANIA_MCP_CACHE_PATH=/path/to/cache.sqlite3
ROMANIA_MCP_DATA_PATH=/path/to/data.sqlite3
CLI 也支持在命令前指定 --data-path PATH。数据保留在运行服务的机器上。执行检查所需的 CUI、VAT 号码、公司名称或域名会发送到相应的公共服务。导入、快照、监控和供应商检查在 MCP 注释中标记为本地写入操作。
- ANAF 请求之间间隔一秒。公共服务仍可能拒绝或延迟请求。
- 财务数据反映所示年份的情况,并非今日的现金状况。特定行业的布局可能包含未映射字段。
- Portal Just 的端点目前使用普通 HTTP,搜索结果上限为 1,000 个候选项。报告会显示传输和匹配方面的限制。
- VIES 用于检查交易伙伴当前的欧盟内部 VAT 注册状态。服务故障不代表注册无效;该工具不会还原历史状态。
- IBAN 验证无法证明账户存在,也无法确定账户所有者。
- Wayback 中没有捕获记录,并不能证明网站的历史。不会对
.ro域名自动执行 ROTLD WHOIS 查询。 - 商店搜索结果只是参考信号,并非欺诈或可靠性的证据。数据源中断时,覆盖范围仍不完整。即使发生中断,也可能同时显示已知风险信号。
- 页面下载有内容类型和大小限制。DNS 响应必须为公共地址;连接会使用已检查的 IP,同时保留原始 TLS 主机名。重定向连接也会经过相同检查。数据源请求会禁用环境代理。
公共记录和网站内容是证据,而非给助手的指令。仅出于特定商业目的检查公司;法院记录也可能提及个人。
开发
pip install -e . pytest ruff build
pytest
ruff check src tests
python -m build
测试使用模拟的数据源响应和临时数据库,涵盖上游服务中断、缓存新鲜度、部分报告、身份歧义、导入、可恢复任务、CSV 导出和监控。网络冒烟测试单独运行,因此上游服务中断不会导致单元测试失败。
许可证
MIT © Robert Vind-Gardoș (@robyroro)
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。