Skip to main content
Glama

confluence_create

Create a new Confluence page from markdown or a full JFM document, with optional space key, parent page, and dry-run validation.

Instructions

Create a NEW Confluence page (use confluence_write to overwrite an existing page identified by its ID). Builds from explicit fields or from a full JFM document (frontmatter + body, e.g. the output of confluence_read). With a document, space_key/title/parent_id come from the frontmatter and the body becomes the page body — enabling the read → edit → create round-trip. Explicit space_key/title/parent_id override frontmatter and a warning is returned when they do. JFM is GitHub-style markdown, NOT Confluence wiki markup — see resource omni-dev://specs/jfm. The document/content bodies each also accept a filesystem-path form (document_path/content_path) the server reads from disk — prefer it when the body is already on disk, to avoid emitting a large body inline. Set dry_run: true first when uncertain about required fields or formatting — validates the input and returns the request that would be sent (method, path, body) without creating the page. Returns the new page's ID. Mirrors omni-dev atlassian confluence create (and its --dry-run).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
titleNoPage title. Required unless `document` carries one. Overrides frontmatter.
formatNoFormat of `content`: `"jfm"` (default markdown) or `"adf"` (raw ADF JSON). Ignored for the `document` path (a document is always JFM).
contentNoPage body. Parsed according to `format`. Required unless `document` is provided (and rejected when it is — the document body is the page body). For `format = "jfm"` (the default), this is GitHub-style markdown, NOT Confluence wiki markup. Use `##` not `h2.`, triple-backtick fences not `{code}`, backtick inline code not `{{...}}`. Full reference: MCP resource `omni-dev://specs/jfm`.
dry_runNoWhen true, validate and return the would-be request (method, path, body) without creating the page. Defaults to `false`.
documentNoFull JFM document (YAML frontmatter + markdown body), e.g. the output of `confluence_read` with the frontmatter edited. When provided, `space_key`, `title` and `parent_id` are taken from the frontmatter and the body becomes the page body — so the read → edit → create round-trip works. The `space_key`/`title`/`parent_id` parameters below still override their frontmatter counterparts (a warning is returned when they do); passing `content` together with `document` is an error. See resource `omni-dev://specs/jfm`.
parent_idNoOptional parent page ID for nesting under an existing page. Overrides frontmatter `parent_id:`.
space_keyNoTarget Confluence space key (e.g., `"ENG"`). Required unless `document` carries a `space_key:`. Overrides frontmatter.
content_pathNoFilesystem path the server reads the page body from, instead of `content`. Prefer this when the body is already on disk — it avoids re-emitting the whole body inline. Mutually exclusive with `content` (and, like `content`, rejected when `document`/`document_path` is given).
document_pathNoFilesystem path the server reads the JFM `document` from, instead of `document`. Prefer this when the document is already on disk — it avoids re-emitting the whole document inline. Mutually exclusive with `document`.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed2 schema fields changedv0.33.0
    • removedInput schema / description
      Removed value: -"Parameters for the `confluence_create` tool."
    • removedInput schema / title
      Removed value: -"ConfluenceCreateParams"
  2. Changed2 schema fields changedv0.32.0
    • addedInput schema / properties / content_path
      Added value: +{
      +  "default": null,
      +  "description": "Filesystem path the server reads the page body from, instead of\n`content`. Prefer this when the body is already on disk — it avoids\nre-emitting the whole body inline. Mutually exclusive with `content`\n(and, like `content`, rejected when `document`/`document_path` is given).",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / document_path
      Added value: +{
      +  "default": null,
      +  "description": "Filesystem path the server reads the JFM `document` from, instead of\n`document`. Prefer this when the document is already on disk — it avoids\nre-emitting the whole document inline. Mutually exclusive with `document`.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  3. Changed14 schema fields changedv0.31.0
    • addedInput schema / properties / content / default
      Added value: +null
    • changedInput schema / properties / content / description
      Previous value: -"Page body. Parsed according to `format`.\n\nFor `format = \"jfm\"` (the default), this is GitHub-style markdown,\nNOT Confluence wiki markup. Use `##` not `h2.`, triple-backtick fences\nnot `{code}`, backtick inline code not `{{...}}`. Full reference:\nMCP resource `omni-dev://specs/jfm`."New value: +"Page body. Parsed according to `format`. Required unless `document` is\nprovided (and rejected when it is — the document body is the page body).\n\nFor `format = \"jfm\"` (the default), this is GitHub-style markdown,\nNOT Confluence wiki markup. Use `##` not `h2.`, triple-backtick fences\nnot `{code}`, backtick inline code not `{{...}}`. Full reference:\nMCP resource `omni-dev://specs/jfm`."
    • changedInput schema / properties / content / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • addedInput schema / properties / document
      Added value: +{
      +  "default": null,
      +  "description": "Full JFM document (YAML frontmatter + markdown body), e.g. the output\nof `confluence_read` with the frontmatter edited. When provided,\n`space_key`, `title` and `parent_id` are taken from the frontmatter and\nthe body becomes the page body — so the read → edit → create round-trip\nworks. The `space_key`/`title`/`parent_id` parameters below still\noverride their frontmatter counterparts (a warning is returned when they\ndo); passing `content` together with `document` is an error. See resource\n`omni-dev://specs/jfm`.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / dry_run
      Added value: +{
      +  "default": false,
      +  "description": "When true, validate and return the would-be request (method, path,\nbody) without creating the page. Defaults to `false`.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / format / description
      Previous value: -"Format of `content`: `\"jfm\"` (default markdown) or `\"adf\"` (raw ADF JSON)."New value: +"Format of `content`: `\"jfm\"` (default markdown) or `\"adf\"` (raw ADF JSON).\nIgnored for the `document` path (a document is always JFM)."
    • changedInput schema / properties / parent_id / description
      Previous value: -"Optional parent page ID for nesting under an existing page."New value: +"Optional parent page ID for nesting under an existing page. Overrides\nfrontmatter `parent_id:`."
    • addedInput schema / properties / space_key / default
      Added value: +null
    • changedInput schema / properties / space_key / description
      Previous value: -"Target Confluence space key (e.g., `\"ENG\"`)."New value: +"Target Confluence space key (e.g., `\"ENG\"`). Required unless `document`\ncarries a `space_key:`. Overrides frontmatter."
    • changedInput schema / properties / space_key / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • addedInput schema / properties / title / default
      Added value: +null
    • changedInput schema / properties / title / description
      Previous value: -"Page title."New value: +"Page title. Required unless `document` carries one. Overrides frontmatter."
    • changedInput schema / properties / title / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / required
      Removed value: -[
      -  "space_key",
      -  "title",
      -  "content"
      -]
  4. First observedv0.1.0

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but description fully covers behavioral aspects: creates a page (write operation), returns new page ID, explains override warnings, describes dry_run validation, and notes JFM format constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with purpose first, then input modes, format details, file paths, dry_run, return value. Every sentence adds value; no repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all necessary aspects: purpose, inputs, format, behavior, return value. References external resource for JFM specs. Mirrors CLI command. Complete for a create tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, but description adds significant meaning: explains parameter dependencies (title required unless document provides), mutual exclusivity (document vs content), and recommends file path parameters over inline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Create a NEW Confluence page' and distinguishes from 'confluence_write' which overwrites existing pages. It clearly identifies the tool's purpose and scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: use for new pages vs write for updates, explains two input modes (fields vs document), recommends dry_run for validation, advises using file paths when content is on disk, and warns about JFM format.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

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/rust-works/omni-dev'

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