fc33b3eb68
* docs: transfer AstrBotDevs/AstrBot-docs to AstrBotDevs/AstrBot * refactor: reorder imports and improve type hints in sync_docs_to_wiki.py and upload_doc_images_to_r2.py * feat: add GitHub Actions workflow to sync wiki with documentation Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com> Co-authored-by: anka-afk <110004162+anka-afk@users.noreply.github.com> Co-authored-by: zouyonghe <62183434+zouyonghe@users.noreply.github.com> Co-authored-by: shuiping233 <49360196+shuiping233@users.noreply.github.com> Co-authored-by: LIghtJUNction <106986785+LIghtJUNction@users.noreply.github.com> Co-authored-by: Sjshi763 <179909421+Sjshi763@users.noreply.github.com> Co-authored-by: xiewoc <70128845+xiewoc@users.noreply.github.com> Co-authored-by: QingFeng-awa <151742581+QingFeng-awa@users.noreply.github.com> Co-authored-by: PaloMiku <96452465+PaloMiku@users.noreply.github.com> Co-authored-by: shangxueink <138397030+shangxueink@users.noreply.github.com> Co-authored-by: IGCrystal-A <244300990+IGCrystal-A@users.noreply.github.com> Co-authored-by: RC-CHN <67079377+RC-CHN@users.noreply.github.com> Co-authored-by: MC090610 <113341105+MC090610@users.noreply.github.com> Co-authored-by: Waterwzy <196913419+Waterwzy@users.noreply.github.com> Co-authored-by: Lanhuace-Wan <186303160+Lanhuace-Wan@users.noreply.github.com> Co-authored-by: LiAlH4qwq <61769640+LiAlH4qwq@users.noreply.github.com> Co-authored-by: HSOS6 <209910899+HSOS6@users.noreply.github.com> Co-authored-by: th-dd <162813557+th-dd@users.noreply.github.com> Co-authored-by: miaoxutao123 <81676466+miaoxutao123@users.noreply.github.com> Co-authored-by: nuomicici <143102889+nuomicici@users.noreply.github.com> Co-authored-by: nasyt233 <210103278+nasyt233@users.noreply.github.com> Co-authored-by: jlugjb <7426462+jlugjb@users.noreply.github.com> Co-authored-by: Raven95676 <176760093+Raven95676@users.noreply.github.com> Co-authored-by: Futureppo <180109455+Futureppo@users.noreply.github.com> Co-authored-by: MliKiowa <61873808+MliKiowa@users.noreply.github.com> Co-authored-by: Fridemn <150212937+Fridemn@users.noreply.github.com> Co-authored-by: BakaCookie520 <138355736+BakaCookie520@users.noreply.github.com> Co-authored-by: YumeYuka <125112916+YumeYuka@users.noreply.github.com> Co-authored-by: xming521 <32786500+xming521@users.noreply.github.com> Co-authored-by: ywh555hhh <121592812+ywh555hhh@users.noreply.github.com> Co-authored-by: stevessr <89645372+stevessr@users.noreply.github.com> Co-authored-by: roeseth <41995115+roeseth@users.noreply.github.com> Co-authored-by: ikun-1145141 <265925499+ikun-1145141@users.noreply.github.com> Co-authored-by: evpeople <54983536+evpeople@users.noreply.github.com> Co-authored-by: Yue-bin <60509781+Yue-bin@users.noreply.github.com> Co-authored-by: W1ndys <109416673+W1ndys@users.noreply.github.com> Co-authored-by: TheFurina <218887821+TheFurina@users.noreply.github.com> Co-authored-by: Seayon <12275933+Seayon@users.noreply.github.com> Co-authored-by: OnlyblackTea <38585636+OnlyblackTea@users.noreply.github.com> Co-authored-by: ocetars <74854972+ocetars@users.noreply.github.com> Co-authored-by: railgun19457 <117180744+railgun19457@users.noreply.github.com> Co-authored-by: JunieXD <107397009+JunieXD@users.noreply.github.com> Co-authored-by: advent259141 <197440256+advent259141@users.noreply.github.com> Co-authored-by: Doge2077 <91442300+Doge2077@users.noreply.github.com> Co-authored-by: Bocity <23430545+Bocity@users.noreply.github.com> Co-authored-by: Aurora-xk <192227833+Aurora-xk@users.noreply.github.com>
102 lines
3.2 KiB
Markdown
102 lines
3.2 KiB
Markdown
# MCP
|
||
|
||
MCP(Model Context Protocol,模型上下文协议) 是一种新的开放标准协议,用来在大模型和数据源之间建立安全双向的链接。简单来说,它将函数工具单独抽离出来作为一个独立的服务,AstrBot 通过 MCP 协议远程调用函数工具,函数工具返回结果给 AstrBot。
|
||
|
||

|
||
|
||
AstrBot v3.5.0 支持 MCP 协议,可以添加多个 MCP 服务器、使用 MCP 服务器的函数工具。
|
||
|
||

|
||
|
||
## 初始状态配置
|
||
|
||
MCP 服务器一般使用 `uv` 或者 `npm` 来启动,因此您需要安装这两个工具。
|
||
|
||
对于 `uv`,您可以直接通过 pip 来安装。可在 AstrBot WebUI 快捷安装:
|
||
|
||

|
||
|
||
输入 `uv` 即可。
|
||
|
||
如果您使用 Docker 部署 AstrBot,也可以执行以下指令快捷安装。
|
||
|
||
```bash
|
||
docker exec astrbot python -m pip install uv
|
||
```
|
||
|
||
如果您通过源码部署 AstrBot,请在创建的虚拟环境内安装。
|
||
|
||
对于 `npm`,您需要安装 `node`。
|
||
|
||
如果您通过源码/一键安装部署 AstrBot,请参考 [Download Node.js](https://nodejs.org/en/download) 下载到您的本机。
|
||
|
||
如果您使用 Docker 部署 AstrBot,您需要在容器中安装 `node`(后期 AstrBot Docker 镜像将自带 `node`),请参考执行以下指令:
|
||
|
||
```bash
|
||
sudo docker exec -it astrbot /bin/bash
|
||
apt update && apt install curl -y
|
||
export NVM_NODEJS_ORG_MIRROR=http://nodejs.org/dist
|
||
# Download and install nvm:
|
||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash
|
||
\. "$HOME/.nvm/nvm.sh"
|
||
nvm install 22
|
||
# Verify version:
|
||
node -v
|
||
nvm current
|
||
npm -v
|
||
npx -v
|
||
```
|
||
|
||
安装好 `node` 之后,需要重启 `AstrBot` 以应用新的环境变量。
|
||
|
||
## 安装 MCP 服务器
|
||
|
||
如果您使用 Docker 部署 AstrBot,请将 MCP 服务器安装在 data 目录下。
|
||
|
||
### 一个例子
|
||
|
||
我想安装一个查询 Arxiv 上论文的 MCP 服务器,发现了这个 Repo: [arxiv-mcp-server](https://github.com/blazickjp/arxiv-mcp-server),参考它的 README,
|
||
|
||
我们抽取出需要的信息:
|
||
|
||
```json
|
||
{
|
||
"command": "uv",
|
||
"args": [
|
||
"tool",
|
||
"run",
|
||
"arxiv-mcp-server",
|
||
"--storage-path", "data/arxiv"
|
||
]
|
||
}
|
||
```
|
||
|
||
如果要使用的 MCP 服务器需要通过环境变量配置 Token 等信息,可以使用 `env` 这个工具:
|
||
|
||
```json
|
||
{
|
||
"command": "env",
|
||
"args": [
|
||
"XXX_RESOURCE_FROM=local",
|
||
"XXX_API_URL=https://xxx.com",
|
||
"XXX_API_TOKEN=sk-xxxxx",
|
||
"uv",
|
||
"tool",
|
||
"run",
|
||
"xxx-mcp-server",
|
||
"--storage-path", "data/res"
|
||
]
|
||
}
|
||
```
|
||
|
||
在 AstrBot WebUI 中设置:
|
||
|
||

|
||
|
||
即可。
|
||
|
||
参考链接:
|
||
|
||
1. 在这里了解如何使用 MCP: [Model Context Protocol](https://modelcontextprotocol.io/introduction)
|
||
2. 在这里获取常用的 MCP 服务器: [awesome-mcp-servers](https://github.com/punkpeye/awesome-mcp-servers/blob/main/README-zh.md#what-is-mcp), [Model Context Protocol servers](https://github.com/modelcontextprotocol/servers), [MCP.so](https://mcp.so)
|