Pizza Developer
Server Details
Coding agents are fast, but they forget the plan when a session ends. Pizza Developer keeps it for them.
You write down Ideas. Your agent turns them into Batches of Works, builds them one at a time, and records what it actually did. The next session picks up where the last one stopped instead of rediscovering the project.
You stay in charge of how the work happens. Instructions tell the agent how you want things built. Workflows set the route each kind of request takes. Rules refuse a write that breaks them. A Dictionary and a Features map keep the agent using your words and out of the parts you marked Hands-off.
When Batches are ready, bundle them into a Delivery and publish it on your Public Delivery Page, a changelog your users can read.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- Pizza Developer
TDQS
Scored across 64 tools
Most tools have detailed, differentiated descriptions, but the set is large and several neighboring concepts are easy to confuse, such as begin_work vs start_workflow vs resume_workflow, finish_work vs report_workflow_step, and create_work vs create_batch_plan. The generic get/archive/unarchive/reorder tools rely on kind parameters, which adds further selection ambiguity.
The dominant pattern is consistent verb_noun naming across create_, update_, delete_, list_, and workflow lifecycle operations. The main deviations are bare verbs like get, archive, unarchive, and reorder, plus generic kind-based operations instead of resource-specific readers in some cases.
Sixty-four tools is far too many for an agent-facing set, even for a broad planning and delivery platform. Many operations are split across create/update/delete/archive/list/get tools, inflating the surface and increasing the chance of misselection.
The surface covers the domain broadly: projects, ideas, batches, works, deliveries, presentations, workflows, rules, instructions, dictionary terms, features, and public delivery settings all have lifecycle operations. Coverage is close to complete, with only minor gaps such as some resources being reachable only through generic get/list tools.
Publisher details
- Operator
- Pizza Developer
- Operator website
- https://pizzadeveloper.com · Publisher source
- Vendor relationship
- First-party
- Restrictions
- Requires a Pizza Developer account. Every account starts with a free trial, with no payment card needed.
Available Tools
64 toolsarchiveArchive recordAIdempotentInspect
Archive one record by kind and id. It leaves its active list and keeps its content; unarchive brings it back.
project: hidden from the default dashboard view but still reachable (list_projects and search still find it).
idea: for a completed idea; it leaves the active planning order and stays available through list_ideas with state archived.
delivery: keeps its record and batches but leaves the Deliveries page, the Public Delivery Page, and the showcase; readable through list_deliveries with archived=true.
dictionary_term: leaves the active dictionary; readable through list_dictionary_terms with archived=true. Only archived terms can be deleted.
info: leaves the active list and get_project_state; keeps its text and revision history. Only archived pages can be deleted.
instruction: leaves the active list and the listed instruction resources; keeps its content and revision history. Only archived instructions can be deleted. During an active workflow run, accepted only in its self-improvement stage.
workflow: for a workflow the vibe coder no longer uses; it stops being offered for new runs, an open run of it continues, and its history stays.
Inputs: id (required), kind (required).
begin_workBegin workAInspect
Begin repository implementation in one boundary call. Pass workId to claim that Work, or projectId to resume the active Work or claim the next ordered one. Each open workflow run builds its own Batch; pass runId to work in a specific run when several are open. If nothing is developing there, the next planned batch is started automatically when it contains implementable work. Returns the Work brief and the project's own instruction documents that apply to it.
Inputs: runId, workId, projectId.
cancel_workflowCancel workflow runADestructiveInspect
Cancel an open workflow run without deleting its recorded route or measurements. A truthful reason is required.
Inputs: runId (required), reason (required).
check_rulesCheck rulesARead-onlyInspect
Check a draft against the rulesets on the current step of an open workflow run, without saving it and without refusing. Rules are checked by TypeSafe, a separate provider: a check sends it the draft record, the text of each Rule, and the project context a Rule refers to, such as Dictionary terms, Features, and declined Ideas, and never the account name, email address, or identifier. Rules run only inside workflow runs: runId names the run, and record.kind picks idea, batch, work, or delivery, which must be the kind of write that step's connection checks. Pass a record's id to start from the saved record; any fields you pass override the saved values. Batch rules check the plan, so a saved Batch can be rechecked only until one of its Works is done. Returns passed and failed rules, each with its probability (a rule passes at 0.75 or above), any rules that could not be checked with the reason, and how many rules were sent to TypeSafe (sentToTypeSafe) or answered from saved verdicts (fromSavedVerdicts). Unchanged records reuse earlier verdicts.
Inputs: runId (required), record (required), projectId (required).
create_batch_planPlan batchAInspect
Create a planned batch and its planned works in one call. This is the normal way to plan a batch once its scope is agreed. The batch name is 1 to 3 lowercase words joined by single hyphens, like dark-mode-toggle. The batch takes the next sequential number and queue position; works start planned in the order given, and the result carries each work's batch-scoped reference (like 4-1), ready for commit messages. create_work adds a Work to an existing Batch. When several workflow runs wait for a Batch, pass runId to plan it for that run. In a workflow run, this completes the planning step (and an open Evaluate-the-idea step), and edgeId can name the Batch stage route so no separate resume_workflow call is needed. Inside a workflow run, rules are checked by TypeSafe, a separate provider, which receives the record, the text of each Rule, and the project context a Rule refers to.
Inputs: name (required), works (required), projectId (required), runId, +3 more.
create_deliveryCreate deliveryAInspect
Create a shipped public delivery from selected undelivered batches: batches no other delivery carries, including ready Batches of several finished workflow runs. Supply its name (a free-form label; a release number like 2.4.0 is common but not required) and a factual summary. To record a release that shipped before the project used Pizza Developer, omit batchIds and pass shippedAt, the real past ship date (ISO date or date-time); without shippedAt it ships now. A delivery without batches never completes a workflow run's Delivery stage. In a run of a workflow that starts at Delivery, any ready Batches no delivery carries can go in, and the call completes the run's Delivery stage. When the project has a workflow that starts at Delivery, create_delivery outside a workflow run is refused and the refusal names that workflow. It publishes to the Public Delivery Page and its feed, so publish must be true, set only when the vibe coder asked to publish this Delivery. Inside a workflow run, rules are checked by TypeSafe, a separate provider, which receives the record, the text of each Rule, and the project context a Rule refers to.
Inputs: name (required), publish (required), summary (required), projectId (required), +4 more.
create_dictionary_termCreate dictionary termAInspect
Create a project-scoped dictionary term: a word, its aliases, and its definition.
Inputs: word (required), projectId (required), definition (required), aliases, +1 more.
create_ideaCreate ideaAInspect
Create a project idea with a required short name of at most 20 characters. Summary and content are optional and are never generated. Impact is semantic product scope, not priority. A new idea joins at the back of the order; move it forward with reorder. A name matching a declined idea is refused. Inside a workflow run, rules are checked by TypeSafe, a separate provider, which receives the record, the text of each Rule, and the project context a Rule refers to.
Inputs: title (required), projectId (required), impact, content, +2 more.
create_infoCreate Info pageAInspect
Create an Info page: a titled page of facts about the project that are not rules or features, such as where it is listed, how its marketing is done, or which outside accounts it depends on. Titles are unique within the project. Write only what is true now, and keep the page current with update_info. Info is never attached to a workflow connection and can change at any stage of a run. Rules for how to work belong in an instruction instead.
Inputs: title (required), projectId (required), content, summary, +1 more.
create_instructionCreate instructionAInspect
Create an instruction document on a project, freely titled (there is no fixed set), with its full text when known. Titles are unique within the project. During an active workflow run, instruction changes are accepted only in its self-improvement stage. Returns its id for update_instruction.
Inputs: title (required), projectId (required), content, requestId.
create_projectCreate projectAInspect
Create a project from its details, with any Ideas the vibe coder supplied. Only the name is required; Ideas, Batches, Works, Deliveries, a Workflow, a repository, and a live URL can all be added later. Supplied Ideas keep their order, and up to the first two become planning input. Everything is validated before anything is written.
Inputs: name (required), tags, ideas, liveUrl, +3 more.
create_ruleCreate ruleAInspect
Add a rule to the end of a ruleset: one narrow statement and level must (default) or should. Rules run only inside workflow runs, where the judge is given the connection's Dictionary and Features context and the run's Idea automatically.
Inputs: text (required), rulesetId (required), level, requestId.
create_rulesetCreate rulesetAInspect
Create a ruleset with a name and optionally its rules. Write each rule as one narrow statement the record either meets or not. Rules run only inside workflow runs: a ruleset is checked when it is attached to a workflow connection (rulesetIds in update_workflow) and the write that completes that step happens.
Inputs: name (required), projectId (required), rules, requestId.
create_workCreate workAInspect
Create a Work in a Batch that is not ready. It always starts planned; begin_work starts it. In a workflow run, the Batch plan with the new Work is checked against the rulesets on the connection the run entered Batch on, until one of its Works is done; a Must rule that does not pass refuses the write. Inside a workflow run, rules are checked by TypeSafe, a separate provider, which receives the record, the text of each Rule, and the project context a Rule refers to.
Inputs: size (required), title (required), batchId (required), projectId (required), +3 more.
create_workflowCreate workflowAInspect
Create a named workflow: a route of stages that requests in the project follow. name is unique in the project; description says which requests it handles. Nodes are Start, optional Idea, Batch, optional Delivery, optional Workflow (the step that improves the Workflow itself after a run), and Finish. Start can connect to an existing Batch without Idea, and Batch can connect to Workflow or Finish without Delivery. Start can also connect to Delivery, for a workflow that only creates or adds to a Delivery: Start to Delivery to Finish, or Start to Delivery to Workflow to Finish, with no Batch node. Each edge.data must contain instructionDocumentIds (existing project document IDs) and contextKinds (features and/or dictionary; each adds only a short outline, top-level feature names or dictionary words, that the agent expands with the read tools). edge.data may also carry rulesetIds, an ordered list of the project's ruleset IDs attached to that connection; leaving it out attaches none. Select documents on connections; do not create Instructions, Dictionary, or Features nodes or put text on lines. Projects work without a Workflow.
Inputs: name (required), edges (required), nodes (required), projectId (required), +2 more.
decline_ideaDecline ideaADestructiveIdempotentInspect
Decline an idea the vibe coder decided against, with their reason in their own words. It leaves the planning order and is listed with declined ideas. Declining an already declined idea replaces its reason.
Inputs: id (required), reason (required).
delete_batchDelete batchADestructiveInspect
Delete a batch. Batches that still have works can't be deleted.
Inputs: id (required).
delete_deliveryDelete deliveryADestructiveInspect
Delete a delivery. Its batches come out of it unassigned, ready to go into another one; they are not deleted. Its release presentation is deleted with it. Deleting a shipped delivery rewrites public history on the Public Delivery Page. confirmName must equal the delivery's exact name, the free-form label it was created with. archive with kind delivery hides a delivery and keeps it.
Inputs: id (required), confirmName (required).
delete_delivery_presentationDelete delivery presentationADestructiveInspect
Delete a delivery's current release presentation, so the Public Delivery Page shows none. It stays restorable from the presentation history in the app.
Inputs: id (required).
delete_dictionary_termDelete dictionary termADestructiveInspect
Permanently delete an archived dictionary term. Active terms must be archived first.
Inputs: id (required).
delete_ideaDelete ideaADestructiveInspect
Permanently delete an archived or declined idea. Active ideas must be archived or declined first.
Inputs: id (required).
delete_infoDelete Info pageADestructiveInspect
Permanently delete an archived Info page, together with its revision history. Active pages must be archived first.
Inputs: id (required).
delete_instructionDelete instructionADestructiveInspect
Permanently delete an archived instruction document, together with its revision history. Active instructions must be archived first.
Inputs: id (required).
delete_projectDelete projectADestructiveInspect
Permanently delete a project and everything under it: Ideas, Batches, Works, Deliveries, Workflows, Rulesets, Instructions, Info, Dictionary, Features, and its Public Delivery Page. confirmName must equal the project's exact name. archive with kind project hides a project and keeps its records.
Inputs: id (required), confirmName (required).
delete_ruleDelete ruleBDestructiveInspect
Permanently delete one rule.
Inputs: id (required).
delete_rulesetDelete rulesetADestructiveInspect
Permanently delete a ruleset and its rules, and detach it from every workflow connection. confirmName must equal the ruleset's exact name.
Inputs: id (required), confirmName (required).
delete_workDelete workBDestructiveInspect
Delete a work item. confirmName must equal the work's exact title.
Inputs: id (required), confirmName (required).
delete_workflowDelete workflowADestructiveInspect
Permanently delete a workflow together with all of its runs, step reports, and revisions. Batches, Deliveries, and tool calls it touched stay. confirmName must equal the workflow's exact name. archive with kind workflow hides a workflow and keeps its history.
Inputs: projectId (required), workflowId (required), confirmName (required).
finish_workFinish workADestructiveInspect
Record completed repository implementation in one boundary call. Replaces the Work description with the factual implementedSummary and marks it done. If this closes the batch, batchSummary closes it in the same call; otherwise the response asks only for that missing summary. Calling it again on a done Work with batchSummary closes a Batch left open. A Work left planned or in progress inside a ready Batch is finished here too. Use it once implementation is complete. Inside a workflow run, rules are checked by TypeSafe, a separate provider, which receives the record, the text of each Rule, and the project context a Rule refers to.
Inputs: id (required), implementedSummary (required), metrics, batchSummary.
getGet recordARead-onlyInspect
Get one record by kind and id:
project: its own details: name, description, links, tags, Public Delivery Page settings (deliveryPageSettings, socials, publicDeliveryPage, showcase listing), and archived state. For next steps call get_project_state; for records use list_batches, search_works, list_ideas, and list_deliveries; instruction documents are the pizzadeveloper://projects/{projectId}/instructions/{documentId} resources.
batch: number, name, status, rationale, and summary.
work: the work item;
referenceis the batch-scoped name it is known by outside this app:1-2is work 2 of batch 1, the same reference a commit message carries.delivery: shipped date, rationale, summary, assigned batches, work progress, and archived state.
delivery_presentation: the delivery's current release presentation document, or null when it has none; id is the delivery's id.
idea: full summary and content.
dictionary_term: word, aliases, and definition.
info: title, summary, and full text.
instruction: title, full text, and archived state; during an open workflow run, the text that run uses.
workflow: name, description, nodes, connections, and the instruction and ruleset IDs attached to each connection.
Inputs: id (required), kind (required).
get_featuresGet featuresARead-onlyInspect
Get a project's features as a compact tree. The project name and description are the fixed root; each feature carries id, name, description, and children, with handsOff: true on protected features, which also covers every feature under them. Pass featureId to read just that feature and the features under it. Hands-off features cannot be changed. update_features needs the returned revision.
Inputs: projectId (required), featureId.
get_project_stateGet project stateARead-onlyInspect
Get the planning state needed to resume work on one project. nextAction names the tool to call next. When the project has workflows, it lists them with their open runs and nextAction is start_workflow; resume_workflow continues an open run that already covers the request. Otherwise nextAction is begin_work (resume the active Work, claim the next one, or start the next planned Batch), finish_work (close a Batch whose Works are all done, with batchSummary, on developing.finishWorkId), create_work (add a Work to a developing Batch that has none), create_batch_plan (plan from the listed Ideas), or project_complete when nothing is left. It reports only Pizza Developer records, never repository, runtime, Git, deployment, or agent presence state.
Inputs: projectId (required).
list_batchesList batchesARead-onlyInspect
List a project's batches as bounded summaries (id, number, name, status, and queue position). Call get with kind batch for rationale and summary. Batches are numbered sequentially per project (1,2,3…).
Inputs: projectId (required), limit, offset.
list_deliveriesList deliveriesARead-onlyInspect
List a project's deliveries, newest shipped first, as bounded summaries: id, name, shipped date, batch and Work counts, and whether it has a presentation. Lists active deliveries; pass archived=true for archived ones. Call get with kind delivery for rationale, summary, and assigned batches.
Inputs: projectId (required), limit, offset, archived.
list_dictionary_termsList dictionary termsARead-onlyInspect
List a project's active dictionary terms as bounded summaries (id, word, and aliases) in the vibe coder's own order. Pass archived=true to read archived terms instead. Call get with kind dictionary_term for the approved definition.
Inputs: projectId (required), limit, offset, archived.
list_ideasList ideasARead-onlyInspect
List a project's ideas in one state as bounded summaries in the vibe coder's own order, front first. state is active by default; archived ideas were completed; declined ideas were decided against and carry the reason. Only active ideas are planning input; their first two positions are the planning ideas. Call get with kind idea for full content.
Inputs: projectId (required), limit, state, offset.
list_infoList Info pagesARead-onlyInspect
List a project's Info pages as id, title, and one-line summary, in the vibe coder's own order. Info holds facts about the project that are not rules or features: where it is listed, how its marketing is done, which outside accounts it depends on. Lists active pages; pass archived=true for archived ones. Call get with kind info for a page's text.
Inputs: projectId (required), limit, offset, archived.
list_projectsList projectsARead-onlyInspect
List every project the signed-in user owns or that has been shared with them.
Inputs: limit, offset.
list_rulesetsList rulesetsARead-onlyInspect
List the project's rulesets with their rules and, in attachedTo, the workflows and connections each one is attached to. A ruleset is a name and ordered rules; each rule is one statement at level must (a failure refuses the write) or should (a failure is reported). Rules run only inside workflow runs: a ruleset is checked when it is attached to a workflow connection (rulesetIds in update_workflow) and the write that completes that step happens.
Inputs: projectId (required).
list_workflowsList workflowsARead-onlyInspect
List the project's workflows with each one's name, description, entry points (idea, batch, and/or delivery), whether it can run, and its graph. A project can have several workflows, each described by the kind of request it handles. Archived workflows are left out unless includeArchived is true.
Inputs: projectId (required), includeArchived.
reorderReorder recordsADestructiveIdempotentInspect
Set the manual order of one kind of record, first shown first. orderedIds lists the records; parentId names where they live:
project: your own projects on the dashboard; no parentId; a subset keeps every other project in place.
idea: every active Idea; parentId is the project; the first two are planning input.
batch: every planned Batch; parentId is the project; developing and ready Batches keep their place.
work: every Work in the Batch; parentId is that Batch, which must not be ready.
instruction: every active instruction; parentId is the project; during a workflow run, accepted only in its self-improvement stage.
info: every active Info page; parentId is the project.
dictionary_term: every active term; parentId is the project.
ruleset: every ruleset; parentId is the project.
rule: every rule in one ruleset; parentId is that ruleset.
Inputs: kind (required), orderedIds (required), parentId.
report_problemReport a problemAInspect
Report a problem with Pizza Developer itself (the app, not a project tracked inside it) on behalf of the signed-in vibe coder. Never send one on your own initiative: first show the vibe coder the exact message and path, and call only after they explicitly confirm that report, passing userConfirmed: true. A report cannot be read back, edited, or withdrawn once sent. Pass path when it is about a particular page (/projects/{id}), and say plainly in message what went wrong and what was expected. Docs: https://pizzadeveloper.com/docs/report-a-problem
Inputs: message (required), userConfirmed (required), path.
report_workflow_stepReport workflow stepAInspect
Report the agent client's outcome and optional measured costs for a workflow step that has no expected lifecycle tool, a failure, the self-improvement step, or the client score. A step with an expected lifecycle tool is completed by that tool, which also accepts the client metrics, so it needs no report; failed blocks a step for another attempt. Optional stages are bypassed only by choosing a configured available edge with resume_workflow before entering them; once entered, every step is required. A completed self-improvement report closes that step and its reason describes what changed and why, or why nothing did. Research content is never stored. When one route follows, the response carries the next step's instructions; when several do, choose one with resume_workflow and its instructions arrive then.
Inputs: runId (required), status (required), stepId (required), reason, +1 more.
restore_ideaRestore ideaAIdempotentInspect
Restore a declined idea to the back of the active planning order. An archived idea returns with unarchive.
Inputs: id (required).
resume_workflowResume workflow runAInspect
Reconcile and read an open workflow run, then deliver its current step. Each workflow has at most one open run; name it with runId or workflowId when several are open. Pass an available edgeId before reporting to choose a configured branch, including one that names the optional stages it bypasses. Without an edgeId, a step already delivered is re-sent in full, which is how a new session recovers its instructions; other calls return only the step's instruction titles after its first delivery.
Inputs: projectId (required), runId, edgeId, workflowId.
revert_batchRevert batchAInspect
Move a batch one step back as an undo: developing → planned, and only while every work inside it is still planned. Ready batches are frozen history and can't be reverted.
Inputs: id (required).
search_worksSearch worksARead-onlyInspect
List or find Works, newest-updated first, as trimmed rows (id, reference, title, size, status, batchId, projectId; call get with kind work for full detail). Pass projectId to list one project's Works; query searches title and description across every project you can reach, or inside that project. status is planned, in-progress, or done. reference is the batch-scoped name a Work is known by outside this app: 1-2 is work 2 of batch 1.
Inputs: limit, query, offset, status, +2 more.
start_workflowStart workflow runAInspect
Start a run of one workflow from an Idea, a planned existing Batch whose Work has not begun, or a new batch plan (name and ordered works, as in create_batch_plan). A workflow that starts at Delivery takes none of them: the run begins on its Start to Delivery connection, and create_delivery, or update_delivery adding a Batch, completes it. With batch, the Batch is planned and the run started in one call, its review step is skipped, and edgeId can name the Batch stage route; a retry while that run is open returns the same run. A Batch run governs that Batch's Work queue until it is ready. The run is pinned to the workflow's current revision and returns its current step. Each instruction body is sent once per run; a document already sent earlier in the run comes back as a uri reference. Inside a workflow run, rules are checked by TypeSafe, a separate provider, which receives the record, the text of each Rule, and the project context a Rule refers to.
Inputs: projectId (required), workflowId (required), batch, edgeId, +2 more.
unarchiveUnarchive recordAIdempotentInspect
Unarchive one record by kind and id.
project: returns to the default dashboard view.
idea: an archived idea returns to the back of the active planning order; restore_idea restores a declined one.
delivery: returns to the Deliveries page and the public surfaces it was listed on.
dictionary_term: returns to the back of the active dictionary.
info: returns to the back of the active list.
instruction: returns to the back of the active list. During an active workflow run, accepted only in its self-improvement stage.
workflow: can be edited and run again.
Inputs: id (required), kind (required).
update_batchUpdate batchADestructiveInspect
Edit a batch's name, rationale, or change summary; only supplied fields change, and an empty string clears rationale or summary. A name is 1 to 3 lowercase words joined by single hyphens, like dark-mode-toggle. Rationale is the vibe coder's stated reason for building the batch, in one or two plain sentences. Summary is what the batch changed, drafted from its recorded work, in two or three factual sentences. A ready batch refuses rationale and summary edits. Status moves through begin_work, finish_work, and revert_batch, and batch numbers are immutable.
Inputs: id (required), name, summary, rationale.
update_deliveryUpdate deliveryADestructiveInspect
Edit a delivery's own record (name, rationale, summary, ship date) and add or remove its batches. Only supplied fields change; pass an empty string to clear a text field. addBatchIds puts ready batches that no delivery carries into this one, and removeBatchIds takes batches out of it; every other batch stays. Take a batch out of its current delivery before adding it to another. shippedAt corrects when it shipped (ISO date or date-time, not in the future). The name is a free-form label and must stay non-empty and unique within its project. Returns the delivery's resulting batches. At a workflow run's Delivery stage, adding every ready Batch of the run to one existing Delivery completes the stage instead of create_delivery. In a run of a workflow that starts at Delivery, adding any ready Batch no delivery carries to an existing Delivery completes the stage. Inside a workflow run, rules are checked by TypeSafe, a separate provider, which receives the record, the text of each Rule, and the project context a Rule refers to.
Inputs: id (required), name, metrics, summary, +4 more.
update_delivery_presentationUpdate delivery presentationADestructiveInspect
Save a delivery's release presentation: scenes built only from the listed elements, played on the Public Delivery Page in the brand's style. The story comes from the delivery summary and real product copy; brand colors, radius, and font come from the product's own logo and styles. The logo uploaded on the project's public page is the only brand mark shown, and the presentation holds no source code. Release notes lead with the changes element for the delivery's headlines and show what moved with before-after or navigation. Every scene lasts at least its reading time, about 1.5 seconds plus one second per three words shown, and at least 3 seconds. Scenes last whole seconds, at most 60 seconds in total. Replaces the current presentation; earlier versions stay restorable in the app. An invalid presentation returns field-level errors to fix.
Inputs: id (required), presentation (required).
update_dictionary_termUpdate dictionary termBDestructiveInspect
Update a dictionary term. Only the fields you provide change.
Inputs: id (required), word, aliases, definition.
update_featuresUpdate featuresADestructiveInspect
Change a project's features by id: add (a feature, with optional children, under parentId or null for top level), update (name and/or description), move (to parentId, optional position), remove (the feature and every feature under it). Every feature needs a concise name and description. Changes apply in order as one atomic write against baseRevision from get_features; split a large restructure into several calls, each with the revision the previous one returned. Hands-off marks belong to the vibe coder: hands-off features and every feature under them cannot be changed, moved, removed, or added to. Stale writes are refused, as is a change to a feature the vibe coder has open for editing in the browser.
Inputs: changes (required), projectId (required), baseRevision (required).
update_handoff_noteUpdate handoff noteADestructiveInspect
Replace the handoff note on the Work being implemented, so another session can continue it: what is done, what remains, files touched, and whether changes are uncommitted. begin_work returns it to whoever resumes the Work; finish_work clears it. Pass an empty note to clear it.
Inputs: note (required), workId (required).
update_ideaUpdate ideaADestructiveInspect
Update an idea's short name of at most 20 characters, optional detail, or impact. Nothing is generated. Only supplied fields change. Order is separate: move an idea with reorder. Archiving, declining, and restoring Ideas don't run rules. Inside a workflow run, rules are checked by TypeSafe, a separate provider, which receives the record, the text of each Rule, and the project context a Rule refers to.
Inputs: id (required), title, impact, content, +1 more.
update_infoUpdate Info pageADestructiveInspect
Rename an Info page, change its summary, or rewrite its text whole. Only supplied fields change; content replaces the entire text, and an empty string clears content or summary. Earlier text stays in the page's revision history. Read the current text with get, kind info, first.
Inputs: id (required), title, content, summary.
update_instructionUpdate instructionADestructiveInspect
Rename an instruction document or rewrite its text whole. Only supplied fields change; content replaces the entire text, and an empty string clears it. Earlier text stays in the document's revision history. Read current text with get, kind instruction, first. During an active workflow run, instruction changes are accepted only in its self-improvement stage.
Inputs: id (required), title, content.
update_projectUpdate projectADestructiveInspect
Update a project's own details. Only the fields you provide change. Owner-only. Instruction documents change through update_instruction.
Inputs: id (required), name, tags, liveUrl, +2 more.
update_public_delivery_pageUpdate Public Delivery PageADestructiveInspect
Set whether the project's Public Delivery Page shows dates, whether its uploaded logo is also the project icon, and configure supported social profiles: YouTube, X, Discord, LinkedIn, Instagram, TikTok, Bluesky, Threads, Twitch, Spotify and Apple Music. Owner-only. Read current values with get, kind project. Omitted fields stay unchanged; empty strings remove profiles. Custom links are not supported. Logo and cover images are uploaded or removed only in the app (PNG/JPG, 4 MB); this tool takes no image fields. Does not publish the Public Delivery Page.
Inputs: projectId (required), xUrl, profile, youtubeUrl.
update_ruleUpdate ruleBDestructiveInspect
Edit a rule's text or level. Only supplied fields change.
Inputs: id (required), text, level.
update_rulesetUpdate rulesetADestructiveInspect
Rename a ruleset. Attach or detach it with rulesetIds on a workflow connection in update_workflow.
Inputs: id (required), name (required).
update_workUpdate workADestructiveInspect
Edit a Work's planning details. Only supplied fields change. batchId deliberately moves a planned Work. status accepts only planned, to send a started Work back to the queue; a Work starts only through begin_work and finishes only through finish_work. In a workflow run, a change to the title, description, labels, size, or Batch is checked as part of that Batch's plan against the rulesets on the connection the run entered Batch on, until one of its Works is done; a Must rule that does not pass refuses the write. Inside a workflow run, rules are checked by TypeSafe, a separate provider, which receives the record, the text of each Rule, and the project context a Rule refers to.
Inputs: id (required), size, title, labels, +3 more.
update_workflowUpdate workflowADestructiveInspect
Edit one workflow. Pass nodes and edges together to replace its graph, and name or description to change its details; omitted parts stay as they are. Nodes are Start, optional Idea, Batch, optional Delivery, optional Workflow (the step that improves the Workflow itself after a run), and Finish. Start can connect to an existing Batch without Idea, and Batch can connect to Workflow or Finish without Delivery. Start can also connect to Delivery, for a workflow that only creates or adds to a Delivery: Start to Delivery to Finish, or Start to Delivery to Workflow to Finish, with no Batch node. Each edge.data must contain instructionDocumentIds (existing project document IDs) and contextKinds (features and/or dictionary; each adds only a short outline, top-level feature names or dictionary words, that the agent expands with the read tools). edge.data may also carry rulesetIds, an ordered list of the project's ruleset IDs attached to that connection; leaving it out attaches none. Select documents on connections; do not create Instructions, Dictionary, or Features nodes or put text on lines. Updates made during a run's self-improvement stage are described in the report that closes that step. Open runs keep their frozen revision. Graph writes are refused while a vibe coder has the workflow open for editing in the browser, and archived workflows must be restored first.
Inputs: projectId (required), workflowId (required), name, edges, +2 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
Your agent ships the app. Alerts, logs, project memory and approval-gated deletes come with it.
Hand tasks, bugs and finished work to AI coding agents, and get back a write-up with evidence.
One shared project for a team's coding agents: decisions, a task board and handoffs.
Turn PRDs and product ideas into structured specs so coding agents build your intent, not theirs.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceGives AI coding agents a shared, persistent canvas they can read and edit through a compact set of tools, so they can map code, lay out plans, and revise them in validated atomic batches. Users steer by selecting cards, commenting, and answering or accepting the agent's proposals directly on the board.PolyForm Noncommercial 1.0.0
- AlicenseAqualityBmaintenanceYOUR AGENTS COLLIDE. File a FlightPlan. Run multiple coding agents without them stepping on each other. FlightPlan gives each agent the same preflight picture, lets them coordinate while plans are still cheap to change, and leaves behind what changed and why for whichever agent comes next. Across sessions. Across people. Across providers. Across time. One shared picture.66Apache 2.0
- AlicenseNot gradedqualityBmaintenanceIt gives coding agents a persistent memory of past work by recording each session, rolling the records up into day, week, month, and year notes, and serving a project brief plus keyword and semantic search. It also allows zooming into any period, tracking decisions and open threads, and keeping client work isolated in plain Markdown you own.MIT
- AlicenseNot gradedqualityBmaintenanceServes instructions and templates that make any AI coding tool plan before building, work through a project checklist in the right order, and hold a consistent standard, while all reading and writing of your code stays on your machine.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.