# MCP 服务器 (/zh/features/ai/mcp-server)

您自己的 AI 编程助手能否直接使用 VBT？VBT MCP 服务器将 Claude Code、Codex、Cursor 等支持模型上下文协议的客户端连接到您的安装环境，让助手能够搜索文档、查询
API、阅读源代码并运行 Python 回测。您可以继续在编辑器中工作，同时让助手检查 VBT 示例，并针对已安装的软件包测试修改。

```bash title="Register the server with Claude Code"
vbt mcp config claude-code  # (1)
claude mcp add --transport stdio vectorbtpro -- /path/to/python -m vectorbtpro.mcp_server
```

1.  打印适用于您客户端的命令，并填入运行 VBT 的 Python 解释器路径。`vbt mcp config` 还支持
    `codex`、`cursor`、`vscode`、`gemini-cli`、`opencode` 和 `claude-desktop`。

如果要求助手为均线交叉策略添加 5% 止损和 10% 止盈，连接到服务器的助手就会进行以下调用。这些工具也是 `vbt.mcp` 中的 Python 函数，因此无需服务器也能运行相同调用：

```python title="Search, resolve, and run, as an assistant does through the server"
>>> import json
>>> from vectorbtpro import mcp

>>> found = mcp.search(  # (1)
...     "stop loss and take profit in from_signals",
...     asset_names=["docs"],
...     n=3,
... )
>>> for result in json.loads(found):
...     print(result["name"])
Stop signals
Discretionary Signal Backtesting
High-level VBT

>>> print(mcp.resolve_refnames(["vbt.PF.from_signals"]))  # (2)
OK vbt.PF.from_signals vectorbtpro.portfolio.base.Portfolio.from_signals

>>> print(mcp.run_code("""
... data = vbt.YFData.pull("BTC-USD", start="2020-01-01", end="2025-01-01")
... fast = data.close.vbt.rolling_mean(20)
... slow = data.close.vbt.rolling_mean(50)
... pf = vbt.PF.from_signals(
...     data,
...     fast.vbt.crossed_above(slow),
...     fast.vbt.crossed_below(slow),
...     sl_stop=0.05,
...     tp_stop=0.10,
...     fees=0.001,
... )
... print(pf.stats(["total_return", "max_dd", "total_trades", "win_rate"]))
... """))  # (3)
Total Return [%]   -18.880116
Max Drawdown [%]    38.686652
Total Trades               19
Win Rate [%]        26.315789
dtype: object
```

1.  仅搜索文档，并将最佳的三个匹配项作为 JSON 返回，供助手读取。
2.  在助手阅读 API 或源代码前，确认准确对象。
3.  在已导入 VBT 的 Jupyter 内核中运行代码，并保留内核变量供后续调用使用。

助手找到了止损信号教程，确认了方法，并在您的环境中运行真实回测。您同时得到代码和计算后的统计结果，可以继续检查交易、调整设置并运行下一次比较。

## 从问题到经过测试的回测 \[#from-a-question-to-a-tested-backtest]

这种连接在研究项目的各个阶段都有帮助。您可以让助手：

*   在编写代码前，查找实现策略想法所需的 VBT 方法和示例。
*   阅读相关 API 和源代码，调查回测错误。
*   比较手续费、滑点或止损设置，并显示相应统计结果。
*   使用[前向滚动验证](/zh/features/optimization/time-series-cross-validation/)，在后续数据上测试选定参数。

例如，在上述回测之后，可以让助手在保持手续费和信号不变的前提下，比较同一策略使用和不使用止损的结果。持久化内核会为后续调用保留 `data`、`fast`、`slow` 和
`pf`，让助手能够复用已加载数据并检查交易。

您也可以提供会员页面 URL，让助手阅读页面。服务器使用您配置的 GitHub
访问权限，从发布版本的[知识资产](/zh/features/ai/knowledge-search/#knowledge-assets)中获取文本，无需控制浏览器或使用其登录会话。长页面可以逐节阅读，社区解答也可以按完整讨论串打开。

## 面向研究任务的智能体技能 \[#agent-skills-for-research-tasks]

VBT 附带常见任务的分步说明，包括回测、指标、参数优化和交叉验证。助手可以通过 `list_skills` 发现技能，并用 `get_skill` 阅读相关说明。这样，除了 API
参考和代码示例，它还拥有可遵循的操作流程。

例如，在参数搜索中，交叉验证技能涵盖训练和测试区间、指标预热，以及参数变化时未平仓头寸的处理。[会员专属技能页面（英文）](https://members.vectorbt.pro/using-ai/skills/)展示了助手可使用的流程。

## 服务器 \[#server]

服务器在您的机器上运行，并使用您的 VBT 安装环境，因此 API 和源代码查询对应您已安装的版本。客户端通常通过 stdio 自行启动服务器。如需在容器或 WSL 等其他环境中运行，可使用
`vbt mcp serve --transport streamable-http --port 8000` 通过 HTTP 启动，再将其 `/mcp` 地址注册到客户端。通过 HTTP
运行时，服务器默认绑定本机。用于执行代码的 `run_code` 仅在 stdio 模式下可用。

在 stdio 模式下，`run_code` 使用 VBT 环境中的持久化 Jupyter 内核。客户端的审批控制让您决定助手可以运行哪些代码。下方设置指南介绍安装和客户端配置。

`get_environment` 报告 Python 解释器以及 Python 和 VBT
版本，让助手能够先检查环境。服务器启动后的首次搜索会加载知识资产，耗时最长；后续搜索会复用这些资产。如果某些文档缺少嵌入，搜索会按关键词排名，而不会先生成嵌入。工具支持 token
预算和分页，因此助手可以先请求范围较小的结果，再按需阅读更多。

## 工具 \[#tools]

| 工具                                                                | 功能                                   |
| ----------------------------------------------------------------- | ------------------------------------ |
| `search`                                                          | 针对查询，对文档、API、示例和社区解答进行排名             |
| `find`                                                            | 返回与 `vbt.PF.from_signals` 等特定对象有关的资料 |
| `resolve_refnames`                                                | 将 `vbt.Data` 等名称解析为完全限定名称            |
| `get_page`、`get_message`、`get_message_block`、`get_message_thread` | 通过链接读取页面、消息、同一作者的连续消息或完整讨论           |
| `find_concepts`、`get_concept`                                     | 搜索概念图，查看概念之间的关系                      |
| `get_attrs`、`get_source`                                          | 列出对象属性，阅读源代码                         |
| `list_skills`、`get_skill`                                         | 阅读 VBT 附带的智能体技能                      |
| `run_code`                                                        | 在持久化 Jupyter 内核中使用 VBT 运行 Python     |
| `get_environment`                                                 | 报告 Python 解释器及 Python、VBT 版本         |

所有工具也都可以从终端运行，例如 `vbt mcp search "rolling Sharpe ratio"`，或通过 Python 中的 `vbt.mcp` 调用。服务器将这些函数作为 MCP
工具公开，包括阅读文档的工具。您也可以在 Python 中的 [AI 研究助手](/zh/features/ai/ai-research-assistant/)中使用它们。

!!! info "指南"
    会员专属的[使用 AI（英文）](https://members.vectorbt.pro/using-ai/)指南介绍各客户端的服务器设置、HTTP 服务方式，以及可尝试的提示词。
