Investec MCP: Banking API for AI Agents
A. 模型上下文协议(MCP) 与天达开放银行API集成的服务器实现,允许人工智能代理访问银行信息并执行交易。
概述
该项目提供了一个MCP服务器,使人工智能代理能够与天达开放银行API进行交互。它遵循Anthropic为构建MCP服务器制定的最佳实践,允许与任何兼容MCP的客户端(如Claude)无缝集成。
特性
该服务器基于天达开放银行API提供全面的银行工具:
账户信息
get_accounts:检索已验证用户的所有帐户get_account_balance:获取特定账户的余额get_account_transactions:使用筛选选项获取特定帐户的交易get_pending_transactions:获取特定账户的待处理交易
配置文件管理
get_profiles:获取用户已同意的所有配置文件get_profile_accounts:获取特定配置文件的帐户get_profile_beneficiaries:获取特定个人资料和账户的受益人get_authorisation_setup_details:获取需要批准的付款的授权设置详细信息
受益人管理
get_beneficiaries:获取所有已保存的受益人get_beneficiary_categories:获取所有受益人类别
转账和付款
transfer_money:在您自己的账户之间转账(便捷方式)transfer_multiple:批量向一个或多个账户转账pay_beneficiary:向已保存的受益人付款(便捷方式)pay_multiple:批量向多个受益人付款
文档管理
get_documents:获取某个日期范围内帐户的文档列表get_document:按类型和日期获取特定文档
先决条件
- Python 3.12+
- 具有API证书的天达开发商账户
- 如果将MCP服务器作为容器运行,则使用Docker(推荐)
安装
使用紫外线
- 克隆此存储库:
git clone https://github.com/yourusername/investec-mcp.git
cd investec-mcp- 安装依赖项:
uv pip install -e .- 创建一个
.env文件基于.env.example:
cp .env.example .env- 在中配置环境变量
.env提交您的天达API证书
使用Docker(推荐)
- 构建Docker镜像:
docker build -t investec/mcp --build-arg PORT=8050 .- 创建一个
.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.pyMCP服务器将作为您可以连接到的API端点运行。
标准运输
使用stdio,MCP客户端本身可以启动MCP服务器。
使用Docker
SSE 运输
docker run --env-file .env -p 8050:8050 investec/mcpMCP服务器将在您可以连接到的容器中作为API端点运行。
标准运输
使用stdio,MCP客户端本身可以启动MCP服务器容器。
与MCP客户端集成
SSE配置
一旦服务器运行了SSE传输,您就可以使用以下配置连接到它:
{
"mcpServers": {
"investec": {
"transport": "sse",
"url": "http://localhost:8050/sse"
}
}
}Windsurf用户须知:使用serverUrl而不是url在您的配置中: ``json { "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服务器需要敏感的银行凭据。始终:
- 保持你的
.env文件安全,从不将其提交到版本控制 - 如果您构建和分发容器映像,请使用安全的私有Docker注册表
- 仅在安全、可信的网络上运行服务器
- 考虑实施额外的安全措施,如请求速率限制
扩展服务器
要添加更多功能,请执行以下操作:
- 向中添加新方法
InvestecClient类在src/utils.py以与所需的天达API端点进行交互。 - 在相关Python文件中创建新的工具函数
src/tools/目录(例如。,src/tools/accounts.py用于帐户相关工具)。使用@mcp.tool()这些功能的装饰器。 - 在中导入和注册新的工具功能
src/main.py.
