Doconda

Create, review and edit Word, PowerPoint, Excel and PDF documents from any AI agent.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
96%
Naming quality
98%
Poisoning risk
80%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • HIGHTool poisoning patterns detected
  • LOWTool description contains role marker that could confuse chat modelsin review_document

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,404Tokens (tool definitions)
~1.2 KBTypical response size
Moderate attention impact (1.10% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "mcp": {
      "command": "npx",
      "args": [
        "@doconda/mcp"
      ]
    }
  }
}

Runnable packages

npm@doconda/mcp0.3.0stdio

Remote endpoints

https://api.eu.doconda.com/mcpstreamable-http

What it can do

Tool inventory

Tools (8)

🟒 Read-only🟑 WriteπŸ”΄ Deleteβšͺ Unknown
🟑create_document(format, prompt, markdown, style, name, ...)

Create a finished document: Word, PDF, PowerPoint, Excel or an artifact (a web page with its own shared database, e.g. a poll or a team checklist). Choose only the format: Doconda works out what kind of document it is (contract, letter, report…) from the request. Give `prompt` to have it written, or `markdown` with the content already written. Waits until it is ready and returns download links.

Input Schema

{
  "type": "object",
  "properties": {
    "format": {
      "type": "string",
      "enum": [
        "docx",
        "pdf",
        "pptx",
        "xlsx",
        "artifact"
      ],
      "description": "docx β†’ Word (+ PDF); pdf β†’ only the PDF; pptx β†’ PowerPoint (+ PDF); xlsx β†’ Excel (+ PDF); artifact β†’ web page. If the user didn't say, leave it out and Doconda decides from the prompt."
    },
    "prompt": {
      "type": "string",
      "description": "What to write, in the user's words (topic, audience, length, tone). Formatting wishes too, e.g. 'blue centred headings, with a cover page'."
    },
    "markdown": {
      "type": "string",
      "description": "Content already written, in Markdown (instead of prompt). For an artifact, the content its page shows."
    },
    "style": {
      "type": "string",
      "description": "Optional: the look in plain words, e.g. 'blue centred headings, Lora font, page numbers, table of contents'."
    },
    "name": {
      "type": "string",
      "description": "Optional: a name to find it later, e.g. 'Contrato piso MalasaΓ±a'. It also names the files."
    },
    "source_file_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Uploaded files (upload_file) or documents already made (their id, from list_documents): documents to base the text on (up to 5, with prompt) and pictures to put in the document (up to 10; with markdown, refer to them as ![caption](img:1), the first picture)."
    },
    "data": {
      "type": "string",
      "enum": [
        "shared",
        "local"
      ],
      "description": "Artifacts only. shared (default): everyone with the link sees the same data (polls, team lists). local: each visitor keeps their own in their browser (calculators, personal checklists). With retention none, only local."
    },
    "retention": {
      "type": "string",
      "enum": [
        "none",
        "1d",
        "7d",
        "30d",
        "90d"
      ],
      "description": "Optional: how long Doconda keeps it once finished (none = 15 minutes). Without it, the project's retention (30 days unless changed). The user should save the file before then."
    }
  },
  "additionalProperties": false
}
🟑upload_file(url, content_base64, filename)

Upload a file (Word, PDF, PowerPoint, Excel β€” also the old .doc, .ppt and .xls β€”, TXT, Markdown, or a PNG, JPEG, GIF or WebP picture; up to 20 MB) to review or edit it, or to use it as a source. Returns its file_id. Give `url` (public) or `content_base64`.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "A public URL to download the file from."
    },
    "content_base64": {
      "type": "string",
      "description": "The file's bytes in base64 (for small files)."
    },
    "filename": {
      "type": "string",
      "description": "Its name with extension, e.g. contract.docx. Needed with content_base64."
    }
  },
  "additionalProperties": false
}
🟒review_document(file_id)

Check an uploaded Word, PowerPoint, Excel or PDF file (also .doc, .ppt, .xls) for problems and fix the safe ones without touching the content, no AI: tables off the page, split signatures and broken numbering in Word; text overflowing its box or shapes off the slide in PowerPoint; formula errors, numbers stored as text or sheets too wide to print in Excel; scanned pages without text, missing title or language in PDF; amounts in words that don't match the figures in all of them. Files with macros are rejected; other dangerous content (external links and pictures, embedded files, automatic actions…) is removed. Returns the fixed file (old formats come back as .docx/.pptx/.xlsx) and what was found.

Input Schema

{
  "type": "object",
  "properties": {
    "file_id": {
      "type": "string",
      "description": "From upload_file, or the id of a document Doconda made (list_documents)."
    }
  },
  "required": [
    "file_id"
  ],
  "additionalProperties": false
}
🟑edit_document(file_id, instructions)

Change an uploaded Word, PowerPoint, Excel or PDF file as asked (e.g. 'blue headings and add a confidentiality clause'). Only what is asked changes; the rest stays identical. Returns the new file and a link to the report of every change.

Input Schema

{
  "type": "object",
  "properties": {
    "file_id": {
      "type": "string",
      "description": "From upload_file, or the id of a document Doconda made (list_documents)."
    },
    "instructions": {
      "type": "string",
      "description": "What to change, in the user's words."
    }
  },
  "required": [
    "file_id",
    "instructions"
  ],
  "additionalProperties": false
}
🟑list_documents(limit)

The latest documents made in this project (newest first), with their id and name. Use an id as file_id to review, edit or read one, or in source_file_ids to create from it.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "description": "How many, 1–100 (default 20)."
    }
  },
  "additionalProperties": false
}
🟒get_document(document_id)

A document's status and fresh download links (they expire after 5 minutes).

Input Schema

{
  "type": "object",
  "properties": {
    "document_id": {
      "type": "string",
      "description": "doc_…"
    }
  },
  "required": [
    "document_id"
  ],
  "additionalProperties": false
}
🟑get_report(document_id)

What a review or edit found and did: problems left, fixes applied or rejected (and why), and for edits every change with the text before and after.

Input Schema

{
  "type": "object",
  "properties": {
    "document_id": {
      "type": "string",
      "description": "doc_…"
    }
  },
  "required": [
    "document_id"
  ],
  "additionalProperties": false
}
🟒read_artifact_data(document_id, collection)

What people have saved in an artifact's page (e.g. poll votes): its collections, or one collection's records, newest first.

Input Schema

{
  "type": "object",
  "properties": {
    "document_id": {
      "type": "string",
      "description": "The artifact's doc_… id."
    },
    "collection": {
      "type": "string",
      "description": "Optional: one collection's records instead of the list of collections."
    }
  },
  "required": [
    "document_id"
  ],
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools