mcpField
P
Publicsofttools Mcp

Publicsofttools Mcp

本地服务
github.com/DrEjazAhmed开发工具020 周前更新

关于 Publicsofttools Mcp

Publicsofttools Mcp 为 AI Agent 提供 14 种实用工具,涵盖 PDF 操作、编码、加密哈希及域名或 IP 查询。配置 API 密钥后,可添加到 Claude、Cursor 和 Windsurf 等 MCP 兼容客户端。

主要功能

  1. 01生成 QR code
  2. 02压缩、合并和拆分 PDF
  3. 03转换和解锁 PDF
  4. 04哈希、UUID 和 Base64 工具
  5. 05生成密码
  6. 06查询 IP、DNS、SSL 和 WHOIS

适用场景

  1. 01整理或合并 PDF 文档
  2. 02生成哈希、UUID 或密码
  3. 03检查域名记录和证书
  4. 04查询 IP 地理位置与网络信息

MCP 相关

它向兼容 MCP 的 AI Agent 提供 14 种实用工具。所有工具都需要 PublicSoftTools API 密钥。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"publicsofttools": {
"command": "npx",
"args": [
"-y",
"publicsofttools-mcp"
],
"env": {
"PST_API_KEY": "<PST_API_KEY>"
}
}
}
}
启动命令npx -y publicsofttools-mcp
需要配置的环境变量
PST_API_KEY密钥

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmpublicsofttools-mcp

工具

14

收录的工具列表 · 更新于 2 周前

参数类型必填说明
sizenumber否输出尺寸(像素,默认值:256,最大值:1024)
textstring是要编码到 QR 码中的文本、URL 或数据
formatenum否输出格式——png 或 svg(默认值:png)png | svg

详细介绍

PublicSoftTools MCP 服务

让任何兼容 MCP 的 AI Agent(Claude、Cursor、Windsurf)都能使用 PublicSoftTools 提供的 14 种实用工具。

npm: npx publicsofttools-mcp
API 文档: https://www.publicsofttools.com/docs
获取密钥: https://www.publicsofttools.com/account/api-keys


包含的工具

工具端点描述
generate_qr_codePOST /api/v1/util/qr生成 base64 PNG 格式或原始 SVG 格式的二维码
generate_hashPOST /api/v1/util/hashMD5、SHA-1、SHA-256、SHA-384、SHA-512
generate_uuidGET /api/v1/util/uuidUUID v4,一次最多生成 100 个
encode_decode_base64POST /api/v1/util/base64编码或解码,支持 URL 安全变体
generate_passwordPOST /api/v1/util/password以密码学安全方式生成密码
lookup_ipGET /api/v1/ip/lookup地理位置、ISP、ASN、代理/VPN 检测
check_sslGET /api/v1/domain/sslSSL 证书详情及剩余天数
lookup_dnsGET /api/v1/domain/dnsA、AAAA、MX、TXT、CNAME、NS、SOA 记录
whois_lookupGET /api/v1/domain/whois域名注册商、日期、名称服务器
compress_pdfPOST /api/v1/pdf/compress减小 PDF 文件大小(最大 4 MB)
merge_pdfsPOST /api/v1/pdf/merge将 2–20 个 PDF 合并为一个
split_pdfPOST /api/v1/pdf/split按页码范围或每 N 页拆分
pdf_to_wordPOST /api/v1/pdf/to-word将 PDF 转换为可编辑的 .docx
unlock_pdfPOST /api/v1/pdf/unlock移除权限限制

前提条件

  • Node.js 18+(原生 fetch 支持所必需)
  • PublicSoftTools API 密钥 — 免费获取(每月 1,500 次调用,无需信用卡)

安装和配置

Claude Desktop

将以下内容添加到 Claude Desktop 配置文件:

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"
      }
    }
  }
}

重启 Claude Desktop。工具将显示在工具面板中。

Cursor

打开 Settings → MCP 并添加:

{
  "publicsofttools": {
    "command": "npx",
    "args": ["-y", "publicsofttools-mcp"],
    "env": { "PST_API_KEY": "your_api_key_here" }
  }
}
Windsurf

打开 Settings → MCP Servers,并添加与上方 Cursor 相同的 JSON 代码块。


工具参考

所有工具都需要 PST_API_KEY 环境变量。所有文件输入/输出均使用 base64 编码内容。


generate_qr_code

为任意文本、URL 或数据生成二维码图像。

参数

名称类型必填默认值描述
textstring是—要编码的文本、URL 或数据
sizenumber否256输出尺寸,单位为像素(64–1024)
format"png" | "svg"否"png"输出图像格式
darkstring否"#000000"深色模块颜色(十六进制)
lightstring否"#ffffff"浅色模块颜色(十六进制)
error_correction"L" | "M" | "Q" | "H"否"M"错误纠正级别

响应

{
  "image": "data:image/png;base64,iVBORw0...",
  "format": "png",
  "size": 256
}

当 format: "svg" 时,image 是原始 SVG 字符串,而不是数据 URL。


generate_hash

对任意文本进行哈希。省略 algorithm 即可在一次调用中获取全部五种哈希值。

参数

名称类型必填默认值描述
textstring是—要进行哈希处理的文本(最多 100,000 个字符)
algorithm"md5" | "sha1" | "sha256" | "sha384" | "sha512"否all哈希算法
encoding"hex" | "base64"否"hex"输出编码

响应(全部算法)

{
  "hashes": {
    "md5":    "5f4dcc3b5aa765d61d8327deb882cf99",
    "sha1":   "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8",
    "sha256": "5e884898da28047151d0e56f8dc629277...",
    "sha384": "a8b64babd0aca91a59bdbb7761b421d4...",
    "sha512": "b109f3bbbc244eb82441917ed06d618b..."
  },
  "encoding": "hex",
  "input_length": 8
}

generate_uuid

批量生成 UUID v4 值。

参数

名称类型必填默认值描述
countnumber否1要生成的 UUID 数量(1–100)

响应

{
  "uuids": [
    "550e8400-e29b-41d4-a716-446655440000",
    "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
  ],
  "count": 2
}

encode_decode_base64

将文本编码为 base64,或将 base64 解码为纯文本。

参数

NameTypeRequiredDefaultDescription
textstringyes—输入文本(最多 500,000 个字符)
action"encode" | "decode"yes—要执行的操作
url_safebooleannofalse使用 URL 安全变体(用 - 和 _ 替代 + 和 /)

响应

{
  "result": "aGVsbG8gd29ybGQ=",
  "action": "encode",
  "url_safe": false,
  "input_length": 11,
  "output_length": 16
}

generate_password

生成经过密码学安全处理的随机密码。

参数

NameTypeRequiredDefaultDescription
lengthnumberno16密码长度(8–128)
uppercasebooleannotrue包含大写字母(A–Z)
numbersbooleannotrue包含数字(0–9)
symbolsbooleannotrue包含符号(!@#$…)

响应

{
  "password": "kR7#mQ2@xZ9!wP4$",
  "length": 16,
  "entropy_bits": 98.6
}

lookup_ip

查询任意 IPv4 或 IPv6 地址的地理位置和网络信息。

参数

NameTypeRequiredDescription
ipstringyesIPv4 或 IPv6 地址(例如 8.8.8.8)

响应

{
  "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

检查任意域名的 SSL/TLS 证书详情。

参数

NameTypeRequiredDescription
domainstringyes域名(例如 example.com)

响应

{
  "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

查询域名的 DNS 记录。省略 type 可一次获取所有可用记录类型。

参数

NameTypeRequiredDefaultDescription
domainstringyes—要查询的域名(例如 example.com)
type"A" | "AAAA" | "MX" | "TXT" | "CNAME" | "NS" | "SOA"noall记录类型

响应

{
  "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

获取域名注册信息。

参数

NameTypeRequiredDescription
domainstringyes要查询的域名(例如 example.com)

响应

{
  "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

使用 Ghostscript 压缩 PDF 文件以减小文件大小。文件大小上限:4 MB。

参数

NameTypeRequiredDefaultDescription
file_base64stringyes—经 Base64 编码的 PDF 内容
level"screen" | "ebook" | "printer" | "prepress"no"ebook"压缩级别。screen = 最小文件,prepress = 最高质量

响应

{
  "pdf": "<base64-encoded compressed PDF>",
  "original_size": 2048000,
  "compressed_size": 819200,
  "reduction_percent": 60
}

merge_pdfs

将 2–20 个 PDF 文件合并为一个文档。每个文件大小上限为 4 MB。

参数

NameTypeRequiredDescription
files_base64string[]yes按顺序合并的 Base64 编码 PDF 数组(2–20 个文件)

响应

{
  "pdf": "<base64-encoded merged PDF>",
  "page_count": 12,
  "files_merged": 3
}

split_pdf

将一个 PDF 拆分为多个文档。文件大小上限:4 MB。

参数

NameTypeRequiredDefaultDescription
file_base64stringyes—要拆分的 Base64 编码 PDF
mode"range" | "every_n" | "every_page"yes—拆分模式
pagesstringno—当 mode=range 时指定页码范围,例如 "1-3,5,7-9"
every_nnumberno—当 mode=every_n 时,每 N 页拆分一次

响应

{
  "files": [
    "<base64-encoded PDF part 1>",
    "<base64-encoded PDF part 2>"
  ],
  "count": 2
}

pdf_to_word

将 PDF 转换为可编辑的 Word 文档(.docx)。文件大小上限:4 MB。

参数

NameTypeRequiredDescription
file_base64stringyes要转换的 Base64 编码 PDF

响应

{
  "docx": "<base64-encoded .docx file>",
  "page_count": 5
}

unlock_pdf

移除 PDF 的所有者密码权限限制(打印锁定、复制锁定等)。如果仅设置了所有者权限限制,则无需密码。

参数

名称类型必填描述
file_base64string是Base64 编码的 PDF
passwordstring否如果打开文件需要密码,则填写 PDF 密码

响应

{
  "pdf": "<base64-encoded unlocked PDF>",
  "was_encrypted": true
}

身份验证

将 API 密钥设为环境变量:

export PST_API_KEY=pst_live_your_key_here

或者在命令中直接传入密钥,进行一次性测试:

PST_API_KEY=pst_live_your_key_here node dist/index.js

每次请求都会通过 X-Api-Key: pst_live_... 发送密钥。


速率限制与套餐

套餐价格每月调用次数
Free$01,500
Starter$29/mo15,000
Pro$99/mo100,000
BusinessCustom1,000,000+

超出限额时,API 会返回 429 Too Many Requests。限额会在每月 1 日(UTC)重置。

获取或升级密钥:https://www.publicsofttools.com/account/api-keys


故障排除

"PST_API_KEY environment variable is required"
如果未设置密钥,服务会立即退出。请确保 MCP 配置中的 env 块已设置 PST_API_KEY。

Claude Desktop 中未显示工具
请确认 JSON 配置有效(没有尾随逗号),然后完全退出并重新打开 Claude Desktop——仅关闭窗口是不够的。

401 Unauthorized
API 密钥无效或已被撤销。请前往 https://www.publicsofttools.com/account/api-keys 查询密钥。

429 Too Many Requests
您已达到每月限额。请升级套餐,或等待每月 1 日限额重置。

413 File Too Large
PDF 端点的二进制文件大小上限为 4 MB。发送前请压缩或拆分文件。

Node 版本错误
运行 node --version。原生 fetch 需要 Node 18 或更高版本。请通过 https://nodejs.org 更新。


许可证

MIT — 参见 LICENSE

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。