S3eidat Tools for your AI assistant
The tools from s3eidat.github.io, as an MCP server your AI can call: PDF, images, text, developer chores, calculators, QR codes and document makers. It runs on your own machine, so your files are never uploaded. No account, no API key, no telemetry.
npx -y s3eidat-tools-mcp
PDF · 17
Merge, split, organise, compress, watermark, number, sign and fill PDFs; text and images out.
Images · 16
Convert, resize, crop, compress, watermark, EXIF, palettes, favicons, placeholders.
Text · 15
Counting, case, slugs, cleaning, diffs, readability, Arabic tools, numbers to words, citations.
Developer: data formats · 15
JSON, CSV, YAML, XML, SQL, HTML/CSS formatting and conversion, types from JSON, curl to code.
Developer: utilities · 23
Hashes, Base64, URLs, JWT, IDs, regex, cron, timestamps, subnets, chmod, HTTP status, .gitignore.
Calculators · 24
Loans, interest, percentages, salary, GPA, zakat, BMI, dates, units, Hijri, maths.
Everyday & security · 15
Prayer times, qibla, world clock, random picks, Secret Santa, passwords, encryption.
QR & barcodes · 4
Make and read QR codes, Wi-Fi QR, barcodes.
Document makers · 7
Invoices, receipts, business cards, labels, calendars and CVs as PDF.
For AI agents · 26
Extra tools made for agents: documents to Markdown, OCR, chunking, SQL over CSV, charts and more.
Install
Needs Node.js 20.19+ (22+ recommended). Pick your app:
claude mcp add s3eidat -s user -- npx -y s3eidat-tools-mcp
One click: download the .mcpb for your computer from the latest release and double-click it. No Node.js needed.
Or by hand: Settings → Developer → Edit Config → add this to claude_desktop_config.json, then restart Claude.
{
"mcpServers": {
"s3eidat": { "command": "npx", "args": ["-y", "s3eidat-tools-mcp"] }
}
}Windows: if npx isn't found, use "command": "cmd" and "args": ["/c", "npx", "-y", "s3eidat-tools-mcp"].
~/.cursor/mcp.json (all projects) or .cursor/mcp.json:
{
"mcpServers": {
"s3eidat": { "command": "npx", "args": ["-y", "s3eidat-tools-mcp"] }
}
}code --add-mcp '{"name":"s3eidat","command":"npx","args":["-y","s3eidat-tools-mcp"]}'or .vscode/mcp.json:
{
"servers": {
"s3eidat": { "type": "stdio", "command": "npx", "args": ["-y", "s3eidat-tools-mcp"] }
}
}~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"s3eidat": { "command": "npx", "args": ["-y", "s3eidat-tools-mcp"] }
}
}codex mcp add s3eidat -- npx -y s3eidat-tools-mcp
~/.gemini/settings.json:
{
"mcpServers": {
"s3eidat": { "command": "npx", "args": ["-y", "s3eidat-tools-mcp"] }
}
}npx -y s3eidat-tools-mcp --http --port 8787
Then connect your client to http://127.0.0.1:8787/mcp. It listens on your machine only.
Things to ask
- "Merge these three PDFs, compress the result and add page numbers."
- "Turn every photo in ~/Desktop/receipts into one PDF."
- "Resize this image to 1200 px wide as WebP and strip the GPS data."
- "Format this JSON and convert it to YAML." · "What does
*/15 9-17 * * 1-5mean?" - "Monthly payment on 250,000 at 5.2% over 25 years?" · "Prayer times in Amman tomorrow."
- "Make a QR code for my Wi-Fi." · "Make an invoice PDF for these items."
Private by design
Local
The server is a Node process on your machine. Files are read and written on your disk, never uploaded.
Sandbox it
--root ~/Documents keeps every read and write inside one folder.
No telemetry
No analytics, no accounts, no keys. The few agent tools that use the network are marked so your app asks first.
Same results as the web
Each tool is ported from its web version with the same self-tests, and links to it for humans.
Options
| Option | What it does |
|---|---|
--root <dir> | Only allow reading and writing inside this folder. |
--out-dir <dir> | Default folder for outputs (otherwise a temp folder). |
--max-mb <n> | Largest input file in MB (default 200). |
--groups pdf,image | Only expose these groups (pdf, image, text, data, dev, calc, everyday, qr, docs, ai). |
--compact | 3 small meta-tools (find, info, run) instead of ~140 tools. Best for Cursor/Windsurf tool limits and small models. |
--http --port 8787 | Serve Streamable HTTP on 127.0.0.1 instead of stdio. |