State Memory MCP
Local SQLite graph of tasks, decisions and blockers that coding assistants keep across sessions
Local, shared memory for coding agents, with recall, a knowledge graph and cross-agent messaging over MCP
Official · Signet-AI JavaScript Local · stdio, Streamable HTTP Knowledge and memoryDeveloper tools
62 popularity score ★ 313 ↓ 1.1k/wk
Opens the app, which asks before it adds the server.
claude mcp add --transport http signet http://localhost:3850/mcp{
"mcpServers": {
"signet": {
"url": "http://localhost:3850/mcp"
}
}
}{
"servers": {
"signet": {
"type": "http",
"url": "http://localhost:3850/mcp"
}
}
}[mcp_servers.signet]
url = "http://localhost:3850/mcp"gemini mcp add --scope user --transport http signet http://localhost:3850/mcpOpens the app, which asks before it adds the server.
npm install -g signetai
signet setup
signet daemon startclaude mcp add signet -- signet-mcp{
"mcpServers": {
"signet": {
"command": "signet-mcp",
"args": []
}
}
}{
"mcpServers": {
"signet": {
"command": "signet-mcp",
"args": []
}
}
}{
"servers": {
"signet": {
"type": "stdio",
"command": "signet-mcp",
"args": []
}
}
}[mcp_servers.signet]
command = "signet-mcp"
args = []gemini mcp add --scope user signet signet-mcpSIGNET_DAEMON_URL |
Optional: Address of the daemon that signet-mcp connects to (default http://localhost:3850). |
|---|---|
SIGNET_HOST |
Optional: Daemon host (default localhost). |
SIGNET_PORT |
Optional: Daemon port (default 3850). |
SIGNET_TELEMETRY_OPTOUT |
Optional: Set to 1 to stop the anonymous usage data sent by default. |
Signet is a memory system for coding agents that runs as a local daemon. It takes in agent transcripts and connected sources such as Obsidian vaults, GitHub, Notion, Discord and imported documents. A background process it calls Dreaming turns that material into a knowledge graph of people, projects and claims, and every claim links back to its source. The MCP server is the on-demand side of Signet: the agent can search and store memories, browse the graph, explain where a claim came from, read old session transcripts, and message other agent sessions. Signet's hooks cover the automatic side (injecting context at session start, extracting after each prompt), and the two can run together.
There are two ways to connect. The `signet-mcp` program speaks stdio, and the daemon serves Streamable HTTP at http://localhost:3850/mcp. Either way, every tool is a thin wrapper that calls the daemon's HTTP API, so the daemon has to be running. Version 0.157.3 registers 57 tools in platform/daemon/src/mcp/tools.ts: 51 named tools plus six deprecated `code_*` aliases. The groups are memory, the knowledge graph, transcripts, cross-agent messages, secrets, GraphIQ code search and a router for other MCP servers. The README never lists these tools. Through `mcp_server_call`, and through proxy tools it creates at runtime, Signet can also pass calls on to external MCP servers you have installed in it, so the tool count can grow beyond 57.
| Runtime | Node.js |
|---|
Install the Signet binary with `npm install -g signetai` (Node), `bun add -g signetai` or the install script. Runs on Linux x64/arm64, macOS x64/arm64, Windows x64 or Docker. Run `signet setup` once to create a workspace and pick an AI provider for Dreaming. Then start the daemon with `signet daemon start` before any client connects. For the GraphIQ code tools, enable the signet.graphiq plugin and index a project with `signet index <path>`.
Every tool fails without a running daemon. Over HTTP the daemon handles at most 8 MCP requests at once (503 beyond that) and accepts bodies up to 512 KiB. Calls to the daemon time out after 10 s by default. `memory_list` returns 100 rows by default, `session_search` 10 hits (max 20), `agent_message_inbox` at most 25 messages. `secret_exec` jobs run for 300 s by default, max 1800. The MCP docs also describe `agent_message_ack`, `signet_explain_claim`, `signet_code_clear` and `signet_code_briefing`, but v0.157.3 does not register them. Nightly builds may break. Slack, email, Telegram and WhatsApp sources are not yet available.
Signet suits developers who switch between Claude Code, Codex, Gemini CLI, OpenCode or Kimi Code and want one memory store on their own machine that all of them share, with a source behind every claim. It is a whole daemon with an AI provider behind it, not a small single-purpose server, so it is heavy if all you want is a notes file an agent can read. Teams can run one daemon as a shared server in team mode, where HTTP clients need a bearer token. If you don't want any tool to run shell commands, note that `secret_exec` can, so check what your client lets the agent call before you connect it.
memory_searchsignet_recallsignet_source_searchmemory_storesignet_save_notememory_getmemory_listmemory_modifymemory_forgetmemory_feedbackagent_peersagent_message_sendagent_message_inboxsecret_listsecret_execsecret_exec_statusmcp_server_listmcp_server_searchmcp_server_enablemcp_server_disablemcp_server_scope_getmcp_server_scope_setmcp_server_policy_getmcp_server_policy_setmcp_server_callsession_bypassknowledge_expandknowledge_treeknowledge_list_entitiesknowledge_get_entityknowledge_list_aspectsknowledge_list_groupsknowledge_list_claimsknowledge_list_attributesknowledge_hygiene_reportentity_listentity_getentity_aspectsentity_groupsentity_claimsentity_attributesknowledge_expand_sessionlcm_expandsession_searchsignet_session_searchsignet_code_searchsignet_code_contextsignet_code_blastsignet_code_statussignet_code_doctorsignet_code_constants