这是一个实现了模型上下文协议(MCP)的服务器,与Investec开放银行API集成,允许AI代理访问银行信息并执行交易。
该项目提供了一个MCP服务器,使AI代理能够与Investec开放银行API进行交互。它遵循Anthropic为构建MCP服务器制定的最佳实践,可以无缝地与任何兼容MCP的客户端(如Claude)集成。
该服务器基于Investec开放银行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:根据类型和日期获取特定文档克隆此仓库:
git clone https://github.com/yourusername/investec-mcp.git
cd investec-mcp
安装依赖项:
uv pip install -e .
根据.env.example创建.env文件:
cp .env.example .env
在.env文件中配置您的环境变量,包括Investec API凭证
构建Docker镜像:
docker build -t investec/mcp --build-arg PORT=8050 .
根据.env.example创建.env文件,并配置您的环境变量
您可以在.env文件中配置以下环境变量:
| 变量 | 描述 | 示例 |
|---|---|---|
TRANSPORT | 传输协议(sse 或 stdio) | sse |
HOST | 使用SSE传输时绑定的主机 | 0.0.0.0 |
PORT | 使用SSE传输时监听的端口 | 8050 |
INVESTEC_CLIENT_ID | 来自Investec开发者门户的客户端ID | your-client-id |
INVESTEC_CLIENT_SECRET | 来自Investec开发者门户的客户端密钥 | your-client-secret |
INVESTEC_API_KEY | 来自Investec开发者门户的API密钥 | your-api-key |
# 在.env中设置TRANSPORT=sse然后:
uv run python src/main.py
MCP服务器将以API端点的形式运行,您可以连接到它。
使用stdio时,MCP客户端本身可以启动MCP服务器。
docker run --env-file .env -p 8050:8050 investec/mcp
MCP服务器将在容器内以API端点的形式运行,您可以连接到它。
使用stdio时,MCP客户端本身可以启动MCP服务器容器。
一旦您使用SSE传输运行了服务器,可以使用以下配置连接到它:
{
"mcpServers": {
"investec": {
"transport": "sse",
"url": "http://localhost:8050/sse"
}
}
}
注意对于Windsurf用户:在您的配置中使用
serverUrl而不是url:{ "mcpServers": { "investec": { "transport": "sse", "serverUrl": "http://localhost:8050/sse" } } }
确保更新端口号,如果您使用的不是默认的8050。
将此服务器添加到您的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"
}
}
}
}
{
"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文件,切勿将其提交到版本控制中要添加更多功能:
src/utils.py中的InvestecClient类添加新方法,以与所需的Investec API端点进行交互。src/tools/目录的相关Python文件中创建新的工具函数(例如,在src/tools/accounts.py中创建与账户相关的工具)。使用@mcp.tool()装饰器标记这些函数。src/main.py中导入并注册新的工具函数。