Memory Cloud Protocol (MCP) Server

by OutCorp

224 downloads
Not rated
GitHub

About

Memory Cloud Protocol (MCP) Server is a backend service for persisting and coordinating agent memory, designed for use with AI agents such as Cursor. It stores memory records, API tokens, project states, and function deployment metadata in a Supabase/PostgreSQL database…

Details

Author
OutCorp
Downloads
224
Categories
Knowledge Base

- Persists memory records for Supabase projects including UUIDs, table names, RLS states, and keys
- Stores API tokens, project states, and function deployment metadata
- Logs agent tasks and output
- Provides automatic lookup of known entities to prevent repetitive errors
- Exposes REST endpoints for memory management and agent coordination

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Memory Cloud Protocol (MCP) Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Clone the repository, install dependencies with npm install, copy .env.example to .env, set up a Supabase project with the required tables, then start the server using npm run dev (development) or npm start (production). Use the provided test scripts (test-local.sh, test-railway.sh) to verify health endpoints and authentication.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "memory cloud protocol (mcp) server": {
            "mcp-server-outcorp": {
                "command": "docker",
                "args": [
                    "build",
                    "-t",
                    "mcp-server",
                    "."
                ]
            }
        }
    }
}

McpServers

{
    "mcp-server-outcorp": {
        "command": "docker",
        "args": [
            "build",
            "-t",
            "mcp-server",
            "."
        ]
    }
}

Memory Cloud Protocol (MCP) Server

A server for agent memory persistence and coordination, designed to work with AI agents like Cursor and other tools.

Features

- Persists memory records for Supabase projects, including UUIDs, table names, RLS states, and keys
- Stores API tokens, project states, and function deployment metadata
- Logs agent tasks and output
- Provides automatic lookup of known entities to prevent repetitive errors
- Exposes REST endpoints for memory management and agent coordination

Setup

1. Clone the repository
2. Install dependencies

cd mcp-server
npm install

3. Copy the .env.example file to .env and fill in your values
cp .env.example .env

4. Set up a Supabase project and create the necessary tables (see the Database Setup section below)
5. Start the server
npm run dev # for development
npm start # for production

Testing

We provide test scripts for both local and Railway deployments:

- Local testing:

./test-local.sh

- Railway testing:

./test-railway.sh

The tests verify the basic health endpoints and authentication.

API Endpoints

- POST /api/v1/memory/save: Save memory records
- GET /api/v1/memory/:project: Fetch last known memory for a project
- POST /api/v1/log/error: Save function or agent error
- POST /api/v1/dispatch: Instruct next agent action
- GET /api/v1/health: Authenticated health check
- GET /health: Public health check (no authentication required)

Database Setup

The MCP server uses Supabase/PostgreSQL as its database. You need to create the following tables in your Supabase project:

-- Create extension for UUID generation
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

-- Create memory table
CREATE TABLE IF NOT EXISTS memory (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
project_id TEXT NOT NULL,
key TEXT NOT NULL,
value JSONB NOT NULL,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

-- Create logs table
CREATE TABLE IF NOT EXISTS logs (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
project_id TEXT,
agent_id TEXT,
level TEXT NOT NULL,
message TEXT NOT NULL,
metadata JSONB,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

-- Create dispatches table
CREATE TABLE IF NOT EXISTS dispatches (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
project_id TEXT NOT NULL,
agent_id TEXT NOT NULL,
action TEXT NOT NULL,
parameters JSONB,
status TEXT NOT NULL DEFAULT 'pending',
result JSONB,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
completed_at TIMESTAMPTZ
);

-- Create indexes for faster lookups
CREATE INDEX IF NOT EXISTS memory_project_id_idx ON memory(project_id);
CREATE INDEX IF NOT EXISTS memory_key_idx ON memory(key);
CREATE INDEX IF NOT EXISTS logs_project_id_idx ON logs(project_id);
CREATE INDEX IF NOT EXISTS logs_agent_id_idx ON logs(agent_id);
CREATE INDEX IF NOT EXISTS dispatches_project_id_idx ON dispatches(project_id);
CREATE INDEX IF NOT EXISTS dispatches_agent_id_idx ON dispatches(agent_id);
CREATE INDEX IF NOT EXISTS dispatches_status_idx ON dispatches(status);

Deployment to Railway

This server is designed to be deployed on Railway.app. Follow these steps:

1. Push your code to a Git repository
2. Create a new project on Railway.app
3. Connect your Git repository
4. Add the required environment variables from .env under the "Variables" tab
5. Deploy your project

Railway will automatically build and deploy the project using the included Dockerfile and railway.json configuration.

Environment Variables for Railway

Make sure to set all the environment variables from .env in your Railway project:

- PORT (Railway sets this automatically)
- NODE_ENV=production
- SUPABASE_URL
- SUPABASE_KEY
- SUPABASE_SERVICE_KEY
- SUPABASE_DB_URL
- MCP_API_KEY
- MCP_API_URL (Your public Railway URL)

Docker

The server can be run in Docker locally:

```bash

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.