Skip to main content
Glama
penta2himajin

noveletary

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
NARRATIVE_DBNoOverride the SQLite database pathdata/narrative.db

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_branchesA

[branch] 全ブランチ(物語の版/プロット案)を列挙する。

create_branchA

[branch] 新しいブランチを作る。並行プロット(A案/B案)やif展開の検討に使う。状態コピーは起きない(ポインタのみ)。 from_branch の現在地(または at_op で指定した操作)から分岐する。

delete_branchA

[branch] ブランチを削除する(不要になった実験/デモ枝の掃除)。操作ログは不変なので残り、 ポインタ・未解決質問・スナップショット(派生キャッシュ)のみ消える。main は削除不可。

rollback_branchA

[branch] ブランチを過去の操作IDまで巻き戻す。操作ログは不変なので巻き戻しの巻き戻しも可能。 LLMの一連の編集で矛盾が入った時の安全網。

get_stateA

[read] ブランチで現在有効な事実を返す。各factは chapter(=valid-time/物語内時間)と narrated_in(=discourse-time/語りの章)を持つ。 as_of_chapter: valid-time スライス=「その章時点の世界」(retcon後でも正しい)。 as_of_narrated: discourse-time スライス=「第N章まで読んだ読者が知っている事実」(伏線/叙述トリックの検証用)。 両者は独立軸。回想(物語内は過去・語りは後の章)は chapter と narrated_in が食い違う。 subject を指定すると特定エンティティだけに絞る(文脈節約)。章を書く前の状態確認に使う。

chapter_briefA

[read] 第N章を書く前に要る正準を1発で束ねる(想起負担の軽減)。返り値: characters(LIFE/RANKを持つ人物の生死alive/地位/位置/呼称) / world(STATEのみの世界・設定) / constraints(有効なhard制約) / open_questions(未解決) / open_setups(未回収の伏線; payoff_by超過は overdue) / recent(直近[N-2,N]の行為・順序・生死)。 執筆ループの先頭で呼ぶと、get_state を何度も引かずに文脈を再構成できる。

set_beatA

[outline] 章ビート(その章の設計=1段落: 誰が出て何が起き何が変わり何を仕込む/回収するか)を登録/更新する(アウトライン先行)。 執筆前にビートを置けば、本文生成は『ビートを現在カノンに矛盾せず展開する』低負荷タスクになり、漂流が減る。 同章への再登録は更新(冪等)。chapter_brief に当該章の beat が同梱される。

get_outlineA

[outline] 章ビート(プロット骨格)を章順で返す。range 指定可。各部の頭でビートを並べて整合を俯瞰するのに使う。

add_setupA

[outline] 伏線(チェーホフの銃)を登録して未回収を追跡する。setup=仕込みの説明, chapter=仕込んだ(語った)章, payoff_by=回収すべき期限の章(任意; 超過すると chapter_brief/open_setups で overdue 表示), thread=伏線の識別名。 回収したら resolve_setup で閉じる。100章規模で「張ったが回収し忘れ」を防ぐ台帳。

resolve_setupB

[outline] 伏線を回収済みにする(現在の未回収一覧から外す。操作ログは不変なので履歴は残る)。fid は open_setups の値。

get_logC

[read] ブランチの操作履歴(新しい順)。op_id はロールバック先の指定に使える。

add_factA

[fact] 事実を1件登録(hard制約でgate)。0から執筆する時の基本操作。 attribute例: LIFE(生死: value=alive/dead) / ACT(行為) / LOC(位置) / RANK(地位) / LEDGER(台帳: numに数値, kind=COUNTER) / ORDER(時間順序: value='A<B') / STATE(一般)。 chapter は valid-time(物語内時間)の開始章。フルーエントは区間 [chapter, valid_to) で保持。制約検査はこの軸で行う。 valid_to は valid-time の終了章(排他)。未指定なら +∞(開区間; supersession で暗黙終了)。 生前の経歴/居所を死で畳む等に使う。例: LOC=工房 chapter=0 valid_to=1(第1章の死で終了→以後は不可視・死後行為と衝突しない)。 発見時に死んでいる被害者の居所もこのパターン(死亡章に LOC を置くと死後扱いで弾かれる→生前章に置くか valid_to=死亡章)。 narrated_in は discourse-time(語りの章)=原稿のどの章で開示されるか。未指定なら chapter と同値(順送り)。 回想/倒叙で「物語内は過去・語りは後」を表す。例: chapter=1, narrated_in=10(第10章で明かす第1章の真実)。 矛盾(死後の行為・台帳の減少・時間循環等)があれば status=rejected と矛盾fact集合を返す。 別名の疑い(ALIAS質問)は、subject が既存主体と表層的に近い時に自動発火する (判定: 複数語名=タイトル除く共有語 / 単一語名=文字集合Jaccard≥0.3。アウトライン(BEAT/SETUP)は対象外)。同一ペアの未解決質問は1つに集約(重複しない)。 発火すると question_id を返す(list_open_questions→answer_question)。 先回りするなら link_entities(same=False で別人固定 / same=True で同一固定) を使う。

add_factsA

[fact] 複数の事実をまとめて登録(各々hard制約でgate)。1シーン分の事実を一括投入する時に。 facts は [{subject, attribute, value, chapter, kind?, num?, narrated_in?, valid_to?}, ...]。 chapter=valid-time開始(物語内時間), valid_to=valid-time終了(排他, 未指定なら+∞), narrated_in=discourse-time(語りの章, 未指定なら chapter と同値; 回想/伏線用)。 atomic=False(既定): 逐次適用。1件矛盾しても他はcommitされ得る(部分適用が残る)。 atomic=True: 1件でも矛盾したらバッチ全体を巻き戻し何も適用しない(中途半端な状態を残さない)。 返り値: {results:[committed/rejected,...], applied: 適用されたか, (atomicで巻戻時)rolled_back_to_op}。

retag_factA

[fact] 既存事実を同じ fid のまま付け替える/更新する(delete+re-add 不要)。指定しない項目(None)は据え置き。 用途: 値の更新(value/num)、章の移動(chapter)、属性の付け替え(attribute)、生前の経歴/居所を死で畳む(valid_to)、開示章の修正(narrated_in)。 retcon 同様に hard 再検査が走り、矛盾すれば status=rejected(retag) で適用しない(操作ログは不変なので過去版は履歴に残る)。 注: valid_to/narrated_in を ∞/既定へ戻すのは不可(rare; delete_fact + add_fact で)。

delete_factB

[fact] 事実を削除。他factが依存していれば孤児化を防ぐため拒否。

import_factsA

[fact] 既存作品から抽出した事実を一括登録(hard制約でgateしない=矛盾も含め丸ごと読込む)。 取込後に audit を呼ぶと、既存の矛盾が表面化する。0からの執筆ではなく既存原稿の取込に使う。 facts は [{subject, attribute, value, chapter, kind?, num?}, ...]。

auditA

[verify] ブランチ全体を監査する。 hard_violations: 決定論的な矛盾(死後の行為/台帳減少/時間循環など)。確実。 include_soft=True にすると意味的矛盾(回収↔破壊など)をNLIで検出し open-question を生成(モデル未導入なら自動skip)。 取込直後の健全性チェックや、章を書いた後の確認に使う。

merge_branchesA

[branch] src ブランチを dst へ統合(3-way)。片側のみ変更した事実は自動統合。 両側が同一事実を別の値にした箇所は競合として作者質問(MERGE_CONFLICT)を生成する。 競合は answer_question で正史を決める。

list_open_questionsC

[question] 未解決の質問を列挙する。種別と発火条件:

  • ALIAS(別名同一性): add系で新subjectが既存主体と表層的に近い時に自動発火(複数語=共有語/単一語=文字Jaccard≥0.3; BEAT/SETUPは対象外)。同一ペアは集約(重複しない)。

  • MERGE_CONFLICT(マージ競合): merge_branches で両ブランチが同一(subj,attr)を別値にした時。

  • SOFT_CONTRADICTION(意味的矛盾の要確認): audit(include_soft=True) のNLIが contradiction 判定した時(モデル未導入ならskip)。 LLMは推測で解決せず、これを作者に提示して answer_question に回す。

link_entitiesA

[question] 2つの呼称の同一性を作者が明示宣言する(ALIAS質問を待たず能動的に)。 same=True : a を b の別名として統合(bが正準)。偽名・あだ名・正体判明など「実は同一人物」を一級事実化。 統合後はエンジンが両者を1実体として検査するので正体レベルの矛盾(故人の行為など)も検出。hard_violations を返す。 same=False: a と b を別人(別指示対象)として固定(cannot_link)。同姓の別人など。以後この対で ALIAS 質問は出ない。 answer_question の '同一'/'別物' と等価。

answer_questionC

[question] 作者の回答で質問を解決し、対応する構築操作を確定する。 ALIAS: answer='同一'で別名統合 / それ以外で別物(cannot_link)。 MERGE_CONFLICT: answer='src'/'dst'(または値そのもの)で正史を選択。 SOFT_CONTRADICTION: 作者の判断を記録(自動操作なし)。 回答は永続化され、以後の整合検査に反映される(別名は検査を貫通する)。

list_constraintsA

[constraint] ブランチで有効な制約(hard規則)を列挙する。各制約は cid / template / params / enabled / note を持つ。 制約はコード直書きでなくデータで、ブランチ単位でversion管理される(分岐で継承・ロールバックで巻戻る)。

add_constraintA

[constraint] 制約を1件追加する(作者の指示でルールを微調整)。template:

  • forbid_after_state: 終端状態の後に特定属性を禁止(EC慣性)。params={terminal_attr, terminal_value, forbidden_attrs}。例: 死後の行為禁止。

  • monotone: 数値の単調性。params={attr, direction("nondecreasing"|"nonincreasing")}。例: 台帳の増加。

  • acyclic: 順序の無循環。params={order_attr}。例: 時間順序。

  • release: 終端状態の解放(EC Release)=forbid_after_stateの例外。params={terminal_attr, terminal_value, subject?}。例: 派生作で死者復活を許可。 scope={subject:..} で対象主体を限定可。

set_constraintA

[constraint] 制約のライフサイクル操作を1つに集約。remove=True で削除(操作ログは不変なのでロールバックで復活/デフォルトも消せる)。 enabled=False で無効化(一時停止)、enabled=True で再有効化。両方指定時は remove を優先。

check_constraintsA

[constraint] 制約セットの構造的な矛盾・無効設定を検査する(遅延/オンデマンド)。 検出: contradictory_monotone(増減両立) / duplicate(重複) / orphan_release(対応forbid無し) / shadowed_forbid(全体releaseで死蔵)。consistent=Trueなら設定上の問題なし。 eager を渡すと実行モードも切替: True=add_constraint 時に自動検査して警告を添える / False=明示呼びのみ(既定)。

reconcile_factsA

[nlp] LLMが章から抽出した事実(llm_facts)と、機構が独立抽出した述語-項レコードを(主語,述語)軸で突き合わせる。 llm_facts は [{subject, predicate}, ...]。 返り値: agreement(一致=確証) / llm_only_check_grounding(本文に根拠が薄い=捏造の疑い) / mechanism_only_state_possible_omission(状態の申告漏れ・高シグナル) / mechanism_only_event_possible_omission(行為の申告漏れ・死亡等を含む)。 既知実体(KB)で対象を絞り、ゼロ照応解決済みの主語のみ照合。差分は確定でなく要確認。

propose_canon_factsA

[nlp] 章の散文から記帳の下書きを生成する(記帳自動化)。機構抽出(KWJA優先/GiNZA退避)→正準スキーマへ写像 →既存カノンと差分→採否しやすく仕分けて返す。コミットしない(候補)。 返り値: high_new(状態/既知実体の行為=採用候補) / low_new(未知主語の瑣末行為=要確認) / existing(既出=除外) / summary。 使い方: high_new を確認・取捨して add_facts(atomic) で確定。本文を書いた直後に呼べば記帳の二重労働が消える。 注: 値は複合名詞句を復元済みだが物語型(LIFE/RANK等)には畳まないので、必要なら採用後に retag_fact で精緻化する。

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/penta2himajin/noveletary'

If you have feedback or need assistance with the MCP directory API, please join our Discord server