返回市场
投资克-MCP

投资克-MCP

作者:Nicolaas04117 星标更新:2025-05-01

项目介绍

<h1 align="center">Investec MCP:面向AI代理的银行API</h1> <p align="center"> <img src="public/investec_mcp.png" alt="Mem0 和 MCP 集成" width="600"> </p>

这是一个实现了模型上下文协议(MCP)的服务器,与Investec开放银行API集成,允许AI代理访问银行信息并执行交易。

概述

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

功能

该服务器基于Investec开放银行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凭证的Investec开发者账号
  • 如果作为容器运行MCP服务器,则需要Docker(推荐)

安装

使用uv

  1. 克隆此仓库:

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

    uv pip install -e .
    
  3. 根据.env.example创建.env文件:

    cp .env.example .env
    
  4. .env文件中配置您的环境变量,包括Investec API凭证

使用Docker(推荐)

  1. 构建Docker镜像:

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

配置

您可以在.env文件中配置以下环境变量:

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

运行服务器

使用uv

SSE传输

# 在.env中设置TRANSPORT=sse然后:
uv run python src/main.py

MCP服务器将以API端点的形式运行,您可以连接到它。

Stdio传输

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

使用Docker

SSE传输

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

MCP服务器将在容器内以API端点的形式运行,您可以连接到它。

Stdio传输

使用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。

Python与Stdio配置

将此服务器添加到您的MCP配置中,适用于Claude Desktop、Windsurf或其他任何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"
      }
    }
  }
}

Docker与Stdio配置

{
  "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. src/utils.py中的InvestecClient类添加新方法,以与所需的Investec API端点进行交互。
  2. src/tools/目录的相关Python文件中创建新的工具函数(例如,在src/tools/accounts.py中创建与账户相关的工具)。使用@mcp.tool()装饰器标记这些函数。
  3. src/main.py中导入并注册新的工具函数。