MCP App Store
by KeenEthics
Descry icon

Descry

By Hotbrain Digital Services Corp.

Get New App Alerts

Overview

Descry is a connected creative-production workspace for books, film, games, podcasts, video, and nonfiction research. Find and retrieve project material, create and revise works and content, organize project entities and assets, manage scenes and lore, relate places and ideas, and review research sources and claims. Descry acts as the signed-in user and respects workspace and project permissions on every call.

Tools

accept_place_draft

ChatGPT
Accept the user-facing place draft after validation. Defaults to dry-run; dryRun=false requires confirm=true and reason. Generated structure is promoted through candidate-chain acceptance, and manual containment/navigation/spatial-feature draft rows are promoted to accepted state.

add_scene_presence

ChatGPT
Add a character, concrete object, or semantic object to a scene with scene-scoped placement and temporal/reference-frame metadata.

archive_publishing_presence

ChatGPT
Hide a destination from new choices while retaining its existing links and publication history. This does not disconnect an external account.

create_entity

ChatGPT
Create a canonical named subject or concept in a Project. Kinds support fiction and nonfiction: character can represent a person/character, faction an organization/faction, location a place, and lore a concept/background item. Use Project Assets instead for supporting themes, project rules, references, and miscellaneous resources. Characters require speciesEntityId; factions may include factionType and aliases.

create_entity_application

ChatGPT
Create a Work-specific interpretation or use of a shared canonical Project Entity without duplicating the Entity itself.

create_note

ChatGPT
Create a Descry note attached to exactly one project, work, or entity and return the new note ID. Set scopeKind to the attachment type and copy a real Descry ID into scopeId; never invent or use a placeholder UUID.

create_project

ChatGPT
Create a Descry project and return the new project ID.

create_project_asset

ChatGPT
Create supporting Project or Work material such as a theme, project/production rule, reference, or miscellaneous resource. Use Project Entities for the people, organizations, places, events, systems, and concepts the Project is about.

create_publishing_presence

ChatGPT
Record a shared account/feed identity, not credentials or an account connection. Reuse existing identities rather than duplicating a destination for each Work.

create_scene

ChatGPT
Create a work-scoped story/game scene. Use placeId/locationLabel to reference where the scene happens without implying characters permanently live there.

create_work

ChatGPT
Create a Descry Work and return its ID. For profile metadata, first call get_work_profile_schema with the selected creativeType, then supply only that schema's fields. Markdown-lite plain text allowed: bold, _italic_, headings, - bullets.

create_work_claim

ChatGPT
Add a factual claim or argument that the Work needs to support, challenge, or contextualize.

create_work_document

ChatGPT
Create a Content document. content_stream idempotently ensures the canonical stream for a supported channel/series; its canonical title is managed by Descry. For work_brief, use upsert_work_brief_section instead.

create_work_document_node

ChatGPT
Create and optionally write one Content node. A content_stream accepts entry nodes only: root entries plus direct variants, not deeper nesting. For Brief sections use upsert_work_brief_section. Other documents retain their ordered outlines and planning links.

create_work_document_snapshot

ChatGPT
Create an immutable recovery snapshot of one Content node before a meaningful revision.

create_work_publication

ChatGPT
Record a planned, scheduled or already-published Work/entry release. This never publishes externally. Supply a stable retry key and only known publication facts; scheduled records require a scheduled timestamp.

create_work_relationship

ChatGPT
Create a normalized lineage or creative relationship between two Works in the same project.

create_work_source

ChatGPT
Add a bibliographic or media source to a Work's research map. Sources are archived, not deleted, to preserve provenance.

create_work_taxonomy_term

ChatGPT
Create a reusable normalized classification term inside an existing project Work taxonomy.

create_world_lore_assertion

ChatGPT
Create a time-bounded or source-framed world fact. Use this for claims like a faction lived in a jungle during an old era, an item was held by a character in a memory, or a prophecy places an object in a future location.

create_world_object

ChatGPT
Create a concrete world object/item/fixture without assigning a permanent location. Use scene presences or lore assertions to place it in time and context.

create_world_time_period

ChatGPT
Create a reusable world chronology period, such as an era, age, chapter time, quest phase, or before/after event marker.

delete_entity

ChatGPT
Delete an entity. Requires explicit confirmation and a human-readable reason.

delete_entity_application

ChatGPT
Delete a Work Entity Application without deleting its linked Project Entity. Requires explicit confirmation and a reason.

delete_note

ChatGPT
Delete a note. Requires explicit confirmation and a human-readable reason.

delete_project

ChatGPT
Delete a project. Requires explicit confirmation and a human-readable reason.

delete_project_asset

ChatGPT
Delete a project asset. Requires explicit confirmation and a human-readable reason.

delete_scene

ChatGPT
Delete one scene and its scene-specific character placements. Requires explicit confirmation.

delete_work

ChatGPT
Delete a work. Requires explicit confirmation and a human-readable reason.

delete_work_document

ChatGPT
Delete a Content document and all of its nodes and snapshots. Requires explicit confirmation and a human-readable reason.

delete_work_document_node

ChatGPT
Delete a Content node and its nested child nodes and snapshots. Requires explicit confirmation and a human-readable reason.

delete_work_relationship

ChatGPT
Delete one Work relationship without deleting either Work. Requires explicit confirmation and a reason.

delete_world_lore_assertion

ChatGPT
Delete one time-bounded or source-framed world fact. Requires explicit confirmation.

delete_world_object

ChatGPT
Delete one concrete world object and dependent scene/lore rows by database constraints. Requires explicit confirmation.

delete_world_time_period

ChatGPT
Delete one reusable world chronology period. Requires explicit confirmation.

draft_complete_place

ChatGPT
Create a reviewable place draft with chained terrain, settlement, building, and interior candidates plus generated draft containment and navigation graphs. Returns candidate IDs, graph counts, and validation summaries without accepting records.

fetch

ChatGPT
Fetch an exact record from a search ID. Continue with textCursor. truncatedFields discloses prose and structural previews; textPath selects a string or a JSON object/array, returned completely over text pages. textPage.format identifies text versus JSON. Never replace from previews. Related collections are sampled; use scoped list tools. Work classifications continue through get_work.

find_place_route

ChatGPT
Find and narrate the shortest route through one place. Source and target may each be a navigation-node ID, human-readable name, linked entity, linked source record, or scene presence; ambiguous matches return candidates instead of guessing.

get_entity

ChatGPT
Get one canonical Project Entity with its Work-specific Entity Applications, notes, and inbound/outbound relationships. Overview only: relatedCollections reports totals/omissions (at most 10 per array); truncatedFields identifies text previews. Continue through the matching scoped list tool; never use a preview for a full replacement.

get_place_draft

ChatGPT
Get the user-facing draft version of one place. This combines generated draft structure, manual draft containment/navigation graph edits, accepted-version context, validation-derived canAccept status, and low-level diagnostics when requested.

get_place_spatial_context

ChatGPT
Return agent-friendly spatial features, buildability policies, traversal policies, generator rules, and technical boundary context for one place. Use this before creating roads, buildings, areas, or object placements.

get_project

ChatGPT
Get a project and its works, entities, notes, assets, and links. Overview only: relatedCollections reports totals/omissions (at most 10 per array); truncatedFields identifies text previews. Continue through the matching scoped list tool; never use a preview for a full replacement.

get_project_place

ChatGPT
Resolve a place ID or name and return an overview, diagnostic status, or bounded hierarchy for one World Atlas place. Prefer get_place_draft when reviewing or accepting user-facing draft content.

get_scene

ChatGPT
Get one story/game scene with participating characters and placements. Scene placements are scoped to the scene and should not be treated as canonical current location facts. Overview only: relatedCollections reports totals/omissions (at most 10 per array); truncatedFields identifies text previews. Continue through the matching scoped list tool; never use a preview for a full replacement.

get_work

ChatGPT
Get a Work overview and Publishing links, including direct/inherited destinations and roles before any publication. publishingCursor continues links; classificationsCursor continues classificationsPage. get_work_content reads authored bodies. Related arrays are samples (at most 10); null totals are unknown. Continue through scoped lists; never replace from previews.

get_work_brief

ChatGPT
Read the canonical Brief outline and a selected section body page. Continue with bodyCursor and the same nodeId. Purpose, audience, contributors and packaging are Brief sections, not profile fields. Reading never creates sections. pagination identifies documentCursor, outlineCursor and snapshotCursor continuation.

get_work_content

ChatGPT
Read canonical Content: paged documents, outline, selected body and snapshots. Continue with bodyCursor and the same nodeId; stale text is refused. Read every body page before replacement. Exact documentId/nodeId are independent of metadata pages. Without nodeId, resume the most recently updated node (ties: position then ID). pagination supplies documentCursor, outlineCursor and snapshotCursor.

get_work_profile_schema

ChatGPT
Call this before supplying profile to create_work or update_work_profile. It returns the complete patch schema for exactly one Work creative type so unrelated profile fields do not occupy normal tool discovery.

get_work_research

ChatGPT
Read a bounded research overview with database counts, or page sources, claims, evidence, queues or CSL. Use collection + recordId for exact paged JSON; textPath selects a string, object or array. Continue with cursor (collection) or textCursor (body); never replace from previews.

list_entities

ChatGPT
List canonical named subjects and concepts in a Project—such as people or characters, organizations or factions, places, events, systems, and ideas—optionally filtered by project, kind, status, or text query. Use Project Assets for supporting themes, rules, references, and resources. Results use stable ID-order pages; pass nextCursor as cursor with the same filters. Related arrays are previews.

list_entity_applications

ChatGPT
List Work-specific interpretations or uses of shared canonical Project Entities. Results use stable ID-order pages; pass nextCursor as cursor with the same filters. Related arrays are previews.

list_notes

ChatGPT
List Descry notes, optionally filtered by project, work, entity, kind, or text query. Results use stable ID-order pages; pass nextCursor as cursor with the same filters. Related arrays are previews.

list_project_assets

ChatGPT
List supporting Project or Work material—theme, rule, reference, or other resource—optionally filtered by project, asset type, status, or text query. Canonical subjects and concepts belong in Project Entities. Results use stable ID-order pages; pass nextCursor as cursor with the same filters. Related arrays are previews.

list_project_places

ChatGPT
List graph-aware World Atlas place aggregates for a project. Use this before raw generation tools when a user asks what places, spaces, geography, buildings, interiors, containment graphs, or navigation graphs exist.

list_projects

ChatGPT
List Descry projects, optionally filtered by status. Results use stable ID-order pages; pass nextCursor as cursor with the same filters. Related arrays are previews.

list_publishing_presences

ChatGPT
List reusable project account/feed identities. These contain no credentials and do not authorize external publishing. Cursor pages are ordered by update time and ID.

list_scene_presences

ChatGPT
List scene-scoped character/object/semantic-object placements with temporal reference-frame metadata. These are moment facts, not permanent work-level location facts. Results use stable ID-order pages; pass nextCursor as cursor with the same filters. Related arrays are previews.

list_scenes

ChatGPT
List work-scoped story/game scenes. Scenes are moment-specific units for books, game quests, cutscenes, encounters, or ad hoc planning; character presence here does not imply permanent place presence. Results use stable ID-order pages; pass nextCursor as cursor with the same filters. Related arrays are previews.

list_work_content_stream

ChatGPT
Read 50 bounded entry previews, optionally one entry body page (continue with bodyCursor and the same nodeId), its direct variants and 20 snapshots. Use returned cursors for entries, variants and revisions. Entries are root items with one level of variants, never sub-Works; use existing Content node tools to write them.

list_work_publications

ChatGPT
Read bounded manual publication history for a Work or one exact Content entry/variant. No provider payloads, credentials, or external requests are returned.

list_work_relationships

ChatGPT
Page incoming and outgoing lineage, adaptation, edition, and related-Work edges in stable ID order. Continue using cursor with the same filters; long notes are disclosed previews.

list_work_taxonomies

ChatGPT
Page up to 10 normalized Work facets with up to 50 terms each. Select taxonomyKey and pass termCursor for more terms; cursor continues facets. Long descriptions are disclosed previews.

list_works

ChatGPT
List Descry works by project, type, parent or classifications. Text query is a case-insensitive literal substring of an individual title, logline or classification term name. Use nextCursor with the same filters. Classifications are previews; get_work pages them completely.

list_workspaces

ChatGPT
List personal workspaces, teams, and project-only collaboration scopes available to this connector user. One workspace is active per OAuth connection.

list_world_generation_templates

ChatGPT
List procedural world generation templates for terrain sites, settlements, buildings, and interiors.

list_world_lore_assertions

ChatGPT
List time-bounded or source-framed world facts about character/object locations, possessions, state, identity, relationships, and event participation. Results use stable ID-order pages; pass nextCursor as cursor with the same filters. Related arrays are previews.

list_world_objects

ChatGPT
List real world objects/items/fixtures. Object rows do not carry a single canonical current location; use scene presences for moment placement and lore assertions or entity links for baseline facts. Results use stable ID-order pages; pass nextCursor as cursor with the same filters. Related arrays are previews.

list_world_time_periods

ChatGPT
List reusable world chronology periods for time-bounded lore assertions. Results use stable ID-order pages; pass nextCursor as cursor with the same filters. Related arrays are previews.

remove_scene_presence

ChatGPT
Remove one scene-scoped presence/placement record. Requires explicit confirmation.

remove_work_claim_evidence

ChatGPT
Remove one claim-to-source evidence link without deleting the source or claim. Requires explicit confirmDestroy=true.

restore_work_document_snapshot

ChatGPT
Restore a Content node from an immutable snapshot. The current node is snapshotted first, so the restore is recoverable.

select_workspace

ChatGPT
Select the personal, team, or shared-project workspace used by subsequent calls from this OAuth connection.

set_work_claim_evidence

ChatGPT
Create or update a supports, challenges, or context link between a claim and a source in the same Work.

set_work_classifications

ChatGPT
Replace selected normalized Work facets. Omitted taxonomies are preserved; an explicit empty termKeys list clears that taxonomy.

update_entity

ChatGPT
Update a canonical Project Entity. Provide complete replacement values for editable fields. Use Project Assets for supporting themes, project rules, references, and resources. This is a full replacement: read the current record first and supply every value to retain; omitted optional fields are cleared or reset.

update_entity_application

ChatGPT
Update the complete editable definition of a Work Entity Application. This is a full replacement: read the current record first and supply every value to retain; omitted optional fields are cleared or reset.

update_note

ChatGPT
Update a note. Provide complete replacement values and exactly one real project, work, or entity attachment using scopeKind and scopeId. This is a full replacement: read the current record first and supply every value to retain; omitted optional fields are cleared or reset.

update_project

ChatGPT
Update a project. Provide the complete replacement values for the editable project fields. This is a full replacement: read the current record first and supply every value to retain; omitted optional fields are cleared or reset.

update_project_asset

ChatGPT
Update supporting Project or Work material. Provide complete replacement values; canonical subjects and concepts belong in Project Entities. This is a full replacement: read the current record first and supply every value to retain; omitted optional fields are cleared or reset.

update_publishing_presence

ChatGPT
Replace a shared Presence identity. Supply all identity fields; omitted handle/URL are cleared. This affects the same destination linked by all Works; published provenance is retained. This is a full replacement: read the current record first and supply every value to retain; omitted optional fields are cleared or reset.

update_scene

ChatGPT
Patch a Work-scoped story/game scene. Only supplied fields change; omission preserves, null clears nullable fields, and {} clears a JSON field.

update_scene_presence

ChatGPT
Patch one scene-scoped character/object/semantic placement. Only supplied fields change; omission preserves, null clears nullable fields, and {} clears a JSON field. Changing subject kind requires explicitly clearing the previous subject ID.

update_work

ChatGPT
Patch Work title, hierarchy, Stage, State, and Summary (logline). Omitted fields survive; null clears parent/position and an empty logline clears Summary. Purpose and audience belong in the Brief. This tool never changes profile metadata or creative type. Markdown-lite plain text allowed: bold, _italic_, headings, - bullets.

update_work_claim

ChatGPT
Patch claim text, notes, or review status. Use status=rejected instead of deleting a claim.

update_work_document

ChatGPT
Patch a canonical Content document. Omitted fields are preserved; set isPrimary=true to make it the Work's primary document.

update_work_document_node

ChatGPT
Patch a Content node's structure, title, authored body, status, or order. Omitted fields are preserved; use null to clear parentNodeId or linkedSceneId.

update_work_profile

ChatGPT
Patch Work profile metadata. First identify the Work's creativeType and call get_work_profile_schema for it. Omitted keys stay unchanged; null clears scalar keys; [] clears list keys. Markdown-lite plain text allowed: bold, _italic_, headings, - bullets.

update_work_publication

ChatGPT
Record an allowed manual state transition. Omitted facts survive. Published records may only be withdrawn; their provenance cannot be rewritten. Publishing/recovery states belong to future provider operations, not this tool.

update_work_source

ChatGPT
Patch source metadata or set status=archived. Omitted fields stay unchanged; null clears optional scalar fields.

update_world_lore_assertion

ChatGPT
Patch a time-bounded or source-framed world fact. Only supplied fields change; omission preserves, null clears nullable fields, and {} clears a JSON field.

update_world_object

ChatGPT
Patch a concrete world object without changing scene placement facts. Only supplied fields change; omission preserves, null clears nullable fields, and {} clears a JSON field.

update_world_time_period

ChatGPT
Patch a reusable world chronology period. Only supplied fields change; omission preserves, null clears nullable fields, and {} clears a JSON field.

upsert_work_brief_section

ChatGPT
Create or replace one nonempty canonical Brief section. Section identity is stable; use Content snapshot tools before a consequential rewrite.

validate_place_draft

ChatGPT
Validate whether one place draft can be accepted. Readiness is derived from canAccept, blockers, and warnings; there is no separate stored ready status.

validate_place_spatial_proposal

ChatGPT
Check proposed building, road, path, area, landmark, object, or character geometry against place spatial features, buildability policies, restricted terrain, no-standard-build zones, and intentional override rules.

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

Similar Apps