Convert files, URLs, and documents to clean, AI-ready Markdown via MCP.
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.
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.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
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.
| Argument | Type | Description |
|---|---|---|
| url* | string |
{
"type": "object",
"title": "convert_arxivArguments",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"title": "Url"
}
}
}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
| Argument | Type | Description |
|---|
| urls* | array |
{
"type": "object",
"title": "convert_batchArguments",
"required": [
"urls"
],
"properties": {
"urls": {
"type": "array",
"items": {
"type": "string"
},
"title": "Urls"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| file_path* | string |
{
"type": "object",
"title": "convert_fileArguments",
"required": [
"file_path"
],
"properties": {
"file_path": {
"type": "string",
"title": "File Path"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| url* | string |
{
"type": "object",
"title": "convert_urlArguments",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"title": "Url"
}
}
}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
| Argument | Type | Description |
|---|---|---|
| source* | string | |
| source_type | string |
{
"type": "object",
"title": "convert_with_metadataArguments",
"required": [
"source"
],
"properties": {
"source": {
"type": "string",
"title": "Source"
},
"source_type": {
"type": "string",
"title": "Source Type",
"default": "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.
| Argument | Type | Description |
|---|---|---|
| url* | string |
{
"type": "object",
"title": "convert_youtubeArguments",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"title": "Url"
}
}
}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
| Argument | Type | Description |
|---|---|---|
| text* | string | |
| model | string |
{
"type": "object",
"title": "count_tokensArguments",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"title": "Text"
},
"model": {
"type": "string",
"title": "Model",
"default": "gpt-4o"
}
}
}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.
No arguments.
{
"type": "object",
"title": "list_supported_formatsArguments",
"properties": {}
}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
| Argument | Type | Description |
|---|---|---|
| source* | string | |
| overlap | integer | |
| chunk_size | integer | |
| source_type | string |
{
"type": "object",
"title": "prepare_for_ragArguments",
"required": [
"source"
],
"properties": {
"source": {
"type": "string",
"title": "Source"
},
"overlap": {
"type": "integer",
"title": "Overlap",
"default": 50
},
"chunk_size": {
"type": "integer",
"title": "Chunk Size",
"default": 512
},
"source_type": {
"type": "string",
"title": "Source Type",
"default": "url"
}
}
}