内容
# MindMap — PostgreSQL MCP 服务器
一个用于与包含思维导图应用程序的PostgreSQL数据库交互的Claude MCP(模型上下文协议)服务器。
---
## 设置
### 先决条件
- Docker 及 Docker Compose
- Node.js(用于运行MCP服务器)
- PostgreSQL(在Docker中运行)
### 安装
1. **克隆或设置仓库:**
```bash
git clone https://github.com/Linkyrex/mindmap
cd mindmap
```
2. **配置环境变量:**
```bash
cp .env.template .env
```
更新 `.env` 中的密码为您期望的值。
3. **启动数据库服务:**
```bash
docker compose up -d
```
这将启动:
- **PostgreSQL** 在 `localhost:5432`
- **pgweb** (数据库管理界面) 在 `http://localhost:8081`
- **pgbackup** (自动每小时备份) - 备份存储在 `./backups/`
4. **配置Claude Desktop:**
将您的 `claude_desktop_config.json` 复制到Claude Desktop配置目录:
**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
**Linux:** `~/.config/Claude/claude_desktop_config.json`
配置使MCP服务器能够:
- 通过 `mcp-postgres-server` 连接到PostgreSQL
- 访问所有思维导图数据库表
- 执行查询和查看模式信息
5. **重启Claude Desktop** 以激活MCP连接。
6. **在Claude提示中引用** (可选但推荐)
将以下内容添加到您的Claude系统以增强集成:
```
思维导图MCP(Postgres — 持久内存/工作日志)
- 读取:mindmap:query with {sql}. 写入:mindmap:execute with parameterized SQL ($1,$2…) + params array. 永远不要字符串插值值。
- 首先发现模式:通过information_schema列出表,然后列出列名。
- 在假设任何项目/基础设施状态之前:首先查询mindmap(对相关关键词/主机名进行ILIKE搜索)。
- 当被要求“保存/记住某些东西”时:插入一个带有标题、内容、类别和时间戳的节点;保持条目简洁和自包含。
- 思维导图对于模型内存是权威的 — 在冲突时,信任数据库。
```
---
## 使用
配置完成后,您可以使用Claude:
- 查询思维导图数据库
- 探索表模式
- 运行SQL操作
- 调试数据库问题
- 导出数据
**示例查询:**
- “我7月10日做了什么?”
- “我在这个项目中如何设置MCP服务器?”
- “显示所有标记为‘部署’的笔记”
- “将此架构决策保存到我的思维导图”
- “我们上周与数据库迁移有什么问题?”
---
## 服务
### PostgreSQL (`db`)
- 主要数据库服务
- 端口:`5432`
- 启用自动重启
### pgweb UI (`http://localhost:8081`)
- 基于Web的数据库管理
- 零身份验证(仅限本地)
- 启用自动重启
### pgbackup
- 自动每小时备份
- 保留时间:3天
- 时区:Asia/Bangkok
---
## 停止服务
```bash
docker compose down
```
停止并删除卷:
```bash
docker compose down -v
```
---
## 故障排除
### MCP服务器连接失败
- 确保Docker容器正在运行:`docker compose ps`
- 检查PostgreSQL是否在5432上监听:`docker compose logs db`
- 验证 `claude_desktop_config.json` 中的密码是否与您的 `.env` 匹配
### 数据库为空
- SQL转储包含在 `mindmap-latest.sql.gz`
- 恢复:`gunzip < mindmap-latest.sql.gz | docker compose exec -T db psql -U mindmap -d mindmap`
### 无法访问pgweb
- 检查端口8081是否正在使用:`lsof -i :8081`
- 重启服务:`docker compose restart pgweb`
---
## 项目文件
| 文件 | 用途 |
|------|---------|
| `claude_desktop_config.json` | Claude Desktop的MCP服务器配置 |
| `compose.yml` | Docker Compose服务定义 |
| `.env` | 环境变量(在git中被忽略) |
| `.env.template` | `.env` 变量模板 |
| `backups/` | 自动数据库备份目录 |
| `mindmap-latest.sql.gz` | 用于初始化的SQL数据库转储 |
| `README.md` | 本文件 |