
Official MCP RegistryListed
projectstate
Per-project memory for AI agents: decisions, attempts, tasks, ranked recall. Paid per call via x402.
First seen 2 Oct 2026. Evidence as of 10 Oct 2026.
6
Tools
From an anonymous probe
1
Source listings
Each with its own history
0
Recorded changes
Since first seen
Tools
| Tool | Description | Behaviour |
|---|---|---|
| plan_check | Before you start something non-trivial, say what you are about to do and get back only what would change your mind: attempts that already failed at this, decisions that are still in force and constrain it, and open tasks that overlap. `intent` is one line in plain words, e.g. 'switch the cache to Redis' or 'rewrite the auth middleware to use refresh tokens'. Pass `files` if you know which paths you will touch; entries about those files are included even when the wording differs. Cheaper than repeating work that already failed once. | Not declared |
| project_open | Open (or create) a project and get a compact brief: status line, open tasks, latest active decisions and failed attempts. Call this first in a session. Omit `project` to list your projects. `project` is a slug like 'my-app' (lowercase, digits, '-', '_' or '.'). | Not declared |
| project_status | Get the project's one-line status, open tasks and last change. Pass `set_status` to overwrite the status line (e.g. 'v0.3 shipped; next: migrate auth to OAuth'). Cheap; use it for handoff notes between sessions. | Not declared |
| recall | Search the project's memory with keywords and get the few most relevant entries (ranked, active entries first, superseded ones last), trimmed to `max_chars`. Use 2-5 specific keywords (e.g. 'auth token expiry'). Filters: kind (decision|attempt|task|note), status, tags, files. Omit `query` for the most recent entries. Follow up with update(project, id, ...) or remember(...). | Not declared |
| remember | Store one fact about the project. `kind` is one of: decision (what was chosen and why), attempt (something tried; status 'worked'|'failed'|'partial'), task (status 'open'|'done'|'dropped'), note (anything else). `title` is one line; put details, reasons and error messages in `body`. `files` lists related paths. `supersedes` marks an older decision/task as replaced by this one. Identical content is stored once, so retries are safe; `idempotency_key` additionally guarantees a retry is not billed twice. | Not declared |
| update | Change an existing entry by id: set `status` (task open|done|dropped, attempt worked|failed|partial, decision active|superseded|reverted, note active|archived), replace `title`/`body`, `append` a line to the body (e.g. an outcome), replace `tags`/`files`, or `delete` it. | Not declared |
Change history
No changes since the first observation. The first snapshot is the baseline.
| Source | Listing | First seen | Last seen | Versions |
|---|---|---|---|---|
| Official MCP Registry | online.projectstate/projectstate | 2 Oct 2026 | 10 Oct 2026 | 1 |