关于 project-lore
project-lore 是面向编码 Agent 的本地优先 MCP 服务,可按开发任务筛选相关项目文档。它在本地建立索引,并提供带来源、权威性和时效信息的摘录。
主要功能
- 01按任务路由文档
- 02按权威性搜索文档
- 03提供带来源位置的限长摘录
- 04增量更新 SQLite 索引
- 05标记过时及已取代来源
适用场景
- 01修改代码前查找适用文档
- 02搜索设计决策与约束
- 03确认项目指引是否仍有效
MCP 相关
它向 MCP 客户端提供 `route_task`、`search_project_knowledge` 和 `get_document_context` 工具。工具返回相关文档、搜索结果或文档章节及其关系,不会返回完整文件。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
project-lore-mcp
一个本地优先的 MCP 服务,将编码 Agent 引导至最少且有用的项目文档集——包括决策、意图和约束,并提供来源信息与时效性。
代码智能工具(例如 codebase-memory-mcp)回答的是 在哪里实现,以及哪些内容依赖它。本项目回答的是互补的问题:为什么要这样设计、哪份文档适用于当前任务,以及这些知识是否仍然有效?
功能
将它指向一个代码库(以及可选的外部文档根目录)。它会:
- 发现 Markdown、文本、HTML、YAML、JSON、Mermaid 和 Claude 指令文件;
- 按类型和权威性为每份文档分类(指令 → 规范 → 设计 → 规划 → 历史 → 生成 → 提议);
- 提取标题、章节、链接、frontmatter、ADR 状态,以及明确的“先读”“取代”和任务路由关系——以确定性方式完成,并记录来源信息(结构化提取适用于 Markdown;其他格式则进行纯文本索引);
- 在 SQLite(FTS5)中存储可重建的本地索引,并根据内容哈希增量更新;
- 通过**有界摘录和精确的来源位置(绝不返回整个文件)**回答任务和知识查询,并标记过时或已被取代的来源,而不是将其隐藏。
MCP 工具
| 工具 | 用途 |
|---|---|
route_task | 根据开发任务,返回应优先阅读的有序文档/章节。显式清单路由优先于排序搜索。 |
search_project_knowledge | 对文档进行全文搜索,并按权威性和状态重新排序;每条结果都会显示时效性。 |
get_document_context | 返回一份文档的章节和类型化关系,不会返回整个文件。 |
安装和运行
需要 Node.js ≥ 22。
npm install -g project-lore-mcp # or npx -y project-lore-mcp (no install needed)
project-lore index --root /path/to/your/repo # one-shot index + stats
project-lore serve --root /path/to/your/repo # stdio MCP server
Claude Code
在要建立索引的代码库中运行一次:
# Personal setup — stored in your local Claude Code config, not committed
claude mcp add project-lore --scope local -- \
npx -y project-lore-mcp serve --root "$PWD"
团队可以改为提交共享配置:
# Shared setup — writes .mcp.json into the repository
claude mcp add project-lore --scope project -- \
npx -y project-lore-mcp serve --root .
项目范围配置使用相对根目录(.),因此适用于任何检出目录。
Claude Code 会在运行项目范围的服务之前,要求每位用户批准。
一个代码库,一份配置。 Project Lore 的命令包含固定的根目录路径,因此始终只会为一个特定代码库建立索引。请为每个代码库单独注册,而不要全局注册。
它可以与 codebase-memory-mcp 共存——配置两者即可;它们分别处理不同的问题。如果配置引用了代码库之外的文档,必须授予 Claude Code 对这些路径的文件系统访问权限(将它们添加为额外的工作目录,或批准权限提示)。
试用示例
npm run index:example # index examples/documented-project
npm run serve:example # serve it over stdio
配置
可在代码库根目录下放置可选的 project-lore.config.yaml:
sources:
- id: repository
type: directory
path: .
authority: canonical
- id: design-handoff
type: directory
path: ../product-docs # explicit opt-in external root
authority: design
classification:
rules:
- pattern: "docs/legacy/**"
authority: historical
完整参考请参阅 docs/configuration.md,权威性模型请参阅 docs/concepts.md。
设计原则
保守地存储和检索已记录的意图。自动推导结构。始终保留来源信息。
- 默认仅限本地。 不访问网络、不收集遥测数据、不上传内容。索引可重新生成,也可安全删除(
.project-lore/,已加入 gitignore)。 - 优先确定性,再考虑 AI。 v1 不使用 LLM 或嵌入。每种存储的关系都会记录其提取方式;推断数据绝不会伪装成已记录的事实。
- 证据,而非指令。 检索到的摘录均为引用内容,长度有限,并注明来源。文档内容会被视为不可信数据(参见 docs/provenance-and-trust.md)。
项目状态
v0.1.0 — 首个垂直切片。请参阅 docs/architecture.md、docs/adr/ 中的 ADR,以及 CONTRIBUTING.md。
许可证:MIT。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。