mcpField
A
Anytype (self-hosted HTTP)

Anytype (self-hosted HTTP)

本地服务
github.com生产力18 周前更新

关于 Anytype (self-hosted HTTP)

Anytype (self-hosted HTTP) 是面向 Anytype 用户的自托管 MCP 服务,将 Anytype API 提供给 AI 助手。它支持 Docker 常驻运行、HTTP 与 stdio 传输,并可供多个 MCP 客户端连接。

主要功能

  1. 01覆盖 Anytype API 并自动生成工具
  2. 02支持 Streamable HTTP 与 stdio
  3. 03Docker 部署及健康检查
  4. 04可选 Bearer Token 认证
  5. 05精简 API 响应并提供工具路由提示

适用场景

  1. 01从 Anytype 搜索笔记
  2. 02创建任务、空间与清单
  3. 03让多个 MCP 客户端共用服务

MCP 相关

服务通过 MCP 向客户端提供 Anytype API 工具;支持 Streamable HTTP 和 stdio,可连接 Anytype 桌面应用的本地 API。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"ohneben-anytype": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ANYTYPE_API_KEY",
"-e",
"PORT",
"-e",
"ANYTYPE_API_BASE_URL",
"-e",
"ANYTYPE_VERSION",
"-e",
"ANYTYPE_API_HOST_HEADER",
"-e",
"MCP_SHARED_TOKEN",
"-e",
"ANYTYPE_MCP_SLIM_RESPONSES",
"ghcr.io/ohneben/anytype-mcp:1.0.6"
],
"env": {
"ANYTYPE_API_KEY": "<ANYTYPE_API_KEY>",
"PORT": "<PORT>",
"ANYTYPE_API_BASE_URL": "<ANYTYPE_API_BASE_URL>",
"ANYTYPE_VERSION": "<ANYTYPE_VERSION>",
"ANYTYPE_API_HOST_HEADER": "<ANYTYPE_API_HOST_HEADER>",
"MCP_SHARED_TOKEN": "<MCP_SHARED_TOKEN>",
"ANYTYPE_MCP_SLIM_RESPONSES": "<ANYTYPE_MCP_SLIM_RESPONSES>"
}
}
}
}
启动命令docker run -i --rm -e ANYTYPE_API_KEY -e PORT -e ANYTYPE_API_BASE_URL -e ANYTYPE_VERSION -e ANYTYPE_API_HOST_HEADER -e MCP_SHARED_TOKEN -e ANYTYPE_MCP_SLIM_RESPONSES ghcr.io/ohneben/anytype-mcp:1.0.6
需要配置的环境变量
ANYTYPE_API_KEY密钥Anytype API key, created in the desktop app under Settings -> API Keys.
PORTPort the MCP endpoint listens on, inside the container and on the host.
ANYTYPE_API_BASE_URLWhere the Anytype desktop API is reachable from inside the container.
ANYTYPE_VERSIONAnytype API version header sent with every request.
ANYTYPE_API_HOST_HEADEROverride the Host header sent to the Anytype API. Auto-derived when unset; Anytype rejects non-loopback hosts with 403.
MCP_SHARED_TOKEN密钥Optional bearer token required on the /mcp endpoint. Empty means open, for localhost only.
ANYTYPE_MCP_SLIM_RESPONSESCompact API responses before returning them to the client. Set to false for raw payloads.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/ohneben/anytype-mcp:1.0.6

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

ohneben Anytype MCP

Buy Me A Coffee

CI MCP Registry License: MIT Anytype-MCP MCP server

通过自然语言与 Anytype 知识库对话,可使用 Claude、Cursor 等 AI 助手,以及任何其他 MCP 客户端。

这是官方 anyproto/anytype-mcp 的可自托管分支,新增了 Docker 容器和 Streamable-HTTP 传输方式,因此服务可在后台持续运行,并可通过 HTTP 供任何 MCP 客户端访问。(原版仅支持 stdio。)

为什么选择这个版本?

官方 Anytype MCP 服务 很出色,但它以 stdio 子进程的形式运行,每个客户端都必须按需启动它。本项目保留了全部功能,并新增了面向生产环境的部署方式:在 Docker 中运行一个常驻服务,供任意数量的 MCP 客户端通过 HTTP 访问。

功能本项目官方 anyproto/anytype-mcp其他社区服务*
完整覆盖 Anytype API(动态 OpenAPI → MCP 工具)✅✅✅
stdio 传输方式✅✅✅
Streamable-HTTP 传输方式(原生支持或通过 mcp-remote)✅❌❌
始终运行的后台服务✅❌❌
一个服务 → 同时支持多个客户端✅❌❌
Docker + docker-compose✅❌❌
健康检查端点 + 自动重启✅❌❌
端点的可选 bearer-token 身份验证✅❌❌
🟢 / 🟡 / 🔴 只读 / 写入 / 破坏性工具提示✅➖➖
自动化测试套件(Vitest)✅✅➖
许可证MITMIT不一

*社区服务包括 Qwinty/anytype-mcp(JS)、wethegreenpeople/anytype-mcp(Python)和 anytype-mcp-plus——大多数仅支持 stdio,并通过 npx 启动。“➖” = 未说明 / 情况不一。数据截至 2026 年 7 月;请查看各项目以获取最新信息。

简而言之:如果你只想通过 AI 客户端试用 Anytype,官方服务就很合适。如果你想让它在后台运行、随时待命,并供你机器上的所有 MCP 客户端共享,就使用这个版本。

你可以做什么

连接后,你可以向助手询问这类问题:

  • “在我的 Anytype 中搜索有关 Q3 发布的笔记。”
  • “创建一个任务‘撰写报告’,截止日期为 3 天后。”
  • “新建一个名为‘旅行’的空间,并添加一份打包清单。”

工具会根据正在运行的 Anytype 应用自动生成,并分为 🟢 只读、🟡 写入和 🔴 删除三类。

此服务经过优化,可减少工具调用,让助手运行更快速、更节省资源:

  • API-get-overview — 一个综合工具,可通过一次调用返回所有空间及其类型;也可以提供 space_id,以获取该空间的类型和属性定义。这样就不必依次调用列出空间 → 列出类型 → 列出属性。
  • 精简响应 — API 负载在传递给助手前会经过压缩:空属性值、object 判别字段和 null 值会被移除,每个搜索或列表结果中嵌入的类型也会精简为标识符。通常,这会让列表和搜索响应缩小一半以上,从而减少每次调用消耗的上下文,并减少后续调用次数。设置 ANYTYPE_MCP_SLIM_RESPONSES=false 可获取原始 API 负载。
  • 路由提示 — 工具描述会告知助手哪种工具最适合以较低成本完成任务(例如,搜索比对列表分页更合适;只有 get-object 会返回完整的 markdown 正文)。

工作原理

Claude / Cursor / …  ──MCP──►  this server  ──HTTP──►  Anytype desktop app (local API)

此服务只与本机 Anytype 桌面应用的本地 API通信。你的数据会保留在自己的电脑上。

要求

  • 已安装并正在运行的 Anytype 桌面应用(它会在 127.0.0.1:31009 提供本地 API)。
  • 按照以下步骤进行配置需要 Docker(macOS/Windows 上使用 Docker Desktop)。

快速开始(Docker)

1. 添加 API 密钥。 复制示例配置并粘贴密钥:

cp .env.example .env
# open .env and set ANYTYPE_API_KEY=...   (see "Get an API key" below)

2. 启动服务:

docker compose up -d --build

3. 确认服务正在运行:

curl -s http://localhost:8769/healthz     # → {"status":"ok"}

4. 连接 MCP 客户端。 在 mcpServers 下添加一个 anytype 条目,然后完全退出并重新打开应用。选择与你的客户端相符的配置:

Claude Code(或任何原生支持 Streamable-HTTP 的客户端)— 直接连接,无需辅助进程:

"anytype": {
  "type": "http",
  "url": "http://localhost:8769/mcp"
}

Claude Desktop(其配置仅支持 stdio)需要使用 mcp-remote 桥接程序。安装一次,然后通过 node 而非 npx 启动:

npm i -g mcp-remote
"anytype": {
  "command": "/opt/homebrew/bin/node",
  "args": [
    "/opt/homebrew/lib/node_modules/mcp-remote/dist/proxy.js",
    "http://localhost:8769/mcp",
    "--allow-http"
  ]
}

为什么不用 npx -y mcp-remote …? 每次启动时,npx 都会通过 npm 缓存重新解析软件包。客户端同时冷启动多个 MCP 服务时,它们会争用该缓存, 某些启动器可能会在 npx 内部卡住好几分钟,导致客户端报告连接超时。一次性安装 mcp-remote 并通过 node 启动,就能省去这一步。请使用绝对路径(图形界面应用不会继承 shell 的 PATH,而且 mcp-remote 自带的 #!/usr/bin/env node shebang 也无法以其他方式找到 node)。上面的路径是 Apple Silicon 版 Homebrew 的默认路径; 如果你的路径不同,请使用 which node 和 npm root -g 进行调整。

就这么简单——让助手在 Anytype 中搜索或创建内容即可。

获取 API 密钥

在 Anytype 桌面应用中:设置 → API 密钥 → 创建新密钥。将密钥复制到 .env 中的 ANYTYPE_API_KEY=。密钥会保留在 .env 中,而 git 会忽略该文件, 因此密钥不会被提交。

配置

所有配置都在 .env 中(从 .env.example 复制而来):

变量默认值作用
ANYTYPE_API_KEY—你的 Anytype API 密钥。必填。
ANYTYPE_VERSION2025-11-08Anytype API 版本标头。
ANYTYPE_API_BASE_URLhttp://host.docker.internal:31009容器访问 Anytype 应用 API 的地址。
ANYTYPE_API_HOST_HEADER(自动)发送到 Anytype API 的 Host 标头。当基础 URL 使用容器主机别名时,会自动设为 localhost:<port>,因为 Anytype 会拒绝其他任何 Host,并返回 403 request origin is not allowed。
PORT8769MCP 端点的主机端口。
MCP_SHARED_TOKEN(空)用于保护端点的可选 bearer token。留空 = 不设保护,仅限 localhost 使用。
ANYTYPE_MCP_SLIM_RESPONSEStrue在将 API 响应发送给助手之前进行精简。设为 false 可获取原始负载。

更改 .env 后,运行 docker compose up -d --force-recreate 重新加载。

有关日志、重启、密钥轮换和验证命令,请参阅 DOCKER.md。

从源代码运行(stdio,无需 Docker)

更喜欢经典的 stdio 模式?在本地构建:

npm install
npm run build

然后使用 stdio 命令和 OPENAPI_MCP_HEADERS 中的密钥向客户端注册;确切的 stdio 配置请参阅上游 README。

安全

  • 你的 API 密钥仅保存在 .env 中,该文件已被 git 忽略。切勿提交真实密钥。
  • HTTP 端点默认无需身份验证(在 localhost 上使用没有问题)。如需在本机之外公开访问, 请设置 MCP_SHARED_TOKEN,并通过 Bearer 标头或 ?token=… 发送该令牌。

MCP Registry

此服务以 io.github.ohneben/anytype-mcp 这一名称发布到官方 MCP Registry。查询当前条目:

curl "https://registry.modelcontextprotocol.io/v0/servers?search=io.github.ohneben/anytype-mcp"

其条目由 server.json 描述,并在每个 v*.*.* 标签上通过 .github/workflows/publish-mcp.yml 自动重新发布。 该工作流会等待匹配的 GHCR 镜像,并使用 GitHub OIDC 进行身份验证(无需密钥)。 Registry 通过 Dockerfile 中的 io.modelcontextprotocol.server.name 标签验证镜像归属,因此 GHCR 软件包必须保持公开。

发布

Git 标签就是版本。 推送 v1.2.3 即完成整个发布流程:构建镜像前,标签会写入 package.json;发布条目前,标签会写入 server.json。因此,服务向 MCP 客户端报告的版本、镜像标签和 Registry 条目不会互相冲突。无需事先手动 更新版本号,这里提交的版本仅作为本地构建使用的默认值。

致谢与许可证

基于 Any Association 的官方 Anytype MCP 服务构建。 根据 MIT License 授权。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。