关于 Factsets MCP Server
Factsets 是面向 AI Agent 的本地持久知识库,通过 SQLite 管理事实、资源、技能文档和执行日志。它支持过时内容检测、标签检索及面向 Agent 的上下文和维护指南。
主要功能
- 01跨会话保存事实与资源
- 02检测过时资源并提供刷新指南
- 03按标签组织和检索内容
- 04管理 Markdown 技能及依赖关系
- 05记录命令执行结果
- 06配置用户偏好和 Agent 行为
适用场景
- 01为项目保留跨会话上下文
- 02检索与任务相关的事实和资源
- 03维护技能文档及其关联内容
- 04检查资源是否需要刷新
MCP 相关
Factsets 通过 MCP 服务向客户端提供管理事实、资源、技能和执行日志的工具,并提供上下文及维护相关提示词。它还包括引导设置和用户偏好等提示词。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Factsets
| Package | |
| CI/CD |
一个面向 AI Agent 的可自维护知识库,通过 Model Context Protocol (MCP) 提供服务。使用 SQLite 管理 事实(原子知识)、资源(缓存的外部内容)、技能(过程性 Markdown)和 执行日志(命令历史)。
功能
- 持久化上下文 - 知识可在不同会话间延续
- 自维护 - 检测内容过时并提供刷新说明
- 基于标签的组织方式 - 灵活分类和检索
- 技能文档 - 用于过程性知识的 Markdown 文件
- 用户偏好 - 可配置的输出风格和 Agent 行为
- MCP 协议 - 用于 AI 工具和提示词定义的标准接口
安装
npm install --global factsets
pnpm install --global factsets
bun install --global factsets
快速开始
作为 MCP 服务
根据需要使用 bunx、npx 或 pnpm dlx,将其添加到 MCP 客户端配置中(Claude Desktop、GitHub Copilot、Cursor 等):
{
"mcpServers": {
"factsets": {
"command": "bunx",
"args": ["factsets", "mcp-server"]
}
}
}
或直接运行:
bunx factsets mcp-server
首次设置
将 Factsets 添加到 MCP 客户端后,运行设置提示词,将其集成到项目中:
在受支持的 IDE 中:在聊天中输入 /mcp.factsets.setup,运行引导式设置
在其他客户端中:调用 get_setup_guide 工具或使用 setup 提示词
设置指南将:
- 分析项目结构并建立基准事实
- 为 AI 客户端配置技能目录
- 使用 Factsets 说明创建或更新
AGENTS.md - 迁移任何现有技能,并集成 Factsets
- 将关键配置文件注册为资源
一次性设置可确保 Agent 在今后的每次交互中都拥有完整上下文。
CLI 命令
# Start MCP server (default command - auto-watches skill files and seeds starter content)
bunx factsets [--database-url <path>] [--client <type>]
# Explicit mcp-server command (same as above)
bunx factsets mcp-server [--database-url <path>] [--client <type>]
# Start without file watching
bunx factsets --no-watch-skills
# Start without seeding starter content
bunx factsets --no-seed
# Run file watcher standalone
bunx factsets watch-files [--database-url <path>]
# Run background maintenance worker
bunx factsets worker [--database-url <path>]
# Export database to JSON
bunx factsets dump backup.json
# Restore database from JSON
bunx factsets restore backup.json
--client 标志用于配置技能文件的存储位置(例如,github-copilot -> .github/prompts/skills/)。如果要更换客户端或技能目录,请通过你的 Agent 操作,它会为你迁移技能。
有关所有选项,请参阅配置指南。
核心概念
| 概念 | 描述 |
|---|---|
| Facts | 原子化知识单元(1-3 个句子),带有标签和时间戳 |
| Resources | 外部内容(文件、URL、API),包含缓存快照和检索方法 |
| Skills | 用于程序性知识的 Markdown 文档,存储在文件系统中 |
| Execution Logs | 命令历史,记录成功/失败情况,用于验证 Skill |
| Tags | 用于所有内容类型的灵活分类 |
MCP 工具
Facts
| 工具 | 描述 |
|---|---|
submit_facts | 添加 Facts,并附带标签和来源追踪 |
search_facts | 按标签、内容或筛选条件查询 Facts |
verify_facts | 按 ID 将 Facts 标记为已验证 |
verify_facts_by_tags | 按标签批量验证 Facts |
update_fact | 更新 Fact 的内容、元数据或标签 |
delete_facts | 按条件移除 Facts |
restore_facts | 恢复软删除的 Facts |
Resources
| 工具 | 描述 |
|---|---|
add_resources | 注册 Resources,并附带检索方法 |
search_resources | 按标签、类型或 URI 查找 Resources |
get_resources | 按 ID 或 URI 获取 Resources,并查看时效性 |
update_resource_snapshot | 更新单个 Resource 的缓存内容 |
update_resource_snapshots | 批量更新缓存内容 |
update_resource | 更新 Resource 元数据(不含内容) |
delete_resources | 移除 Resources |
restore_resources | 恢复软删除的 Resources |
Skills
| 工具 | 描述 |
|---|---|
create_skill | 创建 Markdown Skill 文档 |
update_skill | 更新 Skill 元数据/引用 |
search_skills | 按标签或查询内容查找 Skills |
get_skills | 按名称获取 Skills 及其内容 |
link_skill | 将 Skill 链接到 Facts/Resources/Skills |
sync_skill | 文件编辑后同步 Skill |
delete_skills | 移除 Skills |
get_dependency_graph | 获取 Skill 依赖树 |
restore_skills | 恢复软删除的 Skills |
执行日志
| 工具 | 描述 |
|---|---|
submit_execution_logs | 记录命令/测试/构建执行情况 |
search_execution_logs | 按查询内容、标签和成功状态查找执行记录 |
get_execution_log | 按 ID 获取执行详情 |
标签
| 工具 | 描述 |
|---|---|
create_tags | 创建组织标签 |
list_tags | 列出标签及其使用次数 |
update_tags | 更新标签描述 |
prune_orphan_tags | 清理未使用的孤立标签 |
配置
| 工具 | 描述 |
|---|---|
get_config | 按键获取配置值 |
set_config | 设置配置值 |
delete_config | 删除配置值 |
list_config | 列出所有配置及其架构 |
get_config_schema | 获取可用选项及其说明 |
用户偏好
| 工具 | 描述 |
|---|---|
get_preference_prompt | 获取自然语言偏好提示词 |
get_user_preferences | 获取结构化偏好数据 |
infer_preference | 根据用户行为更新偏好 |
reset_preferences | 将偏好重置为默认值 |
维护
| 工具 | 描述 |
|---|---|
check_stale | 查找过时的资源和依赖项 |
mark_resources_refreshed | 将资源标记为最新 |
上下文与指南
| 工具 | 描述 |
|---|---|
get_knowledge_context | 根据标签构建上下文(事实/资源/技能) |
build_skill_context | 获取包含格式化内容和引用的技能 |
get_maintenance_report | 生成过时情况/维护报告 |
get_refresh_guide | 获取刷新资源的说明 |
get_agent_guide | 获取 Agent 工作流指南(先调用) |
get_concept_guide | 获取概念概述和设计理念 |
get_config_guide | 获取包含所有选项的配置指南 |
MCP 提示词
| 提示词 | 描述 |
|---|---|
setup | 为新项目集成提供引导式设置 |
user_preferences | 获取用户对输出格式的偏好 |
knowledge_context | 根据标签构建上下文 |
recall_skill | 获取包含引用的技能 |
maintenance_report | 过时情况摘要 |
refresh_guide | 刷新资源的说明 |
agent_guide | Agent 工作流指南(先调用) |
concept | 概念概述和理念 |
config | 包含所有选项的配置指南 |
文档
开发
# Run tests
bun test
# Run full e2e (tests + build + dry run)
bun e2e
# Build distribution
bun dist
# Format code
bun format
# Lint
bun lint
# Generate database migrations
bun migrations
# Inspect MCP server with inspector
bun inspect
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。