Research, planning, TTRPG & conlang
51 MCP tools. Each applies to the one project the server was launched with; every mutating call is one undo step and saves immediately.
add_lexicon_words
Adds dictionary entries to a constructed language's lexicon. Each entry needs "word" and "gloss"; "part_of_speech" and "notes" are optional. Words already in the lexicon are skipped, never duplicated.
| Parameter | Type | Required | Description |
|---|---|---|---|
language | string | yes | The language's name. |
words | array | yes | The entries to add. |
Example call
{
"name": "add_lexicon_words",
"arguments": {
"language": "<language>",
"words": []
}
}
add_source
Adds a bibliographic source to the research library: either one source from title/type/citation_key/fields (CSL variable names such as author, issued, container-title, publisher, page, URL), or many at once by passing "bibtex" text (Zotero/Mendeley exports).
| Parameter | Type | Required | Description |
|---|---|---|---|
bibtex | string | no | BibTeX text to import instead of the explicit fields. |
citation_key | string | no | The short in-text handle, e.g. "tolkien1954". |
fields | object | no | CSL variable name -> value map (author, issued, publisher, ...). |
title | string | no | The work's title. |
type | string | no | The bibliographic kind token (book, article-journal, webpage, ...); defaults to book. |
Example call
{
"name": "add_source",
"arguments": {
"bibtex": "<bibtex>",
"citation_key": "<citation_key>"
}
}
apply_beat_template
Chooses the story-structure template the project plots against -- three-act (three-act), the hero's journey (heros-journey), Save the Cat! (save-the-cat), or the Snowflake method (snowflake) -- by id or display name. Then map scenes to its beats with assign_beat. Scene assignments whose beat still exists are preserved.
| Parameter | Type | Required | Description |
|---|---|---|---|
template | string | yes | The structure's id or display name (e.g. "save-the-cat"). |
Example call
{
"name": "apply_beat_template",
"arguments": {
"template": "<template>"
}
}
apply_content_pack
Overlays a content-pack folder onto the project: its categories and objects are added; anything already present (by id) is skipped, so re-applying a pack is idempotent. One undo step.
| Parameter | Type | Required | Description |
|---|---|---|---|
pack_dir | string | yes | The content-pack folder to apply. |
Example call
{
"name": "apply_content_pack",
"arguments": {
"pack_dir": "<pack_dir>"
}
}
assess_encounter
Rates a planned D&D 5e encounter for a party: the XP budgets, the count-adjusted encounter XP, the difficulty band, and a treasure guideline.
| Parameter | Type | Required | Description |
|---|---|---|---|
foes | array | yes | The foe groups in the encounter. |
party_level | integer | yes | The characters' level (1-20). |
party_size | integer | yes | How many characters (at least 1). |
Example call
{
"name": "assess_encounter",
"arguments": {
"party_size": 0,
"party_level": 0,
"foes": []
}
}
assign_beat
Assigns a document (scene) to one beat of the applied structure template, or clears the beat with an empty "document".
| Parameter | Type | Required | Description |
|---|---|---|---|
beat | string | yes | The beat's name, e.g. "Catalyst". |
document | string | no | The document to assign; "" clears the beat. |
Example call
{
"name": "assign_beat",
"arguments": {
"beat": "<beat>"
}
}
cite
Formats a citation for one source (addressed by title or citation key): the in-text form and the full bibliography entry, in APA, MLA, or Chicago.
| Parameter | Type | Required | Description |
|---|---|---|---|
locator | string | no | An optional page/section reference for the in-text citation. |
source | string | yes | The source's title or citation key. |
style | string | no | apa (default), mla, or chicago. |
Example call
{
"name": "cite",
"arguments": {
"source": "<source>"
}
}
create_language
Creates a constructed language (conlang). Only "name" is required; the sound system is seeded with sensible defaults so it can generate words and translate at once. Optional: consonants, vowels, patterns (C=consonant/V=vowel slots, e.g. "CV CVC V"), min_syllables, max_syllables, grammar_notes, and a "lexicon" of starter {word, gloss} entries.
| Parameter | Type | Required | Description |
|---|---|---|---|
consonants | string | no | Space-separated consonant phonemes. |
grammar_notes | string | no | Free-form grammar notes (Markdown permitted). |
lexicon | array | no | Optional starter dictionary entries. |
max_syllables | integer | no | Most syllables per generated word. |
min_syllables | integer | no | Fewest syllables per generated word (>=1). |
name | string | yes | The language's display name. |
patterns | string | no | Space-separated syllable patterns (C/V slots). |
vowels | string | no | Space-separated vowel phonemes. |
Example call
{
"name": "create_language",
"arguments": {
"name": "<name>"
}
}
create_plot_thread
Creates a plot thread or character arc (unique name), with optional color ("#rrggbb"), description, and character (an entity name that makes the thread that character's arc).
| Parameter | Type | Required | Description |
|---|---|---|---|
character | string | no | The entity (name or alias) whose arc this thread is. |
color | string | no | A CSS hex swatch like "#c0392b". |
description | string | no | Notes for the thread. |
name | string | yes | The new thread's name (must not exist yet). |
Example call
{
"name": "create_plot_thread",
"arguments": {
"name": "<name>"
}
}
create_random_table
Creates a weighted random table (encounters, loot, rumours, ...). "entries" is an array of {text, weight} objects (or bare strings, weight 1); a higher weight is more likely. An outcome's text may nest: "[[2d6]]" (any dice expression) is replaced by a rolled total and "[[Other Table]]" rolls on that table, so tables chain into sub-tables. Roll on it with the roll tool.
| Parameter | Type | Required | Description |
|---|---|---|---|
entries | array | no | The weighted outcomes. |
title | string | yes | The table title. |
Example call
{
"name": "create_random_table",
"arguments": {
"title": "<title>"
}
}
create_statblock
Creates a creature/NPC stat block. An optional template (dnd5e, pathfinder2e, custom) seeds that system's starter fields; provided stats/actions replace the starters, and system/notes are free text.
| Parameter | Type | Required | Description |
|---|---|---|---|
actions | array | no | Named actions / attacks / traits. |
notes | string | no | Freeform tactics / lore notes. |
stats | array | no | Labelled statistics. |
system | string | no | A free game-system label. |
template | string | no | dnd5e, pathfinder2e, or custom. |
title | string | yes | The creature/NPC name. |
Example call
{
"name": "create_statblock",
"arguments": {
"title": "<title>"
}
}
create_task
Creates a task (unique title) with optional description, status (board column), board, priority (low|normal|high|urgent), due date (YYYY-MM-DD), and -- for a submission-tracker task -- submitted_to / submission_type / submitted_on / submission_notes.
| Parameter | Type | Required | Description |
|---|---|---|---|
board | string | no | The board to file it on (default board when absent). |
description | string | no | Free-text details. |
due | string | no | YYYY-MM-DD. |
priority | string | no | low, normal, high, or urgent. |
status | string | no | The board column, e.g. "To Do". |
submission_notes | string | no | Submission notes (response, terms, fee). |
submission_type | string | no | agent, publisher, magazine, contest, or other. |
submitted_on | string | no | Date submitted (YYYY-MM-DD). |
submitted_to | string | no | Submission tracker: who the work was sent to. |
title | string | yes | The new task's title (must not exist yet). |
Example call
{
"name": "create_task",
"arguments": {
"title": "<title>"
}
}
delete_plot_thread
Removes a plot thread (or character arc) from the project and untags every object that referenced it -- scenes, timeline events, and entities -- so nothing is left pointing at a deleted thread.
| Parameter | Type | Required | Description |
|---|---|---|---|
thread | string | yes | The thread's name. |
Example call
{
"name": "delete_plot_thread",
"arguments": {
"thread": "<thread>"
}
}
derive_daughter_language
Evolves a language's lexicon through an ordered list of sound-change rules into a new daughter language, added to the project. Each rule is written target -> replacement / environment (SCA2 style): "target" is the sound(s) that change, "replacement" what they become (empty deletes), and "environment" the context with _ for the target slot and # for a word boundary (e.g. V_V, _#). A subset of rules yields a dialect.
| Parameter | Type | Required | Description |
|---|---|---|---|
daughter_name | string | yes | A name for the new daughter language. |
language | string | yes | The proto-language's name. |
rules | array | yes | The ordered sound-change rules. |
Example call
{
"name": "derive_daughter_language",
"arguments": {
"language": "<language>",
"daughter_name": "<daughter_name>",
"rules": []
}
}
export_codex
Compiles the codex world bible to output_path as md or html (chosen by "format" or the file extension). Optional audience. Entities marked "Exclude from AI" are omitted.
| Parameter | Type | Required | Description |
|---|---|---|---|
audience | string | no | Export only this audience's view. |
format | string | no | md or html. |
output_path | string | yes | Where to write the file. |
Example call
{
"name": "export_codex",
"arguments": {
"output_path": "<output_path>"
}
}
export_data
Exports a structured JSON slice of the project for migration, diff, or external tooling: "kind" is entities (fields, aliases, references resolved to names, lifespan), timeline (events with dates/participants/locations), sources, plot_threads, or continuity_rules. Names, not UUIDs, throughout; deterministic and diff-friendly. Returns the JSON directly, or writes it to "output_path" when given. "Exclude from AI" objects are omitted. Read-only.
| Parameter | Type | Required | Description |
|---|---|---|---|
format | string | no | json (the default). |
kind | string | yes | entities, timeline, sources, plot_threads, or continuity_rules. |
output_path | string | no | Optional file to write the JSON into (relative = inside the project folder); omit to get it back directly. |
Example call
{
"name": "export_data",
"arguments": {
"kind": "<kind>"
}
}
export_manuscript
Compiles and writes the manuscript to output_path (relative = inside the project folder) as md, html, docx, epub, or rtf (standard "Shunn" manuscript; give author/contact/pen_name). Optional audience and include_synopses. Refused while any document is marked "Exclude from AI". Note: rich-text bodies authored in the desktop editor export as stored; the desktop's rich-text-to-Markdown pass is not available in this headless server.
| Parameter | Type | Required | Description |
|---|---|---|---|
audience | string | no | Export only this audience's view. |
author | string | no | rtf only: the author's legal name. |
contact | string | no | rtf only: the title-page contact block. |
format | string | yes | md, html, docx, epub, or rtf. |
include_synopses | boolean | no | Emit each document's synopsis. |
output_path | string | yes | Where to write the file. |
pen_name | string | no | rtf only: the byline pen name. |
title | string | no | The book title (default: project name). |
Example call
{
"name": "export_manuscript",
"arguments": {
"format": "<format>",
"output_path": "<output_path>"
}
}
export_reference_grammar
Compiles the language into a shareable reference grammar as Markdown: sections for its sound inventory, phonotactics, orthography, grammar (typology, word order, paradigm tables, pronouns, numbers), and a sorted lexicon appendix.
| Parameter | Type | Required | Description |
|---|---|---|---|
language | string | yes | The language's name. |
Example call
{
"name": "export_reference_grammar",
"arguments": {
"language": "<language>"
}
}
export_screenplay
Exports one screenplay document to output_path as Fountain (default) or Final Draft (.fdx). The document's kind must be screenplay; its body is Fountain source.
| Parameter | Type | Required | Description |
|---|---|---|---|
document | string | yes | The screenplay document's title. |
format | string | no | fountain (default) or fdx. |
output_path | string | yes | Where to write the file (relative = in the project folder). |
Example call
{
"name": "export_screenplay",
"arguments": {
"document": "<document>",
"output_path": "<output_path>"
}
}
export_website
Builds the browsable static website (index with client-side search, chapter pages, and the world-bible codex pages) into output_dir. Optional audience and site_title. Refused while any document is marked "Exclude from AI"; excluded entities are omitted. Map pages need the desktop exporter and are not generated here.
| Parameter | Type | Required | Description |
|---|---|---|---|
audience | string | no | Publish only this audience's view. |
output_dir | string | yes | The folder to write the site into. |
site_title | string | no | The site title (default: project name). |
Example call
{
"name": "export_website",
"arguments": {
"output_dir": "<output_dir>"
}
}
extract_document_text
Returns the plain text of a document file on disk — a PDF, a Word .docx, or a .txt/.md — so you can read a manuscript and build a project from it (create entities for its characters/places/items, add its timeline events, bring in its chapters) using the create_* tools. This does NOT run the app's automatic conversion; you are the intelligence. Reads document text only, never other files.
| Parameter | Type | Required | Description |
|---|---|---|---|
path | string | yes | The .pdf, .docx, or .txt/.md file to read. |
Example call
{
"name": "extract_document_text",
"arguments": {
"path": "<path>"
}
}
generate_vocabulary
Coins auto-glossed, semantic-field-tagged words for a set of meanings and appends the new ones to the language's lexicon (existing headwords are never duplicated). Give a "meanings" array, or use_swadesh=true to seed the ~100-word Swadesh core vocabulary. Deterministic per "seed".
| Parameter | Type | Required | Description |
|---|---|---|---|
language | string | yes | The language's name. |
meanings | array | no | The meanings to coin words for. |
seed | integer | no | Random seed for reproducibility (default 1). |
semantic_field | string | no | A field/tag to record on the coined words. |
use_swadesh | boolean | no | Seed the built-in Swadesh core-vocabulary list. |
Example call
{
"name": "generate_vocabulary",
"arguments": {
"language": "<language>"
}
}
generate_words
Coins candidate words from a language's phonology (structured phonotactics if set, else its consonant/vowel/pattern strings). Deterministic per "seed". The words are NOT added -- pass the ones you keep to add_lexicon_words.
| Parameter | Type | Required | Description |
|---|---|---|---|
count | integer | no | How many words to coin (1-100; default 10). |
language | string | yes | The language's name. |
seed | integer | no | Random seed for reproducibility (default 1). |
Example call
{
"name": "generate_words",
"arguments": {
"language": "<language>"
}
}
get_analytics
Compiles the manuscript-health report as Markdown: word statistics, the dialogue/narration split, readability, point-of-view balance, a style-issue summary, and world-coverage counts (aggregates only -- no prose).
No parameters.
Example call
{
"name": "get_analytics",
"arguments": {}
}
get_beat_sheet
Shows the applied story-structure beat sheet: each beat, its target position in the story, and the scene assigned to it (or that it is still unfilled).
No parameters.
Example call
{
"name": "get_beat_sheet",
"arguments": {}
}
get_language
With no name, lists the project's constructed languages. With a name, shows the language's phonology, syllable bounds, lexicon size with sample entries, and grammar notes.
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | no | The language to detail (omit to list all). |
Example call
{
"name": "get_language",
"arguments": {
"name": "<name>"
}
}
get_random_table
Reads a random table: its title, effective die size, and each weighted outcome with the die range that produces it.
| Parameter | Type | Required | Description |
|---|---|---|---|
table | string | yes | The random table's title. |
Example call
{
"name": "get_random_table",
"arguments": {
"table": "<table>"
}
}
get_statblock
With no title, lists the creature/NPC stat blocks. With a title, shows the block's game system, statistics, actions, and notes.
| Parameter | Type | Required | Description |
|---|---|---|---|
title | string | no | The block to detail (omit to list all). |
Example call
{
"name": "get_statblock",
"arguments": {
"title": "<title>"
}
}
gloss_text
Produces a three-line interlinear (Leipzig) gloss of a passage written in the language: the source words, a morpheme gloss (inflected words show as root-FEATURE using the grammar's paradigms), and a free translation.
| Parameter | Type | Required | Description |
|---|---|---|---|
language | string | yes | The language's name. |
text | string | yes | A passage written in the language. |
Example call
{
"name": "gloss_text",
"arguments": {
"language": "<language>",
"text": "<text>"
}
}
import_file
Imports an external file or folder into the manuscript as one undo step: plain text / Markdown, an HTML file (.html/.htm, split into a document tree by headings), a PDF (.pdf, its extracted text), an Obsidian vault, a Notion export, yWriter (.yw6/.yw7), a Scrivener project, a Word document (.docx), a Manuskript project, or BibTeX (.bib, into the source library). "format" overrides auto-detection. "split" controls how a text/HTML/PDF file is broken into documents; "parent" nests the whole import under an existing document.
| Parameter | Type | Required | Description |
|---|---|---|---|
format | string | no | text, html, pdf, obsidian, ywriter, scrivener, word, notion, manuskript, or bibtex (omit to auto-detect). |
parent | string | no | Title of an existing document to nest the import under (the imported root becomes its child). |
path | string | yes | The file or folder to import. |
split | string | no | For a text/HTML/PDF file: "none" = one document, "auto" = split at the shallowest heading, or "h1".."h6" = split at that heading level (omit for the format's default). Ignored by folder/project imports. |
Example call
{
"name": "import_file",
"arguments": {
"path": "<path>"
}
}
list_plot_threads
Lists the plot threads and character arcs: colour, the character whose arc a thread is, how many scenes tag it, and its description.
No parameters.
Example call
{
"name": "list_plot_threads",
"arguments": {}
}
list_sources
Lists the project's bibliographic sources: title, kind, citation key, author, and date.
No parameters.
Example call
{
"name": "list_sources",
"arguments": {}
}
list_tasks
Lists tasks grouped by kanban board: done state, status column, priority, and due date. Optional board filter; pass include_done=false to hide completed tasks.
| Parameter | Type | Required | Description |
|---|---|---|---|
board | string | no | Only this board's tasks. |
include_done | boolean | no | Include completed tasks (default true). |
Example call
{
"name": "list_tasks",
"arguments": {
"board": "<board>",
"include_done": true
}
}
roll
Rolls dice ("3d6+2", "1d20", "4d6kh3") or on a named random table -- exactly one of dice/table. A table roll expands nested references in the outcome: "[[2d6]]" becomes a rolled total and "[[Other Table]]" rolls on that sub-table (recursively). Deterministic when a seed is given; the seed used is always reported so any roll can be replayed.
| Parameter | Type | Required | Description |
|---|---|---|---|
dice | string | no | A dice expression (NdM, kh/kl, +/-). |
seed | integer | no | A non-negative seed for a replayable roll. |
table | string | no | A random table's title. |
Example call
{
"name": "roll",
"arguments": {
"dice": "<dice>",
"seed": 0
}
}
save_content_pack
Writes the chosen objects (addressed by title) plus every category they reference as a content-pack folder at output_dir, with an optional manifest (name/description/author/version). The project itself is not changed.
| Parameter | Type | Required | Description |
|---|---|---|---|
author | string | no | Who made it. |
description | string | no | What the pack contains. |
name | string | no | The pack's name. |
objects | array | yes | Titles of the objects to include. |
output_dir | string | yes | The folder to write the pack into. |
version | string | no | A version label. |
Example call
{
"name": "save_content_pack",
"arguments": {
"objects": [],
"output_dir": "<output_dir>"
}
}
set_document_threads
Tags a scene (document) with the plot threads it advances, by thread name. The list REPLACES the scene's current threads; pass [] to clear them. Each name must be an existing thread (create_plot_thread first) so a scene never dangles a dead thread.
| Parameter | Type | Required | Description |
|---|---|---|---|
document | string | yes | The scene/document title. |
threads | array | yes | The plot-thread names to tag it with. |
Example call
{
"name": "set_document_threads",
"arguments": {
"document": "<document>",
"threads": []
}
}
set_entity_threads
Tags a codex entity with the plot threads it belongs to (a character's arc, a faction's storyline), by thread name. The list REPLACES the entity's current threads; pass [] to clear them. Each name must be an existing thread. Counts toward list_plot_threads.
| Parameter | Type | Required | Description |
|---|---|---|---|
entity | string | yes | The entity's name or alias. |
threads | array | yes | The plot-thread names to tag it with. |
Example call
{
"name": "set_entity_threads",
"arguments": {
"entity": "<entity>",
"threads": []
}
}
set_event_threads
Tags a timeline event with the plot threads it belongs to, by thread name. The list REPLACES the event's current threads; pass [] to clear them. Each name must be an existing thread (create_plot_thread first). Counts toward list_plot_threads.
| Parameter | Type | Required | Description |
|---|---|---|---|
event | string | yes | The timeline event's title. |
threads | array | yes | The plot-thread names to tag it with. |
Example call
{
"name": "set_event_threads",
"arguments": {
"event": "<event>",
"threads": []
}
}
set_grammar
Sets a language's structured grammar (replacing any existing): "typology" (isolating/agglutinative/fusional/polysynthetic), "word_order" (SVO/SOV/VSO/VOS/OVS/OSV/free), "adjective_position" (before/after), free "notes", inflection "paradigms" ({name, applies_to, rules:[{feature, type, affix}]} where type is prefix/suffix/circumfix/replacement/none), "pronouns" ({label, form, gloss}), and a "number_system" ({base, formation_note, digits:[{value, word}]}). gloss_text and spell_number then use it.
| Parameter | Type | Required | Description |
|---|---|---|---|
adjective_position | string | no | before or after (the noun). |
language | string | yes | The language's name. |
notes | string | no | Free-form structured-grammar notes. |
number_system | object | no | {base, formation_note, digits:[{value, word}]}. |
paradigms | array | no | Inflection paradigms. |
pronouns | array | no | Personal pronouns. |
typology | string | no | Morphological typology token. |
word_order | string | no | Constituent order token (e.g. SOV). |
Example call
{
"name": "set_grammar",
"arguments": {
"language": "<language>"
}
}
set_orthography
Sets a language's romanization schemes (replacing any existing). Each scheme is {name, mappings:[{phoneme, grapheme}]}; an optional "default_scheme" names the preferred one.
| Parameter | Type | Required | Description |
|---|---|---|---|
default_scheme | string | no | Name of the preferred scheme. |
language | string | yes | The language's name. |
schemes | array | yes | The romanization schemes. |
Example call
{
"name": "set_orthography",
"arguments": {
"language": "<language>",
"schemes": []
}
}
set_phonotactics
Sets a language's structured phonotactics (replacing any existing): named sound "categories" ({symbol, members}) that syllable "templates" ({shape, weight}) draw on, plus optional "rewrite_rules" ({match, replacement}), "forbidden_sequences", vowel "harmony_groups" (arrays of vowels), a "dropoff" (equiprobable/slow/medium/fast), and a "monosyllable_weight". generate_words then obeys them.
| Parameter | Type | Required | Description |
|---|---|---|---|
categories | array | no | Named sound categories. |
dropoff | string | no | equiprobable / slow / medium / fast. |
forbidden_sequences | array | no | Substrings a word may never contain. |
harmony_groups | array | no | Vowel-harmony groups. |
language | string | yes | The language's name. |
monosyllable_weight | integer | no | Extra bias toward one-syllable words. |
rewrite_rules | array | no | Post-generation rewrites. |
templates | array | no | Weighted syllable templates. |
Example call
{
"name": "set_phonotactics",
"arguments": {
"language": "<language>"
}
}
set_sound_changes
Sets a language's diachronic sound-change rulesets (replacing any existing). Each ruleset is {name, rules:[{target, replacement, environment}]} in SCA2 style; store them here, then evolve a daughter with derive_daughter_language.
| Parameter | Type | Required | Description |
|---|---|---|---|
language | string | yes | The language's name. |
rulesets | array | yes | The named, ordered sound-change rulesets. |
Example call
{
"name": "set_sound_changes",
"arguments": {
"language": "<language>",
"rulesets": []
}
}
set_writing_system
Sets a language's constructed script/conscript (replacing any existing): a "name", "direction" (ltr/rtl/ttb), "glyphs" ({name, grapheme, svg_path} -- svg_path is the outline in a 100x100 box), and "ligatures" ({sequence, glyph_name}).
| Parameter | Type | Required | Description |
|---|---|---|---|
direction | string | no | ltr / rtl / ttb. |
glyphs | array | no | The glyphs. |
language | string | yes | The language's name. |
ligatures | array | no | Ligature rules. |
name | string | no | The script's display name. |
Example call
{
"name": "set_writing_system",
"arguments": {
"language": "<language>"
}
}
spell_number
Spells an integer in the language's number system (its base and numeral words), composing multi-digit numbers from the place words.
| Parameter | Type | Required | Description |
|---|---|---|---|
language | string | yes | The language's name. |
value | integer | yes | The non-negative integer to spell. |
Example call
{
"name": "spell_number",
"arguments": {
"language": "<language>",
"value": 0
}
}
translate
Translates text word-by-word through a constructed language's lexicon. direction: to_conlang (default) or from_conlang. Words missing from the lexicon pass through verbatim and are reported so they can be coined.
| Parameter | Type | Required | Description |
|---|---|---|---|
direction | string | no | to_conlang or from_conlang. |
language | string | yes | The language's name. |
text | string | yes | The passage to translate. |
Example call
{
"name": "translate",
"arguments": {
"language": "<language>",
"text": "<text>"
}
}
update_language
Edits a language's name, sound system, syllable bounds, or grammar notes. Only the fields given change; new_name renames it. An explicit "lexicon" REPLACES the whole dictionary -- use add_lexicon_words to append without disturbing existing words.
| Parameter | Type | Required | Description |
|---|---|---|---|
consonants | string | no | Space-separated consonant phonemes. |
grammar_notes | string | no | Free-form grammar notes (Markdown permitted). |
language | string | yes | The language to edit (its current name). |
lexicon | array | no | Replaces the whole dictionary (each entry needs word+gloss). |
max_syllables | integer | no | Most syllables per generated word. |
min_syllables | integer | no | Fewest syllables per generated word (>=1). |
new_name | string | no | A new display name. |
patterns | string | no | Space-separated syllable patterns (C/V slots). |
vowels | string | no | Space-separated vowel phonemes. |
Example call
{
"name": "update_language",
"arguments": {
"language": "<language>"
}
}
update_plot_thread
Updates one plot thread (addressed by name). Sparse: new_name, color ("#rrggbb", "" = default), description, character (an entity name to bind the thread as that character's arc, "" to clear).
| Parameter | Type | Required | Description |
|---|---|---|---|
character | string | no | The entity (name or alias) whose arc this thread is. |
color | string | no | A CSS hex swatch like "#c0392b". |
description | string | no | New notes for the thread. |
new_name | string | no | A new name. |
thread | string | yes | The thread's current name. |
Example call
{
"name": "update_plot_thread",
"arguments": {
"thread": "<thread>"
}
}
update_random_table
Sparse update of a random table: "new_title" renames it; "entries" replaces the whole weighted-outcome list. One undo step.
| Parameter | Type | Required | Description |
|---|---|---|---|
entries | array | no | Replacement weighted outcomes. |
new_title | string | no | Rename the table to this. |
table | string | yes | The table's title. |
Example call
{
"name": "update_random_table",
"arguments": {
"table": "<table>"
}
}
update_source
Updates one source (addressed by citation key or title). Sparse: new_title, type, citation_key replace their values; "fields" merges the provided CSL keys (an empty value removes that key).
| Parameter | Type | Required | Description |
|---|---|---|---|
citation_key | string | no | A new citation key. |
fields | object | no | CSL variable name -> value edits; "" removes a key. |
new_title | string | no | A new title. |
source | string | yes | The source's citation key or title. |
type | string | no | A new bibliographic kind token. |
Example call
{
"name": "update_source",
"arguments": {
"source": "<source>"
}
}
update_statblock
Edits an existing stat block. Only the fields given change; new_title renames it. A supplied "stats" or "actions" array REPLACES that whole list (omit it to leave the list untouched); system and notes are free text.
| Parameter | Type | Required | Description |
|---|---|---|---|
actions | array | no | Replaces the named actions / attacks / traits. |
new_title | string | no | A new creature/NPC name. |
notes | string | no | Freeform tactics / lore notes. |
stats | array | no | Replaces the labelled statistics. |
system | string | no | A free game-system label. |
title | string | yes | The block to edit (its current name). |
Example call
{
"name": "update_statblock",
"arguments": {
"title": "<title>"
}
}
update_task
Updates one task (addressed by title). Sparse: only the provided keys change -- new_title, description, status (board column), board ("" = the default board), done, priority (low|normal|high|urgent), due (YYYY-MM-DD, "" clears). For a submission-tracker task the submission-pipeline fields submitted_to / submission_type / submitted_on / submission_notes are set here too (the response-due date IS "due" and the pipeline stage IS "status").
| Parameter | Type | Required | Description |
|---|---|---|---|
board | string | no | The board to move the task to. |
description | string | no | New free-text details. |
done | boolean | no | The new completion state. |
due | string | no | YYYY-MM-DD, or "" to clear. |
new_title | string | no | A new title. |
priority | string | no | low, normal, high, or urgent. |
status | string | no | The new board column, e.g. "Doing". |
submission_notes | string | no | Submission notes (response, terms, fee). |
submission_type | string | no | agent, publisher, magazine, contest, or other. |
submitted_on | string | no | Date submitted (YYYY-MM-DD, "" clears). |
submitted_to | string | no | Submission tracker: who the work was sent to (empty clears). |
task | string | yes | The task's current title. |
Example call
{
"name": "update_task",
"arguments": {
"task": "<task>"
}
}