Memgpt-MCP-Server
by: Vic563
A Model Context Protocol (MCP) server that provides persistent memory and multi-model LLM support.
📌Overview
Purpose: This framework aims to provide a robust TypeScript-based MCP server that enables interaction with multiple LLM providers while effectively managing conversation history.
Overview: The MemGPT MCP Server is designed to facilitate seamless chatting with various LLMs, maintaining a comprehensive memory system that enhances user interaction and experience by remembering past conversations.
Key Features:
-
Chat Tool: Enables users to send messages to the chosen LLM provider, supporting various options like OpenAI and Anthropic, enhancing flexibility in communication.
-
Memory Management: The
get_memory
tool retrieves conversation history, with a configurable limit for memory retrieval, allowing for efficient management of past interactions. Theclear_memory
function provides an option to reset conversation history entirely. -
Flexible Provider and Model Usage: Users can easily switch between different LLM providers and models tailored for specific tasks, ensuring optimal performance and relevance in interactions. The system supports multiple models from providers like OpenAI and Anthropic, enhancing versatility.
MemGPT MCP Server
A TypeScript-based MCP server that implements a memory system for LLMs. It provides tools for chatting with different LLM providers while maintaining conversation history.
Features
Tools
-
chat
Send a message to the current LLM provider.- Takes a message parameter.
- Supports multiple providers: OpenAI, Anthropic, OpenRouter, Ollama.
-
get_memory
Retrieve conversation history.- Optional
limit
parameter to specify number of memories to retrieve. - Pass
limit: null
for unlimited memory retrieval. - Returns memories in chronological order with timestamps.
- Optional
-
clear_memory
Clear conversation history by removing all stored memories. -
use_provider
Switch between different LLM providers.- Supports OpenAI, Anthropic, OpenRouter, and Ollama.
- Persists provider selection.
-
use_model
Switch to a different model for the current provider.- Supports provider-specific models:
- Anthropic Claude Models:
- Claude 3 Series:
claude-3-haiku
: Fastest response times, ideal for tasks like customer support and content moderationclaude-3-sonnet
: Balanced performance for general-purpose useclaude-3-opus
: Advanced model for complex reasoning and high-performance tasks
- Claude 3.5 Series:
claude-3.5-haiku
: Enhanced speed and cost-effectivenessclaude-3.5-sonnet
: Superior performance with computer interaction capabilities
- Claude 3 Series:
- OpenAI:
gpt-4o
,gpt-4o-mini
,gpt-4-turbo
- OpenRouter: Any model in
provider/model
format (e.g.,openai/gpt-4
,anthropic/claude-2
) - Ollama: Any locally available model (e.g.,
llama2
,codellama
)
- Anthropic Claude Models:
- Persists model selection.
- Supports provider-specific models:
Development
Install dependencies:
npm install
Build the server:
npm run build
For development with auto-rebuild:
npm run watch
Installation
To use with Claude Desktop, add the server config:
- On MacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- On Windows:
%APPDATA%/Claude/claude_desktop_config.json
Example config:
{
"mcpServers": {
"letta-memgpt": {
"command": "/path/to/memgpt-server/build/index.js",
"env": {
"OPENAI_API_KEY": "your-openai-key",
"ANTHROPIC_API_KEY": "your-anthropic-key",
"OPENROUTER_API_KEY": "your-openrouter-key"
}
}
}
}
Environment Variables
OPENAI_API_KEY
— Your OpenAI API keyANTHROPIC_API_KEY
— Your Anthropic API keyOPENROUTER_API_KEY
— Your OpenRouter API key
Debugging
Since MCP servers communicate over stdio, debugging can be challenging. Use the MCP Inspector:
npm run inspector
The Inspector provides a URL to access debugging tools in your browser.
Recent Updates
Claude 3 and 3.5 Series Support (March 2024)
- Added support for latest Claude models:
- Claude 3 Series (Haiku, Sonnet, Opus)
- Claude 3.5 Series (Haiku, Sonnet)
Unlimited Memory Retrieval
- Added support for retrieving unlimited conversation history.
- Use
{ "limit": null }
with theget_memory
tool to retrieve all stored memories. - Use
{ "limit": n }
to retrieve the n most recent memories. - Default limit is 10 if not specified.