Token导航 LogoToken导航TokenDH.com
Memory Journal MCP logo
办公协作未说明官方级别未说明来源级核验

Memory Journal MCP

MCP Server

Memory Journal MCP Server 是一个AI项目记忆管理工具,通过持久化项目记忆和自动会话切换功能,解决AI会话之间的断连问题,适用于大型项目管理场景。

工具数

18

提示词数

0

GitHub Stars

16

资源数

0
TypeScriptClaude团队协作Claude DesktopClaudeCursorWindsurf

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

neverinfamous

提供方

neverinfamous

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

内存日志MCP服务器

](https://github.com/neverinfamous/memory-journal-mcp) ](https://www.npmjs.com/package/memory-journal-mcp) ](https://hub.docker.com/r/writenotenow/memory-journal-mcp) ![License: MIT](https://opensource.org/licenses/MIT) Status ![MCP Registry](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.neverinfamous/memory-journal-mcp) ![Security](SECURITY.md) ![TypeScript](https://github.com/neverinfamous/memory-journal-mcp) Coverage Tests E2E Tests ![CI](https://github.com/neverinfamous/memory-journal-mcp/actions/workflows/gatekeeper.yml)

🎯 人工智能背景+项目智能: 使用持久的项目内存桥接断开的AI会话 自动会话切换 --与GitHub工作流完全集成。

🚀 快速部署:

  • **** - npm install -g memory-journal-mcp
  • **** -基于Alpine的全语义搜索

🧠 停止体验AI失忆症

在人工智能的帮助下管理大型项目时,您面临着一个关键的挑战:

  • 线程失忆 -每一次新的人工智能对话都是从零开始的,不知道之前的工作。
  • 上下文丢失 -决策、实现和学习分散在断开连接的线程中。
  • 重复工作 -AI会建议你已经尝试或放弃的解决方案。
  • 上下文过载 -手动将项目历史记录复制到每个新对话中。

Memory Journal通过充当项目的 长期记忆弥合分散的人工智能会话之间的差距。

______________________________________________________________________

体验真正的情境感知开发:

  • _“上个月我们为什么选择SQLite而不是Postgres来提供这项服务?”_ (语义搜索)
  • _“跑 /issue-triage 看板板中最高优先级工单的工作流程。"_ (GitHub操作)
  • _“最近谁在接触认证模块,我们的团队协作密度是多少?”_ (团队分析)
  • _“我被这个数据库错误困住了。为@sarah设置一个‘拦截器’标志,这样她的经纪人下次就能看到它。”_ (Hush协议)
  • _“关闭问题#42,并记录一个条目,解释我们对解析错误的架构修复。”_ (上下文生命周期)
  • _“绘制一个可视化图表,显示我最近10个架构决策之间的相互关系。”_ (知识图谱)

查看完整的示例和提示→

______________________________________________________________________

🎯 我们的独特之处

70个MCP工具 · 17工作流程提示 · 36资源 · 10个工具组 · 代码模式 · GitHub指挥官 (问题分类、PR审查、里程碑冲刺、安全/质量/绩效审计)· GitHub集成 (问题、PR、行动、看板、里程碑、见解)· 团队协作 (共享数据库、矢量搜索、跨项目洞察、Hush协议标志)

特性描述
会话智能代理自动查询项目历史记录,在检查点创建条目,并通过以下方式在会话之间切换上下文 /session-summaryteam-session-summary
GitHub集成18个工具,用于问题、PR、行动、看板、里程碑(%)、副驾驶评审和14天洞察
动态项目路线使用单个服务器实例,通过以下方式无缝切换上下文并跨多个存储库访问CI/CD问题跟踪 PROJECT_REGISTRY
知识图谱8种关系类型链接规格→ 实现→ 测试→ 带有美人鱼可视化的公关
混合搜索结合FTS5关键字、语义向量相似性、自动启发式和日期范围过滤器的互惠排名融合
代码模式在受信任的管理员执行环境中执行多步操作——通过以下方式节省高达90%的令牌 mj.* API
可配置简报15个环境变量/CLI标志控件 memory://briefing 内容——条目、团队、GitHub细节、技能意识、时间顺序
报告和分析站立、回顾、公关总结、摘要、周期分析和里程碑跟踪
嘘协议(标志)用结构化、可操作和可搜索的AI标志(拦截器、评论)取代Slack/Teams噪音,这些标志会自动出现在会话简报中
团队协作25个具有完全奇偶校验的工具——CRUD、向量搜索、关系图、跨项目洞察、作者归因、Hush协议标志
数据互操作双向Markdown往返、统一IO命名空间和具有硬边界检查路径遍历防御的模式安全JSON导出
备份与恢复一个命令备份/恢复,具有自动调度、保留策略和安全网自动备份功能
安全与运输OAuth 2.1(RFC 9728/8414,JWT/JWKS,作用域),流式HTTP+SSE,速率限制,CORS,SQL注入预防,非根Docker
结构化错误处理每个工具都会返回 {success, error, code, category, suggestion, recoverable} --代理获得分类、补救提示和可恢复性信号
代理协作IDE代理和Copilot共享上下文;审查结果成为可搜索的知识;代理建议可重用的规则和技能(设置)
本地代理技能捆绑的基础编码范式(autonomous-dev, python, docker, tailwind-css, golang, playwright-standard等)建立永久的AI行为和架构规则
GitHub指挥官问题分类、PR审查、冲刺里程碑以及带有日志跟踪的安全/质量/性能审计的管道技能(文档)

______________________________________________________________________

flowchart TB
    subgraph Session["🤖 AI Session Start"]
        Briefing["📋 Read Briefing
(memory://briefing)"]
    end

    subgraph Core["📝 Journal Operations"]
        Create["Create Entry"]
        Retrieve["Retrieve & Search"]
        Link["Link Entries"]
    end

    subgraph Search["🔍 Hybrid Search"]
        FTS["Keyword (FTS5)"]
        Semantic["Semantic (Vector)"]
        DateRange["Date Range"]
        RRF["Reciprocal Rank Fusion"]
    end

    subgraph GitHub["🐙 GitHub Integration"]
        Issues["Issues & Milestones"]
        PRs["Pull Requests"]
        Actions["GitHub Actions"]
        Kanban["Kanban Boards"]
        Insights["Repository Insights"]
    end

    subgraph Outputs["📊 Outputs"]
        Reports["Standups & Retrospectives"]
        Graphs["Knowledge Graphs"]
        Timeline["Project Timelines"]
    end

    Session --> Core
    Core --> Search
    Core  GitHub
    Search --> Outputs
    GitHub --> Outputs

______________________________________________________________________

Recommended AI Agent Instructions/Rule

_建议规则(添加到AGENTS.md、GEMINI.md、系统提示等)_

🛑 强制会话启动例程

在新会话中满足任何用户请求之前执行:

  1. 目标:地狱 repo_name 从活动工作区上下文或用户提示。如果任务与特定项目无关,则回退到使用没有仓库名称的通用资源(默认为第一个注册的工作区)。
  2. 取回:使用MCP read_resource 工具(服务器: memory-journal-mcp)阅读 memory://briefing/{repo_name} (或 memory://briefing 如果回落)。

- 限制:不要使用 execute_code 对于这一步。

  1. 确认标志:如果简报JSON包含 activeFlags (计数>0),您必须在表格上方打印一个警报: ⚠️ **{count} active flag(s)** — review before proceeding. 后面是每面旗帜(🚩 {flag_type} → @{target_user}: {preview}).
  2. 渲染表:将剩余的JSON解析为一个密集的2列Markdown表(字段,值)。

- 限制:表中没有项目符号列表。不要截断摘要或问题。 - 格式化:组相关属性(使用 用于换行)。 - 所需组:GitHub(回购、分支、CI、PR、洞察)、问题、条目计数、最新条目/摘要、分析、里程碑、工作区。

  1. 停止并等待:不要自主地恢复过去的任务或开始处理会议摘要中提到的新问题。简报仅限于上下文。

______________________________________________________________________

工具筛选

\[!重要\] 所有快捷方式和工具组包括 代码模式 (mj_execute_code)默认情况下,用于令牌高效操作。要排除它,请添加 -codemode 到您的过滤器: --tool-filter starter,-codemode

通过以下方式控制暴露的工具 MEMORY_JOURNAL_MCP_TOOL_FILTER (或CLI: --tool-filter):

筛选器工具用例
full70所有工具(默认)
starter~11核心+搜索+编码模式
essential~7占地面积最小
readonly17禁用所有突变
-github52排除组
-github,-analytics50排除多个组

筛选器语法: shortcutgrouptool_name (白名单模式)· -group (禁用组)· -tool (禁用工具)· +tool (在组禁用后重新启用)

自定义选择: 列出各个工具名称以创建自己的白名单: --tool-filter "create_entry,search_entries,semantic_search"

组: core, search, analytics, relationships, io, admin, github, backup, team, codemode

完整的工具过滤指南→

______________________________________________________________________

📋 核心能力

🛠️ 70个MCP工具 (10组)

工具描述
codemode1代码模式(沙盒代码执行)🌟 推荐
core6输入CRUD、标签、测试
search4文本搜索、日期范围、语义、矢量统计
analytics2统计数据、跨项目见解
relationships2链接条目,可视化图形
io3JSON/PMarkdown导出和文件级Markdown数据集成互操作性(导入/导出)
admin5更新、删除、重建/添加向量索引、合并标签
github18问题、PR、背景、看板、, 里程碑, 洞察, 问题生命周期, 副驾驶评论
backup4备份、列表、还原、清理
team25CRUD、搜索、统计、关系、IO(Markdown导入/导出)、备份、向量搜索、跨项目洞察、矩阵、, Hush协议标志 (要求 TEAM_DB_PATH)

完整的工具参考→

🎯 17工作流程提示

  • find-related -通过语义相似性发现连接的条目
  • prepare-standup -每日站立总结
  • prepare-retro -Sprint回顾
  • weekly-digest -每日每周总结
  • analyze-period -具有洞察力的深度周期分析
  • goal-tracker -里程碑和成就跟踪
  • get-context-bundle -Git/GitHub/Kanban的项目上下文
  • get-recent-entries -格式化的最新条目
  • project-status-summary -GitHub项目状态报告
  • pr-summary -拉取请求日志活动摘要
  • code-review-prep -全面PR审查准备
  • pr-retrospective -完成公关分析并学习
  • actions-failure-digest -CI/CD故障分析
  • project-milestone-tracker -里程碑进度跟踪
  • confirm-briefing -向用户确认会话上下文
  • session-summary -创建一个包含成就、待办事项和下一个会话上下文的会话摘要条目
  • team-session-summary -创建与团队数据库安全隔离的回顾性团队会话摘要条目

完整的提示指南→

📡 36资源 (27个静态+9个模板)

静态资源 (出现在资源列表中):

  • memory://briefing - 会话初始化:AI代理的紧凑上下文(约300个令牌)——包括 localTime 可选 activeFlags
  • memory://instructions - 行为指导:AI代理的完整服务器说明
  • memory://recent -10个最新条目
  • memory://significant -重大里程碑和突破
  • memory://graph/recent -最近关系的真人美人鱼图
  • memory://health -服务器运行状况和诊断
  • memory://graph/actions -CI/CD叙事图
  • memory://actions/recent -最近运行的工作流
  • memory://tags -所有带有使用次数的标签
  • memory://statistics -期刊统计
  • memory://rules -用于代理感知的用户规则文件内容
  • memory://workflows -可用代理工作流摘要
  • memory://skills -代理技能指数(姓名、路径、摘录)
  • memory://github/status -GitHub存储库状态概述
  • memory://github/insights -存储库星级、分叉和14天流量摘要
  • memory://github/milestones -具有完成百分比的开放里程碑
  • memory://team/recent -最近有作者署名的团队参赛作品
  • memory://team/statistics -团队条目计数、类型和作者细分
  • memory://help -带有描述和工具计数的工具组索引
  • memory://help/gotchas -现场笔记、边缘案例和关键使用模式
  • memory://metrics/summary -自服务器启动以来的聚合工具调用指标(调用、错误、令牌估计、持续时间)——高优先级
  • memory://metrics/tokens -按输出令牌成本排序的每个工具令牌使用情况明细——中等优先级
  • memory://metrics/system -进程级指标:内存(MB)、正常运行时间、Node.js版本、平台——中等优先级
  • memory://metrics/users -每用户呼叫计数(当OAuth用户标识符存在时填充)——低优先级
  • memory://audit -JSONL操作遥测日志中的最后50个写/管理工具调用条目(需要 AUDIT_LOG_PATH)
  • memory://flags -活动(未解决)团队标志仪表板(需要 TEAM_DB_PATH)
  • memory://flags/vocabulary -配置的标志词汇表术语

模板资源 (需要参数,直接通过URI获取):

  • memory://projects/{number}/timeline -项目活动时间表
  • memory://issues/{issue_number}/entries -与问题相关的条目
  • memory://prs/{pr_number}/entries -链接到PR的条目
  • memory://prs/{pr_number}/timeline -公关+期刊时间线组合
  • memory://kanban/{project_number} -GitHub项目看板板
  • memory://kanban/{project_number}/diagram -看板美人鱼可视化
  • memory://milestones/{number} -里程碑细节和完工进度
  • memory://help/{group} -带参数和注释的每组工具参考
  • memory://briefing/{repo} -针对特定存储库的上下文

_注: memory://github/status, memory://github/insights, memory://github/milestones,以及 memory://milestones/{number} 资源还接受可选 /{repo} 用于跨回购目标的路径后缀。_

______________________________________________________________________

⚡ 代码模式:最高效率(节省90%的令牌)

代码模式(mj_execute_code)这是一种革命性的方法 将令牌使用量大幅减少高达90% 并且默认包含在所有预设中。AI代理使用单个沙盒执行来更快地推理,而不是在连续的工具调用上花费数千个令牌。

代码在 worker_threads沙盒 设计为安全的多租户进程隔离环境。全部 mj.* API对沙箱中的日志调用execute,提供:

  • 静态代码验证 --受阻模式包括 require(), process, eval(),以及文件系统访问
  • 速率限制 --每个客户端每分钟执行60次
  • 硬超时 --可配置的执行限制(默认30秒)
  • API完全访问 --所有10个工具组均可通过 mj.* (例如。, mj.core.createEntry(), mj.search.searchEntries(), mj.github.getGithubIssues(), mj.team.passTeamFlag())
  • 严格只读合同 --调用下面的任何变异方法 --tool-filter readonly 安全地停止沙盒以防止执行,返回结构化 { success: false, error: "..." } 响应代理,而不是原始MCP协议异常。

⚡ 仅代码模式(最大令牌节省)

与一起跑步 仅启用代码模式 --一个单一的工具,通过 mj.* API

{
  "mcpServers": {
    "memory-journal-mcp": {
      "command": "memory-journal-mcp",
      "args": ["--tool-filter", "codemode"]
    }
  }
}

这暴露了 mj_execute_code。代理针对键入的对象编写JavaScript mj.* SDK——在一次执行中跨所有10个工具组组合操作并返回所需的数据。这反映了 代码模式模式 由Cloudflare为其整个API开创:无论存在多少功能,都是固定的代币成本。

禁用代码模式

如果您更喜欢单独的工具调用,请排除codemode:

{
  "args": ["--tool-filter", "starter,-codemode"]
}

______________________________________________________________________

🤫 Hush协议:异步团队协作

Hush协议 通过用结构化的、机器可操作的标志替换嘈杂的Slack/Teams消息,重新构想人工智能增强工作流程的团队协作。

当您遇到阻止者、需要审核或想要广播里程碑时,您的AI代理可以在共享的团队数据库中升起标记:

  • 可操作的可见性:活动旗帜会自动出现在最顶部 memory://briefing 所有团队成员的有效载荷。当另一个开发人员的代理启动会话时,它会立即看到您的阻止程序,并可以帮助自动解决它们。
  • 结构类型:升起特定类型的旗帜(blocker, needs_review, help_requested, fyi).您可以通过以下方式自定义团队的词汇表 --flag-vocabulary 配置。
  • 可搜索历史记录:与消失在虚空中的聊天消息不同,Hush标志是永久的、可查询的AI日记条目。您的代理可以搜索过去 needs_review 了解建筑障碍是如何被克服的。

仪表板和操作:阅读 memory://flags 查看活动仪表板概述和使用 mj.team.passTeamFlag() / mj.team.resolveTeamFlag() 在代码模式下以编程方式管理它们。

完整的Hush协议指南和Mermaid序列图→

______________________________________________________________________

🚀 快速开始

选项1:npm(推荐)

npm install -g memory-journal-mcp

选项2:来源

git clone https://github.com/neverinfamous/memory-journal-mcp.git
cd memory-journal-mcp
npm install
npm run build

添加到MCP配置

将此添加到您的 ~/.cursor/mcp.jsonClaude Desktop配置或等效配置:

基本配置

{
  "mcpServers": {
    "memory-journal-mcp": {
      "command": "memory-journal-mcp",
      "env": {
        "GITHUB_TOKEN": "ghp_your_token_here",
        "PROJECT_REGISTRY": "{\"my-repo\":{\"path\":\"/path/to/your/git/repo\",\"project_number\":1}}",
        "ALLOWED_IO_ROOTS": "/path/to/your/git/repo"
      }
    }
  }
}

高级配置(推荐)

展示服务器的全部功能,包括多项目路由、团队协作、副本意识和上下文注入。

{
  "mcpServers": {
    "memory-journal-mcp": {
      "command": "memory-journal-mcp",
      "env": {
        "DB_PATH": "/path/to/your/memory_journal.db",
        "TEAM_DB_PATH": "/path/to/shared/team.db",
        "GITHUB_TOKEN": "ghp_your_token_here",
        "PROJECT_REGISTRY": "{\"my-repo\":{\"path\":\"/path/to/repo\",\"project_number\":1},\"other-repo\":{\"path\":\"/path/to/other\",\"project_number\":5}}",
        "ALLOWED_IO_ROOTS": "/path/to/repo,/path/to/other,/path/to/your/skills",
        "AUTO_REBUILD_INDEX": "true",
        "MEMORY_JOURNAL_MCP_TOOL_FILTER": "codemode",
        "CODEMODE_INTERNAL_FULL_ACCESS": "true",
        "BRIEFING_ENTRY_COUNT": "3",
        "BRIEFING_SUMMARY_COUNT": "1",
        "BRIEFING_INCLUDE_TEAM": "true",
        "BRIEFING_ISSUE_COUNT": "3",
        "BRIEFING_PR_COUNT": "3",
        "BRIEFING_PR_STATUS": "true",
        "BRIEFING_WORKFLOW_COUNT": "3",
        "BRIEFING_WORKFLOW_STATUS": "true",
        "BRIEFING_COPILOT_REVIEWS": "true",
        "RULES_FILE_PATH": "/path/to/your/RULES.md",
        "SKILLS_DIR_PATH": "/path/to/your/skills",
        "MEMORY_JOURNAL_WORKFLOW_SUMMARY": "/deploy: prod deployment | /audit: security scan",
        "AUDIT_LOG_PATH": "/path/to/your/mcp-audit.jsonl",
        "TEAM_AUTHOR": "your_username"
      }
    }
  }
}
💡 提示: 优化您的上下文窗口! 日记条目 (BRIEFING_ENTRY_COUNT)捕获频繁的、精细的操作(例如错误修复、实现步骤)。 会议摘要 (BRIEFING_SUMMARY_COUNT)表面高级回顾意味着在不同的人工智能会议上不断传递战略背景。适当地使用这两种方法,使代理简报保持高度集中!

变体 (修改上面的配置):

变体更改
最小(无GitHub)删除 env 完全封锁
npx(不安装)更换 "command""npx" 并添加 "args": ["-y", "memory-journal-mcp"]
来源更换 "command""node" 并添加 "args": ["dist/cli.js"]
仅代码模式添加 "args": ["--tool-filter", "codemode"] (单一工具,所有功能)
码头工人更换 "command""docker" 和使用 run -i --rm -v ./data:/app/data writenotenow/memory-journal-mcp:latest 作为args
团队协作添加 "TEAM_DB_PATH": "./team.db"env

重新启动MCP客户端并开始记录日志!

选项3:HTTP/SSE传输(远程访问)

🔒 安全态势:Stdio与HTTP - 标准(默认): 在本地IDE或命令行环境的安全边界内隐式运行。不需要显式身份验证,因为执行上下文已受信任。 - HTTP/SSE: 通过网络套接字公开服务器。默认情况下,HTTP仅绑定到 localhost 并阻止通配符CORS,以防止未经授权的访问和CSRF攻击。 公网绑定(--server-host 0.0.0.0)需要显式身份验证 (--auth-token--oauth-enabled).如果您试图在不保护它的情况下公开它,服务器将抛出致命错误。

对于远程访问或基于web的客户端,请在HTTP模式下运行服务器:

memory-journal-mcp --transport http --port 3000

要绑定到所有接口(容器所需)并启用自动主动分析调度程序(例如每日摘要),您必须提供一个身份验证令牌:

export MCP_AUTH_TOKEN="your_secure_random_token"
memory-journal-mcp --transport http --port 3000 --server-host 0.0.0.0 --digest-interval 1440

终点:

端点描述模式
GET /服务器信息和可用端点两者
POST /mcpJSON-RPC请求(初始化、工具/调用等)两者都有
GET /mcp服务器到客户端通知的SSE流有状态
DELETE /mcp会话终止有状态
GET /sse传统SSE连接(MCP 2024-11-05)状态良好
POST /messages传统SSE消息端点有状态
GET /health健康检查({ status, timestamp })两者都有
GET /.well-known/oauth-protected-resourceRFC 9728受保护资源元数据两者都有

会话管理: 默认情况下,服务器使用有状态会话。包括 mcp-session-id 后续请求中的标头(从初始化返回)。

  • OAuth 2.1 --RFC 9728/8414,JWT/JWKS,粒度范围(通过以下方式选择加入 --oauth-enabled)
  • 7安全标头 --CSP、HSTS(选择加入)、X-Frame-Options等
  • 速率限制 --每个IP每分钟需要100个· 跨域资源共享 --可配置的多源(精确匹配)· 1MB车身限制
  • 服务器超时 --请求(120秒),保持活动(65秒),标头(66秒)· 404处理器 · 跨协议警卫
  • 建立来源 · 软件物料清单 · 供应链认证 · 非根执行

卷曲示例:

初始化会话(返回 mcp-session-id 头球

curl -X POST http://localhost:3000/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'

列出工具(带会话):

curl -X POST http://localhost:3000/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "mcp-session-id: YOUR_SESSION_ID" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'

无状态模式(无服务器)

对于无服务器部署(Lambda、Workers、Vercel),请使用无状态模式:

memory-journal-mcp --transport http --port 3000 --stateless
模式进度通知传统SSE无服务器
有状态(默认)✅ 是✅ 是⚠️ 综合体
无国籍(--stateless)❌ 否❌ 否✅ 原住民

自动调度(仅限HTTP)

在HTTP/SSE模式下运行时,使用CLI标志启用定期维护作业。这些作业在进程中运行 setInterval --不需要外部cron。

注: 这些标志在stdio传输中被忽略,因为stdio会话是短暂的(与IDE会话绑定)。对于stdio,使用操作系统级调度(任务调度器、cron)或手动运行备份/清理工具。
memory-journal-mcp --transport http --port 3000 \
  --backup-interval 60 --keep-backups 10 \
  --vacuum-interval 1440 \
  --rebuild-index-interval 720
标志默认值描述
--backup-interval 0(关闭)创建带时间戳的数据库备份并自动修剪旧备份
--keep-backups 5自动清理期间保留的最大备份数
--vacuum-interval 0(关闭)运行 PRAGMA optimize 并将数据库刷新到磁盘
--rebuild-index-interval 0(关闭)重建全矢量索引以保持语义搜索质量

每个作业都是错误隔离的——一个作业中的失败不会影响其他作业。调度程序状态(上次运行、结果、下次运行)可通过以下方式查看 memory://health.

GitHub集成配置

GitHub工具(get_github_issues, get_github_prs等)在以下情况下从git上下文中自动检测存储库 PROJECT_REGISTRY 配置或MCP服务器在git存储库中运行。

环境变量描述
DB_PATH数据库文件位置(CLI: --db;默认值: ./memory_journal.db)
TEAM_DB_PATH团队数据库文件位置(CLI: --team-db)
TEAM_AUTHOR覆盖团队条目的作者名称(默认值: git config user.name)
GITHUB_TOKEN用于API访问的GitHub个人访问令牌
DEFAULT_PROJECT_NUMBER创建问题时自动分配的默认GitHub项目编号
PROJECT_REGISTRY存储库的JSON映射 { path, project_number } 多项目自动检测与路由
AUTO_REBUILD_INDEX设置为 true 在服务器启动时重建向量索引
MCP_HOST服务器绑定主机(0.0.0.0 对于容器,默认值为: localhost)
MCP_AUTH_TOKENHTTP传输身份验证的承载令牌(CLI: --auth-token).不得为默认占位符令牌。
ALLOWED_IO_ROOTS关键安全边界:逗号分隔的绝对路径,授予文件系统对代码模式和导出工具的访问权限(默认:无/失败关闭)
MCP_CORS_ORIGIN允许HTTP传输的CORS源,逗号分隔(默认:空白,严格选择加入)
MCP_RATE_LIMIT_MAX每个客户端IP每分钟的最大请求数,仅限HTTP(默认值: 100)
LOG_LEVEL日志冗长: error, warn, info, debug (默认值: info;CLI: --log-level)
MCP_ENABLE_HSTS在HTTP响应上启用HSTS安全标头(CLI: --enable-hsts;默认值: false)
OAUTH_ENABLED设置为 true 启用OAuth 2.1身份验证(仅限HTTP)
OAUTH_ISSUEROAuth发行者URL(例如。, https://auth.example.com/realms/mcp)
OAUTH_AUDIENCE预计JWT观众人数
OAUTH_JWKS_URI用于令牌签名验证的JWKS端点
OAUTH_CLOCK_TOLERANCEJWT验证允许的时钟偏差容差(秒)(默认值: 5)
CODE_MODE_MAX_RESULT_SIZEmj_execute_code结果有效负载的最大大小(字节)(CLI: --codemode-max-result-size;默认值: 102400)
CODEMODE_INTERNAL_FULL_ACCESS绕过代码模式沙箱中的工具筛选器约束(CLI: --codemode-internal-full-access;默认值: false)
BRIEFING_ENTRY_COUNT简报中的日记条目(CLI: --briefing-entries;默认值: 3)
BRIEFING_SUMMARY_COUNT在简报中列出会话摘要(CLI: --briefing-summaries;默认值: 1)
BRIEFING_INCLUDE_TEAM在简报中包含团队数据库条目(true/false;默认值: false)
BRIEFING_ISSUE_COUNT简报中列出的问题; 0 =仅计数(默认值: 0)
BRIEFING_PR_COUNT在简报中列出PR; 0 =仅计数(默认值: 0)
BRIEFING_PR_STATUS显示PR状态细分(打开/合并/关闭;默认值: false)
BRIEFING_MILESTONE_COUNT简报中列出的里程碑; 0 =完全隐藏(CLI: --briefing-milestones;默认值: 3)
BRIEFING_WORKFLOW_COUNT工作流程按照简报中的列表运行; 0 =仅状态(默认值: 0)
BRIEFING_WORKFLOW_STATUS在简报中显示工作流状态细分(默认值: false)
BRIEFING_COPILOT_REVIEWS在简报中汇总副驾驶审查状态(默认值: false)
RULES_FILE_PATH代理感知用户规则文件的路径(CLI: --rules-file)
SKILLS_DIR_PATH代理感知技能目录路径(CLI: --skills-dir)
MEMORY_JOURNAL_WORKFLOW_SUMMARY自由文本工作流摘要 memory://workflows (CLI: --workflow-summary)
INSTRUCTION_LEVEL简报深度: essential, standard, full (CLI: --instruction-level;默认值: standard)
PROJECT_LINT_CMDGitHub Commander验证门的Project lint命令(默认值: npm run lint)
PROJECT_TYPECHECK_CMD项目类型检查命令(默认值: npm run typecheck;空=跳过)
PROJECT_BUILD_CMD项目生成命令(默认值: npm run build;空=跳过)
PROJECT_TEST_CMD项目测试命令(默认值: npm run test)
PROJECT_E2E_CMD项目E2E测试命令(默认值:空=跳过)
PROJECT_PACKAGE_MANAGER包管理器覆盖: npm, yarn, pnpm, bun (默认:从锁文件自动检测)
PROJECT_HAS_DOCKERFILE启用Docker审计步骤(默认:自动检测)
COMMANDER_HITL_FILE_THRESHOLD如果更改了人在循环检查点,则触摸>N个文件(默认值: 10)
COMMANDER_SECURITY_TOOLS覆盖安全工具自动检测(逗号分隔;默认:自动检测)
COMMANDER_BRANCH_PREFIXPR的分支命名前缀(默认值: fix)
AUDIT_LOG_PATH写入/管理工具调用的JSONL操作遥测日志的路径。以10MB的速度旋转(保留5个存档)。省略禁用遥测日志记录。
AUDIT_REDACT设置为 false 在遥测日志条目中包含工具参数(默认值: true)
AUDIT_READS除了write/admin(CLI: --audit-reads;默认值: false)
AUDIT_LOG_MAX_SIZE旋转前最大操作遥测文件大小(字节)(CLI: --audit-log-max-size;默认值: 10485760)
MCP_METRICS_ENABLED设置为 false 禁用内存中的工具调用度量累积(默认值: true)
FLAG_VOCABULARYHush协议(CLI: --flag-vocabulary;默认值: blocker,needs_review,help_requested,fyi)

多项目工作流:为使代理商无缝支持多个项目,提供 PROJECT_REGISTRY.

动态上下文解析与自动检测

执行GitHub工具(问题、PR、上下文等)时,服务器按以下顺序解析存储库上下文:

  1. 动态项目路线:如果代理人通过 repo 与您的密钥匹配的字符串 PROJECT_REGISTRY,服务器动态挂载映射到该项目的物理目录。它在本地执行git命令并自动推断 owner.
  2. 显式覆盖:如果代理人同时提供这两种服务 ownerrepo 明确地说,这些值覆盖API调用的自动检测。
  3. 缺少上下文:没有 PROJECT_REGISTRY 或者显式参数,服务器阻止执行并返回 {requiresUserInput: true} 以提示代理人。

自动项目路线(看板/问题)

打开问题或查看/移动看板卡时,服务器需要一个GitHub项目编号。它通过以下方式确定:

  1. 探索原始 project_number 代理人通过的论点。
  2. 检查是否 repo 字符串与您的 PROJECT_REGISTRY,将其无缝映射到预配置 project_number.
  3. 回归全球定义 DEFAULT_PROJECT_NUMBER 如果设置。

🔐 OAuth 2.1身份验证

对于生产部署,请在HTTP传输上启用OAuth 2.1身份验证:

组件状态描述
受保护的资源元数据RFC 9728 /.well-known/oauth-protected-resource
身份验证服务器发现RFC 8414元数据发现与缓存
令牌验证支持JWKS的JWT验证
范围执行颗粒状的 read, write, admin 范围
HTTP传输使用OAuth中间件的流式HTTP

支持的范围:

范围工具组
read核心、搜索、分析、关系、io
writegithub,团队(+所有阅读组)
admin管理员、备份、代码模式(+所有写/读组)

快速入门:

memory-journal-mcp --transport http --port 3000 \
  --oauth-enabled \
  --oauth-issuer https://auth.example.com/realms/mcp \
  --oauth-audience memory-journal-mcp \
  --oauth-jwks-uri https://auth.example.com/realms/mcp/protocol/openid-connect/certs

或者通过环境变量:

export OAUTH_ENABLED=true
export OAUTH_ISSUER=https://auth.example.com/realms/mcp
export OAUTH_AUDIENCE=memory-journal-mcp
export OAUTH_CLOCK_TOLERANCE=5
memory-journal-mcp --transport http --port 3000
注: OAuth是选择加入的。如果未启用,服务器将通过以下方式退回到简单的令牌身份验证 MCP_AUTH_TOKEN 或者在没有身份验证的情况下运行。

🔄 会话管理

  1. 会话开始 → 代理读取 memory://briefing (或 memory://briefing/{repo})并显示项目背景
  2. 会话摘要 → use /session-summary 捕捉进度和下一个会话上下文
  3. 下一场会议的简报包括前面的总结——上下文无缝衔接

🔧 配置

GitHub集成(可选)

export GITHUB_TOKEN="your_token"              # For Projects/Issues/PRs

范围: repo, project, read:org (仅组织级项目发现)

GitHub管理功能

内存日志提供 混合方法 GitHub管理层:

能力来源目的
MCP服务器专业功能:看板可视化、里程碑、日志链接、项目时间表
代理(gh CLI)完整的GitHub突变:创建/关闭问题、创建/合并PR、管理发布

MCP服务器工具(阅读+看板+里程碑+问题生命周期):

  • get_github_issues / get_github_issue -查询问题
  • get_github_prs / get_github_pr -查询拉取请求
  • get_github_context -完整存储库上下文
  • get_kanban_board / add_kanban_item / move_kanban_item / delete_kanban_item - 看板管理
  • get_github_milestones / get_github_milestone - 里程碑跟踪完成百分比
  • create_github_milestone / update_github_milestone / delete_github_milestone - CRUD里程碑
  • get_repo_insights - 存储库流量和分析 (明星、克隆、观点、推荐人、热门路径)
  • create_github_issue_with_entry / close_github_issue_with_entry - 期刊链接的问题生命周期
为什么是这个设计? MCP服务器专注于将日记条目与GitHub集成的增值功能(看板视图、里程碑、时间线资源、上下文链接)。标准GitHub突变(创建/关闭问题、合并PR、管理发布)由代理直接通过以下方式处理 gh CLI。

****

GitHub指挥官工作流程

服务器原生捆绑了 github-commander 代理技能(可通过 memory://skills/github-commander).这为您的AI助手扩展了9个自主的DevOps工作流,用于存储库管理: 问题分类, 里程碑冲刺, 公关评论, 副驾驶审核, 安全性审计, 代码质量审核, 绩效审计, 路线图启动,以及 依赖关系更新.使用配置验证层 PROJECT_* 环境覆盖以在代理任务期间在本地强制执行CI匹配!

🏗️ 建筑

数据流

flowchart TB
    AI["🤖 AI Agent
(Cursor, Windsurf, Claude)"]

    subgraph MCP["Memory Journal MCP Server"]
        Tools["🛠️ 70 Tools"]
        Resources["📡 36 Resources"]
        Prompts["💬 17 Prompts"]
    end

    subgraph Storage["Persistence Layer"]
        SQLite[("💾 SQLite
Entries, Tags, Relationships")]
        Vector[("🔍 Vector Index
Semantic Embeddings")]
        Backups["📦 Backups"]
    end

    subgraph External["External Integrations"]
        GitHub["🐙 GitHub API
Issues, PRs, Actions"]
        Kanban["📋 Projects v2
Kanban Boards"]
    end

    AI |"MCP Protocol"| MCP
    Tools --> Storage
    Tools --> External
    Resources --> Storage
    Resources --> External

堆栈

┌─────────────────────────────────────────────────────────────┐
│ MCP Server Layer (TypeScript)                               │
│  ┌─────────────────┐  ┌─────────────────┐  ┌─────────────┐  │
│  │ Tools (70)      │  │ Resources (36)  │  │ Prompts (17)│  │
│  │ with Annotations│  │ with Annotations│  │             │  │
│  └─────────────────┘  └─────────────────┘  └─────────────┘  │
├─────────────────────────────────────────────────────────────┤
│ Native SQLite Engine                                        │
│  ┌─────────────────┐  ┌─────────────────┐  ┌─────────────┐  │
│  │ better-sqlite3  │  │ sqlite-vec      │  │ transformers│  │
│  │ (High-Perf I/O) │  │ (Vector Index)  │  │ (Embeddings)│  │
│  └─────────────────┘  └─────────────────┘  └─────────────┘  │
├─────────────────────────────────────────────────────────────┤
│ SQLite Database with Hybrid Search                          │
│  ┌─────────────────────────────────────────────────────────┐│
│  │ entries + tags + relationships + embeddings + backups   ││
│  └─────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────┘

______________________________________________________________________

🔧 技术亮点

性能和便携性

  • TypeScript+原生SQLite -高性能 better-sqlite3 具有同步I/O
  • sqlite-vc -通过SQLite扩展进行矢量相似性搜索
  • @拥抱面/变压器 -在JavaScript中嵌入本地ML模型
  • 背景预热 -模型权重(~23MB)在服务器启动时异步加载到内存中,以避免首次请求延迟。如果在预热完成之前调用服务器,则第一次语义搜索或向量插入将导致网络绑定冷启动(约1.5秒-3秒),而权重将在本地缓存。

性能基准

Memory Journal旨在在AI任务执行期间实现极低的开销。我们包括a vitest bench 保持这些基线保证的套件:

  • 数据库读取:操作在几分之一毫秒内执行。 calculateImportance 比检索50个最近的条目快13-14x。
  • 矢量搜索引擎:搜索(~140-220ops/sec)和索引(~1600-1900+ops/sec sqlite-vec 使用SQL原生KNN查询。
  • 核心MCP例程: getTools 使用缓存的O(1)调度(比 get_recent_entries). create_entrysearch_entries 以亚毫秒级的开销通过整个MCP层执行。

要在本地运行基准测试套件:

npm run bench

测试

在两个框架中进行了广泛测试:

套件命令封面
Vitest(单元/集成)npm test数据库、工具、资源、处理程序、安全性、GitHub、矢量搜索、codemode
剧作家(e2e)npm run test:e2eHTTP/SSE传输、身份验证、会话、CORS、安全标头、调度器
npm test          # Unit + integration tests
npm run test:e2e  # End-to-end HTTP/SSE transport tests

安全

  • 确定性错误处理 -每个工具返回结构化 {success, error, code, category, suggestion, recoverable} 具有可操作上下文的响应——没有原始异常,没有无声的失败,没有误导性的信息
  • 本地优先 -所有数据存储在本地,没有外部API调用(可选的GitHub除外)
  • 输入验证 -Zod模式、内容大小限制、SQL注入预防
  • 路径遍历保护 -备份文件名已验证
  • MCP 2025-03-26注释 -行为暗示(readOnlyHint, destructiveHint等等)
  • HTTP传输强化 -7个安全标头、可配置的多源CORS、1MB主体限制、内置速率限制(100请求/分钟)、服务器超时、HSTS(选择加入)、30分钟会话超时、404处理程序、跨协议保护
  • 令牌清理 -GitHub令牌和凭据从错误日志中自动编辑

数据和隐私

  • 单个SQLite文件 -您拥有自己的数据
  • 便携的 -移动你的 .db 文件在任何地方
  • 软删除 -条目可以恢复
  • 还原时自动备份 -切勿意外丢失数据

______________________________________________________________________

📚 文档和资源

  • **** -完整的文档
  • 副驾驶设置指南 -IDE代理和GitHub Copilot之间的跨代理内存桥
  • 部署指南 -CI/CD管道、环境和版本升级检查表
  • **** -容器图像
  • **** -Node.js发行版
  • 问题 -Bug报告和功能请求

______________________________________________________________________

📄 许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

🤝 贡献

由开发者构建,为开发者服务。PR欢迎!看 贡献.md 作为指导方针。

______________________________________________________________________

_从v2.x迁移?_ 您现有的数据库完全兼容。TypeScript版本使用相同的模式和数据格式。

目录标签

目录标签

TypeScriptClaude团队协作AI记忆管理本地部署GitHub集成会话上下文切换知识图谱

支持客户端

Claude DesktopClaudeCursorWindsurf

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

oauth

工具数量(toolCount,工具数)

18

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明oauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP