README.md•4.29 kB
# MCP Server for Zep Cloud
[](https://smithery.ai/protocol/mcp-server-zep-cloud)
MCP Server for Zep Cloud provides a bridge between LLM clients and the Zep Cloud API, enabling memory management for AI assistants.
## Overview
An MCP server for storing and retrieving user memories, preferences, procedures, and factual relationships through the Zep Cloud API. It acts as a semantic memory layer that enables AI assistants to maintain context about users across conversations.
## Tools
1. **User Management**:
   - `create_user`: Create a new user in Zep Cloud
   - `get_user`: Get details of a user
   - `update_user`: Update a user's metadata
   - `delete_user`: Delete a user
   - `list_users`: List all users
2. **Graph Operations**:
   - `search_graph`: Search a user's memory graph
   - `add_graph_data`: Add data to a user's memory graph
3. **Connectivity**:
   - `check_connection`: Check connection status with the Zep Cloud API
## Environment Variables
| Name | Description | Default Value |
|------|-------------|---------------|
| `ZEP_API_KEY` | API key for the Zep Cloud service | None |
| `MCP_HOST` | Host to bind the server to | `0.0.0.0` |
| `MCP_PORT` | Port to run the server on | `8080` |
## Installation
### Using Smithery
```bash
npx @smithery/cli install mcp-server-zep-cloud --client claude
```
### Manual Installation with Claude Desktop
1. Clone this repository:
```bash
git clone https://github.com/yourusername/mcp-server-zep-cloud.git
cd mcp-server-zep-cloud
```
2. Install dependencies:
```bash
pip install -r config/requirements.txt
```
3. Configure Claude Desktop by adding to `claude_desktop_config.json`:
```json
{
  "mcpServers": {
    "zep-cloud": {
      "command": "python",
      "args": ["/path/to/mcp-server-zep-cloud/core/run_server.py"],
      "env": {
        "ZEP_API_KEY": "your_api_key_here"
      }
    }
  }
}
```
The configuration file is located at:
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
### Using Docker
A Dockerfile is available for building and running the MCP server:
```bash
# Build the container
docker build -t mcp-server-zep-cloud .
# Run the container
docker run -p 8080:8080 \
  -e ZEP_API_KEY="your-api-key" \
  mcp-server-zep-cloud
```
## Fallback Mode
If the server cannot connect to the Zep Cloud API, it automatically starts in fallback mode:
- All API operations are simulated and return success
- No actual data is sent to or received from the Zep Cloud API
- The server remains operational, allowing client integration to function
- Warning messages are logged to indicate fallback mode
## Repository Structure
- **core/**: Core functionality files
  - `zep_cloud_client.py`: Client implementation for the Zep Cloud API
  - `zep_cloud_server.py`: MCP server providing tools for API access
  - `run_server.py`: Standalone script to run the server directly
- **scripts/**: Utility scripts for operations and testing
  - `check_user_exists.py`: Utility to check if a user exists
  - `create_specific_user.py`: Script to create test users
  - `run_server.sh` / `run_server.bat`: Shell scripts to run the server
- **tests/**: Test scripts
  - `test_zep_cloud_client.py`: Unit tests for the Zep Cloud client
  - `test_server_initialization_fixes.py`: Tests for server initialization
- **config/**: Configuration files
  - `.env.example`: Template for environment configuration
  - `requirements.txt`: Package dependencies
## Security Considerations
- **API Key Protection**: Never commit your API key to version control
- **Environment Variables**: Use environment variables for sensitive data
- **Restricted Access**: Limit the server to trusted networks
## Support for Other Clients
This MCP server is designed to work with any MCP-compatible client. It has been tested with:
- Claude Desktop
- Claude in web browser
## Development
### Running Tests
```bash
cd tests
python test_zep_cloud_client.py
python test_server_initialization_fixes.py
```
### Running in Development Mode
```bash
cd scripts
./run_server.sh
```
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.