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