Skip to main content
Glama

PublicSoftTools MCP Server

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


Related MCP server: Kiprio MCP

Prerequisites

  • Node.js 18+ (required for native fetch support)

  • 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

Available Tools

14 tools
check_sslA

Check SSL/TLS certificate details for any domain: issuer, expiry date, SANs, and days remaining.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name to check (e.g. example.com)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It lists output details but does not disclose potential side effects, permissions, rate limits, or error behavior, which is a gap for a network-checking tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with action and resource, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description adequately covers purpose and outputs. Minor lack of error handling or wildcard support info, but overall complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with one parameter described. The description adds 'any domain' and output fields but does not significantly enhance meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Check'), the resource ('SSL/TLS certificate details for any domain'), and lists specific outputs ('issuer, expiry date, SANs, and days remaining'), distinguishing it from sibling tools like lookup_dns or whois_lookup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for checking SSL details but does not explicitly state when to use this tool versus siblings like lookup_dns or whois_lookup, nor does it provide exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compress_pdfB

Compress a PDF file to reduce its size. Accepts a base64-encoded PDF, returns a compressed base64 PDF.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_base64YesBase64-encoded PDF file content
qualityNoCompression quality: screen (lowest/smallest), ebook (balanced), printer (high quality), prepress (highest). Default: ebook

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description only covers I/O format. Missing details on lossy behavior, size limits, safety, and other traits beyond what is obvious.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences covering key points. Efficient, though could add brief usage guidance without bloat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple tool with two well-described params, but missing behavioral context (lossy, limits) that would help agent. Output schema absent but return type is hinted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% parameter description coverage (file_base64 and quality). Description adds no extra semantic value beyond repeating schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it compresses PDF files to reduce size, specifying base64 input/output. Distinct from sibling tools like merge_pdfs, split_pdf, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use compression vs alternatives, no when-not-to-use or prerequisites mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

encode_decode_base64B

Encode text to base64 or decode base64 back to plain text.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to encode, or base64 string to decode
actionYesWhether to encode or decode
url_safeNoUse URL-safe base64 variant (default: false)

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It correctly indicates the tool performs encoding and decoding, but does not mention that it is stateless, deterministic, or has no side effects. However, for a simple encoding tool, this is adequate, so a score of 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that immediately conveys the core functionality. It is concise and front-loaded with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description does not mention what the tool returns (e.g., a base64 string or decoded text), which is important given there is no output schema. Additionally, it provides no context about error handling or format specifics, making it incomplete for a tool with no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and each parameter already has a clear description in the input schema. The tool description does not add additional meaning beyond what is in the schema, so the baseline score of 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the tool's function: encoding text to base64 or decoding base64 back to plain text. It uses specific verbs ('encode', 'decode') and a concrete resource ('base64'), distinguishing it from sibling tools like generate_hash or generate_qr_code that perform different encoding operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor are there any conditions or prerequisites mentioned. The description only states what the tool does, not when to use it or when not to.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_hashA

Generate cryptographic hashes for any text. Returns MD5, SHA-1, SHA-256, SHA-384, and SHA-512 in a single call.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to hash

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It reveals the output includes five hash algorithms, but does not mention performance, security, or side effects. Adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence efficiently states action, resource, and output. Every word is necessary, no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the single required parameter and no output schema, the description fully covers what the tool does and returns. No missing information for this simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with the parameter description 'Text to hash' already present. The tool description adds no additional semantic meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Generate' and resource 'cryptographic hashes for any text', listing the exact hash types returned. It clearly distinguishes from siblings like encode_decode_base64 or generate_password.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for hashing any text but provides no explicit guidance on when not to use or alternatives among siblings. No context for when this tool is preferable over others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_passwordB

Generate a cryptographically secure random password with configurable rules.

ParametersJSON Schema
NameRequiredDescriptionDefault
lengthNoPassword length (default: 16, max: 128)
uppercaseNoInclude uppercase letters (default: true)
numbersNoInclude numbers (default: true)
symbolsNoInclude symbols (default: true)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It mentions 'cryptographically secure' and 'random', but does not address potential side effects, authorization requirements, or data privacy (e.g., whether passwords are stored or logged).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose. Every word earns its place, with no fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there is no output schema and no annotations, the description should explain the return value (e.g., the generated password string). It also lacks details on character set composition or limitations, making it incomplete for a four-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, meaning all four parameters are already documented with defaults. The description adds 'configurable rules' but does not provide new semantic meaning beyond what the schema offers. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates a cryptographically secure random password with configurable rules. It uses a specific verb ('generate') and resource ('password'), and the security and configurability details distinguish it from sibling tools like generate_hash or generate_uuid.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention when not to use it, prerequisites, or comparisons to sibling tools such as generate_uuid, which also generates random strings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_qr_codeB

Generate a QR code image for any text, URL, or data. Returns a base64 PNG or SVG image.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText, URL, or data to encode in the QR code
sizeNoOutput size in pixels (default: 256, max: 1024)
formatNoOutput format — png or svg (default: png)

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It mentions output format but lacks disclosure of limitations (e.g., size max 1024 in schema, but not behavior on large text), error handling, or whether it requires network access. Unclear if base64 string includes data URI prefix.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with key information. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple tool with no output schema and no annotations. Covers input, output format, and return type. However, ambiguity about base64 representation (raw or with data URI) and lack of error handling information reduce completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all parameters with descriptions (100% coverage). The description adds no extra meaning beyond 'any text, URL, or data' which is already implied by the text parameter description. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it generates a QR code image for any text, URL, or data, specifying output format (base64 PNG or SVG). Among sibling tools, none directly compete, so it is well-distinguished.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when or when not to use this tool. It doesn't compare to related tools like encode_decode_base64 or image tools, and doesn't provide context for appropriate use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_uuidA

Generate one or more UUID v4 values.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of UUIDs to generate (1–100, default: 1)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It accurately states the generation of UUID v4 values, which is a read-only, non-destructive operation. The behavior is fully disclosed for this simple tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is front-loaded and earns its place with no wasted words. It is appropriately concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 parameter, no output schema, no nested objects), the description is complete. It tells the agent exactly what the tool does and the scope of output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single parameter 'count' already described in the schema. The description adds 'one or more' but does not provide additional meaning beyond what the schema offers. Baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Generate' and resource 'UUID v4 values', and clearly indicates the tool can produce one or more values. It is distinct from sibling tools which are unrelated (e.g., check_ssl, compress_pdf).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The tool is simple and self-explanatory, but the description does not provide context like 'Use to create unique identifiers' or exclusions. A minimal viable score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lookup_dnsA

Query DNS records for a domain. Supports A, AAAA, MX, TXT, CNAME, NS, and SOA record types.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name to query (e.g. example.com)
typeNoDNS record type to query (default: A)

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description does not disclose behavioral traits such as error handling, rate limits, or whether subdomains are supported, beyond the basic query operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler, front-loaded with the main action, and lists supported types efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple DNS lookup tool, the description covers the essential parameters and supported types. Lacks details on return format, but the tool is straightforward and no output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description lists the supported record types already in the enum, adding marginal value. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Query' and the resource 'DNS records for a domain', and explicitly lists supported record types, making it distinct from sibling tools like lookup_ip or whois_lookup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when DNS records are needed, but lacks explicit guidance on when to use this tool versus alternatives like lookup_ip or whois_lookup, or any context about prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lookup_ipA

Get geolocation, ISP, ASN, and proxy/VPN detection for any IPv4 or IPv6 address.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipYesIPv4 or IPv6 address to look up (e.g. 8.8.8.8)

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must bear full burden. It only states what data is obtained but does not disclose whether it makes external network calls, has rate limits, or requires authentication. This lack of behavioral detail reduces transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words, and front-loaded with the core action. Highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema), the description adequately covers the return content. However, it could be more complete by hinting at the output format or any constraints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the sole parameter 'ip', so the schema already provides meaning. The description adds context about return data but does not enhance parameter-specific semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb 'Get' and specifies the resource: geolocation, ISP, ASN, and proxy/VPN detection for IPv4 or IPv6 addresses. It is specific and distinguishes from siblings like lookup_dns and whois_lookup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving IP intelligence data but does not explicitly exclude alternatives or state when not to use it. Clear context is provided for the tool's purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

merge_pdfsA

Merge 2–20 PDF files into a single document. Accepts array of base64-encoded PDFs.

ParametersJSON Schema
NameRequiredDescriptionDefault
files_base64YesArray of base64-encoded PDF files to merge in order

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden for behavioral disclosure. It does not mention whether the operation is read-only, any side effects, error handling for invalid PDFs, or output format. The description is too minimal for a merge operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is just two sentences, both essential and front-loaded. No unnecessary words or repetition. It meets the conciseness standard perfectly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a single parameter and no output schema. The description covers input format and count but omits output format (e.g., returning merged PDF as base64), error cases, and any ordering guarantees beyond 'in order'. For a merge tool, this leaves significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter, so baseline is 3. The description adds 'in order' which is useful but largely redundant with the schema. No further semantic detail is provided beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (merge), resource (PDF files), and constraints (2-20 files, base64-encoded). It distinguishes from sibling tools like split_pdf and compress_pdf, making the tool's purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool (combining multiple PDFs into one) and specifies input format and size limits. However, it does not explicitly state when not to use it or mention alternatives, though the context from the sibling list suggests differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_to_wordB

Convert a PDF to an editable Word document (.docx). Returns a base64-encoded DOCX file.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_base64YesBase64-encoded PDF file to convert

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It mentions the output format but omits important details such as file size limits, handling of scanned/image-based PDFs, or conversion fidelity. This leaves the agent uncertain about potential failures.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front-loaded sentences with no superfluous information. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema), the description is minimally adequate. However, missing error handling info and lack of distinction from siblings reduce completeness. An agent may need additional context for robust usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (one parameter fully described). The description adds no new meaning beyond the schema's parameter description. Baseline is 3, and no extra value is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (convert PDF to Word docx) and the output format (base64-encoded DOCX). It is specific and uses a verb+resource structure. However, it does not differentiate from sibling tools that also operate on PDFs, but the distinct conversion purpose is evident.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., merge_pdfs, compress_pdf). No prerequisites or constraints (e.g., PDF must be text-based) are mentioned. The agent must infer usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

split_pdfA

Split a PDF by page range or every N pages. Returns array of base64-encoded split PDFs.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_base64YesBase64-encoded PDF file to split
modeYesSplit mode: range (specific pages) or every_n (split every N pages)
pagesNoPage range string when mode is range, e.g. '1-3,5,7-9'
every_nNoSplit every N pages when mode is every_n

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, so description carries full burden. States return format and splitting modes, but lacks details on error handling, file size limits, or behavior for invalid input.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, zero waste, front-loaded with verb and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple tool, but lacks usage guidelines and behavioral details. No output schema; description covers return type minimally.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all 4 parameters with descriptions. Description adds no extra semantic value beyond the schema; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb and resource: 'Split a PDF by page range or every N pages.' Distinct from sibling tools like merge_pdfs or compress_pdf. Mentions return type (array of base64-encoded PDFs).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use vs alternatives. Implied context: when splitting a PDF. Does not specify prerequisites or limitations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unlock_pdfA

Remove permission restrictions (owner password) from a PDF. Returns unlocked base64 PDF.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_base64YesBase64-encoded password-protected PDF
passwordNoPDF password if known (optional)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the return format (base64 PDF) and core action (remove restrictions), but lacks details on error scenarios (e.g., incorrect password), whether the password is truly optional, or any side effects. This is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is a single sentence of 14 words, no filler. It directly states the action and output, meeting the front-loading principle.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 parameters, no output schema), the description covers the core functionality and return type. However, it could mention error behavior or constraints (e.g., only removes owner password, not user password) for full completeness. Still mostly adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond the schema, which already describes the parameters well. No parameter examples or constraints are provided beyond what's in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool removes permission restrictions (owner password) from a PDF and returns unlocked base64 PDF. This specific verb+resource combination distinguishes it from sibling tools like compress_pdf (compression), merge_pdfs (merging), and pdf_to_word (conversion).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidelines for when to use or avoid this tool. While the task is unique among siblings, the description does not mention alternatives or cases where this tool is inappropriate (e.g., if the PDF is encrypted with a user password). Usage is implied but not guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whois_lookupA

Look up domain registration information: registrar, registrant, creation/expiry dates, and nameservers.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name to look up (e.g. example.com)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full responsibility for behavioral disclosure. It implies a read-only operation and lists returned fields, but omits details such as rate limits, authentication needs, or underlying data source reliability. The description is adequate but not richly transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly conveys the tool's purpose and the specific information returned, with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description is largely complete, covering the tool's function and output fields. However, it lacks usage guidance that would help in context of sibling tools, slightly reducing completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds no new meaning to the single parameter beyond what the schema already provides ('Domain name to look up'), so no extra value is added.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action ('Look up domain registration information') and specifies the types of data returned (registrar, registrant, dates, nameservers), effectively distinguishing it from sibling tools like lookup_dns and lookup_ip.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., when to prefer whois lookup over DNS or IP lookup). The description only states the tool's function without contextual suggestions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 14 tool updatesv0.1.0
    • First observedcheck_ssl
    • First observedcompress_pdf
    • First observedencode_decode_base64
    • First observedgenerate_hash
    • First observedgenerate_password
    • First observedgenerate_qr_code
    • First observedgenerate_uuid
    • First observedlookup_dns
    • First observedlookup_ip
    • First observedmerge_pdfs
    • First observedpdf_to_word
    • First observedsplit_pdf
    • First observedunlock_pdf
    • First observedwhois_lookup

TDQS

A3.7/5.0
Disambiguation5/5

Each tool targets a distinct utility function: SSL checking, PDF manipulation, encoding, hash/password/QR/UUID generation, DNS/IP/WHOIS lookups. No two tools have overlapping purposes, making it easy for an agent to select the correct one.

Naming Consistency3/5

The naming convention is inconsistent: most tools use verb_noun (e.g., compress_pdf, split_pdf), but some use noun_verb (whois_lookup) or double verbs (encode_decode_base64). While readable, the pattern is not uniform.

Tool Count5/5

With 14 tools covering networking, PDF, encoding, and generation utilities, the count feels well-scoped for a general-purpose toolbox. Each tool earns its place without overwhelming the agent.

Completeness4/5

The tool set covers common utility needs like SSL, DNS, WHOIS, hash, password, QR, UUID, and full PDF lifecycle (compress, split, merge, unlock, convert). Minor gaps exist (e.g., no regex, JSON formatting), but the surface is largely complete for its stated purpose.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Swiss-army-knife utility MCP server for AI agents. 18 tools for JSON validation/formatting, base64 encode/decode, hash generation, UUID generation, URL parsing, regex testing, markdown↔HTML conversion, text stats, slug generation, datetime conversion, cron parsing, text diffing, CSV↔JSON conversion, and JWT decoding. Zero API Key required
    5
    -
  • A
    license
    A
    quality
    A
    maintenance
    23 developer & data API tools for AI agents - IP/DNS/WHOIS/SSL lookups, web scraping & screenshots, text AI (summarize, translate, sentiment, grammar, redact), and dev utilities (hash, UUID, QR, JWT, cron, IBAN/VAT/email validation, breach check).
    23
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Provides 45 developer utilities (UUID generation, hashing, JWT decoding, etc.) for AI assistants like Claude Desktop, Cursor, and Windsurf. Includes 16 free tools and 29 pro tools with trial usage.
    46
    25
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DrEjazAhmed/publicsofttools-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server