项目简介

Anytype MCP服务器是一个基于Model Context Protocol (MCP) 构建的应用后端,旨在将您的Anytype文档连接到支持MCP协议的LLM客户端(如Claude)。通过该服务器,您可以利用LLM对您的Anytype文档进行语义搜索和检索增强生成 (RAG),从而更有效地利用个人知识库。

主要功能点

  • 语义搜索:在您的Anytype文档中进行语义搜索,快速找到相关信息。
  • RAG (检索增强生成):支持检索增强生成,使LLM能够基于您的Anytype文档生成更准确、更相关的回复。
  • 文档自动分块:自动将文档分块,提高搜索准确性。
  • 元数据支持:完整支持Anytype文档的元数据,包括标签、日期和自定义属性,提升搜索和检索效果。
  • Ollama模型支持:使用Ollama在本地运行embedding模型,保护数据隐私。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/wethegreenpeople/anytype-mcp.git
    cd anytype-mcp
  2. 安装依赖: 确保您已安装 Python 3.13 或更高版本,并安装了 uv。然后运行:

    uv sync
  3. 安装 embedding 模型: 确保您已安装 Ollama 并已运行。然后拉取 'mxbai-embed-large' 模型:

    ollama pull mxbai-embed-large
  4. (可选) 预先摄取文档: 如果您希望在客户端连接前完成文档摄取,可以运行以下脚本。首次运行可能需要一些时间,取决于您的文档数量。

    python scripts/ingest_only.py

服务器配置

要将 Anytype MCP 服务器添加到支持MCP协议的客户端(例如 Claude Desktop),您需要配置客户端以连接到该服务器。以 Claude Desktop 为例,您需要修改 'claude_desktop_config.json' 文件,该文件通常位于:

  • Windows: '%APPDATA%\Claude\claude_desktop_config.json'
  • macOS: '~/Library/Application Support/Claude/claude_desktop_config.json'
  • Linux: '~/.config/Claude/claude_desktop_config.json'

在 'mcpServers' 部分添加以下配置:

"anytype": {
  "command": "uv",
  "args": [
    "run",
    "--with",
    "chromadb",  // 依赖库:向量数据库
    "--with",
    "fastmcp",   // 依赖库:FastMCP框架
    "--with",
    "httpx",     // 依赖库:HTTP客户端
    "--with",
    "nltk",      // 依赖库:自然语言处理工具包
    "--with",
    "ollama",    // 依赖库:Ollama客户端
    "--with",
    "platformdirs", // 依赖库:跨平台目录管理
    "--with",
    "sentence-transformers", // 依赖库:句子转换模型
    "fastmcp",   // 执行 fastmcp 命令
    "run",       // fastmcp 子命令:运行服务器
    "[PATH_TO_ANYTYPE_MCP]/server.py" // 服务器脚本路径,请替换为您的实际路径
  ]
}

请将 '[PATH_TO_ANYTYPE_MCP]' 替换为 'anytype-mcp' 仓库的绝对路径。例如:

  • Windows: 'C:\Users\username\Documents\anytype-mcp\server.py'
  • macOS/Linux: '/home/username/anytype-mcp/server.py'

注意: Windows 路径在 JSON 文件中需要使用双反斜杠 '\'。

基本使用方法

  1. 启动服务器: 配置完成后,当您在 Claude Desktop 等客户端中选择 "anytype" MCP服务器时,客户端将根据您在 'claude_desktop_config.json' 中配置的命令和参数启动 'server.py'。

  2. 客户端调用工具: 成功连接到服务器后,您可以在客户端中使用以下工具与您的Anytype文档进行交互:

    • 'ingest_documents': 将您的Anytype文档导入到向量数据库中,以便进行搜索和RAG。
    • 'query_anytype_documents': 对Anytype文档进行语义搜索,查找与查询内容相关的文档片段。
    • 'get_anytype_object': 根据ID获取特定的Anytype对象内容。
    • 'get_ingestion_stats': 查看文档摄取状态和统计信息。
    • 'clear_ingestion': 清空向量数据库,重新开始文档摄取。

    这些工具可以通过客户端的界面或指令进行调用,具体取决于客户端的功能和设计。请参考您使用的MCP客户端的文档以了解如何调用这些工具。

首次使用需要进行身份验证,服务器会返回一个 challenge ID,您需要在Anytype应用中获取 secret code 并提供给服务器完成认证。认证成功后,服务器将存储 token 以供后续会话使用。

信息

分类

数据库与文件