Skip to main content
Glama
README.md
# mcp-memory-libsql

A high-performance, persistent memory system for the Model Context
Protocol (MCP) powered by libSQL. This server provides vector search
capabilities and efficient knowledge storage using libSQL as the
backing store.

<a href="https://glama.ai/mcp/servers/22lg4lq768">
  <img width="380" height="200" src="https://glama.ai/mcp/servers/22lg4lq768/badge" alt="Glama badge" />
</a>

## Features

- 🚀 High-performance vector search using libSQL
- 💾 Persistent storage of entities and relations
- 🔍 Semantic search capabilities
- 🔄 Knowledge graph management
- 🌐 Compatible with local and remote libSQL databases
- 🔒 Secure token-based authentication for remote databases

## Configuration

This server is designed to be used as part of an MCP configuration.
Here are examples for different environments:

### Cline Configuration

Add this to your Cline MCP settings:

```json
{
	"mcpServers": {
		"mcp-memory-libsql": {
			"command": "npx",
			"args": ["-y", "mcp-memory-libsql"],
			"env": {
				"LIBSQL_URL": "file:/path/to/your/database.db"
			}
		}
	}
}
```

### Claude Desktop with WSL Configuration

For a detailed guide on setting up this server with Claude Desktop in
WSL, see
[Getting MCP Server Working with Claude Desktop in WSL](https://scottspence.com/posts/getting-mcp-server-working-with-claude-desktop-in-wsl).

Add this to your Claude Desktop configuration for WSL environments:

```json
{
	"mcpServers": {
		"mcp-memory-libsql": {
			"command": "wsl.exe",
			"args": [
				"bash",
				"-c",
				"source ~/.nvm/nvm.sh && LIBSQL_URL=file:/path/to/database.db /home/username/.nvm/versions/node/v20.12.1/bin/npx mcp-memory-libsql"
			]
		}
	}
}
```

### Database Configuration

The server supports both local SQLite and remote libSQL databases
through the LIBSQL_URL environment variable:

For local SQLite databases:

```json
{
	"env": {
		"LIBSQL_URL": "file:/path/to/database.db"
	}
}
```

For remote libSQL databases (e.g., Turso):

```json
{
	"env": {
		"LIBSQL_URL": "libsql://your-database.turso.io",
		"LIBSQL_AUTH_TOKEN": "your-auth-token"
	}
}
```

Note: When using WSL, ensure the database path uses the Linux
filesystem format (e.g., `/home/username/...`) rather than Windows
format.

By default, if no URL is provided, it will use `file:/memory-tool.db`
in the current directory.

## API

The server implements the standard MCP memory interface with
additional vector search capabilities:

- Entity Management
  - Create/Update entities with embeddings
  - Delete entities
  - Search entities by similarity
- Relation Management
  - Create relations between entities
  - Delete relations
  - Query related entities

## Architecture

The server uses a libSQL database with the following schema:

- Entities table: Stores entity information and embeddings
- Relations table: Stores relationships between entities
- Vector search capabilities implemented using libSQL's built-in
  vector operations

## Development

### Publishing

Due to npm 2FA requirements, publishing needs to be done manually:

1. Create a changeset (documents your changes):

```bash
pnpm changeset
```

2. Version the package (updates version and CHANGELOG):

```bash
pnpm changeset version
```

3. Publish to npm (will prompt for 2FA code):

```bash
pnpm release
```

## Contributing

Contributions are welcome! Please read our contributing guidelines
before submitting pull requests.

## License

MIT License - see the [LICENSE](LICENSE) file for details.

## Acknowledgments

- Built on the
  [Model Context Protocol](https://github.com/modelcontextprotocol)
- Powered by [libSQL](https://github.com/tursodatabase/libsql)

TDQS

B3.3/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: create_entities and create_relations handle creation of different object types, delete_entity and delete_relation handle deletion of different object types, read_graph retrieves recent data, and search_nodes performs searches. No ambiguity exists between these operations.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with snake_case naming: create_entities, create_relations, delete_entity, delete_relation, read_graph, and search_nodes. The naming is perfectly predictable and uniform throughout the set.

Tool Count5/5

With 6 tools, this server is well-scoped for a memory/graph database system. Each tool earns its place by covering essential CRUD operations (create, delete, read/search) for both entities and relations, without being overly complex or insufficient.

Completeness4/5

The tool set provides strong coverage for core graph operations: creation and deletion of entities/relations, reading recent data, and searching. A minor gap exists in update operations (e.g., update_entity or update_relation), but agents can work around this by deleting and recreating as needed.

Maintenance

ActivityInactive
ResponsivenessNo issues