postgres-mcp-tools
Version:
PostgreSQL-based memory system with vector search capabilities for AI applications, including MCP integration for Claude
147 lines (98 loc) • 4.48 kB
Markdown
# PostgreSQL MCP Tools
PostgreSQL-based memory system with vector search capabilities for AI applications, including MCP integration for Claude.
## Overview
This package provides a memory system built on PostgreSQL with pgvector that enables:
- Storage and retrieval of vectorized content for semantic search
- Persistent memory across sessions
- Integration with Claude through the Model Context Protocol (MCP)
- Support for multiple embedding models (OpenAI, Anthropic, or mock for testing)
## Installation
```bash
npm install -g postgres-mcp-tools
```
## Quick Start
For detailed installation instructions including troubleshooting, see [INSTALLATION.md](docs/INSTALLATION.md).
### Start PostgreSQL
```bash
# Start PostgreSQL in Docker
docker-compose up -d postgres
```
### Start the MCP Server
```bash
# Start the MCP server
docker-compose up -d mcp-server
```
### Test the Robust Transport
```bash
# Verify the robust transport functionality
npm run test-transport
```
### Configure Claude Desktop
See [CLAUDE_DESKTOP_SETUP.md](CLAUDE_DESKTOP_SETUP.md) for detailed instructions.
## Features
- **Vector Search**: Store and search content using vector embeddings
- **Multiple Embedding Models**: Support for OpenAI, Anthropic, or mock embeddings
- **MCP Integration**: Connect directly to Claude via the Model Context Protocol
- **REST API**: Access memory programmatically through HTTP endpoints
- **Docker Support**: Run everything in containers for easy deployment
## Configuration
Configuration is managed through environment variables or command-line arguments:
- `POSTGRES_HOST`: PostgreSQL host (default: localhost)
- `POSTGRES_PORT`: PostgreSQL port (default: 5432)
- `POSTGRES_USER`: PostgreSQL username (default: memory_user)
- `POSTGRES_PASSWORD`: PostgreSQL password
- `POSTGRES_DB`: PostgreSQL database name (default: memory_db)
- `EMBEDDING_MODEL`: Embedding model to use: "openai", "anthropic", or "mock" (default: mock)
- `OPENAI_API_KEY`: OpenAI API key (if using OpenAI embeddings)
- `ANTHROPIC_API_KEY`: Anthropic API key (if using Anthropic embeddings)
- `MCP_SERVER_PORT`: MCP server port (default: 3000)
- `HTTP_PORT`: HTTP API port (default: 8080)
## Docker Setup
The easiest way to run PostgreSQL MCP Tools is using Docker:
```bash
# Start everything
docker-compose up -d
# Stop everything
docker-compose down
```
## Development
```bash
# Install dependencies
npm install
# Install test dependencies
npm run update-deps
# Build the server
npm run build-server
# Run minimal tests (recommended)
npm run test:basic
# Run transport tests (may require configuration)
npm run test:transport
```
> **Note**: The test setup is configured for ESM compatibility in a primarily ESM project. If you encounter issues, try the alternate test configuration with `npm run test:alt`.
See [tests/README.md](tests/README.md) for more information on testing.
## Claude Desktop Integration
As of version 1.0.9, PostgreSQL MCP Tools now properly integrates with Claude Desktop by ensuring all debug logs go to stderr instead of stdout, maintaining proper JSON-RPC protocol communication.
### Latest Release: v1.0.11 (2025-03-23)
We've implemented a production-ready robust transport layer that handles non-JSON messages gracefully. This fixes issues where plain text log messages were causing the server to crash with JSON parsing errors.
Key improvements:
- Added error handling for non-JSON messages in the transport layer
- Implemented a robust HTTP transport that doesn't crash on invalid input
- Added global error handlers to prevent unhandled exceptions and rejections
- Improved logging to help diagnose issues
- Properly handles bidirectional communication with clients
- Maintains session information required by the MCP protocol
- Updated Claude Desktop configuration format for proper port settings
For detailed information about the robust transport implementation, see [ROBUST_TRANSPORT.md](docs/ROBUST_TRANSPORT.md).
If you previously experienced JSON parsing errors when starting the server, this update should resolve those issues.
See full [RELEASE_NOTES.md](RELEASE_NOTES.md) for all changes.
#### Upgrading to v1.0.11
If you're upgrading from a previous version, run:
```bash
npm update -g postgres-mcp-tools
```
Then update your Claude Desktop configuration as described in [CLAUDE_DESKTOP_SETUP.md](CLAUDE_DESKTOP_SETUP.md) and restart the MCP server:
```bash
npm run start-server
```
## License
MIT