Continuity

Private story bible for fiction writers, shared with AI assistants over MCP.

我該用這個嗎

品質與安全性

A
說明品質
100%
結構描述完整度
79%
命名品質
96%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~2,212Token(工具定義)
~1.4 KB典型回應大小
中等的注意力影響(128k 上下文的 1.73%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "continuity": {
      "url": "https://continuitywriter.com/mcp"
    }
  }
}

遠端端點

https://continuitywriter.com/mcpstreamable-http

它能做什麼

工具清單

工具(11)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢list_story_projects(offset)

Find the user’s saved story projects before starting or resuming a story. Use the returned ID; do not guess projects. Page with offset.

輸入結構描述

{
  "type": "object",
  "properties": {
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000,
      "default": 0
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡create_story_project(name, description)

Create a new private story project when the user asks. Does not save canon or scenes.

輸入結構描述

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "description": {
      "type": "string",
      "maxLength": 5000
    }
  },
  "required": [
    "name"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_continuity_context(projectId, request, limit)

Retrieve relevant canon, recent approved scenes, and the latest provisional checkpoint before continuing a saved story or recovering it in a new chat. request is a brief scene/topic query, never a chat transcript. Results are a selection; use search_story_canon for specific missing facts.

輸入結構描述

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "format": "uuid"
    },
    "request": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 40,
      "default": 20
    }
  },
  "required": [
    "projectId",
    "request"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search_story_canon(projectId, query, offset)

Search saved canon by literal title/content text, or browse every entry with an empty query and offset. Use to verify details before revising an entry or when context retrieval omits something.

輸入結構描述

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "format": "uuid"
    },
    "query": {
      "type": "string",
      "maxLength": 200,
      "default": ""
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000,
      "default": 0
    }
  },
  "required": [
    "projectId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴upsert_canon_entry(projectId, kind, title, status, content, ...)

Save a fact or revise canon only after the user approves it. Preserve the existing title/kind. LOCKED requires approval as established fact; brainstorming is not approval. Existing entries require expectedRevision from retrieval; conflicting edits fail without overwriting. Identical retries leave revision history unchanged.

輸入結構描述

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "format": "uuid"
    },
    "kind": {
      "type": "string",
      "enum": [
        "CHARACTER",
        "RELATIONSHIP",
        "APPEARANCE",
        "ABILITY",
        "LOCATION",
        "WORLD_RULE",
        "TIMELINE",
        "PLOT_THREAD",
        "ITEM",
        "FACTION",
        "OTHER"
      ]
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status": {
      "type": "string",
      "enum": [
        "LOCKED",
        "DEVELOPING",
        "UNKNOWN",
        "RETIRED"
      ]
    },
    "content": {
      "type": "string",
      "minLength": 1,
      "maxLength": 12000
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 80
      },
      "maxItems": 30,
      "default": []
    },
    "revisionReason": {
      "type": "string",
      "maxLength": 1000
    },
    "expectedRevision": {
      "type": "integer",
      "exclusiveMinimum": 0
    }
  },
  "required": [
    "projectId",
    "kind",
    "title",
    "status",
    "content"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_canon_history(canonEntryId, offset)

Read previous and new content for a saved canon entry, newest first. No changes are made.

輸入結構描述

{
  "type": "object",
  "properties": {
    "canonEntryId": {
      "type": "string",
      "format": "uuid"
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0
    }
  },
  "required": [
    "canonEntryId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_approved_scenes(projectId, offset)

Read approved scene summaries in story order. Page with offset to inspect older scenes or verify a scene number before saving.

輸入結構描述

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "format": "uuid"
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0
    }
  },
  "required": [
    "projectId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴record_approved_scene(projectId, sceneNumber, title, summary, continuityNotes, ...)

Store a concise summary of a scene the user has approved. Never record an unapproved draft. An occupied scene number is preserved unless replaceExisting is true and the user requested replacement. Identical retries return the saved scene.

輸入結構描述

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "format": "uuid"
    },
    "sceneNumber": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2147483647
    },
    "title": {
      "type": "string",
      "maxLength": 200
    },
    "summary": {
      "type": "string",
      "minLength": 1,
      "maxLength": 12000
    },
    "continuityNotes": {
      "type": "string",
      "maxLength": 5000
    },
    "replaceExisting": {
      "type": "boolean",
      "default": false
    }
  },
  "required": [
    "projectId",
    "sceneNumber",
    "summary"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡save_story_checkpoint(projectId, checkpointId, title, storyState, openThreads, ...)

Preserve a concise story-session handoff when the user asks to save progress or has authorized ongoing checkpoints for this story. Stores provisional notes, not canon or an approved scene. Separate established progress from unresolved ideas. Send only focused story state, never a full transcript, credentials, or unrelated personal details. Reuse checkpointId on retries.

輸入結構描述

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "format": "uuid"
    },
    "checkpointId": {
      "$ref": "#/properties/projectId"
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "storyState": {
      "type": "string",
      "minLength": 1,
      "maxLength": 6000
    },
    "openThreads": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 20,
      "default": []
    },
    "nextSteps": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 10,
      "default": []
    }
  },
  "required": [
    "projectId",
    "checkpointId",
    "title",
    "storyState"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_story_checkpoints(projectId, offset)

Retrieve provisional story handoffs to recover progress across chats. These notes never override approved canon. Page with offset for older checkpoints.

輸入結構描述

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "format": "uuid"
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0
    }
  },
  "required": [
    "projectId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢continuity_audit(projectId, proposedText, offset)

Retrieve locked canon for the assistant to compare against a short proposed scene. This tool supplies evidence; the assistant must identify contradictions. Does not save or approve the scene.

輸入結構描述

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "format": "uuid"
    },
    "proposedText": {
      "type": "string",
      "minLength": 1,
      "maxLength": 12000
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0
    }
  },
  "required": [
    "projectId",
    "proposedText"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "data": {}
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本11 個工具