inktomd MCP Server

Convert files, URLs, and documents to clean, AI-ready Markdown via MCP.

Should I use this

Quality & Safety

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

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,580Tokens (tool definitions)
~874 BTypical response size
Moderate attention impact (1.23% 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": {
    "inktomd-mcp": {
      "url": "https://mcp.inktomd.com/mcp"
    }
  }
}

Remote endpoints

https://mcp.inktomd.com/mcpstreamable-http

What it can do

Tool inventory

Tools (9)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
⚪convert_url(url)

Convert any URL to clean AI-ready Markdown. Supports webpages, YouTube videos, ArXiv papers, Wikipedia articles, Substack newsletters, RSS feeds, Google Docs, GitHub pages, and more. Returns Markdown with up to 63% fewer tokens than the raw source HTML.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "title": "Url",
      "type": "string"
    }
  },
  "required": [
    "url"
  ],
  "title": "convert_urlArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "convert_urlOutput"
}
⚪convert_file(file_path)

Convert a local file to clean AI-ready Markdown. Supports PDF, Word (.doc/.docx), Excel (.xls/.xlsx), PowerPoint (.ppt/.pptx), EPUB, HTML, CSV, JSON, XML, Jupyter notebooks (.ipynb), Email files (.eml/.msg), ZIP archives (.zip), and 7-Zip archives (.7z). Provide the absolute file path. Maximum file size: 20MB.

Input Schema

{
  "type": "object",
  "properties": {
    "file_path": {
      "title": "File Path",
      "type": "string"
    }
  },
  "required": [
    "file_path"
  ],
  "title": "convert_fileArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "convert_fileOutput"
}
🟢convert_youtube(url)

Extract the full transcript from any public YouTube video as clean Markdown. Works with standard watch links (youtube.com/watch?v=) and short links (youtu.be/). The video must have captions enabled — including auto-generated captions. Returns the transcript as flowing Markdown paragraphs, not raw caption fragments.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "title": "Url",
      "type": "string"
    }
  },
  "required": [
    "url"
  ],
  "title": "convert_youtubeArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "convert_youtubeOutput"
}
⚪convert_arxiv(url)

Convert any ArXiv research paper to clean structured Markdown. Accepts both abstract page URLs (arxiv.org/abs/PAPER_ID) and direct PDF links (arxiv.org/pdf/PAPER_ID). Returns the full paper content with headings, sections, and content preserved — uses significantly fewer tokens than the PDF format for AI analysis.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "title": "Url",
      "type": "string"
    }
  },
  "required": [
    "url"
  ],
  "title": "convert_arxivArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "convert_arxivOutput"
}
🟢list_supported_formats

List all file formats and URL types that inktomd supports for conversion to Markdown. Use this to check whether a specific file type or URL source is supported before attempting conversion.

Input Schema

{
  "type": "object",
  "properties": {},
  "title": "list_supported_formatsArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "list_supported_formatsOutput"
}
🟢count_tokens(text, model)

Count the exact number of tokens in a text string for a specific AI model. Uses tiktoken for OpenAI models and estimates for others. Args: text: The text to count tokens for model: The AI model to count tokens for. Options: gpt-4o, gpt-4o-mini, gpt-4.1, claude-sonnet, claude-haiku, gemini-pro, gemini-flash, llama-4, deepseek-v3, mistral-large. Default: gpt-4o Returns: Token count information including count, context window, and fit status

Input Schema

{
  "type": "object",
  "properties": {
    "text": {
      "title": "Text",
      "type": "string"
    },
    "model": {
      "default": "gpt-4o",
      "title": "Model",
      "type": "string"
    }
  },
  "required": [
    "text"
  ],
  "title": "count_tokensArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "count_tokensOutput"
}
🟢convert_batch(urls)

Convert multiple URLs to Markdown in a single call. Maximum 10 URLs per batch. Each URL is converted independently. Args: urls: List of URLs to convert. Maximum 10. Each must start with http:// or https:// Returns: All converted Markdown documents combined, clearly separated with headers

Input Schema

{
  "type": "object",
  "properties": {
    "urls": {
      "items": {
        "type": "string"
      },
      "title": "Urls",
      "type": "array"
    }
  },
  "required": [
    "urls"
  ],
  "title": "convert_batchArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "convert_batchOutput"
}
⚪convert_with_metadata(source, source_type)

Convert a file or URL to Markdown and return both content and structured metadata. Metadata includes title, estimated token counts for all major models, word count, character count, and reading time. Args: source: Either a URL (starting with http/https) or absolute file path source_type: Either "url" or "file". Default: "url" Returns: Markdown content with a metadata header block containing all stats

Input Schema

{
  "type": "object",
  "properties": {
    "source": {
      "title": "Source",
      "type": "string"
    },
    "source_type": {
      "default": "url",
      "title": "Source Type",
      "type": "string"
    }
  },
  "required": [
    "source"
  ],
  "title": "convert_with_metadataArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "convert_with_metadataOutput"
}
🟢prepare_for_rag(source, source_type, chunk_size, overlap)

Convert a file or URL to Markdown, then split it into optimally-sized chunks ready for insertion into a vector database or RAG pipeline. Returns a JSON array of chunks with token counts, making this the single tool needed to go from raw document to RAG-ready data. Args: source: Either a URL (starting with http/https) or absolute file path source_type: Either "url" or "file". Default: "url" chunk_size: Target token count per chunk. Default: 512. Recommended range: 256-1024 overlap: Token overlap between consecutive chunks to preserve context. Default: 50 Returns: JSON array of chunks, each with: chunk_id, text, token_count, char_count

Input Schema

{
  "type": "object",
  "properties": {
    "source": {
      "title": "Source",
      "type": "string"
    },
    "source_type": {
      "default": "url",
      "title": "Source Type",
      "type": "string"
    },
    "chunk_size": {
      "default": 512,
      "title": "Chunk Size",
      "type": "integer"
    },
    "overlap": {
      "default": 50,
      "title": "Overlap",
      "type": "integer"
    }
  },
  "required": [
    "source"
  ],
  "title": "prepare_for_ragArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "prepare_for_ragOutput"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools