项目简介
本项目 'mcp-server-kalshi' 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在作为 LLM 应用的后端,提供对 Kalshi 预测市场平台的访问能力。它允许 LLM 通过标准化的 MCP 协议,调用预定义的工具来查询市场数据、管理交易订单等,从而增强 LLM 在金融预测和交易决策方面的能力。
主要功能点
- 资源访问 (Resources): 虽然文档中没有明确提及“资源”,但服务器通过工具间接提供了对 Kalshi 市场数据的访问能力,例如市场事件、订单、持仓、结算等信息,这些可以被视为服务器托管和管理的外部数据资源。
- 工具注册与执行 (Tools): 服务器实现了工具注册机制,并预置了多个工具,例如 'get_positions'(获取持仓)、'get_balance'(获取余额)、'get_orders'(获取订单)、'create_order'(创建订单)和 'get_event'(获取事件详情)等。LLM 客户端可以调用这些工具来执行相应的 Kalshi API 操作。
- Prompt 模板 (Prompts): 仓库中没有直接定义 Prompt 模板,但 MCP 服务器的架构本身支持与 Prompt 模板的集成。开发者可以根据需要,在 LLM 客户端配合使用 Prompt 模板,利用服务器提供的工具和数据进行更复杂的交互。
- JSON-RPC 通信: 服务器基于 'mcp' 库构建,默认通过 Stdio 进行 JSON-RPC 通信,符合 MCP 协议规范。
- 会话管理和能力声明: MCP 服务器具备会话管理和能力声明的功能,可以通过 'list_tools' 方法向客户端声明其提供的工具能力。
- 配置灵活: 支持通过环境变量或 '.env' 文件进行配置,方便用户根据不同的 Kalshi 环境(正式或测试)和 API 密钥进行部署。
安装步骤
-
克隆仓库:
git clone https://github.com/9crusher/mcp-server-kalshi.git cd mcp-server-kalshi -
配置环境变量: 在项目根目录下创建 '.env' 文件,并根据您的 Kalshi API 凭据填写以下内容:
BASE_URL=https://api.elections.kalshi.com # 或 https://demo-api.kalshi.co (测试环境) KALSHI_API_KEY=<YOUR KALSHI API KEY> KALSHI_PRIVATE_KEY_PATH=./rsa.key # RSA 私钥文件路径,请替换为您的私钥文件路径注意: 您需要先按照 Kalshi API 文档 获取 API 密钥,并生成 RSA 私钥文件。测试账户信息请参考 Kalshi 测试账户指南。
-
安装依赖: 推荐使用 uv 包管理器 (更快速):
uv pip install -e .或使用 pip:
pip install -e . -
运行服务器:
uv run start或
python -m mcp_server_kalshi.server
服务器配置
以下 JSON 配置信息用于 MCP 客户端 (例如 Claud Desktop 或 MCP Inspector) 连接 'mcp-server-kalshi' 服务器。请根据您的实际部署情况进行配置。
{ "mcpServers": { "kalshi": { // 服务器名称,客户端用于识别和调用 "command": "uv", // 启动服务器的命令,这里假设 uv 已安装并可用,或者使用 python "args": [ // 命令参数 "run", "start" ], // 或者如果直接使用 python 启动 server.py // "command": "python", // "args": [ // "-m", // "mcp_server_kalshi.server" // ], "env": { // 环境变量,传递 API 密钥和私钥路径等敏感信息 "KALSHI_PRIVATE_KEY_PATH": "/path/to/your/rsa.key", // 替换为您的 RSA 私钥文件绝对路径 "KALSHI_API_KEY": "<YOUR KALSHI API KEY>", // 替换为您的 Kalshi API Key "BASE_URL": "https://api.elections.kalshi.com" // Kalshi API 基地址,正式环境或测试环境 } } } }
配置说明:
- '"kalshi"': 自定义的服务器名称,在客户端中引用。
- '"command"': 运行服务器的命令。根据您的环境选择 'uv' 或 'python'。
- '"args"': 传递给命令的参数,指定运行 'start' 脚本或 'mcp_server_kalshi.server' 模块。
- '"env"': 设置环境变量,务必将 '<YOUR KALSHI API KEY>' 和 '/path/to/your/rsa.key' 替换为您的实际 API 密钥和 RSA 私钥文件路径。'BASE_URL' 可以根据需要设置为正式或测试环境地址。
Docker 部署配置示例:
如果您选择使用 Docker 部署,可以使用以下配置:
{ "mcpServers": { "kalshi": { "command": "docker", "args": ["run", "--rm", "-i", "--mount", "type=bind,src=/path/to/your/rsa.key,dst=/rsa.key", "-e", "KALSHI_PRIVATE_KEY_PATH=/rsa.key", "-e", "KALSHI_API_KEY", "-e", "BASE_URL", "mcp-server-kalshi"], "env": { "KALSHI_PRIVATE_KEY_PATH": "/path/to/your/rsa.key", // 容器内的私钥路径,与 mount 目标路径一致 "KALSHI_API_KEY": "<YOUR KALSHI API KEY>", "BASE_URL": "https://api.elections.kalshi.com" } } } }
注意: Docker 配置中,您需要将宿主机的 RSA 私钥文件目录挂载到容器内部,并设置相应的环境变量。请将 '/path/to/your/rsa.key' 替换为宿主机上 RSA 私钥文件的实际路径。
基本使用方法
-
启动 MCP 客户端: 例如 Claud Desktop 或 MCP Inspector。
-
配置 MCP 服务器: 在客户端的 MCP 服务器配置中,添加上面生成的 JSON 配置信息,确保服务器名称与配置一致 (例如 '"kalshi"').
-
在 LLM 中调用工具: 在支持 MCP 协议的 LLM 应用中,您可以使用 '@tool_code kalshi.工具名称' 的形式来调用 'mcp-server-kalshi' 提供的工具。例如,调用 'get_balance' 工具获取 Kalshi 账户余额:
kalshi.get_balance调用 'get_positions' 工具获取持仓信息 (可以根据工具的输入 schema 传递参数):
kalshi.get_positions(market_ticker="<市场代码>")请参考 'src/mcp_server_kalshi/schema.py' 文件和工具的描述信息,了解每个工具的输入参数和功能。
注意事项
- 安全性: 请务必妥善保管您的 Kalshi API 密钥和 RSA 私钥文件,避免泄露。
- API 限制: Kalshi API 可能存在请求频率限制,请合理使用工具,避免超出限制。
- 错误处理: 服务器代码中包含了基本的错误处理,但实际使用中可能需要根据具体情况进行更完善的错误处理和重试机制设计。
- 测试环境: 建议先在 Kalshi 测试环境 ('https://demo-api.kalshi.co') 中进行测试,确保配置和功能正常后再切换到正式环境。
信息
分类
商业系统