金融交易MCP服务器

一个连接Claude/LLMs与金融交易API的模型上下文协议(MCP)服务器,通过Anthropic标准化协议提供市场数据和交易能力的无缝访问。

  • by Adityaa-Sharma
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 adityaa-sharma/trading_mcp_server

使用说明

交易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兼容客户端(克劳德桌面等)

🛠️ 安装

  1. 克隆存储库
git clone https://github.com/yourusername/Trading_mcp_server.git
cd Trading_mcp_server
  1. 安装依赖项
pip install -r requirements.txt
  1. 设置环境变量

创建一个 .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
  1. 运行服务器
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

该架构遵循干净的三层设计模式:

  1. 客户端层(Claude/LLM):通过自然语言处理用户交互,生成结构化工具请求,并将响应解析回人类可读格式

  2. MCP服务器层:充当智能中间件,它:

    • 将LLM请求转换为特定于API的调用
    • 使用强类型验证输入/输出
    • 管理异步操作以获得最佳性能
    • 提供全面的错误处理
  3. 外部API层:连接到金融数据和交易服务:

    • AlphaVantage用于市场数据、技术指标和基本面
    • Upstox用于订单执行、投资组合管理和账户运营
    • 实现缓存和速率限制以提高API效率

该架构遵循干净的三层设计模式:

  1. 客户端层(Claude/LLM):通过自然语言处理用户交互,生成结构化工具请求,并将响应解析回人类可读格式

  2. MCP服务器层:充当智能中间件,它:

    • 将LLM请求转换为特定于API的调用
    • 使用强类型验证输入/输出
    • 管理异步操作以获得最佳性能
    • 提供全面的错误处理
  3. 外部API层:连接到金融数据和交易服务:

    • AlphaVantage用于市场数据、技术指标和基本面
    • Upstox用于订单执行、投资组合管理和账户运营
    • 实现缓存和速率限制以提高API效率

关键组件

  • MCP服务器:使用核心协议实现 mcp 图书馆
  • 工具操作员:每个API端点的单独函数
  • Helper函数:API交互的实用程序函数
  • 错误管理:全面的异常处理
  • 类型安全:用于请求/响应验证的Pydantic模式

🔒 安全考虑

  • API密钥:安全地存储在环境变量中,从不提交版本控制
  • 速率限制:在API调用之间实现适当的延迟
  • 交易权限:确保Upstox API对实时交易具有适当的权限
  • 输入验证:在API调用之前验证所有用户输入
  • 错误记录:从日志中过滤敏感信息

🧪 测试

此项目使用pytest进行异步支持的测试。

搭建测试环境

  1. 安装测试依赖项:
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许可证获得许可-请参阅 许可证 文件以获取详细信息。

⚠️ 免责声明

该软件用于教育和研究目的。在金融市场交易涉及巨大的损失风险。作者不对因使用本软件而产生的任何经济损失负责。在做出投资决策之前,一定要咨询合格的财务顾问。

🙏 致谢