Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,536Letters: 14Defects: 1,322counted 2 min ago
teppi

Server definition

Hash
sha256:3382497dde410e367659840afd0242da12fae3a6547dc83c3ff34e3d21d30ecc
What it is
What a remote MCP server returned when asked what it offers: 6 tools

The blob, as servednamed by its sha256

{ "instructions": "projectstate keeps per-project memory for coding agents: decisions, attempts (what was tried and\nwhether it worked), open tasks and notes, scoped to a project slug. Typical session:\n1. project_open(project) at the start -> a short brief of status, open tasks, latest decisions and failures.\n2. plan_check(project, intent) before starting anything non-trivial -> the failed attempts, binding decisions\n and overlapping tasks that would change your plan. One call instead of guessing.\n3. recall(project, query) to look something up -> the few most relevant entries, never the whole history.\n4. remember(project, kind, title, body) whenever you decide something, try something, or finish/plan a task.\n5. update(project, id, status=...) to close tasks, mark attempts, or supersede decisions.\n6. project_status(project, set_status=...) to leave a one-line handoff note for the next session.\nEvery call is metered (prices are listed per tool in tools/list _meta.priceUsd). Writes are idempotent.", "tools": [ { "description": "Before you start something non-trivial, say what you are about to do and get back only what would\n change your mind: attempts that already failed at this, decisions that are still in force and constrain\n it, and open tasks that overlap. `intent` is one line in plain words, e.g. 'switch the cache to Redis'\n or 'rewrite the auth middleware to use refresh tokens'. Pass `files` if you know which paths you will\n touch; entries about those files are included even when the wording differs. Cheaper than repeating\n work that already failed once.", "inputSchema": { "properties": { "files": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Files" }, "intent": { "title": "Intent", "type": "string" }, "limit": { "default": 3, "title": "Limit", "type": "integer" }, "max_chars": { "default": 1200, "title": "Max Chars", "type": "integer" }, "project": { "title": "Project", "type": "string" } }, "required": [ "project", "intent" ], "title": "plan_checkArguments", "type": "object" }, "name": "plan_check", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "plan_checkOutput", "type": "object" } }, { "description": "Open (or create) a project and get a compact brief: status line, open tasks, latest active decisions and\n failed attempts. Call this first in a session. Omit `project` to list your projects.\n `project` is a slug like 'my-app' (lowercase, digits, '-', '_' or '.').", "inputSchema": { "properties": { "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Description" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Name" }, "project": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Project" } }, "title": "project_openArguments", "type": "object" }, "name": "project_open", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "project_openOutput", "type": "object" } }, { "description": "Get the project's one-line status, open tasks and last change. Pass `set_status` to overwrite the status\n line (e.g. 'v0.3 shipped; next: migrate auth to OAuth'). Cheap; use it for handoff notes between sessions.", "inputSchema": { "properties": { "project": { "title": "Project", "type": "string" }, "set_status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Set Status" } }, "required": [ "project" ], "title": "project_statusArguments", "type": "object" }, "name": "project_status", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "project_statusOutput", "type": "object" } }, { "description": "Search the project's memory with keywords and get the few most relevant entries (ranked, active entries\n first, superseded ones last), trimmed to `max_chars`. Use 2-5 specific keywords (e.g. 'auth token expiry').\n Filters: kind (decision|attempt|task|note), status, tags, files. Omit `query` for the most recent entries.\n Follow up with update(project, id, ...) or remember(...).", "inputSchema": { "properties": { "files": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Files" }, "kind": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Kind" }, "limit": { "default": 5, "title": "Limit", "type": "integer" }, "max_chars": { "default": 1500, "title": "Max Chars", "type": "integer" }, "project": { "title": "Project", "type": "string" }, "query": { "default": "", "title": "Query", "type": "string" }, "status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Status" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Tags" } }, "required": [ "project" ], "title": "recallArguments", "type": "object" }, "name": "recall", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "recallOutput", "type": "object" } }, { "description": "Store one fact about the project. `kind` is one of: decision (what was chosen and why), attempt (something\n tried; status 'worked'|'failed'|'partial'), task (status 'open'|'done'|'dropped'), note (anything else).\n `title` is one line; put details, reasons and error messages in `body`. `files` lists related paths.\n `supersedes` marks an older decision/task as replaced by this one. Identical content is stored once, so\n retries are safe; `idempotency_key` additionally guarantees a retry is not billed twice.", "inputSchema": { "properties": { "body": { "default": "", "title": "Body", "type": "string" }, "files": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Files" }, "idempotency_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Idempotency Key" }, "kind": { "title": "Kind", "type": "string" }, "project": { "title": "Project", "type": "string" }, "status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Status" }, "supersedes": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Supersedes" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Tags" }, "title": { "title": "Title", "type": "string" } }, "required": [ "project", "kind", "title" ], "title": "rememberArguments", "type": "object" }, "name": "remember", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "rememberOutput", "type": "object" } }, { "description": "Change an existing entry by id: set `status` (task open|done|dropped, attempt worked|failed|partial,\n decision active|superseded|reverted, note active|archived), replace `title`/`body`, `append` a line to the\n body (e.g. an outcome), replace `tags`/`files`, or `delete` it.", "inputSchema": { "properties": { "append": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Append" }, "body": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Body" }, "delete": { "default": false, "title": "Delete", "type": "boolean" }, "files": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Files" }, "id": { "title": "Id", "type": "integer" }, "project": { "title": "Project", "type": "string" }, "status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Status" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Tags" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Title" } }, "required": [ "project", "id" ], "title": "updateArguments", "type": "object" }, "name": "update", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "updateOutput", "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:3382497dde410e367659840afd0242da12fae3a6547dc83c3ff34e3d21d30ecc | sha256sum