Publicsofttools
БесплатноНе проверен14 utility tools via the PublicSoftTools API: QR code generation, PDF compress/merge/split/convert/unlock, cryptographic hashing (MD5/SHA-1/SHA-256/SHA-512), UU
Описание
14 utility tools via the PublicSoftTools API: QR code generation, PDF compress/merge/split/convert/unlock, cryptographic hashing (MD5/SHA-1/SHA-256/SHA-512), UUID generation, base64 encode/decode, secure password generation, IP geolocation, DNS records, SSL certificate check, and WHOIS lookup. Free tier: 1,500 calls/month.
README
Give any MCP-compatible AI agent (Claude, Cursor, Windsurf) access to 14 utility tools from PublicSoftTools.
npm: npx publicsofttools-mcp
API docs: https://www.publicsofttools.com/docs
Get a key: https://www.publicsofttools.com/account/api-keys
Tools included
| Tool | Endpoint | Description |
|---|---|---|
generate_qr_code |
POST /api/v1/util/qr |
QR code as base64 PNG or raw SVG |
generate_hash |
POST /api/v1/util/hash |
MD5, SHA-1, SHA-256, SHA-384, SHA-512 |
generate_uuid |
GET /api/v1/util/uuid |
UUID v4 — up to 100 at once |
encode_decode_base64 |
POST /api/v1/util/base64 |
Encode or decode, with URL-safe variant |
generate_password |
POST /api/v1/util/password |
Cryptographically secure password |
lookup_ip |
GET /api/v1/ip/lookup |
Geolocation, ISP, ASN, proxy/VPN detection |
check_ssl |
GET /api/v1/domain/ssl |
SSL certificate details + days remaining |
lookup_dns |
GET /api/v1/domain/dns |
A, AAAA, MX, TXT, CNAME, NS, SOA records |
whois_lookup |
GET /api/v1/domain/whois |
Domain registrar, dates, nameservers |
compress_pdf |
POST /api/v1/pdf/compress |
Reduce PDF file size (max 4 MB) |
merge_pdfs |
POST /api/v1/pdf/merge |
Combine 2–20 PDFs into one |
split_pdf |
POST /api/v1/pdf/split |
Split by page range or every N pages |
pdf_to_word |
POST /api/v1/pdf/to-word |
Convert PDF to editable .docx |
unlock_pdf |
POST /api/v1/pdf/unlock |
Remove permission restrictions |
Prerequisites
- Node.js 18+ (required for native
fetchsupport) - A PublicSoftTools API key — get one free (1,500 calls/month, no credit card)
Install & configure
Claude Desktop
Add to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/claude/claude_desktop_config.json
{
"mcpServers": {
"publicsofttools": {
"command": "npx",
"args": ["-y", "publicsofttools-mcp"],
"env": {
"PST_API_KEY": "your_api_key_here"
}
}
}
}
Restart Claude Desktop. The tools will appear in the tools panel.
Cursor
Open Settings → MCP and add:
{
"publicsofttools": {
"command": "npx",
"args": ["-y", "publicsofttools-mcp"],
"env": { "PST_API_KEY": "your_api_key_here" }
}
}
Windsurf
Open Settings → MCP Servers and add the same JSON block as Cursor above.
Tool reference
All tools require the PST_API_KEY environment variable. All file inputs/outputs use base64-encoded content.
generate_qr_code
Generate a QR code image for any text, URL, or data.
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
text |
string | yes | — | Text, URL, or data to encode |
size |
number | no | 256 | Output size in pixels (64–1024) |
format |
"png" | "svg" |
no | "png" |
Output image format |
dark |
string | no | "#000000" |
Dark module color (hex) |
light |
string | no | "#ffffff" |
Light module color (hex) |
error_correction |
"L" | "M" | "Q" | "H" |
no | "M" |
Error correction level |
Response
{
"image": "data:image/png;base64,iVBORw0...",
"format": "png",
"size": 256
}
For format: "svg", image is a raw SVG string instead of a data URL.
generate_hash
Hash any text. Omit algorithm to get all five hashes in one call.
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
text |
string | yes | — | Text to hash (max 100,000 chars) |
algorithm |
"md5" | "sha1" | "sha256" | "sha384" | "sha512" |
no | all | Hash algorithm |
encoding |
"hex" | "base64" |
no | "hex" |
Output encoding |
Response (all algorithms)
{
"hashes": {
"md5": "5f4dcc3b5aa765d61d8327deb882cf99",
"sha1": "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8",
"sha256": "5e884898da28047151d0e56f8dc629277...",
"sha384": "a8b64babd0aca91a59bdbb7761b421d4...",
"sha512": "b109f3bbbc244eb82441917ed06d618b..."
},
"encoding": "hex",
"input_length": 8
}
generate_uuid
Generate UUID v4 values in batch.
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
count |
number | no | 1 | Number of UUIDs to generate (1–100) |
Response
{
"uuids": [
"550e8400-e29b-41d4-a716-446655440000",
"6ba7b810-9dad-11d1-80b4-00c04fd430c8"
],
"count": 2
}
encode_decode_base64
Encode text to base64 or decode base64 back to plain text.
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
text |
string | yes | — | Input text (max 500,000 chars) |
action |
"encode" | "decode" |
yes | — | Operation to perform |
url_safe |
boolean | no | false | Use URL-safe variant (- and _ instead of + and /) |
Response
{
"result": "aGVsbG8gd29ybGQ=",
"action": "encode",
"url_safe": false,
"input_length": 11,
"output_length": 16
}
generate_password
Generate a cryptographically secure random password.
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
length |
number | no | 16 | Password length (8–128) |
uppercase |
boolean | no | true | Include uppercase letters (A–Z) |
numbers |
boolean | no | true | Include digits (0–9) |
symbols |
boolean | no | true | Include symbols (!@#$…) |
Response
{
"password": "kR7#mQ2@xZ9!wP4$",
"length": 16,
"entropy_bits": 98.6
}
lookup_ip
Look up geolocation and network info for any IPv4 or IPv6 address.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
ip |
string | yes | IPv4 or IPv6 address (e.g. 8.8.8.8) |
Response
{
"ip": "8.8.8.8",
"country": "United States",
"country_code": "US",
"region": "California",
"city": "Mountain View",
"zip": "94043",
"lat": 37.4056,
"lon": -122.0775,
"timezone": "America/Los_Angeles",
"isp": "Google LLC",
"org": "Google LLC",
"asn": "AS15169 Google LLC",
"is_mobile": false,
"is_proxy": false,
"is_hosting": true
}
check_ssl
Check SSL/TLS certificate details for any domain.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
domain |
string | yes | Domain name (e.g. example.com) |
Response
{
"domain": "example.com",
"valid": true,
"issuer": "Let's Encrypt",
"subject": "example.com",
"san": ["example.com", "www.example.com"],
"valid_from": "2026-01-01T00:00:00Z",
"valid_to": "2026-04-01T00:00:00Z",
"days_remaining": 22,
"protocol": "TLSv1.3"
}
lookup_dns
Query DNS records for a domain. Omit type to get all available record types at once.
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
domain |
string | yes | — | Domain to query (e.g. example.com) |
type |
"A" | "AAAA" | "MX" | "TXT" | "CNAME" | "NS" | "SOA" |
no | all | Record type |
Response
{
"domain": "example.com",
"records": {
"A": ["93.184.216.34"],
"MX": [{ "exchange": "mail.example.com", "priority": 10 }],
"NS": ["ns1.example.com", "ns2.example.com"],
"TXT": ["v=spf1 include:_spf.example.com ~all"]
},
"queried_at": "2026-06-09T12:00:00Z"
}
whois_lookup
Get domain registration information.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
domain |
string | yes | Domain to look up (e.g. example.com) |
Response
{
"domain": "example.com",
"registrar": "Example Registrar, Inc.",
"registered_at": "1995-08-14T00:00:00Z",
"expires_at": "2027-08-13T00:00:00Z",
"updated_at": "2024-08-13T00:00:00Z",
"nameservers": ["a.iana-servers.net", "b.iana-servers.net"],
"status": ["clientDeleteProhibited", "clientTransferProhibited"]
}
compress_pdf
Reduce PDF file size using Ghostscript compression. Max file size: 4 MB.
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
file_base64 |
string | yes | — | Base64-encoded PDF content |
level |
"screen" | "ebook" | "printer" | "prepress" |
no | "ebook" |
Compression level. screen = smallest, prepress = highest quality |
Response
{
"pdf": "<base64-encoded compressed PDF>",
"original_size": 2048000,
"compressed_size": 819200,
"reduction_percent": 60
}
merge_pdfs
Merge 2–20 PDF files into a single document. Max 4 MB per file.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
files_base64 |
string[] | yes | Array of base64-encoded PDFs to merge in order (2–20 files) |
Response
{
"pdf": "<base64-encoded merged PDF>",
"page_count": 12,
"files_merged": 3
}
split_pdf
Split a PDF into multiple documents. Max file size: 4 MB.
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
file_base64 |
string | yes | — | Base64-encoded PDF to split |
mode |
"range" | "every_n" | "every_page" |
yes | — | Split mode |
pages |
string | no | — | Page range when mode=range, e.g. "1-3,5,7-9" |
every_n |
number | no | — | Split every N pages when mode=every_n |
Response
{
"files": [
"<base64-encoded PDF part 1>",
"<base64-encoded PDF part 2>"
],
"count": 2
}
pdf_to_word
Convert a PDF to an editable Word document (.docx). Max file size: 4 MB.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
file_base64 |
string | yes | Base64-encoded PDF to convert |
Response
{
"docx": "<base64-encoded .docx file>",
"page_count": 5
}
unlock_pdf
Remove owner-password permission restrictions from a PDF (print lock, copy lock, etc.). Does not require the password if only owner restrictions are set.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
file_base64 |
string | yes | Base64-encoded PDF |
password |
string | no | PDF password, if the file requires one to open |
Response
{
"pdf": "<base64-encoded unlocked PDF>",
"was_encrypted": true
}
Authentication
Set your API key as an environment variable:
export PST_API_KEY=pst_live_your_key_here
Or pass it inline for a one-off test:
PST_API_KEY=pst_live_your_key_here node dist/index.js
The key is sent as X-Api-Key: pst_live_... on every request.
Rate limits & plans
| Plan | Price | Calls/month |
|---|---|---|
| Free | $0 | 1,500 |
| Starter | $29/mo | 15,000 |
| Pro | $99/mo | 100,000 |
| Business | Custom | 1,000,000+ |
When you exceed your limit the API returns 429 Too Many Requests. Limits reset on the 1st of each month (UTC).
Get or upgrade your key: https://www.publicsofttools.com/account/api-keys
Troubleshooting
"PST_API_KEY environment variable is required"
The server exits immediately if no key is set. Make sure the env block in your MCP config has PST_API_KEY set.
Tools don't appear in Claude Desktop
Verify the JSON config is valid (no trailing commas), then fully quit and reopen Claude Desktop — a window close isn't enough.
401 Unauthorized
Your API key is invalid or has been revoked. Look it up again at https://www.publicsofttools.com/account/api-keys.
429 Too Many Requests
You've hit your monthly limit. Upgrade your plan or wait for the 1st-of-month reset.
413 File Too Large
PDF endpoints have a 4 MB binary limit. Compress or split the file before sending.
Node version error
Run node --version. You need Node 18 or later for native fetch. Update via https://nodejs.org.
License
MIT — see LICENSE
Установить Publicsofttools в Claude Desktop, Claude Code, Cursor
unyly install publicsofttools-mcpСтавит в Claude Desktop, Claude Code, Cursor и VS Code — сам разбирается с npx, uvx и сборкой из исходников.
Впервые? Поставь CLI: curl -fsSL https://unyly.org/install | sh
Или настроить вручную
Выполни в терминале:
claude mcp add publicsofttools-mcp -- npx -y publicsofttools-mcpFAQ
Publicsofttools MCP бесплатный?
Да, Publicsofttools MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Publicsofttools?
Нет, Publicsofttools работает без API-ключей и переменных окружения.
Publicsofttools — hosted или self-hosted?
Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.
Как установить Publicsofttools в Claude Desktop, Claude Code или Cursor?
Открой Publicsofttools на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Publicsofttools with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
