使用说明
知识MCP服务器
MCP服务器为编码代理(Claude Code、Codex、Gemini)提供项目特定的知识管理。用途 stdio传输 和 基于YAML的存储 以获得最佳的LLM效率。
类似概念的更好版本: 阿特拉斯mcp
本地第一设计:每个项目都有自己的 .knowledge 可以提交到git的目录。
备注:PyPI上还有另一个同名的无关项目。这个项目是 未发布到PyPI。仅从GitHub安装。
快速开始
使用知识mcp的最简单方法是通过 uvx (无需安装)。
克劳德代码
添加到您的项目 .mcp.json:
{
"mcpServers": {
"knowledge-mcp": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/sephriot/knowledge-mcp",
"knowledge-mcp",
"--data-path",
".knowledge"
]
}
}
}
或者通过CLI全局添加:
claude mcp add knowledge-mcp -- uvx --from git+https://github.com/sephriot/knowledge-mcp knowledge-mcp
验证它是否有效:
claude mcp list
双子座
增添 ~/.gemini/settings.json:
{
"mcpServers": {
"knowledge-mcp": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/sephriot/knowledge-mcp",
"knowledge-mcp",
"--data-path",
".knowledge"
]
}
}
}
替代安装
如果您更喜欢在本地安装而不是使用uvx:
# Clone and install
git clone https://github.com/sephriot/knowledge-mcp
cd knowledge-mcp
pip install -e .
# Then configure your MCP client to use the installed command
claude mcp add knowledge-mcp -- knowledge-mcp --data-path .knowledge
CLI选项
| 选项 | 描述 |
|---|---|
--data-path PATH |
知识存储目录的路径(默认: .knowledge 或 KNOWLEDGE_MCP_PATH env) |
--persist-popularity |
每次原子检索时,将流行度计数保存到磁盘 |
独立运行
# Default: uses .knowledge in current directory
knowledge-mcp
# Custom data path
knowledge-mcp --data-path /path/to/knowledge
# Via environment variable
KNOWLEDGE_MCP_PATH=./my-knowledge knowledge-mcp
人气追踪
服务器跟踪通过以下方式检索每个原子的频率 get_atom该流行度得分影响搜索排名(更受欢迎的原子排名更高)。默认情况下,流行度仅在内存中跟踪,并在发生其他索引更改时持续存在。
使用 --persist-popularity 每次检索时立即将流行度计数写入磁盘。这在以下情况下很有用:
- 运行内存计数将丢失的短期会话
- 您希望保证使用模式的持久性
- 多个服务器实例共享同一存储
注意:启用此选项会增加磁盘写入。对于大多数用例,默认行为就足够了。
存储结构
.knowledge/
├── index.yaml # Fast lookup index (denormalized metadata)
└── atoms/
├── K-000001.yaml # Knowledge atom (YAML)
├── K-000002.yaml
└── ...
知识原子类型
| 类型 | 描述 |
|---|---|
fact |
已验证有关代码库的信息 |
decision |
建筑或设计决策 |
procedure |
分步流程或工作流 |
pattern |
可重用代码模式或实践 |
gotcha |
常见陷阱或棘手行为 |
glossary |
特定领域术语 |
snippet |
可重用代码片段 |
可用工具
核心工具
| 工具 | 说明 |
|---|---|
search |
按标题、标签、内容搜索原子 |
upsert |
创建或更新知识原子 |
知识组织
| 工具 | 说明 |
|---|---|
list_atoms |
列出具有可选过滤功能的原子 |
get_atom |
按ID获取完整的原子内容 |
delete_atom |
弃用原子(将状态设置为弃用) |
purge_atom |
永久删除原子(无法撤消) |
list_all_ids |
列出存储器中的所有原子ID |
批量操作
| 工具 | 说明 |
|---|---|
export_all |
将所有知识导出为单个JSON |
rebuild_index |
从atom文件重建index.yaml |
效用
| 工具 | 说明 |
|---|---|
get_summary |
按类型/标签/语言分组的摘要 |
get_next_id |
获取下一个可用的K-XXXXXX ID |
示例用法
创建知识原子
{
"tool": "upsert",
"arguments": {
"title": "Error Handling Pattern",
"type": "pattern",
"status": "active",
"confidence": "high",
"language": "typescript",
"tags": ["error-handling", "async"],
"summary": "Centralized async error handling using Result types.",
"details": "Always wrap async operations in try-catch with specific error types...",
"pitfalls": ["Don't catch generic errors without re-throwing"],
"sources": [
{"kind": "repo_path", "ref": "src/utils/errors.ts"}
]
}
}
搜索知识
{
"tool": "search",
"arguments": {
"query": ["error", "handling"],
"types": ["pattern", "gotcha"],
"language": "typescript",
"limit": 5
}
}
深度内容搜索
使用 include_content: true 在atom内容(摘要和详细信息)中搜索,而不仅仅是标题和标签:
{
"tool": "search",
"arguments": {
"query": ["exponential", "backoff"],
"include_content": true
}
}
文件路径搜索
使用 file_path 查找与特定文件相关的原子。支持层次匹配:
{
"tool": "search",
"arguments": {
"file_path": "src/utils/errors.ts"
}
}
或搜索多个文件:
{
"tool": "search",
"arguments": {
"file_path": ["src/api/client.ts", "src/api/server.ts"]
}
}
评分:精确匹配(+100)>父目录(+50衰减)>子目录匹配(+30)。
原子场参考
| 字段 | 必填 | 描述 |
|---|---|---|
id |
是 | 唯一ID(K-XXXXXX格式) |
title |
是 | 简短的描述性标题 |
type |
是 | 事实、决定、程序、模式、gotcha、术语表、摘录 |
status |
是 | 活动、草稿、已弃用 |
confidence |
是 | 高、中、低 |
summary |
是 | 主要内容摘要 |
details |
否 | 详细说明或代码 |
pitfalls |
否 | 潜在陷阱列表 |
language |
否 | 编程语言 |
tags |
无 | 搜索关键字 |
sources |
否 | 引用(报告路径、票证、url、对话) |
links |
否 | 关系(依赖、参见、矛盾) |
AI助手集成
为确保您的AI助手(Claude、Gemini、Codex等)自动使用知识mcp,请将系统提示添加到助手的配置文件中。
双子座
附加以下内容 SYSTEM_PROMPT.md 到 ~/.gemini/GEMINI.md.
克劳德代码
附加以下内容 SYSTEM_PROMPT.md 到 ~/.claude/CLAUDE.md 或者你的项目 CLAUDE.md.
其他助理
复制以下内容 SYSTEM_PROMPT.md 转到助手的系统提示或配置文件。
这确保了助理将:
- 在开始任务之前搜索现有知识
- 将相关知识应用于决策
- 发现可重用知识时创建新原子
- 在回复中引用知识用法
发展
需求
- Python 3.11+
- 依赖关系:mcp、pyyaml、pydantic
运行测试
pip install -e ".[dev]"
pytest tests/
类型检查
mypy src/knowledge_mcp
许可证
麻省理工学院