Skip to main content
Glama
StevenWangler

MCP Memory Server

README.md
# MCP Memory Server

A Model Context Protocol (MCP) server implementation that provides persistent memory capabilities for Large Language Models.

## Overview

This repository contains a reference implementation of the [Model Context Protocol](https://modelcontextprotocol.io/) Memory Server. The server implements a knowledge graph-based persistent memory system that enables LLMs to store, retrieve, and reason about information across conversations and sessions.

## Features

- **Knowledge Graph Storage**: Persistent graph-based information storage
- **Entity Management**: Create and manage entities and their relationships
- **Semantic Search**: Find relevant information using semantic similarity
- **Cross-session Memory**: Maintain context across different conversations
- **Memory Operations**: Full CRUD operations for memory management

## Installation

```bash
npm install
npm run build
```

## Usage

```bash
# Run the memory server
npx mcp-server-memory
```

## Development

```bash
npm run watch
```

This will start the server in development mode with automatic rebuilding on file changes.

## Running the Server

### Direct Execution
For development and testing, you can run the server directly:

```bash
# Build first (if not already built)
npm run build

# Run the server
node dist/index.js
```

### Using npm binary
After building, you can use the npm binary name:

```bash
npx mcp-server-memory
```

### Background Process
The server runs continuously and communicates via stdio (standard input/output), which is the standard for MCP servers.

## Testing with MCP Inspector

The [MCP Inspector](https://modelcontextprotocol.io/docs/tools/inspector) is an excellent tool for testing and debugging your memory server during development:

### Start the Inspector

```bash
npx @modelcontextprotocol/inspector node dist/index.js
```

This will:
1. Start a proxy server (typically on `127.0.0.1:6277`)
2. Launch the web-based inspector interface (typically at `http://127.0.0.1:6274`)
3. Provide a session token for authentication

### Using the Inspector

The Inspector provides several tabs for testing your server:

- **Resources tab**: View and test memory resources
- **Tools tab**: Test memory management tools (create, update, delete entities)
- **Prompts tab**: Test any prompt templates
- **Notifications pane**: Monitor server logs and messages

### Development Workflow

1. Make changes to `src/index.ts`
2. Run `npm run build` to rebuild
3. Start the Inspector: `npx @modelcontextprotocol/inspector node dist/index.js`
4. Test your changes in the web interface
5. Check the notifications pane for any errors

## Integration with MCP Clients

To use this server with MCP clients (like Claude Desktop), add it to your client configuration:

```json
{
  "mcpServers": {
    "memory": {
      "command": "node",
      "args": ["/path/to/your/mcp-memory-server/dist/index.js"]
    }
  }
}
```

Or if published to npm:

```json
{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": ["@modelcontextprotocol/server-memory"]
    }
  }
}
```

## Model Context Protocol

The Model Context Protocol (MCP) is an open standard that enables seamless integration between AI applications and external data sources and tools. Learn more at [modelcontextprotocol.io](https://modelcontextprotocol.io/).

## License

MIT

TDQS

B3.3/5.0

Scored across 9 tools

Disambiguation4/5

Most tools have distinct purposes focused on specific operations in the knowledge graph (e.g., create_entities vs. delete_entities, add_observations vs. delete_observations). However, 'open_nodes' and 'search_nodes' could potentially overlap in function—both involve accessing nodes, though 'open_nodes' seems to target specific nodes by name while 'search_nodes' uses queries, which might cause some confusion for an agent.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., add_observations, create_entities, delete_relations). The verbs are clear and descriptive, and there are no deviations in naming conventions across the set, making it predictable and easy to understand.

Tool Count5/5

With 9 tools, this server is well-scoped for managing a knowledge graph, covering key operations like creation, deletion, reading, and searching. The count is appropriate for the domain, providing a comprehensive set without being overwhelming or too sparse.

Completeness4/5

The tool set offers strong coverage for knowledge graph management, including CRUD operations for entities, relations, and observations, plus utilities for reading and searching. A minor gap is the lack of update tools (e.g., update_entities or update_relations), which might require workarounds, but core workflows are well-supported.

Maintenance

ActivityInactive
ResponsivenessNo issues