Run your docs site from Claude. Write for free. Pay when you publish.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Keep a staged set of changes, saved as a numbered version of the site.
Which site: its name or its address. Leave it out if this connection only covers one.
Which preview this is about: the draft_id create_preview gave, not the code in the preview's link. Leave it out for a site you keep.
For a preview: the changes to keep, applied all at once or not at all.
The identifier of the staged change set, from propose_edit.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http documarium https://mcp.documarium.com
Keep a staged set of changes, saved as a numbered version of the site.
| Argument | Type | Description |
|---|---|---|
| site | string | Which site: its name or its address. Leave it out if this connection only covers one. |
| draft_id | string | Which preview this is about: the draft_id create_preview gave, not the code in the preview's link. Leave it out for a site you keep. |
| operations | array | For a preview: the changes to keep, applied all at once or not at all. |
| proposal_id | string | The identifier of the staged change set, from propose_edit. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"site": {
"type": "string",
"maxLength": 262,
"description": "Which site: its name or its address. Leave it out if this connection only covers one."
},
"draft_id": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "Which preview this is about: the draft_id create_preview gave, not the code in the preview's link. Leave it out for a site you keep."
},
"operations": {
"type": "array",
"items": {
"type": "object",
"required": [
"op",
"path"
],
"properties": {
"op": {
"enum": [
"create",
"update",
"delete",
"move"
],
"type": "string",
"description": "What to do: create a page, update one, delete one, or move it to a new address."
},
"body": {
"type": "string",
"maxLength": 1000000,
"description": "The full markdown of the page."
},
"path": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "The page's address within the preview, like /pricing. The front page's address is /."
},
"title": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The page's title."
},
"to_path": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "For a move: the new address."
}
}
},
"maxItems": 500,
"minItems": 1,
"description": "For a preview: the changes to keep, applied all at once or not at all."
},
"proposal_id": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "The identifier of the staged change set, from propose_edit."
}
}
}Keep a preview as a site of your own and choose the name for its web address. Leave the name out and you will be offered some that are free. Keeping a preview confirms the content is yours, or that you have permission to publish it; this is recorded.
| Argument | Type | Description |
|---|---|---|
| draft_id | string | Which preview this is about: the draft_id create_preview gave, not the code in the preview's link. Leave it out for a site you keep. |
| subdomain | string | The name for the web address, like acme. Leave it out to be offered some. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"draft_id": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "Which preview this is about: the draft_id create_preview gave, not the code in the preview's link. Leave it out for a site you keep."
},
"subdomain": {
"type": "string",
"maxLength": 63,
"minLength": 1,
"description": "The name for the web address, like acme. Leave it out to be offered some."
}
}
}Turns markdown pages into a live preview site and returns a link to it. It takes the content already converted to markdown, one entry per page, and a record of where the content came from, exactly as it happened: a code repository, a documentation site's address, a product landing page's address, writing supplied directly in this conversation, or a file attached to this conversation, with the address when there is one. It also takes the product's name and, when the source shows one, the address of its logo. Which pages come over from a source with many pages is the person's choice, made after they see what was found and before it is converted: everything, one part, or a new structure. When they have already named the pages, that choice is made. The preview is temporary and belongs to no one until somebody keeps it. Pages arrive finished and carry no notes, placeholders, open questions or marks; a page with a note to its author, such as [GAP], [?] or TODO, is refused. Where the source is silent, a page carries the best answer and what was assumed is said in the conversation. On a legal page, the business's legal name, its address, the country whose law applies and who else handles its customers' data come only from the person or their source; a page missing one of them still reads complete without it, and what was assumed is said in the conversation. The page list is short: every page should be one a reader would open on its own; contact details and short notes belong inside another page. Every page, title and heading is in the site's language, passed as languages, like ["de"]. A translated copy is every page again, translated, at the same address under /<code>/ (/es/guides/setup), with its code listed after the site's own. The result says what to check, page by page, before the link is shared.
| Argument | Type | Description |
|---|---|---|
| pages | array | The pages, already converted to markdown. One entry per page. |
| source* | object | Where this content came from, exactly as it happened. |
Find every passage that states a fact, including passages that say it a different way.
| Argument | Type | Description |
|---|---|---|
| site | string | Which site: its name or its address. Leave it out if this connection only covers one. |
| query* | string | What to look for, in your own words — for example, how long the refund window is. |
| draft_id | string | Which preview this is about: the draft_id create_preview gave, not the code in the preview's link. Leave it out for a site you keep. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"site": {
"type": "string",
"maxLength": 262,
"description": "Which site: its name or its address. Leave it out if this connection only covers one."
},
"query": {
"type": "string",
"maxLength": 500,
"minLength": 3,
"description": "What to look for, in your own words — for example, how long the refund window is."
},
"draft_id": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "Which preview this is about: the draft_id create_preview gave, not the code in the preview's link. Leave it out for a site you keep."
}
}
}See the history of a site, and compare any two points in it.
| Argument | Type | Description |
|---|---|---|
| site | string | Which site: its name or its address. Leave it out if this connection only covers one. |
| compare_to | integer | To see what changed between two points, the later version number. |
| compare_from | integer | To see what changed between two points, the earlier version number. |
| starting_before | string | To see older entries, the marker from the end of the previous list. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"site": {
"type": "string",
"maxLength": 262,
"description": "Which site: its name or its address. Leave it out if this connection only covers one."
},
"compare_to": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "To see what changed between two points, the later version number."
},
"compare_from": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "To see what changed between two points, the earlier version number."
},
"starting_before": {
"type": "string",
"maxLength": 32,
"description": "To see older entries, the marker from the end of the previous list."
}
}
}List every page in a site, with its title, its address and when it last changed.
| Argument | Type | Description |
|---|---|---|
| site | string | Which site: its name or its address. Leave it out if this connection only covers one. |
| draft_id | string | Which preview this is about: the draft_id create_preview gave, not the code in the preview's link. Leave it out for a site you keep. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"site": {
"type": "string",
"maxLength": 262,
"description": "Which site: its name or its address. Leave it out if this connection only covers one."
},
"draft_id": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "Which preview this is about: the draft_id create_preview gave, not the code in the preview's link. Leave it out for a site you keep."
}
}
}Stage a set of changes — new pages, edits, deletions and moves together — and get a link to preview them before anything is kept.
| Argument | Type | Description |
|---|---|---|
| site | string | Which site: its name or its address. Leave it out if this connection only covers one. |
| draft_id | string | Which preview this is about: the draft_id create_preview gave, not the code in the preview's link. Leave it out for a site you keep. |
| operations* | array | The changes to stage together. They are applied all at once, or not at all. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operations"
],
"properties": {
"site": {
"type": "string",
"maxLength": 262,
"description": "Which site: its name or its address. Leave it out if this connection only covers one."
},
"draft_id": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "Which preview this is about: the draft_id create_preview gave, not the code in the preview's link. Leave it out for a site you keep."
},
"operations": {
"type": "array",
"items": {
"type": "object",
"required": [
"op",
"path"
],
"properties": {
"op": {
"enum": [
"create",
"update",
"delete",
"move"
],
"type": "string",
"description": "What to do: create a page, update one, delete one, or move it to a new address."
},
"body": {
"type": "string",
"maxLength": 1000000,
"description": "The full markdown of the page, for a create or an update."
},
"path": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "The page's address within the site, like /pricing. The front page's address is /."
},
"title": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The page's title."
},
"to_path": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "For a move: the new address. Links to the old address are updated for you."
}
}
},
"maxItems": 500,
"minItems": 1,
"description": "The changes to stage together. They are applied all at once, or not at all."
}
}
}Put the current version of a site out for people to read.
| Argument | Type | Description |
|---|---|---|
| site | string | Which site: its name or its address. Leave it out if this connection only covers one. |
| draft_id | string | Which preview this is about: the draft_id create_preview gave, not the code in the preview's link. Leave it out for a site you keep. |
| subdomain | string | When keeping a preview: the name for its web address, like acme. |
| rights_confirmed | boolean | Say true only after the person has confirmed, in this conversation, that the content is theirs or they have permission to publish it. Needed once, for a site whose content was brought from somewhere else. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"site": {
"type": "string",
"maxLength": 262,
"description": "Which site: its name or its address. Leave it out if this connection only covers one."
},
"draft_id": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "Which preview this is about: the draft_id create_preview gave, not the code in the preview's link. Leave it out for a site you keep."
},
"subdomain": {
"type": "string",
"maxLength": 63,
"minLength": 1,
"description": "When keeping a preview: the name for its web address, like acme."
},
"rights_confirmed": {
"type": "boolean",
"description": "Say true only after the person has confirmed, in this conversation, that the content is theirs or they have permission to publish it. Needed once, for a site whose content was brought from somewhere else."
}
}
}Read one page of a site, including anything set at the top of it.
| Argument | Type | Description |
|---|---|---|
| path* | string | The page's address within the site, like /pricing. |
| site | string | Which site: its name or its address. Leave it out if this connection only covers one. |
| draft_id | string | Which preview this is about: the draft_id create_preview gave, not the code in the preview's link. Leave it out for a site you keep. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"path"
],
"properties": {
"path": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "The page's address within the site, like /pricing."
},
"site": {
"type": "string",
"maxLength": 262,
"description": "Which site: its name or its address. Leave it out if this connection only covers one."
},
"draft_id": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "Which preview this is about: the draft_id create_preview gave, not the code in the preview's link. Leave it out for a site you keep."
}
}
}Put a site, or one page of it, back to how it was at an earlier point.
| Argument | Type | Description |
|---|---|---|
| site | string | Which site: its name or its address. Leave it out if this connection only covers one. |
| pages | array | Leave this out to put the whole site back. Name pages to put only those back. |
| to_version* | integer | The version number to go back to, from the history. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"to_version"
],
"properties": {
"site": {
"type": "string",
"maxLength": 262,
"description": "Which site: its name or its address. Leave it out if this connection only covers one."
},
"pages": {
"type": "array",
"items": {
"type": "string",
"maxLength": 512,
"minLength": 1
},
"maxItems": 500,
"description": "Leave this out to put the whole site back. Name pages to put only those back."
},
"to_version": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "The version number to go back to, from the history."
}
}
}Change how a site looks: its theme, main colour, typeface, header links, logo and icon. Only the site's owner can do this. Give only the things to change. A logo or icon is taken from an address you give; say images_are_ours: true only when the owner has told you the pictures are theirs to use — otherwise they are kept but not shown until the owner confirms them on the site's preview. On a preview nobody has kept yet, give its draft_id to set its name or its logo. Give languages to change the language the site's own words — Previous, Next, Search — are in.
| Argument | Type | Description |
|---|---|---|
| font | string | The typeface: system, serif, mono, humanist, grotesque. |
| site | string | Which site: its name or its address. Leave it out if this connection only covers one. |
| theme | string | The theme preset: classic, slab, space or paper. |
| draft_id | string | Which preview this is about: the draft_id create_preview gave, not the code in the preview's link. Leave it out for a site you keep. |
| icon_url | string | A direct https address of the small icon for the browser tab — same kinds and limit. |
| logo_url | string | A direct https address of the logo — PNG, JPEG, WebP or SVG, up to 1 MB. An empty value removes the logo. |
| languages |
Check whether a site is published, when it last went out, what it is on, and which changes are waiting to be kept.
| Argument | Type | Description |
|---|---|---|
| site | string | Which site: its name or its address. Leave it out if this connection only covers one. |
| draft_id | string | Which preview this is about: the draft_id create_preview gave, not the code in the preview's link. Leave it out for a site you keep. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"site": {
"type": "string",
"maxLength": 262,
"description": "Which site: its name or its address. Leave it out if this connection only covers one."
},
"draft_id": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "Which preview this is about: the draft_id create_preview gave, not the code in the preview's link. Leave it out for a site you keep."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 3, 2026.
| logo_url |
| string |
| A direct https address of the product's logo as the source shows it in its header — the mark, not a banner or a picture made for social media. Leave it out if the source has none. |
| languages | array | The site's language as a code, like en, ru or pt-BR — the language every page, title and heading is written in. |
| site_name | string | The name of the product or company the site is about, as the source writes it. It is shown at the top of every page. |
| attribution | string | Where this arrival came from. |
| logo_shows_name | boolean | true when the logo image itself spells the name, so the name is not printed again beside it. Leave it out otherwise. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"source"
],
"properties": {
"pages": {
"type": "array",
"items": {
"type": "object",
"required": [
"path",
"markdown"
],
"properties": {
"path": {
"type": "string",
"maxLength": 2048,
"minLength": 1,
"description": "The address of the page, like /guides/setup. The front page's address is /."
},
"title": {
"type": "string",
"maxLength": 512,
"description": "The page title, if it has one."
},
"markdown": {
"type": "string",
"maxLength": 20971520,
"description": "The page content, already converted to markdown."
}
}
},
"maxItems": 1000,
"description": "The pages, already converted to markdown. One entry per page."
},
"source": {
"type": "object",
"required": [
"kind"
],
"properties": {
"ref": {
"type": "string",
"maxLength": 2048,
"description": "The address it came from, when there is one."
},
"kind": {
"enum": [
"repo",
"docs_url",
"landing_page",
"paste",
"file",
"scratch"
],
"type": "string",
"description": "Where the content came from: a code repository, a documentation site, a product landing page, writing supplied directly here, a file attached to this conversation, or nothing — drafted here from what the person described."
}
},
"description": "Where this content came from, exactly as it happened."
},
"logo_url": {
"type": "string",
"format": "uri",
"maxLength": 2048,
"description": "A direct https address of the product's logo as the source shows it in its header — the mark, not a banner or a picture made for social media. Leave it out if the source has none."
},
"languages": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"
},
"maxItems": 4,
"minItems": 1,
"description": "The site's language as a code, like en, ru or pt-BR — the language every page, title and heading is written in."
},
"site_name": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "The name of the product or company the site is about, as the source writes it. It is shown at the top of every page."
},
"attribution": {
"type": "string",
"maxLength": 256,
"description": "Where this arrival came from."
},
"logo_shows_name": {
"type": "boolean",
"description": "true when the logo image itself spells the name, so the name is not printed again beside it. Leave it out otherwise."
}
}
}| array |
| The site's language as a code, like en, ru or pt-BR — the language every page, title and heading is written in. |
| site_name | string | The name shown at the top of every page. |
| header_links | array | Up to 4 links for the header, replacing the current set. Addresses must start with https:// |
| primary_color | string | The main colour, like #2e5fa3. It has to stay readable on light and dark screens. |
| images_are_ours | boolean | Say true only when the owner has told you the pictures are theirs to use. Otherwise they are kept but not shown until the owner confirms them. |
| logo_shows_name | boolean | true when the logo image itself spells the name, so the name is not printed again beside it. Leave it out otherwise. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"font": {
"enum": [
"system",
"serif",
"mono",
"humanist",
"grotesque"
],
"type": "string",
"description": "The typeface: system, serif, mono, humanist, grotesque."
},
"site": {
"type": "string",
"maxLength": 262,
"description": "Which site: its name or its address. Leave it out if this connection only covers one."
},
"theme": {
"enum": [
"classic",
"slab",
"space",
"paper"
],
"type": "string",
"description": "The theme preset: classic, slab, space or paper."
},
"draft_id": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "Which preview this is about: the draft_id create_preview gave, not the code in the preview's link. Leave it out for a site you keep."
},
"icon_url": {
"type": "string",
"maxLength": 2048,
"description": "A direct https address of the small icon for the browser tab — same kinds and limit."
},
"logo_url": {
"type": "string",
"maxLength": 2048,
"description": "A direct https address of the logo — PNG, JPEG, WebP or SVG, up to 1 MB. An empty value removes the logo."
},
"languages": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"
},
"maxItems": 4,
"minItems": 1,
"description": "The site's language as a code, like en, ru or pt-BR — the language every page, title and heading is written in."
},
"site_name": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "The name shown at the top of every page."
},
"header_links": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"url"
],
"properties": {
"url": {
"type": "string",
"maxLength": 2048,
"minLength": 1
},
"label": {
"type": "string",
"maxLength": 80,
"minLength": 1
}
}
},
"maxItems": 50,
"description": "Up to 4 links for the header, replacing the current set. Addresses must start with https://"
},
"primary_color": {
"type": "string",
"maxLength": 32,
"description": "The main colour, like #2e5fa3. It has to stay readable on light and dark screens."
},
"images_are_ours": {
"type": "boolean",
"description": "Say true only when the owner has told you the pictures are theirs to use. Otherwise they are kept but not shown until the owner confirms them."
},
"logo_shows_name": {
"type": "boolean",
"description": "true when the logo image itself spells the name, so the name is not printed again beside it. Leave it out otherwise."
}
}
}