Meridian

io.github.ajc3xcPublished by GitHub account ajc3xcv1.0.2Updated Oct 24, 2026

Persistent memory, task coordination, and HITL queue for AI coding sessions.

Overview

AI-generated overview

MCP server giving AI coding sessions shared project state: task log, pinned decisions, a human-in-the-loop queue and compressed handoffs.

What you can do
  • Register sessions and load project context, sprint items and recent tasks
  • Log, list and claim tasks, including symbol-level file claims so parallel sessions can edit the same file safely
  • Record and pin decisions, and raise human-in-the-loop requests with a recommended option
  • Generate tiered handoffs so a fresh session resumes where the last one stopped
  • Browse a local dashboard with sessions, tasks, sprint board, timeline and HITL queue
  • Optionally read a connected GitHub repo (files, code search, git log, commits) on the hosted tier
When to use it
Useful when long AI coding sessions lose context, when several sessions or different MCP clients work on the same project, or when you want a shared task log and decision record that survives context resets.
Requirements
Either the hosted endpoint with OAuth sign-in or an API key sent as a Bearer Authorization header, or a self-hosted local server (binary, uv install, or source with pixi) listening on port 7878. State is stored in SQLite by default, or a Postgres URL via MERIDIAN_DB_URL; MERIDIAN_DATA_DIR and MERIDIAN_PORT are optional. Self-hosted use needs no API key.
Before you install
Hosted use requires an account and, after the 30-day trial, a paid plan ($20/mo Standard); the Pro tunnel client needs an API token. The API key is a secret. Sessions write shared state (tasks, claims, decisions, handoffs) that other sessions and teammates see, and the optional hooks modify Claude Code or Codex config files. Prebuilt binaries are unsigned and not notarized, so verify the published checksums before running them.

Installation

In SourceWeft

  1. Open Meridian in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via SSE. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.ajc3xc%2Fmeridian/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "meridian": {
      "type": "sse",
      "url": "https://usemeridian.us/mcp/sse"
    }
  }
}

README

[Meridian]

Meridian

Shared, structured project state for long-running AI coding work.

Source-available MCP server for persistent project state — shared task log, pinned decisions, human-in-the-loop queue, and tiered handoffs. Works with Claude Code, Cursor, Cline, Claude Desktop, or any MCP client.

Built-in agent memory (for example Claude Code's CLAUDE.md files and auto memory) keeps notes as files for that agent. Meridian adds a shared, queryable project record that several sessions and different MCP clients can read and update. It works alongside built-in memory rather than replacing it.

[GitHub Stars] [License: MSL-1.0] [Tests] [Docs] [Hosted] [Neon] [Server] [MCP Tools] [Live Sessions]

Why Meridian

Every AI coding session boots blind. You re-explain the architecture, re-describe the constraints, re-list what's been tried. When context fills up mid-task, detail is lost. This is context debt — and it compounds.

Meridian gives your sessions shared memory. They see the same task log, the same pinned decisions, the same goal state. When context fills up, a new session resumes from a compressed handoff. No copy-paste, no re-explaining from scratch.

[Meridian dashboard]

What it is, in 30 seconds

A local MCP server every AI session connects to. They share goal state, see each other's task log, and resume from a compressed handoff when context fills up.

Two ways to run Meridian:

  • Self-host — free forever, any team size. Clone and run in 2 commands.
  • Hosted at usemeridian.us — 30 days free (no card), then $20/mo Standard.

Quickstart

Option 1 — binary release (recommended)

Prebuilt downloads are attached to every GitHub release. They are unsigned; each release includes a SHA256SUMS file to check downloads against.

  • Windows tray app (meridian-tray.exe): a system-tray icon that runs the dashboard server. Choose Open Dashboard from the tray menu, which opens http://127.0.0.1:7878.
  • macOS tray app (meridian-tray-mac.dmg): the same tray app. The app is not notarized, so the first launch needs right-click > Open.
  • Linux: there is no tray app yet. Use the uv install below.
  • meridian.exe, meridian-linux, meridian-mac-arm64: the tunnel client only (meridian --tunnel --repo ., Pro plan and API token required). They do not serve the dashboard.

Dashboard via uv (Linux, macOS, Windows):

bash
uv tool install meridian-server
meridian

Dashboard opens at http://localhost:7878. The data directory defaults to ./data; set MERIDIAN_DATA_DIR to change it.

Pro tunnel client (optional):

bash
meridian --tunnel --repo .

Linux / macOS (installer script, uses uv):

bash
curl -fsSL https://usemeridian.us/install.sh | sh

Windows (PowerShell, installs the tunnel client meridian.exe):

powershell
irm https://usemeridian.us/install-windows.ps1 | iex

Option 2 — from source (dev setup / self-host)

Linux / macOS:

bash
git clone https://github.com/meridianmcp/Meridian
cd Meridian
./install.sh
pixi run start

Windows (PowerShell):

powershell
git clone https://github.com/meridianmcp/Meridian
cd Meridian
.\install.ps1
pixi run start

Dashboard opens at http://localhost:7878. Data persists in ./data/meridian.db.

Wire it into your AI client

Claude Code

Drop a .mcp.json at your project root.

Hosted (no install) — generate an API key at usemeridian.us/settings:

json
{
  "mcpServers": {
    "meridian": {
      "type": "http",
      "url": "https://usemeridian.us/mcp",
      "headers": { "Authorization": "Bearer sk_meridian_YOUR_KEY_HERE" }
    }
  }
}

Self-host (from source):

json
{
  "mcpServers": {
    "meridian": {
      "command": "pixi",
      "args": ["run", "python", "-m", "meridian", "--mcp"],
      "cwd": "/absolute/path/to/Meridian"
    }
  }
}

Self-host (tray app or uv install already running on port 7878):

json
{
  "mcpServers": {
    "meridian": {
      "type": "http",
      "url": "http://127.0.0.1:7878/mcp"
    }
  }
}

Use the same mcpServers key in ~/.claude.json to make it available in every project. A self-hosted server needs no API key. If you set MERIDIAN_PORT, change the port in the URL to match.

Cursor / Windsurf

Same JSON snippet — both clients read .mcp.json from the project root.

Claude Desktop

Add the same mcpServers block to:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Restart Claude Desktop. New chats have Meridian tools. If a newly deployed tool is still missing, follow the MCP tool-surface freshness guide before editing any client cache.

claude.ai web (recommended for planning chat)

A claude.ai connector cannot reach http://localhost. Pick one of these:

  • Hosted (no install): in claude.ai go to Customize > Connectors > Add custom connector, set the URL to https://usemeridian.us/mcp, and complete the OAuth prompt.
  • Self-hosted, Chrome bridge: use dnakov/claude-mcp, included as a submodule:
    bash
    git clone --recurse-submodules https://github.com/meridianmcp/Meridian
    Open chrome://extensions, enable Developer mode, click Load unpacked, and select extensions/claude-mcp. Set the bridge URL to http://localhost:7878/mcp/sse.
  • Self-hosted, public URL: expose your server over HTTPS and add https://<your-host>/mcp as the connector.

Full steps are in the browser connector guide.

Hosted tier (no install)

Sign in at usemeridian.us → Settings → MCP client setup → Generate API key → Copy config.

Or manually:

json
{"mcpServers":{"meridian":{"type":"http","url":"https://usemeridian.us/mcp","headers":{"Authorization":"Bearer sk_meridian_YOUR_KEY_HERE"}}}}

claude.ai (browser) users: no extension is needed for hosted Meridian. Add https://usemeridian.us/mcp under Customize > Connectors. See the browser connector guide.

Get your API key at usemeridian.us/settings after sign-in. Free tier: 30 days, no card, full features.

What you get

  • Dashboard at http://localhost:7878 — sessions, tasks, sprint board, swimlane timeline, HITL queue, pinned decisions.
  • MCP tools — start_session, log_task, claim_task, set_decision, pin_decision, request_hitl, generate_handoff, and ~50 more.
  • Symbol-level parallel safety — claim_file can claim a single class or function (parsed with ast / tree-sitter) so two sessions edit the same file safely; an overlapping claim is blocked with the free symbols listed.
  • Live work queue — planners inject sprint items mid-run; executors pick them up at the next item boundary via a board_change signal, no interruption.
  • HITL recommended option — request_hitl can flag a safe-default option the dashboard highlights; Enter submits it, number keys pick others.
  • GitHub hub (hosted) — connect your repo once in Settings; sessions get read_file, list_files, meridian_github_search_code, git_log, and meridian_github_get_commit injected automatically. No extra install.
  • Tiered handoffs — L0/L1/L2 compression so a fresh session can pick up where the last one stopped.
  • Webhook intake — push events from LangGraph / Autogen / custom agents into the same dashboard.
  • Works everywhere — Claude Code, Claude Desktop, Cursor, Windsurf, LangGraph, custom.

How it works

> start_session(project_id="meridian", session_name="feature-x")
  ✓ session registered · sprint loaded · 12 active tasks

> get_tasks(project_id="meridian", limit=5)
  [DONE]    backend / wire decisions_pinned table
  [PENDING] frontend / add notes vtab (claimed by session-2)

> claim_task(task_id="a1f3...")
  ✓ claimed — other sessions skip this one

State lives in data/meridian.db (SQLite) or a Postgres URL via MERIDIAN_DB_URL. No cloud required for local use.

Team coordination

Point MERIDIAN_DB_URL at a shared Postgres (Neon free tier works great). Every teammate runs their own local Meridian against the same DB — instant shared sessions, no Meridian server in the cloud.

Auto-checkpoint with hooks

One command wires Claude Code and Codex to Meridian. Every session start injects your project context automatically. Every session end snapshots completed work and writes a delta handoff.

Mac/Linux:

bash
curl -fsSL https://usemeridian.us/hooks.sh | bash

Windows:

powershell
irm https://usemeridian.us/hooks.ps1 | iex

Prompts for your Meridian server URL (default http://localhost:7878), then opens your browser to connect this machine — no project ID or API token to paste. Writes to ~/.claude/settings.json (Claude Code) or ~/.codex/config.toml (Codex). After setup, every session automatically:

  1. On start — calls POST /hooks/session-start → injects goal, sprint items, recent tasks, and pinned decisions into the session context via additionalContext.
  2. On stop — calls POST /hooks/stop → runs auto_capture and writes a delta handoff so the next session resumes from where this one ended.

No more manual start_session() calls. No lost work when context fills.

Hosted tier

StandardPro
Price$20/mo$49/mo (waitlist)
Storage1 GB included10 GB included
Compute2 CU · 100 hrs/mo4 CU · 300 hrs/mo
Bring your own Postgres✓✓
OAuth + email magic link✓✓
Extra storage$0.50 / GB-month$0.50 / GB-month
SupportEmailPriority

30-day free trial · no card required

License

MSL-1.0 — free for local and internal use at any team size. Paid license required if you host Meridian as a service for others. Converts to MIT after 6 years.

For licensing questions: [email protected]

Contributors

Built by @ajc3xc

[Add to Cursor]

Source: README.md at commit 264d33a

Tools

0
This server asks you to sign in, so SourceWeft could not read its tools without an account and has not indexed them. What a connected account sees can depend on that account and its permissions.

Version history

1
  1. v1.0.2LatestSep 16, 2026

Score

75% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.