使用说明
Laravel MCP推送器
Laravel包通过HTTP API将项目中的经验教训和项目实施细节推送到中央MCP服务器。与合作 MCP服务器经验教训 因此,AI代理 光标, 克劳德代码, 谷歌反重力,其他MCP客户端可以查询您的知识库。
3.0中的新功能
3.0版本是一个 捕获和推送工作流 围绕磁盘上的会话草稿构建(在任何AI客户端中都能经受上下文压缩)。
| 之前(1.x/2.x) | 之后(3.0) |
|---|---|
编辑 docs/lessons-learned.md /JSON,然后推送 |
mcp:append 会议期间→ JSONL草案 |
mcp:push-lessons + mcp:push-project-details |
单身 mcp:push (通用+项目) |
| 聊天压缩时丢失知识 | 草稿 docs/.mcp-session/ 坚持 |
命令:
mcp:append--一个结构化条目→lessons-draft.jsonl或project-details-draft.jsonlmcp:push--每个会话向MCP服务器发布一次草稿mcp:extract-session--仅使用git回退或从提交历史中进行历史播种
可选自动化: 光标 preCompact 钩子可以显示 知识获取提示 在压实之前。Claude Code和Antigravity没有等效的钩子——手动粘贴提示。
看 更改日志.md 获取完整的发行说明。
composer require ashwinmram/mcp-pusher:^3.0
# Migration from 1.x / 2.x
# Before: mcp:push-lessons + mcp:push-project-details
# After: mcp:push --source=your-project
最佳实践(请先阅读此内容)
不要 手型 php artisan mcp:append 正常工作时使用JSON。
- 粘贴 知识获取提示 在上下文压缩之前(或任何你想捕捉学习的时候)将其导入你的代理。
- 代理人最近收集 git日志+差异,综合从会话中学到的知识并提交,然后运行
mcp:append对于每节课,条目都会进入docs/.mcp-session/*-draft.jsonl. - 会议结束: 审阅草稿,然后运行
mcp:push一次(见 会议结束).
仅光标(可选): 安装 预紧凑型挂钩 因此,光标会自动显示相同的提示。
| 步骤 | 你做什么 | 磁盘上运行什么 |
|---|---|---|
| 捕捉 | 将捕获提示提交给您的代理 | 代理收集git上下文,综合课程,运行 mcp:append → JSONL草案 |
| 发布 | php artisan mcp:push --source=your-project |
HTTP推送到MCP服务器 |
| 后备方案 | mcp:extract-session 您先请 提交 (默认:最新提交) |
Git日志+差异统计→ JSONL草案 |
| 播种 | mcp:extract-session --since-git=HEAD~N 关于一个成熟的回购协议 |
更深入的历史;推送前审查草稿 |
知识获取提示
复制下面的短块 用于代理或macOS文本替换(少于2000个字符)。看 快速参考 查看字段详细信息和示例。
光标: 随着 预紧凑型挂钩 安装后,钩子发出的文本与 user_message 自动(来源: stubs/knowledge-capture-prompt.txt).
Context is about to compact — capture session knowledge NOW.
Step 0 — Run:
git log HEAD~10..HEAD --oneline --no-decorate
git diff HEAD~1..HEAD --stat
Use session + git together. Not a git repo? Session only. Do NOT append raw log, SHAs, or diff stats.
Step 1 — For each learning, execute mcp:append (don't just describe):
php artisan mcp:append '{"knowledge_scope":"generic|project","title":"5-12 words","summary":"problem + when","category":"...","subcategory":"...","type":"ai_output|project_detail","tags":["..."],"content":"paragraph with takeaway","metadata":{"source":"agent"}}'
Drafts: docs/.mcp-session/lessons-draft.jsonl (generic) or project-details-draft.jsonl (project). Never title "Git commit: …". Nothing worth saving? Report 0 generic, 0 project.
Step 2 — Report generic count, project count, every title appended.
快速参考
适用于需要更多详细信息的代理(不适用于macOS文本替换——2000个字符限制)。
范围对:
| knowledge_scope | 类型 | 草稿文件 |
|---|---|---|
generic |
ai_output |
docs/.mcp-session/lessons-draft.jsonl |
project |
project_detail |
docs/.mcp-session/project-details-draft.jsonl |
领域:
- 标题 --5-12个单词,具体且可搜索(从不
Git commit: …) - 摘要 --1-2句话:问题已解决,何时应用
- 内容 --带有上下文、方法和要点的短段落(不是一句话)
- 元数据源 --总是
"agent"
最小通用示例:
php artisan mcp:append '{"knowledge_scope":"generic","title":"Pest Process fake for git subprocess tests","summary":"Fake Process when testing Artisan commands that shell out to git.","category":"testing-patterns","subcategory":"pest-mocking","type":"ai_output","tags":["pest","git"],"content":"Use Process::fake() with a callback keyed on git argv...","metadata":{"source":"agent"}}'
坏例子(不要这样做): 标题 Git commit: abc123 Fix tests,内容 abc123 Fix tests
文本替换提示: macOS键盘→ 文本替换→ 使用触发器 /mcpcap (无空格)并将上面的短块粘贴到 随着.
将您的AI客户端连接到MCP服务器
配置您的客户端以访问经验教训服务器(以及可选的项目详细信息服务器)。配置示例:
| 客户端 | 存根示例 |
|---|---|
| 光标 | stubs/mcp-client-config/cursor-mcp.json.example |
| 克劳德代码 | stubs/mcp-client-config/claude-mcp.json.example |
| 谷歌反重力 | stubs/mcp-client-config/antigravity-mcp_config.json.example |
完整设置: mcp服务器自述文件.
代理启动说明
为您的AI客户端安装代理说明:
| 客户端 | 命令 |
|---|---|
| 光标 | php artisan mcp:install-cursor-rules |
| 克劳德代码 | php artisan mcp:install-claude-instructions |
| 谷歌反重力 | php artisan mcp:install-antigravity-skills |
| 全部 | php artisan mcp:install-agent-instructions |
看 stubs/agent-instructions/README.md 用于标记和手动安装路径。
光标
php artisan mcp:install-cursor-rules
可选: --with-hooks (预紧凑型捕获), --with-cursorrules (短 .cursorrules 指数), --force (覆盖)。
副本 stubs/cursor-rules/*.mdc 进入 .cursor/rules/:
| 规则 | 适用时 |
|---|---|
mcp-session-startup.mdc |
总是 --在课程开始时查询课程+项目详细信息 |
mcp-session-capture.mdc |
即期 — mcp:append + mcp:push 工作流程 |
克劳德代码
php artisan mcp:install-claude-instructions [--with-claude-md]
将模块化规则复制到 .claude/rules/ (mcp-session-startup.md, mcp-session-capture.md).可选的 --with-claude-md 添加一个短根 CLAUDE.md 指数。
谷歌反重力
php artisan mcp:install-antigravity-skills [--global]
在下安装工作空间技能 .agent/skills/mcp-session-startup/ 和 mcp-session-capture/ (每个与 SKILL.md).使用 --global 为了 ~/.gemini/antigravity/global_skills/.承诺 .agent/skills/ 与您的团队分享。
安装所有客户端
php artisan mcp:install-agent-instructions [--with-hooks] [--with-claude-md] [--with-cursorrules] [--global]
限制范围: php artisan mcp:install-agent-instructions cursor claude
会议结束
当您准备发布时,请查看 docs/.mcp-session/lessons-draft.jsonl 和 project-details-draft.jsonl.删除所有原始的git回收行(标题如 Git commit: … 或 metadata.source: git)在推之前。如果草稿仍然很薄,并且您已经提交了会话工作,请运行 php artisan mcp:extract-session 作为最后的手段(只产生候选人——在推送之前编辑或删除)。然后发布一次:
php artisan mcp:push --source=<your-project>
替换 <your-project> 和你一起 --source 值(必须与项目详细信息MCP匹配 ?project=).
需求
- PHP 8.2+
- Laravel 12.x或13.x
- 接受推送的MCP服务器(例如。 MCP服务器经验教训)
安装
composer require ashwinmram/mcp-pusher:^3.0
配置
添加 config/services.php:
'mcp' => [
'server_url' => env('MCP_SERVER_URL'),
'api_token' => env('MCP_API_TOKEN'),
],
.env:
MCP_SERVER_URL=https://your-mcp-server.com
MCP_API_TOKEN=your-api-token-here
将会话草稿添加到 .gitignore (参见 stubs/gitignore-mcp-session.example):
/docs/.mcp-session/
命令
mcp:install-cursor-rules
php artisan mcp:install-cursor-rules [--force] [--with-hooks] [--with-cursorrules]
将MCP会话启动和知识捕获的游标规则安装到 .cursor/rules/.
mcp:install-claude-instructions
php artisan mcp:install-claude-instructions [--force] [--with-claude-md]
将Claude Code规则安装到 .claude/rules/.可选 --with-claude-md 复制一个短片 CLAUDE.md 指数。
mcp:install-antigravity-skills
php artisan mcp:install-antigravity-skills [--force] [--global]
将反重力技能安装到 .agent/skills/ (工作空间)或 ~/.gemini/antigravity/global_skills/ 和 --global.
mcp:install-agent-instructions
php artisan mcp:install-agent-instructions [cursor|claude|antigravity ...] [--force] [--with-hooks] [--with-claude-md] [--with-cursorrules] [--global]
为一个或多个客户端运行上述安装命令(默认:all)。
mcp:append
将一个条目附加到正确的草稿文件中。这 捕获提示 告诉您的代理何时以及如何运行。
knowledge_scope: "generic"→docs/.mcp-session/lessons-draft.jsonlknowledge_scope: "project"→docs/.mcp-session/project-details-draft.jsonl
高级(调试):
php artisan mcp:append --file=entry.json
mcp:push
php artisan mcp:push --source=your-project [--no-truncate]
读取JSONL文件草稿,推送到 /api/lessons 和 /api/project-details 当每个桶都有内容时。成功后清除草稿文件,除非 --no-truncate.
mcp:extract-session (git → 草稿)
Git只回收与JSON相同的草稿文件 mcp:append确实如此 不 读取未提交的文件-- 先承诺 (单靠舞台是不够的)。
php artisan mcp:extract-session [--since-git=HEAD~1]
如何 --since-git 控制深度
该选项设置提交范围的位置 开始从那个裁判到 HEAD 被概括为草稿行(git log 单衬垫+ git diff --stat 范围)。
| 命令 | 包括提交(大约) | 典型用途 |
|---|---|---|
mcp:extract-session |
仅限最新提交(HEAD~1..HEAD) |
会话结束补救 |
mcp:extract-session --since-git=HEAD~7 |
最近7次提交 | 最近冲刺/工作周 |
mcp:extract-session --since-git=HEAD~30 |
最后30次提交 | 更广泛的回填 |
mcp:extract-session --since-git=main |
承诺 HEAD 还没有 main |
功能分支先行 main |
mcp:extract-session --since-git=v1.0.0 |
由于标签或SHA | 释放到HEAD快照 |
- 默认
HEAD~1--只有 提示 提交(一次提交)。 HEAD~N--增加N深入了解历史(在长时间运行的仓库上安装mcp-pusher时很有用)。main--与git log main..HEAD(见下文警告)。
--since-git=main (仅承诺)
确实如此 不 阅读暂存区或工作树。
| 情况 | 结果 |
|---|---|
提前提交的功能分支 main |
提取这些分支提交+差异统计 |
On main,仅限于未提交/分阶段的更改 |
空范围 --命令失败;先提交或使用 HEAD~N |
main 和 HEAD 指向同一个commit |
空范围 --使用 HEAD~N 或者用标签/SHA代替 |
关于播种历史 上 main,使用 HEAD~N (例如。 HEAD~50),不 main..HEAD.
这 知识获取提示 已经指示代理在preCompact捕获期间收集git上下文。使用 mcp:extract-session 只有当捕捉被跳过时。
用例A:会话回退
当git通知捕获和 mcp:append 都被跳过了,但您提交了会话工作:
php artisan mcp:extract-session
# review docs/.mcp-session/*-draft.jsonl
php artisan mcp:push --source=your-project
用例B:为现有项目播种
在成熟的repo上安装mcp-pusher——从git引导草稿,然后发布:
php artisan mcp:extract-session --since-git=HEAD~50 # tune depth to your history
# edit drafts: replace heuristic lines with real lessons (or re-capture via agent + mcp:append)
php artisan mcp:push --source=your-project
使用 --since-git=main 只有当你有一个 提交未合并到的功能分支 main.喜欢在推送前编辑草稿;提取的行是 候选人,没有完成课程。
限制
- 输出是启发式的(提交主题+差异统计),而不是人工智能总结的知识。
- 较大的范围会产生许多草稿行——请在之前进行审查
mcp:push. - 回购中的首次提交:
HEAD~1可能无效;使用HEAD~N或显式SHA/标签。
文件布局
your-project/
└── docs/
└── .mcp-session/
├── lessons-draft.jsonl ← generic lessons (mcp:append)
└── project-details-draft.jsonl ← project details (mcp:append)
可选自动化
光标(预紧凑型挂钩)
安装一次,以便Cursor显示 知识获取提示 作为 user_message 在上下文压缩之前。
先决条件: 光标带 胡克探员; jq 或 python3 在PATH上。
编辑器安装:
mkdir -p .cursor/hooks
cp vendor/ashwinmram/mcp-pusher/stubs/cursor-hooks/hooks.json.example .cursor/hooks.json
cp vendor/ashwinmram/mcp-pusher/stubs/cursor-hooks/pre-compact-checkpoint.sh .cursor/hooks/
cp vendor/ashwinmram/mcp-pusher/stubs/knowledge-capture-prompt.txt .cursor/hooks/
chmod +x .cursor/hooks/pre-compact-checkpoint.sh
单体仓库 (例如。 mcp服务器):使用 packages/laravel-mcp-pusher/stubs/cursor-hooks/ 路径而不是 vendor/….
| Stub | 目的 |
|---|---|
hooks.json.example |
电线 preCompact 仅 |
pre-compact-checkpoint.sh |
阅读 knowledge-capture-prompt.txt,输出 user_message |
knowledge-capture-prompt.txt |
文本与 知识获取提示 (钩子读取此文件) |
可选光标规则: php artisan mcp:install-cursor-rules --with-hooks --with-cursorrules
手动规则复制: stubs/cursor-rules/mcp-session-capture.mdc → .cursor/rules/ (传统路径 stubs/mcp-session-capture.mdc 完全相同)
故障排除: chmod +x 剧本;如果出现以下情况,请手动粘贴捕获提示 preCompact 从不生火。
克劳德密码与谷歌反重力
无内置预压钩。 复制 捕获提示 阻止将此README插入您的代理。
安全
钩子在你的机器上运行shell。启用前请检查脚本。保持 docs/.mcp-session/ 被忽视了。
运作原理
- 代理运行
mcp:append→ 磁盘上的JSONL草稿(压缩后仍有效) mcp:push→POST /api/lessons和/api/project-details- 服务器按内容哈希进行重复数据消除
许可证
麻省理工学院
