Anywhere MCP Server について
Anywhere MCP Serverは、AIアシスタントとLevelBlue USM Anywhereを接続するMCPサーバーです。セキュリティ運用や脅威分析向けに、クエリ、調査管理、AlienVault OTXの情報取得を提供します。公式製品ではないと明記されています。
主な機能
- 01OAuth 2.0認証
- 02セキュリティイベントとアラームの検索
- 03SQLおよびPPLクエリの実行
- 04調査の作成と管理
- 05AlienVault OTX脅威情報の取得
- 06事前作成されたセキュリティクエリ例
活用シーン
- 01アラームを絞り込みセキュリティイベントを分析
- 02調査を作成してステータスを更新
- 03脅威ハンティングやコンプライアンスのクエリを実行
- 04IP、ドメイン、ハッシュの脅威情報を検索
MCP 対応
MCPサーバーは、USM Anywhereのアラーム、イベント、調査、クエリ機能とAlienVault OTX情報にアクセスする16個のツールを、対応クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
LevelBlue USM Anywhere MCP Server
⚠️ 免責事項:これは、LevelBlue または AlienVault の公式製品ではありません。詳しくはDISCLAIMER.mdをご覧ください。
AI アシスタントを LevelBlue の USM Anywhere セキュリティプラットフォームに接続する、本番環境対応の Model Context Protocol (MCP) サーバーです。自然言語を使って、高度なセキュリティクエリの実行、調査の管理、脅威の分析ができます。
バージョン:3.0.0 作者:Javier Ballesteros ([email protected]) ライセンス:GNU GPL v3.0 リポジトリ:https://github.com/javierb507/anywhere-mcp-server
🚀 クイックスタート(3 分)
# 1. Clone and install
git clone https://github.com/javierb507/anywhere-mcp-server.git
cd anywhere-mcp-server
npm install && npm run build
# 2. Configure credentials
cp env.example .env
# Edit .env with your USM Anywhere credentials
# 3. Test connection
node test-connection.js
✅ AI アシスタントとの連携準備ができました! 以下の連携例をご覧ください。
MCP とは?
Model Context Protocol (MCP) は、AI アシスタントが外部のデータソースやツールに安全に接続するためのオープンプロトコルです。このサーバーは MCP を実装し、AI アシスタントと LevelBlue USM Anywhere をつなぐことで、以下を実現します。
- 🤖 自然言語クエリ → 高度な SQL/PPL セキュリティ分析
- 🔍 脅威ハンティングの自動化 → AI を活用した検知と調査
- 📊 調査管理 → セキュリティインシデントの作成、更新、追跡
- 🌐 脅威インテリジェンス → AlienVault OTX 連携
対応 AI プラットフォーム:Claude Desktop、Claude Code、Cline(VS Code)、Cursor IDE、Zed Editor、および MCP 対応クライアント。
機能
主な機能
- ✅ OAuth 2.0 認証 - セキュアなクライアントクレデンシャルフロー
- ✅ 16 種類の MCP ツール - USM Anywhere API を網羅
- ✅ 高度なクエリエンジン - SQL および PPL クエリの実行
- ✅ 調査管理 - SANS に準拠したインシデント対応ワークフロー
- ✅ 脅威インテリジェンス - AlienVault OTX API 連携
- ✅ 型安全 - TypeScript と Zod 検証を使用して構築
- ✅ 本番環境対応 - 包括的なエラー処理とレート制限
事前構築済みセキュリティクエリ
- 📚 15 件以上の SQL クエリ - 脅威ハンティング、コンプライアンス、異常検知
- 📚 12 件以上の PPL パイプライン - 行動分析とログ相関
- 📖 完全なドキュメント -
QueryLanguage/ディレクトリ内のクエリガイド
利用可能な MCP ツール
| ツール | 説明 |
|---|---|
get_alarms | フィルタリング条件を指定してセキュリティアラームを取得 |
get_events | セキュリティイベントを取得 |
get_alarm_details | アラームの詳細情報を取得 |
get_event_details | イベントの詳細情報を取得 |
get_investigations | 高度なフィルターを指定して調査一覧を取得 |
get_investigation_details | 調査の詳細情報を取得 |
create_investigation | 新しいセキュリティ調査を作成 |
update_investigation | 調査のステータス/優先度を更新 |
add_investigation_note | 調査にメモを追加 |
delete_investigation | 調査を削除 |
execute_advanced_query | SQL/PPL クエリを実行 |
validate_query_syntax | 実行前にクエリを検証 |
get_query_examples | 事前構築済みクエリの例を取得 |
search_pulses | OTX 脅威インテリジェンスを検索 |
get_indicator | 脅威インジケーターの情報を取得(IP/ドメイン/ハッシュ) |
get_pulse | Pulse の詳細情報を取得 |
連携例
Claude Desktop(macOS/Windows)
設定ファイルの場所:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"usm-anywhere": {
"command": "node",
"args": ["C:\\path\\to\\anywhere-mcp-server\\dist\\index.js"],
"env": {
"ALIENVAULT_CLIENT_ID": "your_client_id",
"ALIENVAULT_CLIENT_SECRET": "your_client_secret",
"ALIENVAULT_SUBDOMAIN": "your_subdomain",
"ALIENVAULT_ACCOUNT_NAME": "Default"
}
}
}
}
Claude Desktop を再起動 → 🔌 アイコンを確認し、MCP サーバーが接続されていることを確認してください。
Claude Code(CLI)
~/.config/claude-code/config.json に追加します。
{
"mcpServers": {
"usm-anywhere": {
"command": "node",
"args": ["/path/to/anywhere-mcp-server/dist/index.js"],
"env": {
"ALIENVAULT_CLIENT_ID": "your_client_id",
"ALIENVAULT_CLIENT_SECRET": "your_client_secret",
"ALIENVAULT_SUBDOMAIN": "your_subdomain",
"ALIENVAULT_ACCOUNT_NAME": "Default"
}
}
}
}
Cline(VS Code 拡張機能)
VS Code の「設定(JSON)」に追加します。
{
"cline.mcpServers": {
"usm-anywhere": {
"command": "node",
"args": ["/path/to/anywhere-mcp-server/dist/index.js"],
"env": {
"ALIENVAULT_CLIENT_ID": "your_client_id",
"ALIENVAULT_CLIENT_SECRET": "your_client_secret",
"ALIENVAULT_SUBDOMAIN": "your_subdomain",
"ALIENVAULT_ACCOUNT_NAME": "Default"
}
}
}
}
Cursor IDE
プロジェクト内に .cursor/mcp.json を作成します。
{
"mcpServers": {
"usm-anywhere": {
"command": "node",
"args": ["/path/to/anywhere-mcp-server/dist/index.js"],
"cwd": "/path/to/anywhere-mcp-server",
"env": {
"ALIENVAULT_CLIENT_ID": "your_client_id",
"ALIENVAULT_CLIENT_SECRET": "your_client_secret",
"ALIENVAULT_SUBDOMAIN": "your_subdomain",
"ALIENVAULT_ACCOUNT_NAME": "Default"
}
}
}
}
📖 その他の連携方法(Zed Editor、ChatGPT、汎用 MCP)については、INTEGRATION_GUIDE.mdをご覧ください。
使用例
連携後は、自然言語で AI アシスタントに問い合わせることができます。
セキュリティ分析
"Show me all critical alarms from the last 24 hours"
"Find failed login attempts from non-US countries"
"Detect potential brute force attacks in the last hour"
"Look for DNS queries longer than 40 characters (tunneling detection)"
調査管理
"Create a critical investigation for the SQL injection attempts in alarm abc-123"
"Show me all open investigations assigned to the security team"
"Add a note to investigation xyz-789 about remediation steps taken"
"Update investigation xyz-789 to resolved status"
高度なクエリ
"Execute SQL query to find lateral movement in network traffic"
"Create PPL pipeline to analyze user behavior anomalies"
"Run the port scanning detection query from the security guide"
"Show me off-hours data transfers larger than 10MB"
脅威インテリジェンス
"Search OTX for threat intelligence about domain malicious.com"
"Get indicator information for IP address 1.2.3.4"
"Show me recent pulses about ransomware"
設定
必須の環境変数
# USM Anywhere API v2.0 (Required)
ALIENVAULT_CLIENT_ID=your_client_id
ALIENVAULT_CLIENT_SECRET=your_client_secret
ALIENVAULT_SUBDOMAIN=your_subdomain
# Account Name (Required for queries)
ALIENVAULT_ACCOUNT_NAME=Default
# Legacy OTX API (Optional)
ALIENVAULT_OTX_API_KEY=your_otx_key
認証情報の取得:
- USM Anywhere:ログイン → Admin → Settings → API Credentials
- OTX API キー:https://otx.alienvault.com/api にアクセス
重要な注意事項:
ALIENVAULT_SUBDOMAIN:サブドメインのみを指定します(例:yourorg。yourorg.alienvault.cloudではありません)ALIENVAULT_ACCOUNT_NAME:正しいアカウント名については、USM 管理者にお問い合わせください.envファイルをバージョン管理にコミットしないでください(すでに.gitignoreに登録されています)
ドキュメント
基本ドキュメント
- QUICK_START.md - 5分で完了するセットアップガイド
- INTEGRATION_GUIDE.md - すべてのプラットフォームを対象とした完全な統合ガイド
- DISCLAIMER.md - ⚠️ 法的条件と責任(使用前にお読みください)
- CLAUDE.md - AI アシスタントと開発者向けの手順
クエリのドキュメント
- QueryLanguage/advanced-sql-security-guide.md - 15件以上の SQL セキュリティクエリ
- QueryLanguage/ppl-security-workflows.md - 12件以上の PPL パイプラインの例
- QueryLanguage/basicsql.md - SQL の基本とフィールドリファレンス
- QueryLanguage/pplbasic.md - PPL の基本とコマンド
その他のリソース
- TO_FUTURE_DEVELOPERS.md - 哲学と時を超えたメッセージ 📜
- RELEASE_NOTES.md - バージョン 3.0.0 の変更履歴
- LICENSE - GNU GPL v3.0 の全文
トラブルシューティング
接続の問題
エラー:認証に失敗しました
# Verify credentials
node test-connection.js
# Check .env file format
cat .env | grep ALIENVAULT
エラー:データが返されません
ALIENVAULT_ACCOUNT_NAMEが正しいことを確認してください- USM Anywhere でのユーザー権限を確認してください
- アカウントがデータにアクセスできることを確認してください
MCP サーバーの問題
エラー:spawn EACCES(アクセスが拒否されました)
# Make server executable
chmod +x dist/index.js
# Verify permissions
ls -la dist/index.js
# Should show: -rwxr-xr-x
MCP サーバーが検出されない
- MCP 設定では絶対パスを使用してください
- プロジェクトを再ビルドしてください:
npm run build - MCP クライアントのログにエラーがないか確認してください
クエリの問題
500 Internal Server Error
- アカウント名が正しいことを確認してください
- クエリに時間範囲を指定してください(デフォルトは24時間です)
- フィールド名がデータスキーマと一致していることを確認してください
PPL クエリの失敗
- 既知の問題:PPL では JSON のエンコードに問題があります
- 推奨:本番環境では SQL クエリを使用してください
- PPL の構文検証は機能しますが、実行に失敗する場合があります
開発
コマンド
# Build project
npm run build
# Development mode
npm run dev
# Run tests
npm test
# Clean build files
npm run clean
# Lint/typecheck
npm run lint
プロジェクト構成
anywhere-mcp-server/
├── src/
│ ├── index.ts # Main MCP server
│ ├── services/
│ │ └── alienvault.ts # API service layer
│ ├── handlers/
│ │ └── tools.ts # MCP tool handlers
│ └── types/
│ └── index.ts # TypeScript types & Zod schemas
├── QueryLanguage/ # Query documentation
├── examples/ # Configuration examples
├── dist/ # Compiled output
└── test-connection.js # Connection test script
サポートと貢献
サポートを受ける
- GitHub Issues:https://github.com/javierb507/anywhere-mcp-server/issues
- メール:[email protected]
- ドキュメント:
/QueryLanguageおよび/examplesディレクトリを参照してください
貢献
貢献を歓迎します。以下の手順に従ってください。
- リポジトリをフォークします
- 機能ブランチを作成します(
git checkout -b feature/amazing-feature) - 変更を加えます
- 該当する場合はテストを追加します
- コミットします(
git commit -m 'Add amazing feature') - プッシュします(
git push origin feature/amazing-feature) - プルリクエストを作成します
注:貢献することにより、貢献内容を GNU GPL v3.0 の下でライセンスすることに同意したものとみなされます。
ライセンスとクレジット
ライセンス
このプロジェクトはGNU General Public License v3.0の下でライセンスされています。詳細はLICENSEファイルをご覧ください。
要点:
- ✅ 無料で使用、変更、配布できます
- ✅ ソースコードはオープンな状態を維持する必要があります
- ✅ 変更内容を記録する必要があります
- ✅ 派生物には同じライセンスを適用する必要があります
- ❌ 保証はありません
- ❌ 作者は損害について責任を負いません
作者
Javier Ballesteros
- 📧 メール:[email protected]
- 💻 GitHub:@javierb507
- 🔗 LinkedIn:Javier Ballesteros
謝辞
- LevelBlue - USM Anywhere API を提供していただき、ありがとうございます(docs.levelblue.com)
- AlienVault - OTX API を提供していただき、ありがとうございます(otx.alienvault.com)
- Anthropic - Model Context Protocol の仕様を提供していただき、ありがとうございます
- オープンソースコミュニティ - 貢献とフィードバックをありがとうございます
商標
LevelBlue®、USM Anywhere®、AlienVault®、および OTX® は、それぞれの所有者の登録商標です。このプロジェクトは、これらの企業と提携しておらず、承認も受けていません。
公式ドキュメントへのリンク
- LevelBlue USM Anywhere: https://docs.levelblue.com/documentation/usm-anywhere
- USM Anywhere API リファレンス: https://cybersecurity.att.com/documentation/api/usm-anywhere-apis.htm
- AlienVault OTX ポータル: https://otx.alienvault.com/
- Model Context Protocol: https://modelcontextprotocol.io
⚠️ 重要な注意事項: これは LevelBlue の公式製品ではありません。ご利用の前に DISCLAIMER.md をお読みください。必ず最初に非本番環境でテストしてください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。