Memory management system for storing and retrieving agent knowledge.
Frinus MCP Server
MCP (Model Context Protocol) server that exposes the Agents Memory Service to Claude agents. This server provides 14 tools for memory management, knowledge graph operations, working memory, stream capture, and user authentication.
Overview
The MCP Memory Server acts as a bridge between Claude agents and the Memory Service REST API. It enables agents to:
- Store and retrieve memories (episodic, semantic, procedural)
- Search memories using semantic similarity
- Manage working memory for session context
- Capture interactions to the memory stream for learning
- Register agents and projects in the knowledge graph
Requirements
- Node.js 18+
- Memory Service running at
http://localhost:8001(configurable viaMEMORY_SERVICE_URL)
Installation
npm install
npm run build
Usage
Running the Server
# Development mode
npm run dev
# Production mode
npm run build
npm start
Environment Variables
| Variable | Default | Description |
|---|---|---|
MEMORY_SERVICE_URL |
http://localhost:8001 |
URL of the Memory Service API |
FRINUS_API_KEY |
(required) | Personal API key (sk-mem-...) for authentication |
Claude Desktop Configuration
Add to your Claude Desktop config (~/.config/claude/claude_desktop_config.json):
{
"mcpServers": {
"frinus": {
"command": "node",
"args": ["/path/to/mcp/dist/index.js"],
"env": {
"MEMORY_SERVICE_URL": "http://localhost:8001",
"FRINUS_API_KEY": "sk-mem-your-key-here"
}
}
}
}
Tools Reference
Memory Tools
1. `memory_store`
Store a memory in the memory service.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
agent_id |
string | Yes | UUID of the agent storing the memory |
content |
string | Yes | The memory content to store |
memory_type |
string | No | Type: episodic, semantic, procedural (default: episodic) |
scope |
string | No | Visibility: agent, project, global (default: agent) |
importance |
number | No | Importance score 0-1 (default: 0.5) |
project_id |
string | No | Project UUID for project-scoped memories |
Memory Types:
episodic: Specific experiences and events (what happened)semantic: General knowledge and facts (what I know)procedural: How to do things (step-by-step procedures)
Example:
{
"agent_id": "ffffffff-ffff-ffff-ffff-ffffffffffff",
"content": "To deploy the service, run 'kubectl apply -f deployment.yaml' in the k8s directory",
"memory_type": "procedural",
"scope": "project",
"importance": 0.8,
"project_id": "44444444-4444-4444-4444-444444444444"
}
2. `memory_search`
Search memories by semantic similarity.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
query |
string | Yes | The search query |
agent_id |
string | No | Filter by agent UUID |
project_id |
string | No | Filter by project UUID |
memory_types |
array | No | Filter by memory types |
limit |
integer | No | Maximum results (default: 10) |
Example:
{
"query": "how to deploy kubernetes",
"project_id": "44444444-4444-4444-4444-444444444444",
"memory_types": ["procedural"],
"limit": 5
}
3. `memory_get_context`
Get relevant context for a task. Use this at the start of a task to retrieve memories that can help.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
agent_id |
string | Yes | UUID of the agent |
task_description |
string | Yes | Description of the task |
project_id |
string | No | Optional project UUID |
max_tokens |
integer | No | Maximum tokens in context (default: 2000) |
Example:
{
"agent_id": "ffffffff-ffff-ffff-ffff-ffffffffffff",
"task_description": "Update the payment API documentation",
"project_id": "44444444-4444-4444-4444-444444444444",
"max_tokens": 3000
}
4. `memory_list`
List memories for an agent, optionally filtered by type.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
agent_id |
string | Yes | UUID of the agent |
memory_type |
string | No | Filter: episodic, semantic, procedural |
limit |
integer | No | Maximum results (default: 50) |
Example:
{
"agent_id": "ffffffff-ffff-ffff-ffff-ffffffffffff",
"memory_type": "semantic",
"limit": 20
}
Graph Tools
5. `graph_register_agent`
Register an agent in the knowledge graph.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
agent_id |
string | Yes | UUID of the agent |
name |
string | Yes | Name of the agent |
agent_type |
string | Yes | Type of agent |
Example:
{
"agen
Tools (5)
memory_storeStore a memory in the memory service.memory_searchSearch memories by semantic similarity.memory_get_contextGet relevant context for a task.memory_listList memories for an agent, optionally filtered by type.graph_register_agentRegister an agent in the knowledge graph.Environment Variables
MEMORY_SERVICE_URLURL of the Memory Service APIFRINUS_API_KEYrequiredPersonal API key for authenticationConfiguration
{"mcpServers": {"frinus": {"command": "node", "args": ["/path/to/mcp/dist/index.js"], "env": {"MEMORY_SERVICE_URL": "http://localhost:8001", "FRINUS_API_KEY": "sk-mem-your-key-here"}}}}