
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
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.
Installation
In SourceWeft
- Open Meridian in the dashboard and add it to a workspace.
- Connect the required credentials. They are stored privately and never shown on public pages.
- 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.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
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.
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):
Dashboard opens at http://localhost:7878. The data directory defaults to ./data; set MERIDIAN_DATA_DIR to change it.
Pro tunnel client (optional):
Linux / macOS (installer script, uses uv):
Windows (PowerShell, installs the tunnel client meridian.exe):
Option 2 — from source (dev setup / self-host)
Linux / macOS:
Windows (PowerShell):
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:
Self-host (from source):
Self-host (tray app or uv install already running on port 7878):
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:
Open
chrome://extensions, enable Developer mode, click Load unpacked, and selectextensions/claude-mcp. Set the bridge URL tohttp://localhost:7878/mcp/sse. - Self-hosted, public URL: expose your server over HTTPS and add
https://<your-host>/mcpas 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:
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_filecan claim a single class or function (parsed withast/ 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_changesignal, no interruption. - HITL recommended option —
request_hitlcan 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, andmeridian_github_get_commitinjected 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
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:
Windows:
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:
- On start — calls
POST /hooks/session-start→ injects goal, sprint items, recent tasks, and pinned decisions into the session context viaadditionalContext. - On stop — calls
POST /hooks/stop→ runsauto_captureand 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
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
Source: README.md at commit 264d33a
Tools
0Version history
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.