Feature

Narrative Context Protocol (NCP)

An open, application-independent interoperability standard for carrying narrative context between tools and workflows.

In Dramatica, writers continue working with Stories, Storyforms, and Story Notebooks. NCP is primarily the durable export boundary; import remains a deliberate recovery or integration path.

Why NCP

  • NCP Core provides a narrative-system-neutral envelope for portable context, authorship, provenance, and extensions.
  • Profiles carry information from Dramatica and other narrative systems without making any one profile mandatory.
  • The Dramatica Semantic Model remains the separate intelligence that creates, resolves, and validates Storyforms.

Portable narrative context with separately governed profiles

NCP container holding the foundational Dramatica Storyform Profile, other profiles, and extensions, with Dramatica validation and certification outside NCP
NCP carries the profile. Dramatica validates the Storyform.

Example

NCP document with a Dramatica profile

NCP Core owns the document envelope. The declared dramatica: profile owns the Storyform representation inside the payload.

{
    "ncp_version": "3.0.0-rc.1",
    "document": {
        "id": "ncp_document_001",
        "created_at": "2026-08-15T12:00:00Z",
        "authorship": [
            {
                "id": "author_001",
                "name": "Writer One",
                "role": "author"
            }
        ],
        "provenance": [
            {
                "at": "2026-08-15T12:00:00Z",
                "action": "exported",
                "actor_id": "author_001"
            }
        ]
    },
    "story": {
        "id": "story_001",
        "title": "A Portable Story"
    },
    "profiles": [
        {
            "namespace": "dramatica:",
            "profile_version": "1.0.0-rc.1",
            "schema": "https://narrativecontextprotocol.com/profiles/dramatica/1.0.0-rc.1/profile-schema.json"
        }
    ],
    "extensions": [
        {
            "namespace": "dramatica-development-history:",
            "version": "1.0.0",
            "schema": "https://dramatica.com/schemas/ncp/dramatica-development-history-1.0.0.json"
        }
    ],
    "storytelling_moments": [],
    "contributions": [
        {
            "id": "development-entry:001",
            "contributor_id": "author_001",
            "at": "2026-08-15T11:45:00Z"
        }
    ],
    "attestations": [],
    "payloads": {
        "dramatica:": {
            "namespace": "dramatica:",
            "profile_version": "1.0.0-rc.1",
            "dsm_version": "declared-by-authorized-producer",
            "storyform": {
                "id": "storyform_001",
                "fields": {
                    "narrative": {
                        "id": "narrative_001",
                        "title": "The Reservoir",
                        "subtext": {
                            "perspectives": [],
                            "players": [],
                            "dynamics": [],
                            "storypoints": [],
                            "storybeats": []
                        },
                        "storytelling": {
                            "overviews": []
                        }
                    },
                    "ideation": {
                        "character": [],
                        "theme": [],
                        "plot": [],
                        "genre": []
                    },
                    "moments": []
                }
            }
        },
        "dramatica-development-history:": {
            "namespace": "dramatica-development-history:",
            "version": "1.0.0",
            "history": [
                {
                    "id": "development-entry:001",
                    "contribution_id": "development-entry:001",
                    "at": "2026-08-15T11:45:00Z",
                    "source": "user",
                    "status": "confirmed",
                    "content_sha256": "…"
                }
            ]
        }
    }
}

Passing the NCP schema confirms that the document is structurally well-formed. It does not certify that the Storyform is complete or semantically valid.

Use cases

Where NCP fits

Portable snapshots

Export versioned JSON for archives, brainstorming, format conversion, and tools that need structured context plus an optional contribution history.

Live access

Use Dramatica MCP for current, authorized queries and operations. Its results can be structured too, but remain scoped to the request.

Guided changes

Bring consequential changes through Narrova or a Storyform surface so Dramatica remains the authoritative structural record.

How it works

Bring NCP into your workflow

Export an NCP document when narrative context needs to cross a system boundary. When that document contains a Dramatica Storyform Profile, use authorized Dramatica intelligence for semantic operations rather than asking NCP Core to infer or validate Storyform meaning. Use MCP when you need live, scoped access instead of a portable snapshot.

NCP Core

The neutral document envelope carries story identity, authorship, provenance, profile declarations, extensions, and certification metadata.

Profiles

A profile carries narrative-system-specific information. The Dramatica Storyform Profile is foundational, but an NCP document does not require it.

Semantic intelligence

NCP schema validation checks document structure. Licensed Dramatica intelligence separately creates, resolves, diagnoses, and validates Storyforms.

Development history

Authenticated Dramatica exports can carry contributor, turn, revision, and supersession evidence in a separate extension. This is useful provenance, not automatic legal proof of authorship.

Next steps

  • Clone narrative-first/narrative-context-protocol to review the schema.
  • Declare the profiles and extensions your document carries; preserve unknown namespaces without reinterpretation.
  • Use Dramatica MCP, API, or SDK services when a Storyform must be created, resolved, diagnosed, or certified.