企业合规自动化工具

一个集成了英国Companies House API的企业合规自动化工具,提供完整的尽职调查、风险检测和监管合规功能。

  • by elankeeran
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 elankeeran/Companies-House-MCP-Server

使用说明

公司内部MCP服务器

全面 了解你的业务(KYB) 通过模型上下文协议(MCP)的工具包。该服务器提供22种可生产的工具,这些工具与英国公司之家API集成,以实现全面的尽职调查自动化、受益所有人发现、风险检测和法规遵从性。

状态: ✅ 生产就绪| 版本: 2.0.0 | 工具:22(17个新+5个向后兼容)| API终点: 16

🎯 KYB的10项要求(全部实施)

# 要求 工具 状态
1.️⃣ 归档历史记录 get_filing_history_list(), get_filing_history_item() ✅
2.️⃣ 按交易ID归档项目 get_filing_history_item() ✅
3.️⃣ 通过MCP下载文档 download_document(), download_filing_document() ✅
4.️⃣ PSC(受益所有人)-全套 get_psc_list(), get_psc(), get_psc_statements() ✅
5.️⃣ 费用(抵押/担保) get_charges_list() ✅
6.️⃣ 破产(强制性KYB) get_insolvency() ✅
7.️⃣ 注册办公地址(直接) get_registered_office_address() ✅
8.️⃣ 官员任命(主任网络) get_officer_appointments() ✅
9️⃣ 官员资格取消(强制性) get_disqualification_natural(), get_disqualification_corporate() ✅
🔟 高级公司搜索 search_companies_advanced() ✅

特性

KYB的核心能力

  • ✅ 公司搜索与验证:通过模糊匹配按姓名、号码或地址进行高级搜索
  • ✅ 公司简介:完整的公司详细信息(状态、地址、成立日期)
  • ✅ 破产检测 (强制性):任何信贷/合伙企业决策的硬停止风险信号
  • ✅ 官员验证:具有完整任命历史的董事、秘书
  • ✅ 取消资格检查 (强制性):筛查自然人和法人实体
  • ✅ 受益所有人发现(PSC):确定具有重大控制权的人的所有权百分比
  • ✅ 军官网络分析:检测串行控制器和公司连接
  • ✅ 注册办事处地址:无需解析完整配置文件即可直接验证
  • ✅ 归档历史和文件:通过PDF下载访问帐户、确认、PSC通知
  • ✅ 费用和抵押:查看担保贷款风险和债权人优先权
  • ✅ 综合报告:单呼叫KYB聚合(搜索→ 验证→ 风险检查→ 报告)

卓越运营

  • 生产就绪:所有10项要求均已实施、测试和记录
  • API全面覆盖:16个公司总部端点完全集成
  • 分页支持:处理所有列表工具中的大型结果集
  • 误差标准化:与代码和描述一致的错误响应
  • 向后兼容:为现有集成维护了5个遗留工具
  • 无状态设计:不存储数据,公共云部署安全
  • 速率限制:通过带有错误代码的公司注册处费率限制
  • Base64文档:PDF返回元数据以进行安全传输

用例

  • 了解你的业务(KYB):完成公司入职培训的10项要求合规性
  • 风险评估:破产检测、取消资格筛选、收费分析
  • 尽职调查:通过归档历史、文件访问、官员网络进行深入研究
  • 受益所有人验证:UBO识别与控制百分比
  • 串行控制器检测:绘制跨公司的总监网络图
  • 合规报告:生成审计跟踪和风险评估

📚 文档

入门指南:根据您的需求,从以下之一开始:

🔄 完成KYB工作流程

这就是使用服务器的完整“了解你的业务”流程的样子:

1. Search for company
   → search_companies_advanced("Company Name")
   
2. Verify correct company
   → get_company_profile(company_number)
   
3. ⚠️  CHECK INSOLVENCY (MANDATORY - HARD STOP IF FOUND)
   → get_insolvency(company_number)
   
4. Get company details
   → get_registered_office_address(company_number)
   → get_filing_history_list(company_number)
   
5. Get officers
   → get_company_officers(company_number)
   → For each officer:
      • get_disqualification_natural(officer_id)  [RED FLAG]
      • get_officer_appointments(officer_id)      [NETWORK]
   
6. Get beneficial owners (PSC)
   → get_psc_list(company_number)
   → For each PSC:
      • get_psc(company_number, psc_id)
      • Check disqualifications
   → get_psc_statements(company_number)
   
7. Get financial exposure
   → get_charges_list(company_number)           [MORTGAGES]
   
8. Review documents if needed
   → get_filing_history_list(company_number)
   → download_filing_document(company_number, transaction_id)
   
9. Generate final report
   → generate_company_report(company_number)

结果:完成尽职调查报告,并通过所有合规检查✅

建筑

  • 运输:HTTP(无状态流式传输)-非常适合公共/云部署。
  • 认证:客户端API密钥注入(用户提供自己的密钥)。
  • 堆栈:Python、FastMCP、Docker、Kubernetes。

先决条件

  1. 公司之家API密钥:您必须从 公司之家开发者中心.
  2. 码头工人 (适用于本地运行)。
  3. Kubernetes (可选,用于部署)。

快速入门(Docker)

  1. 塑造形象:

    docker build -t companies-house-mcp .
    
  2. 运行容器:

    docker run -p 8001:8001 companies-house-mcp
    
  3. 与邮递员一起测试:

    • 导入 mcp_postman_collection.json.
    • 设置 apiKey 您的公司之家API密钥的变量。
    • 向发送POST请求 http://localhost:8001/mcp.

与Claude Desktop(或其他MCP客户端)一起使用

配置您的MCP客户端以连接到服务器。由于此服务器使用 HTTP传输,您可能需要一个支持HTTP MCP的适配器或客户端。

工具调用示例(JSON-RPC):

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "generate_company_report",
    "arguments": {
      "company_number": "00000006",
      "api_key": "YOUR_REAL_API_KEY"
    }
  }
}

工具参考

所有22个可用工具

公司搜索和简介(3个工具)

工具 描述 关键参数
search_companies_advanced 高级搜索:姓名、号码或地址 q, items_per_page, start_index
get_company_profile 完整的公司详细信息 company_number
get_registered_office_address 直接访问办公地址 company_number

归档和文件(4个工具)

工具 描述 关键参数
get_filing_history_list 列出所有文件并分页 company_number, category, items_per_page
get_filing_history_item 按交易ID获取具体归档 company_number, transaction_id
download_document 按ID下载文档 document_id
download_filing_document 下载归档(查找+下载包装) company_number, transaction_id

官员和管理层(2个工具)

工具 描述 关键参数
get_company_officers 列出董事和秘书 company_number, items_per_page
get_officer_appointments 获取一名官员的所有预约 officer_id, items_per_page

受益所有人(PSC)(3个工具)

工具 描述 关键参数
get_psc_list 列出受益所有人(具有重大控制权的人) company_number, items_per_page
get_psc 带有所有权信息的个人PSC详细信息 company_number, psc_id
get_psc_statements PSC声明(例如,“无PSC”、“未知”) company_number, items_per_page

风险与合规(3个工具)

工具 描述 关键参数
get_insolvency ⚠️ 强制性:检查破产程序 company_number
get_disqualification_natural 🚩 强制性:检查自然人取消资格 officer_id
get_disqualification_corporate 🚩 强制性:检查公司取消资格 officer_id

安全和资产(1个工具)

工具 描述 关键参数
get_charges_list 列出费用/抵押贷款(担保贷款) company_number, items_per_page

综合报告(1个工具)

工具 描述 关键参数
generate_company_report 完整的KYB聚合(最适合代理商) company_number

向后兼容性(5个已弃用的工具)

search_companies, get_filing_history, get_company_charges, get_persons_with_significant_control, get_company_insolvency (仍然可用,但使用上面的新工具)

部署(Kubernetes)

  1. 部署:

    kubectl apply -f k8s/deployment.yaml
    kubectl apply -f k8s/service.yaml
    

    (注: secret.yaml 如果您依赖客户端密钥,则不再严格要求,但可用于服务器端默认值)。

  2. 访问: 该服务通过端口上的NodePort公开 30001 (或LoadBalancer,具体取决于您的K8s设置)。

安全说明

此服务器设计为无状态。它不存储您的API密钥。密钥根据请求传递或通过环境变量配置(可选回退)。确保在生产环境中通过HTTPS传输密钥。

公司使用API端点

公司信息

  • GET /company/{company_number} -完整的公司简介
  • GET /company/{company_number}/registered-office-address -办公地址
  • GET /company/{company_number}/officers -官员名单
  • GET /company/{company_number}/filing-history -使用交易ID归档历史记录
  • GET /company/{company_number}/filing-history/{transaction_id} -个人备案项目
  • GET /company/{company_number}/charges -费用/抵押
  • GET /company/{company_number}/insolvency -破产状态

具有重大控制权的人(PSC)

  • GET /company/{company_number}/persons-with-significant-control -PSC列表
  • GET /company/{company_number}/persons-with-significant-control/{type}/{id} -个人PSC
  • GET /company/{company_number}/persons-with-significant-control-statements -PSC声明

高级管理人员

  • GET /officers/{officer_id}/appointments -官员任命

不合格

  • GET /disqualified-officers/natural/{officer_id} -自然人取消资格
  • GET /disqualified-officers/corporate/{officer_id} -公司取消资格

文档访问

  • GET /document/{document_id}/content -下载文档内容

搜索

  • GET /search/companies -使用筛选器搜索公司

实施说明

认证

所有API调用都使用HTTP基本身份验证和您的公司之家API密钥。

速率限制

MCP服务器传递速率限制错误(HTTP 429)。在客户端应用程序中实现指数回退。

错误处理

  • 404未找到:资源不存在或已被删除。
  • 401未经授权:API密钥无效或丢失。
  • 429费率限制:请求太多。延迟后重试。
  • 5xx API_错误:服务器响应正文错误。

文档下载

文档下载以base64编码的内容返回,元数据包括:

  • document_id:文档标识符
  • content_type:MIME类型(例如,应用程序/pdf)
  • content_length:文件大小(字节)
  • content_base64:Base64编码文件内容