银行API代理服务

一个集成Investec开放银行API的MCP服务器实现,允许AI代理访问银行信息并执行交易。

  • by Nicolaas0411
  • Python
  • 本地部署
  • 9 星标
  • 更新于
在 GitHub 查看 Nicolaas0411/investec-mcp

使用说明

Investec MCP: Banking API for AI Agents

A. 模型上下文协议(MCP) 与天达开放银行API集成的服务器实现,允许人工智能代理访问银行信息并执行交易。

概述

该项目提供了一个MCP服务器,使人工智能代理能够与天达开放银行API进行交互。它遵循Anthropic为构建MCP服务器制定的最佳实践,允许与任何兼容MCP的客户端(如Claude)无缝集成。

特性

该服务器基于天达开放银行API提供全面的银行工具:

账户信息

  1. get_accounts:检索已验证用户的所有帐户
  2. get_account_balance:获取特定账户的余额
  3. get_account_transactions:使用筛选选项获取特定帐户的交易
  4. get_pending_transactions:获取特定账户的待处理交易

配置文件管理

  1. get_profiles:获取用户已同意的所有配置文件
  2. get_profile_accounts:获取特定配置文件的帐户
  3. get_profile_beneficiaries:获取特定个人资料和账户的受益人
  4. get_authorisation_setup_details:获取需要批准的付款的授权设置详细信息

受益人管理

  1. get_beneficiaries:获取所有已保存的受益人
  2. get_beneficiary_categories:获取所有受益人类别

转账和付款

  1. transfer_money:在您自己的账户之间转账(便捷方式)
  2. transfer_multiple:批量向一个或多个账户转账
  3. pay_beneficiary:向已保存的受益人付款(便捷方式)
  4. pay_multiple:批量向多个受益人付款

文档管理

  1. get_documents:获取某个日期范围内帐户的文档列表
  2. get_document:按类型和日期获取特定文档

先决条件

  • Python 3.12+
  • 具有API证书的天达开发商账户
  • 如果将MCP服务器作为容器运行,则使用Docker(推荐)

安装

使用紫外线

  1. 克隆此存储库:

    git clone https://github.com/yourusername/investec-mcp.git
    cd investec-mcp
    
  2. 安装依赖项:

    uv pip install -e .
    
  3. 创建一个 .env 文件基于 .env.example:

    cp .env.example .env
    
  4. 在中配置环境变量 .env 提交您的天达API证书

使用Docker(推荐)

  1. 构建Docker镜像:

    docker build -t investec/mcp --build-arg PORT=8050 .
    
  2. 创建一个 .env 文件基于 .env.example 并配置您的环境变量

配置

以下环境变量可以在您的 .env 文件:

变量 描述 示例
TRANSPORT 传输协议(sse或stdio) sse
HOST 使用SSE传输时要绑定的主机 0.0.0.0
PORT 使用SSE传输时要监听的端口 8050
INVESTEC_CLIENT_ID 天达开发商门户的客户ID your-client-id
INVESTEC_CLIENT_SECRET 天达开发者门户的客户机密 your-client-secret
INVESTEC_API_KEY 天达开发者门户网站API密钥 your-api-key

运行服务器

使用紫外线

SSE 运输

# Set TRANSPORT=sse in .env then:
uv run python src/main.py

MCP服务器将作为您可以连接到的API端点运行。

标准运输

使用stdio,MCP客户端本身可以启动MCP服务器。

使用Docker

SSE 运输

docker run --env-file .env -p 8050:8050 investec/mcp

MCP服务器将在您可以连接到的容器中作为API端点运行。

标准运输

使用stdio,MCP客户端本身可以启动MCP服务器容器。

与MCP客户端集成

SSE配置

一旦服务器运行了SSE传输,您就可以使用以下配置连接到它:

{
  "mcpServers": {
    "investec": {
      "transport": "sse",
      "url": "http://localhost:8050/sse"
    }
  }
}

Windsurf用户须知:使用 serverUrl 而不是 url 在您的配置中:

{
  "mcpServers": {
    "investec": {
      "transport": "sse",
      "serverUrl": "http://localhost:8050/sse"
    }
  }
}

如果使用默认8050以外的值,请确保更新端口。

带Stdio配置的Python

将此服务器添加到Claude Desktop、Windsurf或任何其他MCP客户端的MCP配置中:

{
  "mcpServers": {
    "investec": {
      "command": "path/to/python",
      "args": ["path/to/investec-mcp/src/main.py"],
      "env": {
        "TRANSPORT": "stdio",
        "INVESTEC_CLIENT_ID": "your-client-id",
        "INVESTEC_CLIENT_SECRET": "your-client-secret",
        "INVESTEC_API_KEY": "your-api-key"
      }
    }
  }
}

带Stdio配置的Docker

{
  "mcpServers": {
    "investec": {
      "command": "docker",
      "args": ["run", "--rm", "-i", 
               "-e", "TRANSPORT", 
               "-e", "INVESTEC_CLIENT_ID", 
               "-e", "INVESTEC_CLIENT_SECRET", 
               "-e", "INVESTEC_API_KEY", 
               "investec/mcp"],
      "env": {
        "TRANSPORT": "stdio",
        "INVESTEC_CLIENT_ID": "your-client-id",
        "INVESTEC_CLIENT_SECRET": "your-client-secret",
        "INVESTEC_API_KEY": "your-api-key"
      }
    }
  }
}

安全考虑

此MCP服务器需要敏感的银行凭据。始终:

  1. 保持你的 .env 文件安全,从不将其提交到版本控制
  2. 如果您构建和分发容器映像,请使用安全的私有Docker注册表
  3. 仅在安全、可信的网络上运行服务器
  4. 考虑实施额外的安全措施,如请求速率限制

扩展服务器

要添加更多功能,请执行以下操作:

  1. 向中添加新方法 InvestecClient 类在 src/utils.py 以与所需的天达API端点进行交互。
  2. 在相关Python文件中创建新的工具函数 src/tools/ 目录(例如。, src/tools/accounts.py 用于帐户相关工具)。使用 @mcp.tool() 这些功能的装饰器。
  3. 在中导入和注册新的工具功能 src/main.py.