项目简介
Anytype MCP服务器是一个基于Model Context Protocol (MCP) 构建的应用后端,旨在将您的Anytype文档连接到支持MCP协议的LLM客户端(如Claude)。通过该服务器,您可以利用LLM对您的Anytype文档进行语义搜索和检索增强生成 (RAG),从而更有效地利用个人知识库。
主要功能点
- 语义搜索:在您的Anytype文档中进行语义搜索,快速找到相关信息。
- RAG (检索增强生成):支持检索增强生成,使LLM能够基于您的Anytype文档生成更准确、更相关的回复。
- 文档自动分块:自动将文档分块,提高搜索准确性。
- 元数据支持:完整支持Anytype文档的元数据,包括标签、日期和自定义属性,提升搜索和检索效果。
- Ollama模型支持:使用Ollama在本地运行embedding模型,保护数据隐私。
安装步骤
-
克隆仓库:
git clone https://github.com/wethegreenpeople/anytype-mcp.git cd anytype-mcp -
安装依赖: 确保您已安装 Python 3.13 或更高版本,并安装了 uv。然后运行:
uv sync -
安装 embedding 模型: 确保您已安装 Ollama 并已运行。然后拉取 'mxbai-embed-large' 模型:
ollama pull mxbai-embed-large -
(可选) 预先摄取文档: 如果您希望在客户端连接前完成文档摄取,可以运行以下脚本。首次运行可能需要一些时间,取决于您的文档数量。
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 文件中需要使用双反斜杠 '\'。
基本使用方法
-
启动服务器: 配置完成后,当您在 Claude Desktop 等客户端中选择 "anytype" MCP服务器时,客户端将根据您在 'claude_desktop_config.json' 中配置的命令和参数启动 'server.py'。
-
客户端调用工具: 成功连接到服务器后,您可以在客户端中使用以下工具与您的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 以供后续会话使用。
信息
分类
数据库与文件