使用说明
交易MCP服务器
一个模型上下文协议(MCP)服务器,将Claude/LLM与金融交易API连接起来,通过Anthropic的标准化协议提供对市场数据和交易功能的无缝访问。
🌟 概述
此MCP服务器结合了两个强大的金融API:
- AlphaVantage:实时和历史市场数据、技术指标、公司基本面
- Upstox公司:印度股市交易平台,用于执行买入/卖出订单、投资组合管理
通过实施MCP协议,该服务器充当“用于AI的USB-C”,允许任何兼容MCP的AI应用程序与金融市场交互,而无需进行自定义集成工作。
🚀 特性
AlphaVantage集成
- 实时股票报价:获取当前市场价格和每日业绩
- 公司基础:访问详细的公司概述和财务指标
- 市场推手:追踪市场中的最大赢家和输家
- 技术分析:简单移动平均线(SMA)计算
- 历史数据:每日和日内时间序列数据
Upstox交易集成
- 实时交易:实时执行市场买入/卖出订单
- 售后订单(AMO):下一交易时段下单
- 投资组合管理:查看持股、损益和头寸详细信息
- 基金管理:检查可用保证金和账户余额
- 订单管理:跟踪、修改和取消订单
MCP协议优势
- 标准化接口:与启用MCP的AI应用程序普遍兼容
- 类型安全:具有验证功能的强类型工具模式
- 错误处理:强大的错误管理和用户友好的消息
- 异步支持:无阻塞操作,性能更佳
📋 先决条件
- Python 3.8+
- AlphaVantage API密钥(提供免费层)
- Upstox交易账户和API证书
- MCP兼容客户端(克劳德桌面等)
🛠️ 安装
- 克隆存储库
git clone https://github.com/yourusername/Trading_mcp_server.git
cd Trading_mcp_server
- 安装依赖项
pip install -r requirements.txt
- 设置环境变量
创建一个 .env 项目根目录中的文件:
# AlphaVantage API Key (get from https://www.alphavantage.co/support/#api-key)
ALPHAVANTAGE_API_KEY=your_alphavantage_key_here
# Upstox API Credentials (get from https://developer.upstox.com/)
UPSTOX_API_KEY=your_upstox_key_here
UPSTOX_API_SECRET=your_upstox_secret_here
UPSTOX_REDIRECT_URI=your_redirect_uri_here
UPSTOX_ACCESS_TOKEN=your_access_token_here
- 运行服务器
python main.py
🔧 配置
Claude桌面集成
添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"trading": {
"command": "python",
"args": ["c:/path/to/Trading_mcp_server/main.py"],
"env": {
"ALPHAVANTAGE_API_KEY": "your_key_here"
}
}
}
}
📚 api参考
AlphaVantage工具
stock_quote
获取实时股价和每日业绩指标。
{
"symbol": "AAPL",
"datatype": "json"
}
company_overview
检索全面的公司信息和财务指标。
{
"symbol": "MSFT"
}
top_gainers_losers
寻找市场推动者——表现最佳和最差的股票。
{}
sma
计算简单移动平均线进行技术分析。
{
"symbol": "GOOGL",
"interval": "daily",
"time_period": 20,
"series_type": "close"
}
daily_data
访问历史每日OHLCV数据。
{
"symbol": "TSLA",
"outputsize": "compact"
}
Upstox交易工具
buy_stock
执行印度股票的市场买入订单。
{
"symbol": "RELIANCE",
"quantity": 10
}
sell_stock
执行市场卖出订单。
{
"symbol": "TCS",
"quantity": 5
}
place_amo_order
下一交易时段的盘后订单。
{
"symbol": "INFY",
"quantity": 20,
"transaction_type": "BUY",
"order_type": "LIMIT",
"price": 1500.50
}
get_portfolio
查看当前持有量和投资组合业绩。
{}
get_funds
检查可用的交易保证金和账户余额。
{}
get_order_book
查看所有订单(已执行、待处理、已取消)。
{}
💡 使用示例
基本市场分析
# Get current price of a stock
stock_quote(symbol="AAPL")
# Analyze company fundamentals
company_overview(symbol="AAPL")
# Check market trends
top_gainers_losers()
交易操作
# Buy 10 shares of Reliance at market price
buy_stock(symbol="RELIANCE", quantity=10)
# Check portfolio performance
get_portfolio()
# View account balance
get_funds()
技术分析
# Calculate 20-day moving average
sma(symbol="NIFTY", interval="daily", time_period=20)
# Get historical data for backtesting
daily_data(symbol="BANKNIFTY", outputsize="full")
🏗️ 建筑
graph LR
A[Claude/LLM] <--> B[MCP Server]
B <--> C[External APIs]
subgraph "Client Layer"
A["👤 Claude/LLM<br><br>• Natural Language<br>• Tool Requests<br>• Response Parsing"]
end
subgraph "Middleware Layer"
B["🔄 MCP Server<br><br>• Protocol Handler<br>• Type Validation<br>• Async Processing"]
end
subgraph "Data Layer"
C["📊 External APIs<br><br>• AlphaVantage Data<br>• Upstox Trading<br>• Rate Management"]
end
style A fill:#8A2BE2,stroke:#333,stroke-width:2px
style B fill:#20B2AA,stroke:#333,stroke-width:2px
style C fill:#FF6347,stroke:#333,stroke-width:2px
该架构遵循干净的三层设计模式:
-
客户端层(Claude/LLM):通过自然语言处理用户交互,生成结构化工具请求,并将响应解析回人类可读格式
-
MCP服务器层:充当智能中间件,它:
- 将LLM请求转换为特定于API的调用
- 使用强类型验证输入/输出
- 管理异步操作以获得最佳性能
- 提供全面的错误处理
-
外部API层:连接到金融数据和交易服务:
- AlphaVantage用于市场数据、技术指标和基本面
- Upstox用于订单执行、投资组合管理和账户运营
- 实现缓存和速率限制以提高API效率
该架构遵循干净的三层设计模式:
-
客户端层(Claude/LLM):通过自然语言处理用户交互,生成结构化工具请求,并将响应解析回人类可读格式
-
MCP服务器层:充当智能中间件,它:
- 将LLM请求转换为特定于API的调用
- 使用强类型验证输入/输出
- 管理异步操作以获得最佳性能
- 提供全面的错误处理
-
外部API层:连接到金融数据和交易服务:
- AlphaVantage用于市场数据、技术指标和基本面
- Upstox用于订单执行、投资组合管理和账户运营
- 实现缓存和速率限制以提高API效率
关键组件
- MCP服务器:使用核心协议实现
mcp图书馆 - 工具操作员:每个API端点的单独函数
- Helper函数:API交互的实用程序函数
- 错误管理:全面的异常处理
- 类型安全:用于请求/响应验证的Pydantic模式
🔒 安全考虑
- API密钥:安全地存储在环境变量中,从不提交版本控制
- 速率限制:在API调用之间实现适当的延迟
- 交易权限:确保Upstox API对实时交易具有适当的权限
- 输入验证:在API调用之前验证所有用户输入
- 错误记录:从日志中过滤敏感信息
🧪 测试
此项目使用pytest进行异步支持的测试。
搭建测试环境
- 安装测试依赖项:
pip install pytest pytest-asyncio pytest-mock
运行测试
运行所有测试:
pytest
运行特定测试文件:
pytest test/test_api_and_server.py
运行具有详细输出的测试:
pytest -v
运行特定测试类:
pytest test/test_api_and_server.py::TestAPIConnections
运行特定测试方法:
pytest test/test_api_and_server.py::TestAPIConnections::test_alphavantage_api_key_exists
📈 性能和速率限制
AlphaVantage
- 免费等级:每天25
- 高级:付费计划提供更高的限额
- 缓存:对频繁请求的数据实施本地缓存
Upstox公司
- 订单限制:根据您的交易账户限额
- API限值:大多数端点每秒10个请求
- 实时数据:基于订阅的市场数据更新
📝 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
⚠️ 免责声明
该软件用于教育和研究目的。在金融市场交易涉及巨大的损失风险。作者不对因使用本软件而产生的任何经济损失负责。在做出投资决策之前,一定要咨询合格的财务顾问。
🙏 致谢
- Anthropic 对于模型上下文协议
- AlphaVantage 市场数据API
- Upstox公司 用于交易平台集成
- 有价值的库和工具的开源社区