项目简介

该GitHub仓库实现了一个AI驱动的自动化交易系统。作为其基础设施的一部分,它包含了基于Model Context Protocol (MCP) 的服务器组件。这些MCP服务器以标准化的方式向LLM(大型语言模型)客户端提供特定领域的上下文信息和工具,例如监控LangSmith跟踪和从Bogleheads论坛获取投资洞察。整个系统旨在提供一个安全、可扩展的AI交易服务框架。

主要功能点

  • LangSmith监控工具: 提供查询LangSmith运行日志、获取项目统计信息和检查服务健康状态的功能,帮助LLM客户端监控AI代理的性能和行为。
  • Bogleheads投资学习工具: 允许LLM客户端监控Bogleheads论坛,提取投资洞察、获取特定股票的交易信号并分析市场状况,辅助LLM进行投资决策。
  • 标准化LLM交互: 通过JSON-RPC协议提供统一的接口,使LLM客户端能够无缝地调用外部功能和访问上下文信息,简化LLM应用开发。

安装步骤

  1. 克隆仓库: 打开您的终端或命令行工具,执行以下命令克隆项目仓库并进入其目录:
    git clone https://github.com/IgorGanapolsky/trading.git
    cd trading
  2. 创建并激活虚拟环境: 为了管理项目依赖,建议创建一个Python虚拟环境:
    python3 -m venv venv
    source venv/bin/activate  # 在macOS/Linux上
    # 或者 '.\venv\Scripts\activate' 在Windows上
  3. 安装Python依赖: 安装项目所需的所有Python库:
    pip install -r requirements.txt
    • 注意: 对于某些MCP服务器功能,您可能需要额外安装特定的SDK。例如,LangSmith监控服务器需要'langsmith',Slack服务器需要'slack-sdk',Gmail服务器需要'google-api-python-client'。如果遇到模块未找到的错误,请根据错误提示安装相应的包。

服务器配置

MCP服务器是为MCP客户端提供服务的后端。MCP客户端需要知道如何启动这些服务器才能与其建立连接。以下是此仓库中两个主要MCP服务器的客户端配置信息示例,您可以在LLM客户端中参考这些信息来配置与它们的连接:

  • LangSmith监控服务器 (server_name: 'langsmith-monitor')

    • 功能: 提供LangSmith平台监控工具,用于跟踪AI代理的运行和性能。
    • 启动命令: MCP客户端可以通过执行Python脚本来启动此服务器。
    • MCP客户端配置示例 (JSON格式说明):
      {
          "server_name": "langsmith-monitor",
          "command": "python",
          "args": ["mcp/servers/langsmith_server.py"],
          "description": "提供LangSmith平台监控工具,用于跟踪AI代理的运行和性能。",
          "tools": {
              "get_langsmith_runs": "获取最近的LangSmith运行日志。",
              "get_langsmith_stats": "获取LangSmith项目的统计数据。",
              "check_langsmith_health": "检查LangSmith服务的健康状态和连接。"
          }
      }
      • 'server_name': 服务器的唯一标识符,MCP客户端将使用此名称来指定要通信的服务器。
      • 'command': 启动服务器的执行程序。在此案例中是'python'。
      • 'args': 传递给'command'的参数列表。这里是服务器Python脚本的路径。
      • 'description': 服务器功能的简要描述。
      • 'tools': 服务器提供的工具及其描述,方便客户端了解可用的功能。
  • Bogleheads学习服务器 (server_name: 'bogleheads-learner')

    • 功能: 监控Bogleheads论坛获取投资洞察和交易信号。
    • 启动命令: MCP客户端可以通过执行Python脚本来启动此服务器。
    • MCP客户端配置示例 (JSON格式说明):
      {
          "server_name": "bogleheads-learner",
          "command": "python",
          "args": ["mcp/servers/bogleheads_server.py"],
          "description": "提供Bogleheads论坛的投资洞察和交易信号工具,用于学习和分析市场信息。",
          "tools": {
              "monitor_bogleheads_forum": "监控Bogleheads论坛以获取新的投资见解。",
              "get_bogleheads_signal": "根据Bogleheads论坛的智慧获取特定股票的交易信号。",
              "analyze_bogleheads_regime": "从Bogleheads讨论中分析市场状况。"
          }
      }
      • 字段说明同LangSmith监控服务器。
  • 环境变量: 为了使系统正常运行,您需要在 '.env' 文件或环境中设置以下API密钥和路径:

    • 'ALPACA_API_KEY', 'ALPACA_SECRET_KEY': Alpaca交易API的访问密钥。
    • 'PAPER_TRADING': 设置为'true'进行模拟交易,'false'进行真实交易。
    • 'DAILY_INVESTMENT': 每日投资金额。
    • 'SLACK_BOT_TOKEN': (如果使用Slack相关功能)Slack Bot的令牌。
    • 'GMAIL_CREDENTIALS_PATH': (如果使用Gmail相关功能)Gmail API凭据文件的本地路径。
    • 'GMAIL_TOKEN_PATH': (如果使用Gmail相关功能)Gmail API授权Token的存储路径,默认为'data/gmail_token.json'。
    • 'GOOGLE_API_KEY': (如果使用Go ADK代理)Google Gemini API的访问密钥。

基本使用方法

  1. 启动MCP服务器: 在一个独立的终端会话中,导航到项目根目录并激活虚拟环境后,您可以手动启动MCP服务器。例如,启动LangSmith监控服务器:

    source venv/bin/activate
    python mcp/servers/langsmith_server.py

    服务器将通过标准输入/输出(Stdio)等待JSON-RPC请求。

  2. MCP客户端调用工具: 您的LLM客户端(或任何兼容MCP协议的客户端)可以通过JSON-RPC协议向服务器发送请求。请求会指定要调用的服务器ID、工具名称和参数。

  3. 使用命令行Harness进行本地测试: 项目提供了一个命令行工具('mcp.harness.runner'),可以在本地测试和调用MCP服务器上注册的工具。这对于开发和调试非常有用。 例如,调用'langsmith-monitor'服务器的'get_langsmith_runs'工具:

    source venv/bin/activate
    python -m mcp.harness.runner langsmith-monitor get_langsmith_runs --payload '{"project": "trading-rl-training", "hours": 24}'

    这将模拟MCP客户端调用该工具,并打印JSON格式的响应到标准输出。

信息

分类

商业系统