Anytype MCP服务器

一个提供访问Anytype API的MCP服务器,允许AI助手和其他MCP客户端与您的Anytype数据进行交互。

  • by Qwinty
  • JavaScript
  • 本地部署
  • 24 星标
  • 更新于
在 GitHub 查看 Qwinty/anytype-mcp

使用说明

官方的ANYTYPE MCP在这里发布

https://github.com/anyproto/anytype-mcp

任何类型的MCP服务器

一个MCP(模型上下文协议)服务器,提供对Anytype API的访问,允许AI助手和其他MCP客户端与您的Anytype数据交互。

基于Anytype API定义v0.46+(2025-03-17)。 确保您的Anytype Desktop版本兼容。

特性

  • 获取空间列表(get_spaces)
  • 搜索/获取空间内的对象(get_objects, search_space)或全球(global_search)
  • 获取详细的对象内容(get_object_content,支持检索全文)
  • 创建和删除空间(create_space)和对象(create_object, delete_object)
  • 将对象导出为markdown(export_object)
  • 管理列表视图和列表中的对象(get_list_views, get_list_view_objects, add_objects_to_list, remove_object_from_list)
  • 获取空间成员(get_space_members)
  • 获取类型和模板(get_types, get_type_details, get_templates, get_template_details)

先决条件

  • Node.js 18或更高版本
  • 本地运行的任何类型的桌面应用程序
  • Anytype帐户

安装

手动安装

  1. 克隆此存储库:

    git clone https://github.com/Qwinty/anytype-mcp.git
    cd anytype-mcp
    
  2. 安装依赖项:

    npm install
    
  3. 构建项目(将TypeScript编译为JavaScript) build/):

    npm run build
    
  4. 获取应用程序密钥: 在配置服务器之前,您需要Anytype的应用程序密钥。请参阅下面的“获取应用程序密钥”部分。

  5. 将MCP服务器添加到MCP配置文件中

获取应用程序密钥

在使用MCP服务器之前,您需要从Anytype桌面应用程序获取应用程序密钥:

  1. 确保Anytype桌面正在运行

  2. 运行辅助脚本:

    npm run get-key
    
  3. 按照说明授权应用程序

  4. 记下配置的应用程序密钥

配置

将Anytype MCP服务器添加到MCP配置文件中:

  • 致克劳德:编辑 claude_desktop_config.json
  • 对于其他MCP客户端:编辑其各自的配置文件

配置示例:

{
  "mcpServers": {
    "anytype": {
      "command": "node",
      "args": ["{path/to/anytype-mcp}/build/index.js"],
      "env": {
        "ANYTYPE_APP_KEY": "YOUR_APP_KEY_HERE"
      },
      "disabled": false
    }
  }
}

替换 path/to/anytype-mcp 安装的实际路径和 YOUR_APP_KEY_HERE 使用您获得的应用程序密钥。

用法

启动服务器

MCP服务器通常由MCP客户端自动启动。但是,您也可以手动启动它进行测试:

npm start

可用工具

看 工具.md 查看可用工具及其使用示例的详细列表。

系统提示

此外,使用此服务器的AI助手的示例系统提示可在 docs/system-promput.md.

令牌效率和数据过滤

为了优化AI助手的令牌使用,此MCP服务器默认为返回对象数据的工具实现响应过滤(get_objects, global_search, search_space).

  • 默认行为: 服务器返回对象数据的简化版本,包括基本元数据,如ID、名称、类型、图标、布局、空间ID、根ID、代码段(如果可用)、块计数、标签、创建/修改日期和创建者信息。省略了完整的块内容和详细的关系。
  • include_text: true: 多种工具(get_objects, get_object_content, global_search, search_space)支持可选 include_text 参数。当设置为 true,服务器将从对象的块中提取并包含完整的格式化文本内容 full_text 现场。当您需要完整的文本时,请使用此选项,但请注意,它会显著增加响应大小和令牌计数。
  • full_response: true: 这 get_objects, global_search,以及 search_space 工具还支持a full_response 参数。将其设置为 true 绕过所有过滤,直接从Anytype API返回原始、完整的JSON响应。这提供了最多的细节,但使用了最多的令牌。

根据您只需要元数据、全文内容还是完整的原始API响应来选择适当的参数。

故障排除

Anytype API未响应

确保Anytype桌面应用程序正在您的计算机上运行。MCP服务器连接到位于的本地Anytype API http://localhost:31009/v1.

身份验证问题

如果遇到身份验证错误:

  1. 跑 npm run get-key 获取新的应用程序密钥
  2. 使用新密钥更新MCP配置
  3. 重新启动MCP客户端

本地API端口

服务器连接到位于的Anytype API http://localhost:31009/v1 默认情况下。如果Anytype安装使用其他端口,则当前需要修改 apiBaseUrl 变量in src/index.ts 并重建(npm run build).通过环境变量进行配置是未来潜在的改进。

许可证

麻省理工学院