【技术文档摘要】
<img width="1575" height="280" alt="github-header" src="https://gips2.baidu.com/it/u=2839381885,727688966&fm=3081&app=3081&f=PNG?w=1575&h=280" />QuantConnect MCP Server 是一个桥梁,使AI(如Claude和OpenAI o3 Pro)能够与我们的云平台进行交互。当配备我们的MCP时,AI可以通过我们的API代表您执行任务,例如更新项目、编写策略、回测以及将策略部署到实时交易中。
这是QuantConnect官方实现的MCP,由QuantConnect团队维护。我们建议使用官方版本以确保您的代码和API令牌的安全性。我们的实现经过测试并进行了容器化处理,便于跨平台部署。
要将本地MCP客户端(如Claude Desktop)连接到QC MCP Server,请按照以下步骤操作:
claude_desktop_config.json文件,添加以下quantconnect配置:{
"mcpServers": {
"quantconnect": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "QUANTCONNECT_USER_ID",
"-e", "QUANTCONNECT_API_TOKEN",
"-e", "AGENT_NAME",
"--platform", "<your_platform>",
"quantconnect/mcp-server"
],
"env": {
"QUANTCONNECT_USER_ID": "<your_user_id>",
"QUANTCONNECT_API_TOKEN": "<your_api_token>",
"AGENT_NAME": "MCP Server"
}
}
}
}
要获取您的用户ID和API令牌,请参阅请求API令牌。
我们的MCP服务器支持多平台。选项包括linux/amd64用于Intel/AMD芯片和linux/arm64用于ARM芯片(例如Apple的M系列芯片)。
如果您同时运行多个代理,请为每个代理设置唯一的AGENT_NAME环境变量值,以便记录请求来源。
Claude Desktop会自动从Docker Hub拉取我们的MCP服务器并连接到它。
要查看所有MCP客户端及其支持的功能,请参阅MCP文档中的功能支持矩阵。
为了保持Docker镜像的最新状态,请在终端中从Docker Hub拉取最新的MCP服务器。
docker pull quantconnect/mcp-server
如果您有ARM芯片,请添加--platform linux/arm64选项。
| 本服务器提供的工具 | 简短描述 |
|---|---|
read_account | 读取组织账户状态。 |
create_project | 在默认组织中创建新项目。 |
read_project | 列出项目的详细信息或一组最近项目的详细信息。 |
list_projects | 列出所有项目的详细信息。 |
update_project | 更新项目的名称或描述。 |
delete_project | 删除项目。 |
create_project_collaborator | 向项目添加协作者。 |
read_project_collaborators | 列出项目的所有协作者。 |
update_project_collaborator | 更新项目中协作者的信息。 |
delete_project_collaborator | 从项目中删除协作者。 |
lock_project_with_collaborators | 锁定项目以便您可以编辑它。 |
read_project_nodes | 读取项目的可用节点和选定节点。 |
update_project_nodes | 将给定节点的活动状态更新为true。 |
create_compile | 异步创建项目编译作业请求。 |
read_compile | 读取编译包作业结果。 |
create_file | 向给定项目添加文件。 |
read_file | 从项目中读取文件,或者如果没有提供文件名,则读取项目中的所有文件。 |
update_file_name | 更新文件的名称。 |
update_file_contents | 更新文件的内容。 |
patch_file | 将补丁(统一差异)应用于项目中的文件。 |
delete_file | 删除项目中的文件。 |
create_backtest | 创建新的回测请求并获取回测ID。 |
read_backtest | 读取回测的结果。 |
list_backtests | 列出项目的全部回测。 |
read_backtest_chart | 从回测中读取图表。 |
read_backtest_orders | 读取回测的订单。 |
read_backtest_insights | 读取回测的洞察。 |
update_backtest | 更新回测的名称或备注。 |
delete_backtest | 从项目中删除回测。 |
estimate_optimization_time | 预估具有指定参数的优化执行时间。 |
create_optimization | 使用指定参数创建优化。 |
read_optimization | 读取优化。 |
list_optimizations | 列出项目的全部优化。 |
update_optimization | 更新优化的名称。 |
abort_optimization | 中断优化。 |
delete_optimization | 删除优化。 |
authorize_connection | 授权与实时经纪商或数据提供商的外部连接。 |
create_live_algorithm | 创建实时算法。 |
read_live_algorithm | 读取实时算法的详细信息。 |
list_live_algorithms | 列出您过去和当前的所有实时交易部署。 |
read_live_chart | 从实时算法中读取图表。 |
read_live_logs | 获取实时算法的日志。 |
read_live_portfolio | 读取实时算法的投资组合状态。 |
read_live_orders | 读取实时算法的订单。 |
read_live_insights | 读取实时算法的洞察。 |
stop_live_algorithm | 停止实时算法。 |
liquidate_live_algorithm | 清算并停止实时算法。 |
create_live_command | 向实时交易算法发送命令。 |
broadcast_live_command | 广播实时命令到组织中的所有实时算法。 |
upload_object | 将文件上传到对象存储。 |
read_object_properties | 获取特定组织和键的对象存储属性。 |
read_object_store_file_job_id | 创建下载对象存储文件的任务,然后读取任务ID。 |
read_object_store_file_download_url | 获取下载对象存储文件的URL。 |
list_object_store_files | 列出组织下特定目录的对象存储文件。 |
delete_object | 删除特定组织和键的对象存储文件。 |
read_lean_versions | 返回包含每个版本基本信息的LEAN版本列表。 |
check_initialization_errors | 运行几秒钟的回测以初始化算法,并获取任何初始化错误。 |
complete_code | 显示特定文本输入的代码完成。 |
enhance_error_message | 显示错误消息的附加上下文和建议。 |
update_code_to_pep8 | 更新Python代码以遵循PEP8风格。 |
check_syntax | 检查代码的语法。 |
search_quantconnect | 在QuantConnect中搜索内容。 |
read_mcp_server_version | 返回正在运行的QC MCP Server版本。 |
read_latest_mcp_server_version | 返回发布的最新版本的QC MCP Server。 |
工具: read_account
读取组织账户状态。
此工具不会修改其环境。
此工具可能会与“开放世界”中的外部实体互动。
工具: create_project
在默认组织中创建新项目。
| 参数 | 类型 | 描述 |
|---|---|---|
name | string | 项目名称。 |
language | string | 要使用的编程语言。 |
organizationId | string 可选 | 创建项目的组织。如果您不提供值,默认为首选组织。 |
此工具会修改其环境。
此工具不会执行破坏性更新。
重复调用此工具并使用相同的参数会有额外的效果。
此工具可能会与“开放世界”中的外部实体互动。
工具: read_project
列出项目的详细信息或一组最近项目的详细信息。
| 参数 | 类型 | 描述 |
|---|---|---|
projectId | integer 可选 | 要读取的项目的ID。 |
start | integer 可选 | 要获取的项目的起始(包含,零索引)索引。如果您提供了此属性,请忽略项目ID属性。 |
end | integer 可选 | 要获取的项目的最后一个(排除)索引。如果您提供了此属性,请忽略项目ID属性。 |
此工具不会修改其环境。
此工具可能会与“开放世界”中的外部实体互动。
工具: list_projects
列出所有项目的详细信息。
此工具不会修改其环境。
此工具可能会与“开放世界”中的外部实体互动。
工具: update_project
更新项目的名称或描述。
| 参数 | 类型 | 描述 |
|---|---|---|
projectId | integer | 文件所属的项目ID。 |
name | string 可选 | 项目的新的名称。 |
description | string 可选 | 项目的新的描述。 |
此工具会修改其环境。
此工具可能会执行破坏性更新。
重复调用此工具并使用相同的参数没有额外效果。
此工具可能会与“开放世界”中的外部实体互动。
工具: delete_project
删除项目。
| 参数 | 类型 | 描述 |
|---|---|---|
projectId | integer | 要删除的项目的ID。 |
此工具会修改其环境。
此工具可能会执行破坏性更新。
重复调用此工具并使用相同的参数没有额外效果。
此工具可能会与“开放世界”中的外部实体互动。
工具: create_project_collaborator
向项目添加协作者。
| 参数 | 类型 | 描述 |
|---|---|---|
projectId | integer | 要添加协作者的项目的ID。 |
collaboratorUserId | string | 要添加的协作者的用户ID。 |
collaborationLiveControl | boolean | 给予部署和停止实时算法的权利。 |
collaborationWrite | boolean | 给予编辑代码的权利。 |
此工具会修改其环境。
此工具不会执行破坏性更新。
重复调用此工具并使用相同的参数没有额外效果。
此工具可能会与“开放世界”中的外部实体互动。
工具: read_project_collaborators
列出项目的所有协作者。
| 参数 | 类型 | 描述 |
|---|---|---|
projectId | integer | 要从中读取协作者的项目的ID。 |
此工具不会修改其环境。
此工具可能会与“开放世界”中的外部实体互动。
工具: update_project_collaborator
更新项目中协作者的信息。
| 参数 | 类型 | 描述 |
|---|---|---|
projectId | integer | 协作者所在的项目的ID。 |
collaboratorUserId | string | 要更新的协作者的用户ID。 |
liveControl | boolean | 给予部署和停止实时算法的权利。 |
write | boolean | 给予编辑代码的权利。 |
此工具会修改其环境。
此工具可能会执行破坏性更新。
重复调用此工具并使用相同的参数没有额外效果。
此工具可能会与“开放世界”中的外部实体互动。
工具: delete_project_collaborator
从项目中删除协作者。
| 参数 | 类型 | 描述 |
|---|---|---|
projectId | integer | 要从中删除协作者的项目的ID。 |
collaboratorId | string | 要删除的协作者的用户ID。 |
此工具会修改其环境。
此工具可能会执行破坏性更新。
重复调用此工具并使用相同的参数没有额外效果。
此工具可能会与“开放世界”中的外部实体互动。
工具: lock_project_with_collaborators
锁定项目以便您可以编辑它。
| 参数 | 类型 | 描述 |
|---|---|---|
projectId | integer | 要编辑的项目的ID。 |
codeSourceId | string | 创建请求的环境名称。 |
此工具会修改其环境。
此工具可能会执行破坏性更新。
重复调用此工具并使用相同的参数没有额外效果。
此工具可能会与“开放世界”中的外部实体互动。
工具: read_project_nodes
读取项目的可用节点和选定节点。
| 参数 | 类型 | 描述 |
|---|---|---|
projectId | integer | 节点所指的项目的ID。 |
此工具不会修改其环境。
此工具可能会与“开放世界”中的外部实体互动。
工具: update_project_nodes
将给定节点的活动状态更新为true。
| 参数 | 类型 | 描述 |
|---|---|---|
projectId | integer | 节点所指的项目ID。 |
nodes | array 可选 | 项目可以使用的节点ID列表。如果您省略此属性或传递空列表,将自动选择最佳节点用于回测、研究和实时交易。 |
此工具会修改其环境。
此工具不会执行破坏性更新。
重复调用此工具并使用相同的参数没有额外效果。
此工具可能会与“开放世界”中的外部实体互动。
工具: create_compile
异步创建项目编译作业请求。
| 参数 | 类型 | 描述 |
|---|---|---|
projectId | integer | 要编译的项目的ID。 |
此工具会修改其环境。
此工具不会执行破坏性更新。
重复调用此工具并使用相同的参数会有额外的效果。
此工具可能会与“开放世界”中的外部实体互动。
工具: read_compile
读取编译包作业结果。
| 参数 | 类型 | 描述 |
|---|---|---|
projectId | integer | 您请求编译的项目的ID。 |
compileId | string | 创建请求期间返回的编译ID。 |
此工具不会修改其环境。
此工具可能会与“开放世界”中的外部实体互动。
工具: create_file
向给定项目添加文件。
| 参数 | 类型 | 描述 |
|---|---|---|
projectId | integer | 要添加文件的项目的ID。 |
name | string | 新文件的名称。 |
content | string 可选 | 新文件的内容。 |
codeSourceId | string 可选 | 创建请求的环境名称。 |
此工具会修改其环境。
此工具不会执行破坏性更新。
重复调用此工具并使用相同的参数没有额外效果。
此工具可能会与“开放世界”中的外部实体互动。
工具: read_file
从项目中读取文件,或者如果没有提供文件名,则读取项目中的所有文件。
| 参数 | 类型 | 描述 |
|---|---|---|
projectId | integer | 包含文件的项目的ID。 |
name | string 可选 | 要读取的文件的名称。 |
codeSourceId | string 可选 | 创建请求的环境名称。 |
此工具不会修改其环境。
此工具可能会与“开放世界”中的外部实体互动。
工具: update_file_name
更新文件的名称。
| 参数 | 类型 | 描述 |
|---|---|---|
projectId | integer | 包含文件的项目的ID。 |
name | string | 文件的当前名称。 |
newName | string | 文件的新名称。 |
codeSourceId | string 可选 | 创建请求的环境名称。 |
此工具会修改其环境。
此工具可能会执行破坏性更新。
重复调用此工具并使用相同的参数没有额外效果。
此工具可能会与“开放世界”中的外部实体互动。
工具: update_file_contents
更新文件的内容。
| 参数 | 类型 | 描述 |
|---|---|---|
projectId | integer | 包含文件的项目的ID。 |
name | string | 要更新的文件的名称。 |
content | string | 文件的新内容。 |
codeSourceId | string 可选 | 创建请求的环境名称。 |
此工具会修改其环境。
此工具可能会执行破坏性更新。
重复调用此工具并使用相同的参数没有额外效果。
*此工具可能会与“开放世界”中的外部实体互动。