samskriti-project
A local MCP server that lets multiple AI coding tools share and persist structured project state via SQLite, enabling coordination without re-explaining context when switching tools.
Record project entries (
record_project_entry): Store entries in categories likegoal,update,decision,convention,bug,task, orrejected_idea, with optional status and source agent tracking.Read project state (
get_project_state): Retrieve a readable, grouped summary of all entries for a project, optionally filtered by category.Search entries (
search_project_state): Keyword search across entry titles and content within a project.Update entries (
update_project_entry): Edit an existing entry's title, content, or status (e.g., mark a task ascompletedor a decision assuperseded).List all projects (
list_projects): View all projects currently tracked in the database.Shortcut helpers (
catchup,open,log): Quickly recap project status, see active tasks with IDs, or rapidly log a decision with an auto-derived title.Slash command support: Use
/samin Claude Code or Cursor for faster access.Automatic tool setup: Run
samskriti-project setupto configure MCP for Claude Code, Cursor, or Codex without manual JSON editing.
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., "@samskriti-projectget project state for demo"
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.
samskriti-shared-layer
A local MCP server that lets multiple AI coding tools share structured project state — decisions, tasks, bugs — so they coordinate without re-explaining.
Claude Code Cursor Codex
│ │ │
│ read/write │ read/write │
└──────────────┼─────────────┘
▼
┌───────────────────────┐
│ samskriti-shared-layer │ (local MCP server, stdio)
└───────────┬───────────┘
▼
┌───────────────────┐
│ SQLite store │ ~/.samskriti/ (100% local)
└───────────────────┘The problem
You make a decision with one AI tool, then switch to another and have to re-explain everything from scratch. Each assistant starts cold, with no idea what was already decided, tried, or rejected. This server gives them a shared, structured ledger of your project so any tool can read what the others wrote.
Related MCP server: kb
Install
Install with pipx (recommended — this puts the samskriti-shared-layer command on your PATH so your AI tools can find it):
pipx install git+https://github.com/Escalate17/samskriti-shared-layerDon't have pipx? Install it first: python3 -m pip install --user pipx && python3 -m pipx ensurepath (then restart your terminal).
To verify the install worked:
samskriti-shared-layer --helpIf you see the help text, you're ready to connect it.
Connect
Easiest: let it configure your tool for you
samskriti-shared-layer setup # Claude Code
samskriti-shared-layer setup --cursor # Cursor
samskriti-shared-layer setup --codex # Codex
samskriti-shared-layer setup --all # all threeThis writes the MCP config block into the right file for you (backing up any existing config first), so you don't have to hand-edit JSON. Then fully quit and reopen your tool — MCP servers are loaded only when the tool starts, so a running session won't see it until you restart.
Or add it manually
Add the server to your AI tool's MCP config, then fully restart the tool.
Claude Code (~/.claude.json):
{
"mcpServers": {
"samskriti-shared-layer": {
"command": "samskriti-shared-layer",
"args": []
}
}
}Cursor (~/.cursor/mcp.json):
{
"mcpServers": {
"samskriti-shared-layer": {
"command": "samskriti-shared-layer",
"args": []
}
}
}Codex (~/.codex/config.toml):
[mcp_servers.samskriti-shared-layer]
command = "samskriti-shared-layer"
args = []If your tool can't find the command, it's a PATH issue — run
which samskriti-shared-layerto get the full path, and use that full path as thecommandvalue instead.
Verify it's connected
In Claude Code, type /mcp — you should see samskriti-shared-layer listed with its 8 tools. (Cursor and Codex have similar MCP status indicators in their settings.)
Tools
record_project_entry — store an entry (goal, update, decision, convention, bug, task, rejected_idea).
get_project_state — read a readable summary, grouped by category.
search_project_state — keyword search across entries.
update_project_entry — edit an entry's title, content, or status.
list_projects — list all tracked projects.
Plus three shortcuts — catchup, open, and log — for the most common actions. See Helper commands below.
Already installed? Run
pipx reinstall samskriti-shared-layerto pick up the new commands. If you installed an earlier build (it shows up assamskriti-shared-layer-localinpipx list), migrate once:pipx uninstall samskriti-shared-layer-local && pipx install git+https://github.com/Escalate17/samskriti-shared-layer.
Faster access: a /sam slash command
Typing "use the samskriti-shared-layer MCP …" every time is tedious. Both Claude Code and
Cursor support custom slash commands — Markdown prompt files you drop in a folder.
They don't bind directly to a tool, but they inject a prompt that tells the agent to use
this server, so /sam <message> does the right thing. (Codex has no slash-command
mechanism for MCP; just say "use samskriti-shared-layer to …" — the agent picks the tool.)
Claude Code — save slash-commands/claude-code/sam.md to one of:
~/.claude/commands/sam.md(available in every project), or<your-project>/.claude/commands/sam.md(that project only).
Then in Claude Code: /sam what's open or /sam log we're dropping the Redis cache.
The $ARGUMENTS placeholder in the file receives everything you type after /sam.
Cursor (1.6+) — save slash-commands/cursor/sam.md to:
~/.cursor/commands/sam.md(global), or<your-project>/.cursor/commands/sam.md(that project only).
Then type / in Cursor's Agent box, pick sam, and add your message.
No true client feature binds a slash command straight to an MCP call yet — this command file is the closest supported equivalent, and it works today.
Helper commands
Three shortcuts wrap the most common actions. You never call them by tool name directly —
you trigger them with /sam plus plain English, or just by asking in plain language.
Want to… | Tool | What it does |
Catch up |
| Recap of the project — latest entries plus how many tasks are still open. |
See what's open |
| Lists the active (open) tasks, each with its ID. |
Log a decision |
| Records a decision fast; the title is auto-derived from the text if you omit it. |
Two ways to invoke — both work:
/samslash command (Claude Code / Cursor, once you've added the command file above):/sam catch me up /sam what's open /sam log we're switching local storage to SQLiteYou type
/samfollowed by plain English. There is no standalone/catchup,/open, or/logcommand — it is always/samplus what you want.Plain language (works in any MCP tool, including Codex):
use samskriti-shared-layer to catch me up use samskriti-shared-layer to show what's open use samskriti-shared-layer to log: we're switching local storage to SQLite
Try it in 30 seconds
In tool A (e.g. Claude Code): "Record a decision in project 'demo': we're using SQLite for local storage."
In tool B (e.g. Cursor): "Get the project state for 'demo'."
Tool B reads back the decision tool A just wrote — no re-explaining.
Demo
Privacy
100% local. No cloud, no account, your data never leaves your machine. State is stored in a SQLite database under ~/.samskriti/ (override with the SAMSKRITI_HOME or SAMSKRITI_PROJECT_DB environment variable). Your AI client's own data and privacy policies still apply.
How this fits
This is one of three things I maintain under the name Samskriti, and they share a premise: the state that matters should be computed and stored explicitly, not reconstructed from a transcript every time.
samskriti — an engine that computes an agent's emotional and relational state from what it has experienced, deterministically, outside any language model. C++ with a Python SDK. (paper)
samskriti-luau — the same model for Roblox, where NPCs remember how a player treated them.
samskriti-shared-layer — this repo. The same idea applied to your project rather than a character: decisions, tasks, and rejected ideas live in a structured ledger that any tool can read, instead of being re-derived from context each session.
An AI assistant starting cold on your codebase and a game character forgetting you robbed it last week are the same failure. Both are asking a model to reconstruct state it was never given. This server is the unglamorous version of the fix, and the one I use every day.
Status
Early / validating. This is a working prototype being tested with real workflows. Bugs, rough edges, and missing features are expected — issues and feedback are very welcome.
License
MIT — see LICENSE.
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
- AlicenseAqualityBmaintenanceA portable MCP server that provides a shared persistent working state for AI coding agents, managing tasks, plans, notepads, memory, and project rules across different tools like Claude Code, OpenCode, and Cursor.623MIT
- Alicense-qualityCmaintenanceA local MCP server that provides a shared context and learning foundation across multiple AI tools (Claude, Copilot, Codex) for multiple projects, enabling persistent knowledge, decisions, and gap reflection through note storage.MIT
- Alicense-qualityDmaintenanceA local-first MCP server for coordinating parallel AI coding sessions with tools like Claude Code and Codex in a single repository.2MIT
- Alicense-qualityDmaintenanceMCP server that enables AI coding agents to communicate, share state, and coordinate work in real time via MCP tools or REST API.1305MIT
Related MCP Connectors
One shared context your team's AI tools read & write over MCP. No re-explaining. Free.
MCP server for generating rough-draft project plans from natural-language prompts.
An MCP server that gives your AI access to the source code and docs of all public github repos
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/Escalate17/samskriti-shared-layer'
If you have feedback or need assistance with the MCP directory API, please join our Discord server