MCP上下文提供程序
https://github.com/user-attachments/assets/d9c6c325-00f1-44d9-a805-b1d6588c0acf
*Claude Desktop和Claude Code的持久上下文和学习本能——在会话中幸存下来。*
一个为Claude提供持久性的TypeScript MCP服务器 语境 (静态工具规则)和 本能 (从会话中提炼出的学习、信心评分规则)。无需在每次新聊天中重新建立上下文。
建筑
两个核心概念:
| 概念 | 描述 | 尺寸 | 寿命 |
|---|---|---|---|
| 上下文 | 静态工具规则、语法首选项、自动更正 | 200-1000个标记 | 永久性,手动编写 |
| 本能 | 从会话中提取学习规则,置信度评分 | 20-80分 | 人类批准,随时间演变 |
四个子系统:
- 发动机 --将上下文+本能加载、匹配和合并到注入有效载荷中
- MCP 服务器 (
src/server/index.ts)--stdio+HTTP传输,6个MCP工具 - 命令行界面 (
mcp-cp)--用于本能生命周期管理的批准注册表 - 纪念桥 --本能与mcp存储服务的可选同步
快速开始
git clone https://github.com/doobidoo/MCP-Context-Provider.git
cd MCP-Context-Provider
npm install
npm run build克劳德桌面版
添加 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"context-provider": {
"command": "node",
"args": ["/path/to/mcp-context-provider/dist/server/index.js"],
"env": {
"CONTEXTS_PATH": "/path/to/mcp-context-provider/contexts",
"INSTINCTS_PATH": "/path/to/mcp-context-provider/instincts"
}
}
}
}克劳德代码(全球)
添加 ~/.mcp.json:
{
"mcpServers": {
"context-provider": {
"command": "node",
"args": ["/path/to/mcp-context-provider/dist/server/index.js"],
"env": {
"CONTEXTS_PATH": "/path/to/mcp-context-provider/contexts",
"INSTINCTS_PATH": "/path/to/mcp-context-provider/instincts"
}
}
}
}重要提示: 对两者都使用绝对路径args和env价值观。Claude Code不支持cwdMCP服务器配置中的字段——相对路径将从错误的目录解析,服务器将无法连接。
克劳德代码插件(市场)
直接从市场安装:
/plugin marketplace add doobidoo/MCP-Context-Provider
/plugin install context-provider这将自动为MCP服务器配置正确的路径,无需手动 .mcp.json 需要编辑。
/instill 技能(克劳德代码)
在全球范围内安装技能(保持最新状态 git pull):
mkdir -p ~/.claude/skills/instill
ln -s /path/to/mcp-context-provider/.claude/skills/instill.md ~/.claude/skills/instill/SKILL.md然后使用 /instill 在富有成效的会议结束时,将学习到的模式提炼成本能的候选人。
自动触发钩(可选)
灌输触发钩会自动检测会话中的错误,并推动克劳德提出建议 /instill 当达到阈值时。它监控:
- 用户更正 (UserPromptSubmit)——“不,不是那个”、“那是错的”、“还是坏了”等。
- 工具故障 (PostToolUse)--非零退出代码、回溯、权限错误
安装挂钩:
cp hooks/instill-trigger.js ~/.claude/hooks/core/instill-trigger.js注册于 ~/.claude/settings.json 两者之下 UserPromptSubmit 和 PostToolUse:
{
"type": "command",
"command": "node --no-warnings \"~/.claude/hooks/core/instill-trigger.js\"",
"timeout": 3
}评分: 校正权重为1.5倍,工具故障权重为0.5倍。综合阈值:3.0。每次会话最多轻推1次。所有可调通孔 CONFIG 钩子文件中的对象。
MCP工具
| 工具 | 说明 |
|---|---|
get_tool_context | 获取工具类别的完整上下文 |
get_syntax_rules | 获取工具的语法特定规则 |
list_available_contexts | 列出所有加载的上下文 |
apply_auto_corrections | 将校正模式应用于文本 |
build_injection | 结合上下文+本能注入有效载荷 |
list_instincts | 列出所有带有信心评分的直觉 |
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
CONTEXTS_PATH | ./contexts | 通往 *_context.json 文件 |
INSTINCTS_PATH | ./instincts | 通往 *.instincts.yaml 文件 |
MEMORY_BRIDGE_URL | -- | 内存服务基URL(启用网桥) |
MEMORY_BRIDGE_API_KEY | - | 内存服务的API密钥 |
MCP_SERVER_PORT | 3100 | HTTP服务器端口(仅限 --http) |
上下文文件
上下文是JSON文件 contexts/*_context.json每个文件通过glob模式匹配一个或多个工具,并注入静态规则。
{
"tool_category": "git",
"description": "Git workflow rules",
"auto_convert": false,
"metadata": {
"version": "1.0.0",
"applies_to_tools": ["git:*", "Bash"],
"priority": "high"
},
"syntax_rules": { ... },
"auto_corrections": {
"fix-1": { "pattern": "...", "replacement": "..." }
}
}通过删除以下内容来添加新上下文 *_context.json 归档 contexts/ 并重新启动服务器。
本能
本能是YAML文件 instincts/*.instincts.yaml。它们是通过以下方式从会议中提炼出来的 /instill 并且需要人类的批准。
version: "1.0"
instincts:
my-rule:
id: my-rule
rule: "Compact, actionable rule (20–80 tokens)."
domain: git
tags: [git, workflow]
trigger_patterns:
- "git commit"
confidence: 0.75
min_confidence: 0.5
approved_by: human
active: true
created_at: "2026-03-10T00:00:00Z"
outcome_log: []使用CLI管理直觉:
mcp-cp list
mcp-cp show
mcp-cp approve
mcp-cp reject
mcp-cp tune --confidence 0.8
mcp-cp outcome + "worked well"发展
npm run build # Compile TypeScript
npm run dev # Watch mode
npm run lint # Type-check only
npm test # Run tests (vitest)
npm start # stdio transport
npm run start:http # HTTP transport on port 3100常见问题解答
我能用吗 /instill 在克劳德桌面?
号码 /instill 是一个 Claude代码技能 (.claude/skills/instill.md)并且仅在Claude Code CLI中工作。Claude Desktop没有技能系统。
但是,您可以在Claude Desktop中实现相同的结果:
- MCP工具在这两种情况下都能工作 -The
list_instincts和build_injection工具可以通过MCP服务器在Claude Desktop中使用。 - 用于灌输工作流程,创建Claude桌面 项目 并将灌输说明粘贴为自定义说明。然后,Claude Desktop可以使用
desktop-commander或类似的MCP服务器来写入YAML文件。
原因 /instill 不作为MCP工具公开:它是 交互式多步骤工作流 (分析对话、介绍候选人、等待用户决定、编写YAML)。MCP工具返回单个响应,不能驱动多轮交互。
做 learned.instincts.yaml 文件包含敏感数据?
可能是的。从工作会话中提取的本能可能包含内部主机名、客户名称、基础设施详细信息或操作程序。这 learned.instincts.yaml 默认情况下,文件由git跟踪,因此 推送前查看其内容 到公共存储库。考虑将其添加到 .gitignore 如果你的直觉包含专有信息。
语境和本能有什么区别?
| 背景 | 本能 | |
|---|---|---|
| 格式 | JSON(*_context.json) | YAML(*.instincts.yaml) |
| 来源 | 手动编写 | 通过从会话中提取 /instill |
| 尺寸 | 200-1000个代币 | 20-80个代币 |
| 匹配 | 工具模式球体 | Regex触发模式 |
| 生命周期 | 静态,版本化 | 信心评分,随时间变化 |
| 批准 | 无需 | 需要 approved_by: human |
更新日志
看 更改日志.md.
许可证
麻省理工学院
