用途
pg-mnemosyne-mcp 是一个 Model Context Protocol(MCP)服务器,旨在为 AI 助手提供持久化记忆、任务追踪与动态 PostgreSQL 数据库管理能力。它让 AI 智能体能够在同一 PostgreSQL 实例中创建项目数据库、管理记忆与任务,并在多智能体场景下进行协作协调。
主要能力
- 高性能:使用缓存连接池(asyncpg.create_pool),支持亚毫秒级数据库查询。
- 动态项目:AI 可按需为不同项目创建新的数据库。
- 动态模式:AI 可动态修改表结构,以适应变化的记忆需求。
- 标准记忆追踪:内置对记忆条目的跟踪、更新和删除,支持标签。
- 高级任务管理:专用 tasks 表结构,包含状态流转、优先级和截止日期等字段。
- 多智能体协作:集中式会话跟踪,防止重复编码和文件编辑冲突。
- 原始 SQL 执行:为复杂查询和 DDL 操作提供最大灵活性。
使用方式
安装:
- Windows:pip install pg-mnemosyne-mcp
- macOS / Linux:pipx install pg-mnemosyne-mcp(也可使用 pip install pg-mnemosyne-mcp --break-system-packages)
自动配置所有支持的 AI 智能体(Claude、Gemini、Qwen、Cursor 等): pg-mnemosyne init --dsn "postgresql://user:password@localhost:5432/postgres"
用户需要通过 PG_BASE_DSN 环境变量提供 PostgreSQL 凭据,格式为:postgresql://<USERNAME>:<PASSWORD>@<HOST>:<PORT>/<DEFAULT_DB>
配置位置取决于所用 AI 客户端:
- Claude Desktop:Mac 路径 ~/Library/Application Support/Claude/claude_desktop_config.json;Windows 路径 %APPDATA%\Claude\claude_desktop_config.json。
- Cursor:Settings > Features > MCP 添加新 MCP 服务器,或编辑项目 .cursor/mcp.json。
- Roo Code / Cline(VS Code):编辑 ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json(Mac)或对应 Windows 路径。
- Gemini CLI 与 Qwen CLI:编辑 ~/.gemini/settings.json 或 ~/.qwen/settings.json,或使用 CLI: gemini mcp add pg-mnemosyne "/path/to/pg-mnemosyne" -e PG_BASE_DSN="postgresql://user:pass@localhost:5432/postgres" -s user 或 qwen mcp add pg-mnemosyne "/path/to/pg-mnemosyne" -e PG_BASE_DSN="postgresql://user:pass@localhost:5432/postgres" -s user
- Claude Code CLI:claude mcp add pg-mnemosyne "/path/to/pg-mnemosyne" -e PG_BASE_DSN="postgresql://user:pass@localhost:5432/postgres" -s user;手动配置位于 ~/.claude.json。
- Codex:codex mcp add pg-mnemosyne --env PG_BASE_DSN="postgresql://user:pass@localhost:5432/postgres" -- pg-mnemosyne;手动配置位于 ~/.codex/config.toml(TOML 格式)。
- Windsurf IDE:编辑 ~/.codeium/windsurf/mcp_config.json,或在 Cascade 面板点击 Hammer(MCP)图标并选择 Configure。
- Antigravity CLI(agy):创建插件目录 mkdir -p ~/.gemini/config/plugins/pg-mnemosyne,创建 ~/.gemini/config/plugins/pg-mnemosyne/mcp_config.json 并按标准模板填写,然后在 ~/.gemini/config/import_manifest.json 的 "imports" 数组中添加条目:{ "name": "pg-mnemosyne", "source": "manual", "components": ["mcpServers"] }。
- OpenCode:编辑 ~/.config/opencode/opencode.jsonc。
独立运行服务器(使用标准输入/输出): pg-mnemosyne 命令也可作为独立 CLI,用于管理数据和配置智能体。 支持自动初始化、手动记录管理(在终端直接添加和列出记录)。
多智能体协作与高级任务
Pg-Mnemosyne 包含专用模式,帮助复杂多智能体环境(如 Gemini CLI、Codex CLI、Roo Code、Claude Desktop)在同一项目上协作:
- 专业任务表:可创建专用 tasks 表,包含状态(backlog、todo、in_progress、blocked、done)、优先级(low、medium、high、critical)、标签和截止日期。
- 智能体协调中心:初始化共享的 agent_sessions 协调表,避免合并冲突、重复编码和冗余的编译器排错。启用后,智能体使用 update_agent_session 和 get_active_sessions MCP 工具注册当前编辑的文件和活跃子任务,形成实时公告板以实现互相可见。
可用 MCP 工具
- create_project_db(db_name: str):创建新的隔离 PostgreSQL 数据库。
- init_schema(db_name: str):初始化基础 records 表。
- init_todo_schema(db_name: str):初始化专业 tasks 表。
- init_coordination_schema(db_name: str):初始化多智能体 agent_sessions 表。
- add_column(db_name: str, table: str, column_name: str, data_type: str):动态为任意表添加列。
- add_record(db_name: str, type: str, content: str, tags: list[str]):添加记忆/待办记录。
- get_records(db_name: str, type: str = None, limit: int = 50):获取最近记录。
- update_record(db_name: str, record_id: int, content: str = None, tags: list[str] = None, status: str = None):部分更新记录。
- delete_record(db_name: str, record_id: int):按 ID 删除记录。
- update_agent_session(db_name: str, agent_name: str, active_task: str, active_file: str = None, status: str = "active"):注册/更新活跃智能体状态。
- get_active_sessions(db_name: str):列出活跃的智能体协调会话。
- run_sql(db_name: str, query: str):运行任意 SQL(SELECT、INSERT、DDL 等)。
适用场景
适用于需要为 AI 助手提供跨会话持久记忆、结构化任务追踪,以及在多智能体系统中协调编码与文件编辑以避免冲突的开发场景。
限制
使用前必须提供 PostgreSQL 凭据(PG_BASE_DSN)。其他限制暂未提供。