aionai
Aionai is a shared, persistent working-state layer that lets multiple AI coding tools (Claude, Cursor, etc.) stay synchronized on a project by reading and writing a common notebook.
Core Context Management
Pull working state (
context_pull): Retrieve the current shared state for a project segment — open tasks, open questions, recent decisions/changes/notes, and your inbox of handoffs.Log entries (
context_log): Append decisions, changes, questions, tasks, or notes (with optional file/commit/PR refs) so other tools can see them.Resolve entries (
context_resolve): Mark an open question or task as resolved so it stops surfacing in future pulls.Search history (
context_search): Full-text search across a project's history to recover past context.Verify changes (
context_verify): Cross-checkchangeentries against Git, classifying them as merged, present-unmerged, missing, or unverified.
Handoffs Between Tools
Post handoffs (
context_handoff): Send a message to another tool's inbox (Cursor, Claude Code, Claude Desktop), with an optional doorbell notification to summon the target tool.
Roadmap & Progress Tracking
Add nodes (
roadmap_add_node): Build a hierarchical roadmap with node kinds: project, segment, phase, epic, or task — with priority and parent-child nesting.Update nodes (
roadmap_update): Change a node's status, priority, or parent.Record dependencies (
roadmap_block): Define blocking relationships between roadmap nodes.View roadmap (
roadmap_view): Display the full hierarchy with done/total rollup per node, sorted by priority.View progress (
roadmap_progress): Get a summary of done vs. total leaf work nodes per segment and overall.
Planning & Cross-Project Reuse
Get task constraints (
constraints_for_task): Retrieve decisions and open questions from a task's segment and related segments that may constrain implementation.Cross-project lookup (
project_lookup): Search another project's history to reuse past decisions and approaches.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@aionaipull context for myproject"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
aionai
A shared working-state layer for your AI coding tools. Claude, Cursor, and other MCP clients read and write one small notebook, so they stay on the same page — and you stop being the copy-paste bus between them.
One-click install for Cursor (it configures
uvx aionai). After it's added, setAIONAI_SOURCE=cursorin the server's env. If Cursor can't finduvx, see Troubleshooting; or set it up manually via Connect your tools.
The problem
You use more than one AI assistant on a project. They don't know what each other did: you tell Claude a decision, switch to Cursor, and Cursor has no idea. You end up re-explaining and copy-pasting context by hand.
Related MCP server: Agent Room
What aionai does
aionai is a tiny local MCP server that keeps a shared, persistent notebook every tool can read and write. It does three jobs:
Remember — decisions, changes, questions, and notes, organized by project.
Track — a lightweight roadmap/to-do list with progress rollup.
Hand off — post a task to another tool's inbox (with an optional "doorbell").
It does not replace your repo, docs, or git — those stay the source of truth. aionai just holds the live working state and hands each tool the slice it needs.
Install
Most portable — works on Windows, macOS, and Linux, and puts the aionai command
where GUI apps (Cursor, Claude Desktop) can find it:
pipx install aionaiAlready use uv? Skip the install entirely:
uvx aionai --helpRequires Python 3.10+. If a client later reports the launcher (aionai / uvx)
"not recognized", see Troubleshooting.
Connect your tools
Point each client at the aionai command. Give each client a distinct AIONAI_SOURCE
(so handoffs route correctly) and set AIONAI_SEGMENT to your project name.
Claude Code
claude mcp add aionai --env AIONAI_SOURCE=claude-code --env AIONAI_SEGMENT=myproject -- aionai
# or with uv: claude mcp add aionai --env AIONAI_SOURCE=claude-code -- uvx aionaiCursor — .cursor/mcp.json:
{
"mcpServers": {
"aionai": { "command": "aionai", "env": { "AIONAI_SOURCE": "cursor", "AIONAI_SEGMENT": "myproject" } }
}
}Claude Desktop — Settings → Developer → Edit Config:
{
"mcpServers": {
"aionai": { "command": "aionai", "env": { "AIONAI_SOURCE": "claude-desktop", "AIONAI_SEGMENT": "myproject" } }
}
}Restart the client after editing its config — MCP servers are launched (and their env read) when the client connects.
Use it
Add this to each tool's rules (CLAUDE.md, Cursor rules) so they do it reflexively:
Before working, call
context_pull(segment="myproject")and treat the result as the current truth. As you work,context_log(...)your decisions/changes/questions/tasks. When something is settled,context_resolve(id).
That's the whole loop: pull first, write back. Now open Cursor and it already knows what you and Claude decided — no paste.
Segments
State is organized by a dotted segment path whose first element is the project:
myproject # the whole project
myproject/backend # a layer
myproject/backend/auth # a workstreamPulling a parent includes all descendants. That one mechanism keeps an always-on space from turning into an undifferentiated blob.
The tools
tool | purpose |
| current working state + your inbox |
| append a decision/change/question/task/note |
| close a question or task |
| full-text recall over history |
| check |
| post a handoff to another tool's inbox |
| build & manage the roadmap |
| see the tree / how far along |
| decisions + open questions that constrain a task |
| reuse an approach from another project |
They also surface as slash commands (/mcp__aionai__pull, …log, …resolve, …search,
…handoff) in clients that support MCP prompts.
Optional extras
Auto-ingest commits — copy
hooks/post-commitinto a repo's.git/hooks/(setAIONAI_SEGMENT) and every commit logs itself as achange.Doorbell — set
AIONAI_DELIVERY=1in a sender's env and acontext_handoffto Cursor also summons Cursor via its deeplink (you confirm before it runs). Without it, handoffs are inbox-only. Onlycursorhas a verified deeplink today.
How it works
One SQLite database, one append-only table. Every decision, task, handoff, and
roadmap node is a row tagged with a segment and a type. History is free because
nothing is overwritten. Full-text search uses FTS5 with a LIKE fallback. The MCP
tools are thin wrappers over a plain-Python storage layer (src/aionai/store.py).
Troubleshooting
A client reports 'uvx' / 'aionai' is not recognized (or the server errors on start).
The client can't find the launcher on its PATH — common for GUI apps (Cursor, Claude
Desktop) on Windows and macOS, which don't always inherit your shell's PATH. Fixes,
best first:
Use pipx:
pipx install aionai, then set"command": "aionai". pipx puts the command where GUI apps usually find it.Point at the full path of the launcher. Find it with
where uvx(Windows) orwhich uvx(macOS/Linux), then use it verbatim, e.g.:"aionai": { "command": "C:/Users/you/AppData/Roaming/Python/Python3xx/Scripts/uvx.exe", "args": ["aionai"], "env": { "AIONAI_SOURCE": "cursor" } }Skip the launcher — run via your Python directly (after
pip install aionai):"aionai": { "command": "python", "args": ["-m", "aionai.cli"] }
Then restart the client so it re-reads the config.
Configuration
var | default | purpose |
|
| database path (share explicitly if clients don't hit the default) |
|
| who is writing ( |
|
| default project segment |
| (unset) |
|
Development
git clone https://github.com/imsm/aionai && cd aionai
pip install -e ".[dev]"
pytest
ruff check .License
Apache-2.0 © Ismail Saleh.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseBquality-maintenanceA state persistence layer that enables seamless handoffs between different AI coding assistants by maintaining a shared context bus. It provides tools for tracking summaries, next steps, and active files to ensure continuity across development sessions.Last updated3
- Alicense-qualityBmaintenanceA multi-agent collaboration layer for AI coding agents enabling real-time communication, code review, and task handoff across distributed development sessions.Last updated1726MIT
- Alicense-qualityFmaintenanceA mail-like coordination layer for coding agents, providing identities, inbox/outbox, searchable threads, and advisory file reservations to prevent conflicts in multi-agent workflows.Last updated1MIT
- AlicenseAqualityBmaintenanceA shared working-state layer for AI coding tools that provides a persistent notebook for decisions, tasks, and handoffs, enabling seamless context sharing between Claude, Cursor, and other MCP clients.Last updated13Apache 2.0
Related MCP Connectors
Shared debugging memory for AI coding agents
Adaptive plan/build/review cycles for AI coding assistants, persisted across sessions.
Coding agents from Claude Code, Cursor and Codex claim jobs and lock files on one shared board.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ismailelsaleh/aionai'
If you have feedback or need assistance with the MCP directory API, please join our Discord server