project_query
List accessible projects, read one project by stable id, re-find a project by exact name, or inspect canonical Novel development, adaptation source, Chapter, manuscript, Voice, audit, canon, candidate, and export-readiness state.
When to use
- Use when the caller wants lightweight project discovery, one project summary, or to recover a project id by exact name before follow-up mutations.
- Use `mode=novel` plus `novel_mode` for read-only Novel workflow state and prose-bearing resources.
- Read manuscript_metadata for the document revision and manuscript_revisions with chapter_card_id for paginated checkpoint summaries before exact novel_mutate saves/restores. Follow next_cursor for more history; summaries omit full Chapter bodies.
- Use `novel_mode=changes` to inspect Chapters flagged by upstream changes and open shared manuscript proposals (Audit suggestions, prose edits); the query returns a `story_review_run(novel_operation=change_proposal, phase=review)` call per open proposal, and decisions use its `apply` phase after the author reviews the before/after.
When not to use
- Do not use for screenplay content or story-graph mutations.
Examples
- “List my projects.”
- “Read the project with id 123.”
- “Find the project named Scenario MCP Test.”
- “Read the canonical manuscript Chapter with `mode=novel`, `novel_mode=manuscript_chapter`, and `chapter_card_id`.”
- “Read saved original/adapted Novel development, including unfinished Foundation, with `mode=novel` and `novel_mode=blueprint`.”
Anti-examples
- Rewrite scene 5 in my screenplay.
Backend capabilities
project.listproject.getnovel.query
Linked resources
Tool calls may return resource_links pointing at these resource families.
project_canon_summarynovel_sourcenovel_source_unitnovel_blueprintnovel_manuscriptnovel_chapternovel_canonnovel_auditsnovel_candidatenovel_voicenovel_changes
Input schema
project_query input
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"mode"
],
"properties": {
"mode": {
"type": "string",
"enum": [
"list",
"get",
"name_exact",
"search",
"novel"
]
},
"project_id": {
"type": "integer"
},
"name": {
"type": "string"
},
"query": {
"type": "string"
},
"cursor": {
"type": [
"string",
"null"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 200
},
"novel_mode": {
"type": "string",
"enum": [
"source",
"blueprint",
"chapters",
"chapter_graph",
"manuscript",
"manuscript_metadata",
"manuscript_revisions",
"manuscript_chapter",
"candidates",
"voice",
"audit_runs",
"changes",
"canon",
"export_readiness"
]
},
"chapter_card_id": {
"type": "integer",
"minimum": 1
}
},
"allOf": [
{
"if": {
"properties": {
"mode": {
"const": "get"
}
}
},
"then": {
"required": [
"project_id"
]
}
},
{
"if": {
"properties": {
"mode": {
"const": "name_exact"
}
}
},
"then": {
"required": [
"name"
]
}
},
{
"if": {
"properties": {
"mode": {
"const": "search"
}
}
},
"then": {
"required": [
"query"
]
}
},
{
"if": {
"properties": {
"mode": {
"const": "novel"
}
},
"required": [
"mode"
]
},
"then": {
"required": [
"project_id",
"novel_mode"
]
}
},
{
"if": {
"properties": {
"mode": {
"const": "novel"
},
"novel_mode": {
"enum": [
"manuscript_chapter",
"manuscript_revisions"
]
}
},
"required": [
"mode",
"novel_mode"
]
},
"then": {
"required": [
"chapter_card_id"
]
}
}
],
"additionalProperties": false
}Output schema
project_query output
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": [
"mode"
],
"properties": {
"mode": {
"type": "string"
},
"projects": {
"type": "array",
"items": {
"type": "object"
}
},
"project": {
"type": "object"
},
"project_id": {
"type": [
"integer",
"null"
]
},
"project_name": {
"type": [
"string",
"null"
]
},
"project_mode": {
"type": [
"string",
"null"
]
},
"project_updated_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"recommended_screenplay_workflow": {
"type": [
"string",
"null"
],
"description": "Recommended screenplay_generation_run workflow for this project's template mode."
},
"template_pipeline": {
"type": "object",
"description": "Compact MCP routing hints derived from the project's template pipeline."
},
"project_summary": {
"type": [
"object",
"null"
],
"description": "Compact 'what already exists' signal for a single-project get: derived `state` (empty_project | story_outline_ready | screenplay_ready | media_ready | active_job) and `card_counts` (story_cards, scenes, episodes, screenplay, shots, media). Use it to avoid re-running a stage whose output already exists.",
"properties": {
"state": {
"type": [
"string",
"null"
]
},
"card_counts": {
"type": "object"
}
}
},
"match_count": {
"type": "integer"
},
"next_cursor": {
"type": [
"string",
"null"
]
},
"resource_links": {
"type": "array",
"items": {
"type": "object"
}
}
},
"additionalProperties": true
}← All toolsv1 · query_tool