内容
# Pg-Mnemosyne MCP
[](https://pypi.org/project/pg-mnemosyne-mcp/)
[](LICENSE)
[](pyproject.toml)
[](https://modelcontextprotocol.io)
[](#setup)
<p align="center">
<img src="https://raw.githubusercontent.com/Janadasroor/pg-mnemosyne-mcp/main/assets/mcp_power_banner.png" alt="Pg-Mnemosyne MCP 力量横幅" width="100%">
</p>
一个提供 AI 助手强大“超级记忆”、任务跟踪器和动态 PostgreSQL 数据库管理功能的模型上下文协议(MCP)服务器。
## ⚡ 快速开始
1. **全局安装包:**
* **Windows**:
```cmd
pip install pg-mnemosyne-mcp
```
* **macOS / Linux**:
```bash
pipx install pg-mnemosyne-mcp
```
*(如果您更喜欢标准 pip 或没有 `pipx`,请运行:`pip install pg-mnemosyne-mcp --break-system-packages`)*
2. **一次性自动配置所有 AI 代理(Claude、Gemini、Qwen、Cursor 等):**
```bash
pg-mnemosyne init --dsn "postgresql://用户:密码@localhost:5432/数据库"
```
*(请确保将 `用户` 和 `密码` 替换为实际的 PostgreSQL 用户名和数据库密码!)*
3. **重启 AI 代理。** 完成!
---
## 功能
- **高性能**:使用缓存连接池(`asyncpg.create_pool`)实现毫秒级数据库查询。
- **动态项目**:AI 可以动态创建不同项目的数据库。
- **动态模式**:AI 可以动态修改表模式以适应不断变化的内存需求。
- **标准内存跟踪器**:内置支持使用标签跟踪、更新和删除内存项。
- **高级任务管理**:专用的任务模式,包含状态转换、优先级和截止日期的字段。
- **多代理协调**:集中式会话跟踪,防止重复编码和文件编辑冲突。
- **原始 SQL 执行**:为 AI 提供复杂查询和 DDL 操作的终极灵活性。
## 设置
用户需要使用 `PG_BASE_DSN` 环境变量提供 PostgreSQL 凭证。这是一个标准连接字符串:
`postgresql://<用户名>:<密码>@<主机>:<端口>/<默认数据库>`
### 配置位置(客户端设置)
确切位置取决于您使用的 AI 客户端。您需要将服务器配置添加到客户端的 MCP 设置文件中。
**对于 Claude Desktop:**
- **Mac:** `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
**对于 Cursor:**
- 进入 `设置` > `功能` > `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 路径的 MCP 设置文件。
**对于 Gemini CLI 和 Qwen CLI:**
- 打开全局配置文件(通常位于 `~/.gemini/settings.json` 或 `~/.qwen/settings.json`)。
- 或者,使用 CLI:
```bash
gemini mcp add pg-mnemosyne "/路径/pg-mnemosyne" -e PG_BASE_DSN="postgresql://用户:密码@localhost:5432/数据库" -s 用户
# 或
qwen mcp add pg-mnemosyne "/路径/pg-mnemosyne" -e PG_BASE_DSN="postgresql://用户:密码@localhost:5432/数据库" -s 用户
```
**对于 Claude Code CLI:**
- 最简单的方法是通过 CLI 添加:
```bash
claude mcp add pg-mnemosyne "/路径/pg-mnemosyne" -e PG_BASE_DSN="postgresql://用户:密码@localhost:5432/数据库" -s 用户
```
- 手动,它位于 `~/.claude.json` 中的全局配置中。
**对于 Codex CLI:**
- 最简单的方法是通过 CLI 添加:
```bash
codex mcp add pg-mnemosyne --env PG_BASE_DSN="postgresql://用户:密码@localhost:5432/数据库" -- pg-mnemosyne
```
- 手动,它位于 `~/.codex/config.toml`(TOML 格式)中的全局配置中。
**对于 Windsurf IDE:**
- 编辑位于 `~/.codeium/windsurf/mcp_config.json` 中的全局配置。
- 或者,点击 **锤子(MCP)图标** 在 Cascade 面板中并选择 **配置**。
**对于 Antigravity CLI(agy):**
Antigravity 使用基于插件的系统。要添加服务器:
1. 创建插件目录:`mkdir -p ~/.gemini/config/plugins/pg-mnemosyne`
2. 创建 `~/.gemini/config/plugins/pg-mnemosyne/mcp_config.json` 并使用下面的**标准模板**。
3. 在 `~/.gemini/config/import_manifest.json` 中添加一个条目到 `"imports"` 数组下:
```json
{
"名称": "pg-mnemosyne",
"来源": "手动",
"组件": ["mcpServers"]
}
```
**配置模板(Claude Desktop、Cursor、Roo Code、Gemini CLI、Claude Code、Antigravity、Windsurf):**
```json
{
"mcpServers": {
"pg-mnemosyne": {
"命令": "pg-mnemosyne",
"环境": {
"PG_BASE_DSN": "postgresql://postgres:密码@localhost:5432/数据库"
}
}
}
}
```
**对于 OpenCode:**
- 编辑位于 `~/.config/opencode/opencode.jsonc` 中的 OpenCode 配置文件。
**配置模板(OpenCode):**
```jsonc
{
"mcp": {
"pg-mnemosyne": {
"类型": "本地",
"命令": ["pg-mnemosyne"],
"环境": {
"PG_BASE_DSN": "postgresql://postgres:密码@localhost:5432/数据库"
}
}
}
}
```
## 运行服务器(独立)
```bash
pg-mnemosyne run
```
这使用标准输入/输出启动 MCP 服务器。
## CLI 用法
`pg-mnemosyne` 命令还作为一个独立的 CLI,用于管理和配置代理。
### 自动初始化
您可以使用单个命令自动配置所有支持的 AI 代理(Claude、Gemini、Qwen、Cursor 等):
```bash
pg-mnemosyne init --dsn "postgresql://用户:密码@localhost:5432/数据库"
```
### 手动记录管理
您可以直接从终端添加和列出记录:
```bash
# 添加记录
pg-mnemosyne add 我的项目数据库 待办事项 "完成文档"
# 列出记录
pg-mnemosyne list 我的项目数据库 --type 待办事项
```
## 🤝 多代理协调与高级任务
Pg-Mnemosyne 包含专门的模式,以帮助复杂的的多代理设置(例如 Gemini CLI、Codex CLI、Roo Code、Claude Desktop)协调同一项目:
### 📋 专业任务模式
启动一个专用的 `tasks` 表,包含状态(`backlog`、`todo`、`in_progress`、`blocked`、`done`)、优先级级别(`low`、`medium`、`high`、`critical`)、标签和截止日期的字段:
```bash
pg-mnemosyne init-todo 我的项目数据库
```
### 🛰️ 代理协调中心
通过初始化共享的 `agent_sessions` 协调表,避免合并冲突、重复编码和冗余编译器故障排查:
```bash
pg-mnemosyne init-coordination 我的项目数据库
```
当激活时,代理使用 `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 等)。