🛠️ onlinecybertools-mcp-server
AIエージェント — Claude Code、Codex、Cursor、Continue など — が Online Cyber Tools のカタログをネイティブな MCP ツールとして利用できるようにする MCP(Model Context Protocol)サーバーです。
✨ 公開される機能
- ドキュメント化された MCP 互換の
/api/tools/{category}/{tool} オペレーションごとに 1 つの MCP ツールを公開します。POST ツールは JSON リクエストボディのスキーマを使用し、互換性のある GET ツールは OpenAPI のクエリ/パスパラメータを使用します。スキーマはサイトの OpenAPI 3.1 仕様 /api/openapi.json からそのまま取得されるため、エージェントはツールごとの引数バリデーションを利用できます。仕様で宣言されている場合、ツールには MCP annotations(title と readOnlyHint / destructiveHint / idempotentHint、x-mcp-annotations 由来)および outputSchema(インラインの 200 レスポンスオブジェクトスキーマ)も付与されます。
- 人間が使うのと同じキーワード検索を実行する
search メタツール。GET /api/tools/search?q=... によって提供されます。
GET /api/mcp/tool-docs/{tool_id} から、長文のページガイダンス、ソースリンク、ページ URL、API エンドポイント、SEO 説明を取得する describe_tool メタツール。ping のようなメニュー ID か、network_ping のような MCP ツール名のいずれかを受け付けます。
POST /api/agent/bug-report に対して構造化されたバグレポートを送信する report_bug メタツール(厳格なレート制限あり)。
呼び出しは稼働中の HTTP API にプロキシされます — ここでアルゴリズムを再実装することはありません。これにより、エージェントはデプロイ済みサイトの挙動をそのまま確認できます。生成されるツール説明はオペレーションの OpenAPI summary + description のみで、それ以外は含みません — メニュー ID のプレフィックスや describe_tool へのポインタはありません(どちらも呼び出し側エージェントにとってノイズと見なされるためです)。完全なページガイダンスをオンデマンドで必要とするエージェント向けに、describe_tool メタツールは引き続き利用できます。
🧰 ツール
このサーバーは 15 カテゴリにわたる 279 個のツール を公開しています:
エンコーディング/デコーディング、バイナリ/テキスト変換、暗号化とハッシュ、Web 開発ユーティリティ、テキストユーティリティ、OSINT ツール、ネットワーキングツール、セキュリティツール、SEO ツール、Linux ツール、日付と時刻、数学と計算機、データツール、ファイルツール、リバースエンジニアリング。
このセクションと TOOLS.md はリリースごとにライブメニューから自動生成されるため、数とリストがずれることはありません。
🚀 クイックスタート
パッケージは npm に onlinecybertools-mcp-server として公開されているため、どの MCP クライアントでも npx -y onlinecybertools-mcp-server で起動できます — クローンもグローバルインストールも不要です。以下の設定スニペットはそのまま動作し、デフォルトで ツールカタログ全体 を公開します。
ガイド付きセットアップをご希望ですか? ウェブサイトのインタラクティブビルダーから、すぐに使える Claude Code プラグインまたは Codex 設定ブロックを生成できます:
https://onlinecybertools.com/integrations/mcp-plugin-builder
ビルダーではツールのサブセットを選択でき、対応する OCTOOLS_TOOLS フィルタを出力します(設定 を参照)。
⚙️ 設定
環境変数で設定します。すべてオプションです。
| 変数 |
デフォルト |
目的 |
OCTOOLS_BASE_URL |
https://onlinecybertools.com |
リクエストをプロキシするサイト。 |
OCTOOLS_TOOLS |
(未設定 → すべてのツール) |
公開する範囲を制限するためのカンマ区切りのメニュー ID(base64_encode,sha256,hash)。すべてのツールを公開するには未設定のままにします — 以下の例では意図的に省略しています。 |
OCTOOLS_STREAM_BYTE_CAP |
262144 (256 KiB) |
ストリーミング(x-mcp-compatible: stream-buffered)エンドポイントから蓄積する最大バイト数。 |
OCTOOLS_STREAM_TIME_CAP_MS |
30000 (30 秒) |
ストリーミングエンドポイントのバッファリングに費やす最大実時間。 |
OCTOOLS_TOOLS が設定されている場合、サーバーは仕様取得時に ?tools=... を付加し、サイトが事前フィルタ済みの仕様を返すようにします。クライアント側でも多層防御としてフィルタを適用します。
🏃 実行方法
🔍 インスペクター(手動スモークテスト)
npx @modelcontextprotocol/inspector npx -y onlinecybertools-mcp-server
インスペクターの URL を開き、List Tools をクリックします — search、describe_tool、report_bug に加えて、互換性のある Symfony API オペレーションごとに 1 つのエントリが表示されるはずです。OCTOOLS_TOOLS を設定していない場合、完全なカタログが一覧表示されます。
代わりにローカルでサーバーをハックするには、クローンしてソースから実行します:
git clone https://github.com/Jambozx/onlinecybertools-mcp-server.git
cd onlinecybertools-mcp-server
npm install
npx @modelcontextprotocol/inspector node index.mjs
🤖 Claude Code
~/.claude.json(またはプロジェクトの .mcp.json)に追加します:
{
"mcpServers": {
"octools": {
"command": "npx",
"args": ["-y", "onlinecybertools-mcp-server"]
}
}
}
これで全ツールが公開されます。公開範囲を制限するには、OCTOOLS_TOOLS を含む env ブロックを追加します:
{
"mcpServers": {
"octools": {
"command": "npx",
"args": ["-y", "onlinecybertools-mcp-server"],
"env": {
"OCTOOLS_TOOLS": "base64_encode,sha256,hash"
}
}
}
}
🧠 Codex
~/.codex/config.toml に追加します:
[mcp_servers.octools]
command = "npx"
args = ["-y", "onlinecybertools-mcp-server"]
公開範囲を制限するには、OCTOOLS_TOOLS を含む env 行を追加します:
[mcp_servers.octools]
command = "npx"
args = ["-y", "onlinecybertools-mcp-server"]
env = { OCTOOLS_TOOLS = "base64_encode,sha256,hash" }
🖱️ Cursor / Continue / 汎用 MCP クライアント
ほとんどのクライアントは同じ command/args/env の形式を受け付けます。npx -y onlinecybertools-mcp-server でこのパッケージを指定してください。
🌊 ストリーミングエンドポイント
仕様で x-mcp-compatible: stream-buffered とタグ付けされたエンドポイント(現在は traceroute と proxy-test のストリーム)は、最後まで読み取られ、蓄積された SSE イベントの単一の JSON エンベロープとして返されます。GET ストリームエンドポイントはツール引数をクエリパラメータとして送信し、POST ストリームは JSON ボディを送信します。ハードキャップ:
- バッファリングされた出力 256 KiB(
OCTOOLS_STREAM_BYTE_CAP)
- 実時間 30 秒(
OCTOOLS_STREAM_TIME_CAP_MS)
どちらのキャップが先に発動しても、レスポンスエンベロープには { "truncated": true } が含まれるため、エージェントは出力が部分的なものであると認識できます。
x-mcp-compatible: none とタグ付けされたエンドポイント(マルチパートファイルアップロードなど)は、登録時にスキップされます — tools/list には表示されません。
⚠️ 制限事項
- 仕様は 起動時に一度だけ 取得されます。サイトが新しいエンドポイントを追加した場合は、サーバーを再起動してください。
- stdio トランスポートのみ。HTTP サーバーはありません(特権エンドポイントの前で認証を必要とすることを回避します)。
- npm に
onlinecybertools-mcp-server として公開されています(npx -y onlinecybertools-mcp-server)。GitHub から直接インストールする場合(npx -y github:Jambozx/onlinecybertools-mcp-server)も、最先端版として引き続き利用できます。
📄 ライセンス
MIT.