Publicsofttools Mcp について
Publicsofttools Mcp は、PDF 操作、エンコード、暗号ハッシュ、ドメインや IP の照会など、AI エージェント向けの 14 種類のツールを提供します。API キーを設定し、Claude、Cursor、Windsurf などの MCP 対応クライアントに追加できます。
主な機能
- 01QR コード生成
- 02PDF の圧縮、結合、分割
- 03PDF の変換とロック解除
- 04ハッシュ、UUID、Base64 の処理
- 05パスワード生成
- 06IP、DNS、SSL、WHOIS の照会
活用シーン
- 01PDF 文書の整理や結合
- 02ハッシュ、UUID、パスワードの生成
- 03ドメインレコードや証明書の確認
- 04IP の位置情報やネットワーク情報の照会
MCP 対応
MCP 対応 AI エージェントに 14 種類のツールを提供します。すべてのツールで PublicSoftTools の API キーが必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
14掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| size | number | いいえ | 出力サイズ(ピクセル、デフォルト:256、最大:1024) |
| text | string | はい | QR コードにエンコードするテキスト、URL、またはデータ |
| format | enum | いいえ | 出力形式——png または svg(デフォルト:png)png | svg |
詳細
PublicSoftTools MCP Server
MCP に対応した任意の AI エージェント(Claude、Cursor、Windsurf)から、PublicSoftTools の 14 種類のユーティリティツールを利用できます。
npm: npx publicsofttools-mcp
API docs: https://www.publicsofttools.com/docs
Get a key: https://www.publicsofttools.com/account/api-keys
含まれるツール
| ツール | エンドポイント | 説明 |
|---|---|---|
generate_qr_code | POST /api/v1/util/qr | base64 PNG または生の SVG 形式の QR コード |
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 — 一度に最大 100 個 |
encode_decode_base64 | POST /api/v1/util/base64 | URL セーフ形式でのエンコードまたはデコード |
generate_password | POST /api/v1/util/password | 暗号学的に安全なパスワード |
lookup_ip | GET /api/v1/ip/lookup | ジオロケーション、ISP、ASN、プロキシ/VPN の検出 |
check_ssl | GET /api/v1/domain/ssl | SSL 証明書の詳細と残り日数 |
lookup_dns | GET /api/v1/domain/dns | A、AAAA、MX、TXT、CNAME、NS、SOA レコード |
whois_lookup | GET /api/v1/domain/whois | ドメインのレジストラ、日付、ネームサーバー |
compress_pdf | POST /api/v1/pdf/compress | PDF ファイルサイズを縮小(最大 4 MB) |
merge_pdfs | POST /api/v1/pdf/merge | 2~20 個の PDF を 1 つに結合 |
split_pdf | POST /api/v1/pdf/split | ページ範囲または N ページごとに分割 |
pdf_to_word | POST /api/v1/pdf/to-word | PDF を編集可能な .docx に変換 |
unlock_pdf | POST /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、データの QR コード画像を生成します。
パラメーター
| 名前 | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
text | string | はい | — | エンコードするテキスト、URL、またはデータ |
size | number | いいえ | 256 | 出力サイズ(ピクセル単位、64~1024) |
format | "png" | "svg" | いいえ | "png" | 出力画像形式 |
dark | string | いいえ | "#000000" | 暗いモジュールの色(16 進数) |
light | string | いいえ | "#ffffff" | 明るいモジュールの色(16 進数) |
error_correction | "L" | "M" | "Q" | "H" | いいえ | "M" | 誤り訂正レベル |
レスポンス
{
"image": "data:image/png;base64,iVBORw0...",
"format": "png",
"size": 256
}
format: "svg" の場合、image はデータ URL ではなく、生の SVG 文字列になります。
generate_hash
任意のテキストをハッシュ化します。algorithm を省略すると、1 回の呼び出しですべてのハッシュを取得できます。
パラメーター
| 名前 | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
text | string | はい | — | ハッシュ化するテキスト(最大 100,000 文字) |
algorithm | "md5" | "sha1" | "sha256" | "sha384" | "sha512" | いいえ | すべて | ハッシュアルゴリズム |
encoding | "hex" | "base64" | いいえ | "hex" | 出力エンコーディング |
レスポンス(すべてのアルゴリズム)
{
"hashes": {
"md5": "5f4dcc3b5aa765d61d8327deb882cf99",
"sha1": "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8",
"sha256": "5e884898da28047151d0e56f8dc629277...",
"sha384": "a8b64babd0aca91a59bdbb7761b421d4...",
"sha512": "b109f3bbbc244eb82441917ed06d618b..."
},
"encoding": "hex",
"input_length": 8
}
generate_uuid
UUID v4 の値をまとめて生成します。
パラメーター
| 名前 | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
count | number | いいえ | 1 | 生成する UUID の数(1~100) |
レスポンス
{
"uuids": [
"550e8400-e29b-41d4-a716-446655440000",
"6ba7b810-9dad-11d1-80b4-00c04fd430c8"
],
"count": 2
}
encode_decode_base64
テキストを Base64 にエンコードするか、Base64 をプレーンテキストにデコードします。
パラメーター
| 名前 | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
text | string | はい | — | 入力テキスト(最大 500,000 文字) |
action | "encode" | "decode" | はい | — | 実行する操作 |
url_safe | boolean | いいえ | false | URL セーフな形式を使用します(+ と / の代わりに - と _ を使用) |
レスポンス
{
"result": "aGVsbG8gd29ybGQ=",
"action": "encode",
"url_safe": false,
"input_length": 11,
"output_length": 16
}
generate_password
暗号学的に安全なランダムパスワードを生成します。
パラメーター
| 名前 | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
length | number | いいえ | 16 | パスワードの長さ(8~128) |
uppercase | boolean | いいえ | true | 大文字(A~Z)を含めます |
numbers | boolean | いいえ | true | 数字(0~9)を含めます |
symbols | boolean | いいえ | true | 記号(!@#$…)を含めます |
レスポンス
{
"password": "kR7#mQ2@xZ9!wP4$",
"length": 16,
"entropy_bits": 98.6
}
lookup_ip
任意の IPv4 または IPv6 アドレスの位置情報とネットワーク情報を調べます。
パラメーター
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
ip | string | はい | IPv4 または 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 証明書の詳細を確認します。
パラメーター
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
domain | string | はい | ドメイン名(例: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 を省略すると、利用可能なすべてのレコードタイプを一度に取得します。
パラメーター
| 名前 | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
domain | string | はい | — | 照会するドメイン(例:example.com) |
type | "A" | "AAAA" | "MX" | "TXT" | "CNAME" | "NS" | "SOA" | いいえ | all | レコードタイプ |
レスポンス
{
"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
ドメインの登録情報を取得します。
パラメーター
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
domain | string | はい | 検索するドメイン(例: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。
パラメーター
| 名前 | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
file_base64 | string | はい | — | Base64 でエンコードされた PDF コンテンツ |
level | "screen" | "ebook" | "printer" | "prepress" | いいえ | "ebook" | 圧縮レベル。screen = 最小サイズ、prepress = 最高画質 |
レスポンス
{
"pdf": "<base64-encoded compressed PDF>",
"original_size": 2048000,
"compressed_size": 819200,
"reduction_percent": 60
}
merge_pdfs
2~20 個の PDF ファイルを 1 つのドキュメントに結合します。ファイルごとの最大サイズは 4 MB です。
パラメーター
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
files_base64 | string[] | はい | 順番に結合する、Base64 でエンコードされた PDF の配列(2~20 ファイル) |
レスポンス
{
"pdf": "<base64-encoded merged PDF>",
"page_count": 12,
"files_merged": 3
}
split_pdf
PDF を複数のドキュメントに分割します。最大ファイルサイズ:4 MB。
パラメーター
| 名前 | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
file_base64 | string | はい | — | 分割する、Base64 でエンコードされた PDF |
mode | "range" | "every_n" | "every_page" | はい | — | 分割モード |
pages | string | いいえ | — | mode=range の場合のページ範囲。例:"1-3,5,7-9" |
every_n | number | いいえ | — | 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。
パラメーター
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
file_base64 | string | はい | 変換する、Base64 でエンコードされた PDF |
レスポンス
{
"docx": "<base64-encoded .docx file>",
"page_count": 5
}
unlock_pdf
PDF のオーナーパスワードによる権限制限(印刷制限、コピー制限など)を解除します。オーナー制限のみが設定されている場合、パスワードは不要です。
パラメーター
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
file_base64 | string | はい | Base64 エンコードされた PDF |
password | string | いいえ | ファイルを開く際に必要な場合の PDF パスワード |
レスポンス
{
"pdf": "<base64-encoded unlocked PDF>",
"was_encrypted": true
}
認証
API キーを環境変数として設定します。
export PST_API_KEY=pst_live_your_key_here
または、1 回限りのテストではインラインで渡します。
PST_API_KEY=pst_live_your_key_here node dist/index.js
各リクエストで、キーは X-Api-Key: pst_live_... として送信されます。
レート制限とプラン
| プラン | 料金 | 月間呼び出し回数 |
|---|---|---|
| Free | $0 | 1,500 |
| Starter | $29/mo | 15,000 |
| Pro | $99/mo | 100,000 |
| Business | Custom | 1,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 を参照してください
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。