MCP会话关闭器
Cursor的模型上下文协议(MCP)服务器,可以优雅地关闭工作会话、同步上下文文件、更新代理操作系统文件,并将更改提交到git。
特性
- end_session:通过自动上下文同步、Notion条目创建和git commit关闭Cursor会话
- sync_context_files:跨平台同步上下文文件
claude.md,gemini.md,agents.md,以及.cursor/context.md - update_session_summary:在不结束会议的情况下更新会议摘要
- 创建通知条目:从markdown内容创建Notion条目(附加到页面或在数据库中创建)
- 概念整合:通过MCP工具自动创建Notion条目(使用Python脚本回退)
快速设置
1.安装依赖项
npm install2.构建服务器
npm run build3.配置光标
添加到光标MCP设置(~/.cursor/mcp.json 或 %APPDATA%\Cursor\mcp.json 在Windows上):
{
"mcpServers": {
"session-closer": {
"command": "node",
"args": [
"/path/to/mcp-session-closer/dist/index.js"
],
"env": {
"CURSOR_WORKSPACE": "${workspaceFolder}"
}
}
}
}备注:替换 /path/to/mcp-session-closer 你的实际路径。在Windows上,使用正斜杠或双反斜杠。
4.重新启动游标
重新启动Cursor以加载MCP服务器。
用法
结束会话
在Cursor聊天中,只需问:
Close this session and sync everything或者直接使用该工具:
Use end_session with conversationSummary: "Implemented user auth, fixed login bugs"服务器将:
- 提取会话详细信息(成就、决策、阻碍因素、下一步行动)
- 更新
.agent-os/session-summary.md - 通过MCP创建Notion条目(或回退到Python脚本)
- 更新代理操作系统路线图和决策(如果存在)
- 同步所有上下文文件(
claude.md,gemini.md,agents.md,.cursor/context.md) - 用描述性消息将所有更改提交到git
仅同步上下文文件
Sync context files或者:
Use sync_context_files仅更新会话摘要
Use update_session_summary with summary: "Made progress on feature X"从Markdown创建概念条目
直接从markdown内容创建Notion条目。这对于向Notion添加完成报告、文档或任何结构化内容非常有用。
添加到现有页面:
Use create_notion_entry with markdownContent: "# My Report\n\nContent here..." and pageId: "your-page-id"在数据库中创建新页面:
Use create_notion_entry with markdownContent: "# My Report\n\nContent here..." and databaseId: "your-database-id"带有自定义标题和日期:
Use create_notion_entry with markdownContent: "# My Report\n\nContent here...", databaseId: "your-database-id", title: "Custom Title", date: "2026-02-08", project: "Development"特征:
- 自动将markdown转换为Notion块
- 通过分块处理大型内容(通知限制:每个请求100个块)
- 如果未提供,则从第一个H1中提取标题
- 从降价中提取日期(如果存在)
- 如果MCP工具不可用,则回退到指导Notion API
运作原理
会话关闭流程
当你打电话的时候 end_session,服务器自动:
- 收集会话信息
- 从对话中提取成就 - 确定所做的决定 - 注意任何阻断器 - 列出下一步 - 跟踪更改的文件
- 更新会话摘要
- 创建/更新 .agent-os/session-summary.md - 在会话详细信息后附加时间戳 - 结构化标记格式
- 更新代理操作系统 (如果存在)
- 在中标记已完成的项目 .agent-os/product/roadmap.md - 添加新决策 .agent-os/product/decisions.md - 保持适当的降价结构
- 同步上下文文件
- 从所有上下文文件读取内容 - 合并和消除重复内容 - 使用统一上下文更新所有文件: - claude.md - gemini.md - agents.md - .cursor/context.md
- 提交到Git
- 暂存所有已修改的文件 - 创建描述性提交消息 - 带有时间戳的提交
配置
所需的环境变量
CURSOR_WORKSPACE-通过光标自动设置到当前工作区文件夹
概念整合
服务器可以在关闭会话时自动创建Notion条目,您也可以使用 create_notion_entry 工具。通过环境变量进行配置:
必修的:
NOTION_API_TOKEN或NOTION_API_KEY或NOTION_TOKEN-您的Notion集成令牌(从获取https://www.notion.so/my-integrations)
选择一个(用于自动会话条目):
NOTION_PAGE_ID-将块附加到现有页面(推荐,避免序列化问题)NOTION_DATABASE_ID-在数据库中创建新页面
可选:
NOTION_PROJECT-数据库条目的默认项目名称(默认:“Development”)
例子:
export NOTION_API_TOKEN="ntn_your_token_here"
export NOTION_DATABASE_ID="2ba968fc-73c0-8045-b1c7-c89951ece547"
export NOTION_PROJECT="Development"它是如何工作的:
- 主要的,重要的:通过Docker使用Notion MCP工具(
mcp/notion:latest) - 后备方案:如果MCP失败,则回退以直接调用Notion API
- 分块:通过将大型内容拆分为100个块的块来自动处理(注意API限制)
备注:使用时 create_notion_entry 工具,您可以通过传递以下内容来覆盖环境变量 pageId, databaseId, title, date,或 project 作为参数。
MCP集成:
- 通过Docker stdio传输连接到Notion MCP服务器
- 用途
append-blocks工具(首选)或create-page工具 - 正确处理参数序列化
- 非阻塞:错误不会使会话关闭失败
可选文件
服务器可以使用或不使用这些文件:
.agent-os/session-summary.md-会话历史记录(如果缺少,则创建).agent-os/product/roadmap.md-产品路线图(如有更新).agent-os/product/decisions.md-决策日志(如有更新)claude.md,gemini.md,agents.md,.cursor/context.md-上下文文件
发展
以开发模式运行
npm run dev构建
npm run build启动生产服务器
npm start故障排除
未找到MCP服务器
- 验证Cursor MCP配置中的路径是否正确
- 在Windows上使用正斜杠或转义反斜杠
- 检查一下
dist/index.js建筑后存在
Git提交失败
- 确保git已初始化:
git init - 配置git用户:
git config user.name "Your Name"
git config user.email "your.email@example.com"- 检查您是否具有写入权限
上下文文件不同步
- 验证工作区目录中的写入权限
- 检查是否没有其他进程锁定文件
- 确保工作区路径正确
会话摘要未更新
- 检查一下
.agent-os目录存在(自动创建) - 验证工作区中的写入权限
- 在Cursor的MCP日志中查找错误
概念条目未创建
- 验证
NOTION_API_TOKEN设置正确 - 检查一下
NOTION_PAGE_ID或NOTION_DATABASE_ID已配置 - 确保Docker可以运行
mcp/notion:latest容器 - 检查Docker日志:
docker logs mcp-notion(如果作为容器运行) - 验证Notion集成是否可以访问目标页面/数据库
- 如果MCP失败,请检查Python回退脚本是否存在且可执行
项目结构
mcp-session-closer/
├── src/
│ ├── index.ts # MCP server implementation
│ ├── session-closer.ts # Core session closing logic
│ ├── notion-client.ts # Notion MCP client wrapper
│ └── types.ts # TypeScript type definitions
├── dist/ # Compiled JavaScript (generated)
├── package.json # Node.js dependencies
├── tsconfig.json # TypeScript configuration
├── Dockerfile # Docker build configuration
├── docker-compose.yml # Docker Compose configuration
└── README.md # This file为什么使用这个?
自动化工作流程
- 无手动步骤:自动同步、更新和提交
- 一致格式:标准化的会话摘要和git提交
- 节省时间:以秒而不是分钟关闭会话
上下文连续性
- 统一上下文:所有AI助手都看到相同的项目上下文
- 跨会话内存:会话摘要在重新启动后仍然存在
- 决策跟踪:保留决策原因的历史记录
Git集成
- 自动提交永远不要忘记提交你的工作
- 描述的消息:自动生成带有上下文的提交消息
- 干净的历史:在自然断点处进行有组织的提交
许可证
麻省理工学院
贡献
这是一个个人工具,但请随意分叉并根据您的需求进行调整!
