Signet

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

Connect your client

Local (once it is running)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

Claude CodeTerminal
claude mcp add --transport http signet http://localhost:3850/mcp
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "signet": {
      "url": "http://localhost:3850/mcp"
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "signet": {
      "type": "http",
      "url": "http://localhost:3850/mcp"
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.signet]
url = "http://localhost:3850/mcp"
Gemini CLITerminal
gemini mcp add --scope user --transport http signet http://localhost:3850/mcp
Local (npm)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

FirstTerminal
npm install -g signetai
signet setup
signet daemon start
Claude CodeTerminal
claude mcp add signet -- signet-mcp
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "signet": {
      "command": "signet-mcp",
      "args": []
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "signet": {
      "command": "signet-mcp",
      "args": []
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "signet": {
      "type": "stdio",
      "command": "signet-mcp",
      "args": []
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.signet]
command = "signet-mcp"
args = []
Gemini CLITerminal
gemini mcp add --scope user signet signet-mcp

Settings 4

SIGNET_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.

What it does

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.

What it needs

RuntimeNode.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>`.

Limits

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.

Who it suits

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.

Tools 51 of 57

memory_search
Searches stored memories by keyword and vector similarity, with filters
signet_recall
Explicit Signet recall, meant for Codex in place of the generic search
signet_source_search
Searches source-backed material: imported docs, Obsidian, Codex memory, transcripts
memory_store
Saves a new memory as evidence, with recall hints
signet_save_note
Writes a short note into Codex's native memory folder
memory_get
Fetches one memory by ID
memory_list
Lists memories, with paging and filters
memory_modify
Edits a memory and records a reason for the change
memory_forget
Marks a memory as forgotten (soft delete) with a reason
memory_feedback
Rates how useful injected memories were in this session
agent_peers
Lists active sessions of other agents
agent_message_send
Sends a message to another agent session, broadcasts to all, or relays over ACP
agent_message_inbox
Reads messages other agents have sent
secret_list
Lists the names of stored secrets, never their values
secret_exec
Queues a shell command with secrets injected as environment variables
secret_exec_status
Checks a queued secret_exec job and returns its redacted output
mcp_server_list
Lists the external MCP servers installed in Signet and their tools
mcp_server_search
Searches the tools of installed MCP servers
mcp_server_enable
Turns on an installed MCP server for the current scope
mcp_server_disable
Turns off an installed MCP server for the current scope
mcp_server_scope_get
Shows scope rules for installed MCP servers
mcp_server_scope_set
Sets which harness, workspace or channel an MCP server applies to
mcp_server_policy_get
Shows how routed tools are exposed to the agent
mcp_server_policy_set
Changes the tool exposure policy and expansion limits
mcp_server_call
Calls a tool on an installed external MCP server
session_bypass
Turns Signet's automatic hooks off or on for one session
knowledge_expand
Returns the graph context around one entity: aspects, attributes, related memories
knowledge_tree
Shows a compact outline of one entity's part of the graph
knowledge_list_entities
Lists top-level entities in the knowledge graph
knowledge_get_entity
Looks up one entity by name and summarises it
knowledge_list_aspects
Lists the aspects under an entity
knowledge_list_groups
Lists the groups inside an aspect
knowledge_list_claims
Lists the claim keys inside a group
knowledge_list_attributes
Lists the saved observations under one claim, current or all
knowledge_hygiene_report
Reports likely cleanup work in the graph, such as duplicates and missing fields
entity_list
Older name for knowledge_list_entities
entity_get
Older name for knowledge_get_entity
entity_aspects
Older name for knowledge_list_aspects
entity_groups
Older name for knowledge_list_groups
entity_claims
Older name for knowledge_list_claims
entity_attributes
Older name for knowledge_list_attributes
knowledge_expand_session
Returns session summaries that mention an entity
lcm_expand
Opens a node of the session history with its lineage and linked memories
session_search
Searches session transcripts, defaulting to a sub-agent's parent session
signet_session_search
Searches session transcripts only, apart from memory recall
signet_code_search
Searches the indexed project for symbols and code
signet_code_context
Reads a symbol's source and its surrounding structure
signet_code_blast
Works out what a change to a symbol would affect
signet_code_status
Shows the status of the GraphIQ index
signet_code_doctor
Checks the GraphIQ index for problems
signet_code_constants
Finds numeric and string constants shared across the project

Similar servers