Astrolabe MCP 服务端
使用说明(Markdown 格式)
- 项目简介
- Astrolabe MCP 服务器实现一个后端服务,负责加载配置、建立并维护本地文档索引、提供一组可供客户端调用的工具方法(如获取 Cosmos、列出文档、按查询检索、读取文档、更新索引、重新索引等),并通过 MCP 标准进行 JSON-RPC 交互。服务器本身运行在 Python 环境中,支持通过环境变量指定配置文件路径,提供跨机器共享索引的能力(通过云端共享的索引文件)等特性。
- 主要功能点
- 资源管理与索引:对配置中的项目目录进行扫描,构建并维护一个文档索引,支持并发访问与惰性更新。
- 工具接口:通过 MCP 工具暴露多种功能,例如读取文档、查询、更新元数据、重新索引、获取文档卡等,返回结构化的 JSON 数据,方便 LLM 客户端消费。
- 读取与搜索:支持按段落、标题、范围读取文档内容,以及对文档进行基于关键字、标题、摘要等字段的加权检索。
- 跨机器共享:支持将索引文件放在云端目录,结合哈希标准化与 Desync 处理,实现在多机器之间共享一致的文档状态与搜索能力。
- 安全与稳定性:采用文件锁机制保护索引文件的并发访问,提供 desync、passthrough、force 重建等状态处理逻辑,确保在分布式环境中的可预测行为。
- 安装步骤
- 获取源码:将仓库下载到本地或服务器环境中。
- 创建虚拟环境并安装:按照项目提供的依赖方式,创建虚拟环境并安装为开发模式(如 pip install -e ".[dev]")。
- 配置文件:使用 runtime/config.json 作为默认配置路径,必要时复制示例配置并按实际项目路径修改。
- 启动方式:以模块运行服务器,例如 python -m astrolabe.server(也可以通过配置环境变量 ASTROLABE_CONFIG 指向 runtime/config.json 指定的配置文件来启动)。
- 服务器配置(MCP 客户端需要的启动信息,JSON 格式,含 server name、command、args 等)
- 服务器名称(server_name): Astrolabe
- 启动命令(command):/absolute/path/to/虚拟环境/bin/python
- 参数(args):["-m", "astrolabe.server"]
- 工作目录(cwd):/absolute/path/to/astrolabe-mcp
- 环境变量(env):{ "ASTROLABE_CONFIG": "/absolute/path/to/astrolabe-mcp/runtime/config.json" } 注释:
- 上述配置用于 MCP 客户端在需要时启动并连接到 Astrolabe 的服务端。ASTROLABE_CONFIG 指向服务器启动所用的配置文件,以确保服务器能够正确加载配置、索引以及 doc_types 等信息。客户端本身只需要知道服务器的启动信息即可发起请求。
- 基本使用方法
- 客户端连接与调用:通过 MCP 客户端启动时提供的命令与参数,启动 Astrolabe 服务端进程并建立与之的 JSON-RPC 通道。
- 常用交互:使用 get_cosmos、list_docs、search_docs、get_card、read_doc、update_index_tool、reindex_tool 等工具接口获取/修改索引及文档信息。
- 更新与同步:在本地项目有新增/修改文件时,调用 reindex_tool 或在需要时通过 read_doc/update_index_tool 进行 enrichment,以保持索引与文件的一致性。