内容
# ohneben Anytype MCP
[](https://github.com/ohneben/Anytype-MCP/actions/workflows/ci.yml)
[](./LICENSE.md)
通过AI助手(如**Claude**、**Cursor**等)以自然语言与[Anytype](https://anytype.io)知识库进行交流。
本项目是官方[`anyproto/anytype-mcp`](https://github.com/anyproto/anytype-mcp)的自行托管版本,添加了**Docker容器**和**可流式传输的HTTP**协议,使得服务器可以在后台静默运行,并可以通过HTTP被任何MCP客户端访问。(原始版本仅支持标准输入/输出。)
## 为什么选择这个版本?
[Anytype官方MCP服务器](https://github.com/anyproto/anytype-mcp)非常优秀,但它作为一个`stdio`子进程运行,每个客户端都需要在运行时启动它。本项目保留了**全部功能**,并添加了**生产级别的部署**:一个始终在线的服务器,运行在Docker中,可以被任意多个MCP客户端通过HTTP访问。
| 功能 | **本项目** | 官方`anyproto/anytype-mcp` | 其他社区服务器\* |
| --- | :---: | :---: | :---: |
| 完整的Anytype API覆盖(动态OpenAPI → MCP工具) | ✅ | ✅ | ✅ |
| `stdio`传输 | ✅ | ✅ | ✅ |
| **可流式传输的HTTP传输**(通过`mcp-remote`) | ✅ | ❌ | ❌ |
| **始终在线的后台服务** | ✅ | ❌ | ❌ |
| **一个服务器 → 多个客户端同时访问** | ✅ | ❌ | ❌ |
| **Docker + docker-compose** | ✅ | ❌ | ❌ |
| **健康检查端点 + 自动重启** | ✅ | ❌ | ❌ |
| **可选的Bearer令牌身份验证** | ✅ | ❌ | ❌ |
| 🟢 / 🟡 / 🔴 只读 / 写 / 销毁工具提示 | ✅ | ➖ | ➖ |
| 自动化测试套件(Vitest) | ✅ | ✅ | ➖ |
| 许可证 | MIT | MIT | 各不相同 |
<sub>\*社区服务器如[`Qwinty/anytype-mcp`](https://github.com/Qwinty/anytype-mcp)(JS)、[`wethegreenpeople/anytype-mcp`](https://github.com/wethegreenpeople/anytype-mcp)(Python)和[`anytype-mcp-plus`](https://github.com/MAB2908/anytype-mcp-plus) — 大多数仅支持`stdio`,通过`npx`启动。 "➖" = 未记录 / 各不相同。快照来自2026年7月;请查看每个项目的最新信息。</sub>
**简而言之:** 如果您只是想从AI客户端尝试Anytype,官方服务器就足够了。如果您想让它**在后台运行,保持随时可用,并与机器上的所有MCP客户端共享**,请使用本项目。
## 您可以使用以下功能
连接后,您可以向您的助手提问:
- “在Anytype中搜索有关Q3启动的笔记。”
- “创建一个任务‘写报告’,3天后到期。”
- “创建一个名为‘旅行’的新空间,并添加一个打包清单。”
工具会根据您运行的Anytype应用程序自动生成,并分为🟢只读、🟡写和🔴删除。
## 工作原理
```
Claude / Cursor / … ──MCP──► 本服务器 ──HTTP──► Anytype 桌面应用程序(本地API)
```
服务器仅与您自己机器上的Anytype**桌面应用程序**的**本地API**通信。您的数据保留在您的计算机上。
## 要求
- **Anytype 桌面应用程序**,已安装并运行(它在`127.0.0.1:31009`上提供本地API)。
- **Docker**(macOS/Windows上的Docker Desktop)用于以下设置。
## 快速入门(Docker)
**1. 添加您的API密钥。** 复制示例配置文件并粘贴密钥:
```bash
cp .env.example .env
# 打开 .env 并设置 ANYTYPE_API_KEY=... (参见下面的“获取API密钥”)
```
**2. 启动服务器:**
```bash
docker compose up -d --build
```
**3. 确认它正在运行:**
```bash
curl -s http://localhost:8769/healthz # → {"status":"ok"}
```
**4. 连接您的MCP客户端。** 在您的客户端配置中添加以下内容(例如Claude Desktop或Claude Code),然后完全退出并重新打开应用程序:
```json
"anytype": {
"command": "npx",
"args": ["-y", "mcp-remote", "http://localhost:8769/mcp", "--allow-http"]
}
```
就这样 — 请您的助手在Anytype中搜索或创建内容。
## 获取API密钥
在Anytype桌面应用程序中:**设置 → API密钥 → 创建新密钥**。将密钥复制到`.env`中作为`ANYTYPE_API_KEY=`。您的密钥保留在`.env`中,git会忽略它,因此它永远不会被提交。
## 配置
所有内容都在`.env`中设置(从`.env.example`复制):
| 变量 | 默认值 | 功能 |
| --- | --- | --- |
| `ANYTYPE_API_KEY` | — | 您的Anytype API密钥。**必填。** |
| `ANYTYPE_VERSION` | `2025-11-08` | Anytype API版本头。 |
| `ANYTYPE_API_BASE_URL` | `http://host.docker.internal:31009` | Anytype应用程序的API可在容器中访问的地址。 |
| `PORT` | `8769` | MCP端点的宿主端口。 |
| `MCP_SHARED_TOKEN` | *(空)* | 可选的Bearer令牌以保护端点。空 = 开放,仅限localhost访问。 |
更改`.env`后,使用`docker compose up -d --force-recreate`重新加载。
有关日志、重启、密钥轮换和验证命令,请参见**[DOCKER.md](./DOCKER.md)**。
## 从源代码运行(stdio,无Docker)
喜欢经典的stdio模式吗?在本地构建:
```bash
npm install
npm run build
```
然后使用stdio命令和`OPENAPI_MCP_HEADERS`中的密钥在您的客户端注册 — 参见[上游README](https://github.com/anyproto/anytype-mcp#readme)以获取确切的stdio配置。
## 安全
- 您的API密钥仅存储在`.env`中,git会忽略它。**请勿提交实际密钥。**
- 默认情况下,HTTP端点是未经身份验证的(在localhost上正常)。要将其公开到您的机器之外,请设置`MCP_SHARED_TOKEN`并将其作为`Bearer`头或`?token=…`发送。
## 致谢和许可证
基于Any Association的官方[Anytype MCP服务器](https://github.com/anyproto/anytype-mcp)。遵循[MIT许可证](./LICENSE.md)。