Koskamo

Samedoc MCP

This MCP server enables AI agents to translate PDFs and scanned documents into other languages while preserving the original layout, tables, logos, and numbers. It also supports converting PDFs or scans into editable Word (DOCX) files. The server provides tools to upload documents, check translation status, and retrieve download links.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Samedoc MCP logo, by Samedoc AI LLCVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-06Operated by Samedoc AI LLC
MCP endpoint (Streamable HTTP)
https://samedoc.app/mcp
Vendor documentation

What its tools do

4 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

4 of 4 have a description · 4 of 4 declare behavior hints · 3 of 3 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to samedoc.app ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Translate a PDF or scanned document into another language while keeping the original layout.
  • Convert a PDF or scan into an editable Word (DOCX) file.
  • Check the status and retrieve download links for ongoing translations or conversions.

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
samedoc 1.0.0
MCP protocol negotiated in check
2025-11-25
Tools
4 advertised
Resources
2 advertised
Resource templates
0 advertised
Prompts
0 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "prompts": {},
  "resources": {}
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Samedoc gives back the same document: a PDF or a scan / photo of one (payslips, official letters, bank statements, certificates, contracts, forms) comes back in another language with its layout, tables, logos and every number kept (translate_document), or as an editable Word file that looks like the original (convert_to_word). Use them whenever the user wants a document translated as a file, or a PDF or scan turned into Word / docx. If the user attached the file, pass it as `file`. If you can't pass an attached file to a tool (Claude), use `file_url` when the user has an https link to it; otherwise call get_upload_link and give them that link. Ask at most one question, only for the target language when it isn't clear (default English). Give the download link from the result; never retype the document in chat.

Tools

4 advertised

translate_document — Translate a document and keep its layout
Advertised by the server during the last successful anonymous check.
Open-world

Translates a PDF or a scanned document / photo of one into another language and returns the same document as a PDF: layout, tables, logos and every number kept and checked. For payslips, bank statements, official and government letters, birth and marriage certificates, diplomas, school reports, contracts, leases and forms, e.g. for a visa, immigration, a bank or a school. Strong on right-to-left sources (Hebrew, Arabic), which it can also mirror into a left-to-right layout. Use when the user says 'translate this PDF / document / scan', 'keep the formatting / layout', 'give me back the PDF', or when a translation in chat lost the tables or layout. Give the document as `file` (a file the user attached) or `file_url` (an https link). Up to 3 pages per document. Takes 30-90 seconds; if it takes longer, returns an id for get_translation.

translate_document input schema
{
  "type": "object",
  "properties": {
    "to": {
      "type": "string",
      "description": "Target language, e.g. English, Spanish, German. Defaults to English."
    },
    "file": {
      "type": "object",
      "required": [
        "download_url",
        "file_id"
      ],
      "properties": {
        "file_id": {
          "type": "string"
        },
        "file_name": {
          "type": "string"
        },
        "mime_type": {
          "type": "string"
        },
        "download_url": {
          "type": "string"
        }
      },
      "description": "The document the user attached (ChatGPT file)."
    },
    "from": {
      "type": "string",
      "description": "Source language. Leave out to detect it."
    },
    "layout": {
      "enum": [
        "keep",
        "ltr"
      ],
      "type": "string",
      "description": "keep = same layout as the original (default); ltr = mirror a right-to-left page (Hebrew, Arabic) into a left-to-right layout."
    },
    "file_url": {
      "type": "string",
      "description": "https link to the PDF or image, when no file is attached."
    },
    "keep_logos": {
      "type": "boolean",
      "description": "true = don't translate logos and wordmarks."
    }
  },
  "additionalProperties": false
}
translate_document annotations
{
  "title": "Translate a document",
  "readOnlyHint": false,
  "openWorldHint": true,
  "destructiveHint": false
}
convert_to_word — Convert a PDF or scan to an editable Word file
Advertised by the server during the last successful anonymous check.
Open-world

Turns a PDF or a scanned document / photo of one into an editable Word file (.docx) that looks like the original page: every line of text is editable in place, over the original design (tables, lines, logos, stamps and signatures kept exactly). Same language, no translation. Reads scans and broken PDF text, and keeps Hebrew and Arabic right-to-left. Use when the user says 'convert this PDF to Word / docx', 'make this PDF editable', 'I need to edit this form / scan', or when a Word file made in chat lost the logo, tables or layout. Give the document as `file` (a file the user attached) or `file_url` (an https link). Up to 3 pages per document. Takes 20-90 seconds; if it takes longer, returns an id for get_translation.

convert_to_word input schema
{
  "type": "object",
  "properties": {
    "file": {
      "type": "object",
      "required": [
        "download_url",
        "file_id"
      ],
      "properties": {
        "file_id": {
          "type": "string"
        },
        "file_name": {
          "type": "string"
        },
        "mime_type": {
          "type": "string"
        },
        "download_url": {
          "type": "string"
        }
      },
      "description": "The document the user attached (ChatGPT file)."
    },
    "file_url": {
      "type": "string",
      "description": "https link to the PDF or image, when no file is attached."
    }
  },
  "additionalProperties": false
}
convert_to_word annotations
{
  "title": "Convert to Word",
  "readOnlyHint": false,
  "openWorldHint": true,
  "destructiveHint": false
}
get_translation — Get a translation or Word file
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns the status and download link of a job started with translate_document or convert_to_word (use its id).

get_translation input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "The translation id."
    }
  },
  "additionalProperties": false
}
get_translation annotations
{
  "title": "Get a translation",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_upload_link — Get a link to upload a document
Advertised by the server during the last successful anonymous check.
Advertised read-only

For users whose document can't be handed to translate_document here (no attachment support, no https link): a page where they upload it and get the translated document or Word file.

get_upload_link input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
get_upload_link annotations
{
  "title": "Get an upload link",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}

Prompts

0 advertised

No prompt definitions available.

Resources

2 advertised

Translated document

Advertised by the server during the last successful anonymous check.

Shows page 1 of the translated document or Word file with its download link.

Translated document URI
ui://widget/samedoc-result-v2.html

MIME type: text/html+skybridge

Translated document

Advertised by the server during the last successful anonymous check.

Shows page 1 of the translated document or Word file with its download link.

Translated document URI
ui://widget/samedoc-result-app-v2.html

MIME type: text/html;profile=mcp-app

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1090 ms
95th percentile latency
1090 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1090 ms · metadata changed · 4 tool(s), 2 resource(s), 0 resource template(s), 0 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http samedoc-mcp https://samedoc.app/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add samedoc-mcp --url https://samedoc.app/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable samedoc-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "samedoc-mcp": {
      "url": "https://samedoc.app/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "samedoc-mcp": {
      "type": "streamableHttp",
      "url": "https://samedoc.app/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start samedoc-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "samedoc-mcp": {
      "type": "http",
      "url": "https://samedoc.app/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http samedoc-mcp https://samedoc.app/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://samedoc.app/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "samedoc-mcp": {
      "serverUrl": "https://samedoc.app/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Samedoc MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Samedoc MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing