
Security News
Happy Birthday, Shai-Hulud
It has been one year since Shai-Hulud made its first appearance on npm.
mcp-dharmamitra
Advanced tools
MCP server that runs OCR on an image via the public Dharmamitra OCR endpoint and writes the extracted text to a local file. Optimised for Tibetan / Sanskrit / Devanagari input.
ocr_image| Argument | Type | Default | Notes |
|---|---|---|---|
image_path | str | — | Absolute path to a local image (png/jpg/…). |
output_path | str | — | File to write UTF-8 text into. Parent dirs are created. |
transliterate_devanagari_to_iast | bool | false | Passed to the API. |
transliterate_tibetan_to_wylie | bool | false | Passed to the API. |
instruction | str | "" | Optional model instruction. |
model | str | "auto" | OCR model id. |
poll_interval_seconds | float | 2.0 | Delay between status polls. |
timeout_seconds | float | 300.0 | Overall polling deadline. |
Returns a small JSON summary — the extracted text is written to output_path,
not returned to the client.
{
"job_id": "b8b26984b3ca49199c28303cad6a144d",
"output_path": "/abs/path/out.txt",
"pages": 1,
"processing_time_seconds": 3.957,
"chars": 1234
}
uv sync # or: pip install -e '.[dev]'
Run locally with the MCP inspector:
uv run mcp dev src/mcp_dharmamitra/server.py
Run tests:
uv run pytest
~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"dharmamitra": {
"command": "uv",
"args": ["--directory", "/path/mcp-dharmamitra", "run", "mcp-dharmamitra"],
"env": {"DHARMAMITRA_COOKIE": ""}
}
}
}
Build the image:
docker build -t mcp-dharmamitra:latest .
MCP talks over stdio, so the container must be run with -i (no -t). Mount
a host directory that holds the input images — the tool arguments
(image_path, output_path) are paths inside the container.
Smoke-test the entrypoint:
docker run --rm --entrypoint python mcp-dharmamitra:latest \
-c "from mcp_dharmamitra.server import mcp; print(mcp.name)"
Replace /Users/aleksei/projects/ai/mcp-dharmamitra/tmp with any host
directory you want the tool to be able to read/write. Files inside it will be
visible under /data in the container.
{
"mcpServers": {
"dharmamitra": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", "/Users/aleksei/projects/ai/mcp-dharmamitra/tmp:/data",
"-e", "DHARMAMITRA_COOKIE",
"mcp-dharmamitra:latest"
],
"env": {
"DHARMAMITRA_COOKIE": ""
}
}
}
}
Or the same via CLI:
claude mcp add dharmamitra \
--scope project \
-e DHARMAMITRA_COOKIE="" \
-- docker run -i --rm \
-v /Users/aleksei/projects/ai/mcp-dharmamitra/tmp:/data \
-e DHARMAMITRA_COOKIE \
mcp-dharmamitra:latest
When calling the tool, pass container paths. Example — image at
<host>/tmp/text.png → /data/text.png:
{
"image_path": "/data/text.png",
"output_path": "/data/text.txt"
}
The resulting text.txt appears in the mounted host directory.
cf_clearanceThe endpoint sits behind Cloudflare. Most requests go through without any
cookie. If you start getting 403, grab a fresh cf_clearance value from a
logged-in browser session on dharmamitra.org and export it:
export DHARMAMITRA_COOKIE='cf_clearance value here'
The server will attach it as a cookie on every request. Do not hardcode it — Cloudflare rotates the value.
FAQs
MCP server for Dharmamitra OCR (Tibetan/Sanskrit/Devanagari)
We found that mcp-dharmamitra demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
It has been one year since Shai-Hulud made its first appearance on npm.

Research
/Security News
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.

Security News
GitHub Actions now supports cache-mode, a least-privilege control on the Actions cache aimed at the cache poisoning technique behind recent compromises.