
Markdown Notes Mcp
io.github.Narashiman-KPublished by GitHub account Narashiman-Kv0.1.4Updated Oct 24, 2026
Convert PDF, Word, Excel, PowerPoint, EPUB and images to Markdown locally, with no upload.
Overview
Converts local documents and images to model-friendly Markdown, with optional cloud OCR and audio transcription.
- What you can do
- Runs on your machine and converts PDF, Word, Excel, PowerPoint, OpenDocument, EPUB, CSV, TSV, plain text and images into tidied Markdown, promoting tables and fencing code. Tools include convert_to_markdown, which saves the .md beside the original, convert_folder_to_markdown for batches, save_summary for assistant-written summaries, and list_supported_formats. Long conversions are saved to disk with only a short preview returned to limit token use.
- When to use it
- Useful when an assistant needs to read formats it cannot handle natively, such as EPUB, PowerPoint, OpenDocument or scanned images, and you would rather not upload the files. Also suits batch conversion of a folder of documents into Markdown.
- Requirements
- A local Node.js runtime; install from npm as suprasuta-markdown-mcp or via the .mcpb package for Claude Desktop. Optional secrets ASSEMBLYAI_API_KEY for audio transcription and GEMINI_API_KEY for cloud image recognition. MARKDOWN_MCP_ROOTS optionally limits readable folders; without it any path is allowed. Settings are read only at start-up, so restart the host after changes.
Installation
In SourceWeft
- Open Markdown Notes Mcp in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Suprasūtā Markdown Notes — MCP server
Let Claude, VS Code and Antigravity read any document on your machine — without uploading it.
Created by Narashiman Krishnamurthy
Licence: free for personal, non-commercial use. See LICENSE.md.
What it does
AI assistants can read plain text, and some can read PDFs. None of them read EPUB, OpenDocument, PowerPoint or a scanned image, and all of them do it by uploading your file to a server.
This converts documents on your own machine and hands back Markdown that has been tidied for a model to read — tables promoted to real Markdown tables, deep indentation flattened, code properly fenced.
Tools
About tokens
Converting costs you nothing — it all happens locally. But returning a long document into the conversation does cost tokens, at the same rate as pasting it in by hand.
So a long conversion is saved to disk and only a short preview comes back. A
50-page PDF costs roughly 400 tokens instead of 30,000. Short documents are
returned in full, since they are cheap either way. Ask for
return_content: "full" to override.
Installing
Claude Desktop — the easy way
Download the .mcpb file from
Releases and
double-click it. Claude Desktop installs it and asks which folders it may read,
and optionally for API keys. No Node, no terminal, no JSON.
Claude Desktop — from source
Then restart Claude Desktop completely. The script patches the existing config rather than replacing it, and writes a timestamped backup first.
--roots is optional but recommended: it limits which folders the server will
read. Without it, any path the assistant asks for is allowed.
To remove it again: node scripts/install-claude-desktop.mjs --remove
From npm — any MCP host
Then point your host at the suprasuta-markdown-mcp command, or run it without
installing:
VS Code and Antigravity
Both read a standard MCP configuration — the block above works as-is.
Antigravity looks in ~/.gemini/config/mcp_config.json, or
.agents/mcp_config.json inside a workspace.
To run a checkout rather than the published package, replace command and
args with node and the absolute path to dist/server.js.
Optional cloud features
Both are dormant until a key is present. Everything else works without either.
Keys are read from the environment, never written to disk and never logged.
Settings are read once, at start-up. An MCP server is a long-running process, so a key or folder saved while it is running does not reach it until the host restarts. If a key you have just entered reports as not configured, restart the host before looking for anything more complicated.
Development
Why the build is esbuild rather than tsc
src/lib/convert/ is kept byte-identical to the copies in the Windows, web
and Android apps, so that drift can be detected rather than discovered. Those
files use extensionless imports and one Vite-specific ?url import, neither of
which Node's own resolver accepts. esbuild resolves both, so the shared files
never need Node-shaped edits.
The runtime hook
Three things genuinely differ between a browser and Node, and
src/lib/convert/runtime.ts asks the host rather than sniffing for process:
Everything else is shared. src/runtime/node.ts supplies the Node answers and
shims exactly one browser global, DOMParser.
A caution learned the hard way: that file used to define
documenttoo, and it broke OCR. tesseract.js sniffed for a DOM, found one, took the browser branch and died onwindow is not defined. Half a browser is worse than none — shim the minimum.
Keeping the copies honest
This package is the canonical copy: it is the only one with the runtime hook
that lets identical files run in both environments, so fixes start here and
flow outward. sync:check reports and exits zero — drift is information, not a
build failure.
Privacy Policy
This software collects nothing. No account, no analytics, no telemetry, and no server of its own — document conversion happens entirely on your machine.
Two optional features send data to a third party, and only when you supply your own API key: cloud image recognition sends the image to Google, and audio transcription sends the audio to AssemblyAI. With no keys configured, the software makes no network connections at all. API keys are read from the environment, never written to disk and never logged.
Full policy, covering collection, storage, retention, third-party sharing and contact details: PRIVACY.md.
Related
Source: README.md at commit bca560f
Tools
0Version history
1- v0.1.4LatestSep 16, 2026
Score
40% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.