mcpField
M
MISP MCP Server

MISP MCP Server

ローカル
github.com/sairambokkaセキュリティ073 週間前に更新

MISP MCP Server について

MISP MCP Server は、MISP インスタンスから IOC を取得する機能を MCP 対応クライアントに提供します。最近の IOC の集計、種類別の絞り込み、JSON 出力、接続確認に対応します。

主な機能

  1. 01過去24時間に追加されたIOCを取得
  2. 02種類別にIOC件数を集計
  3. 03種類でIOCを絞り込み
  4. 04最近のIOCをJSONに出力
  5. 05MISPの接続と設定を確認

活用シーン

  1. 01MISPに最近追加された指標を確認
  2. 02種類ごとの最近の指標数を集計
  3. 03IP、ドメイン、URL、ハッシュの指標を取得
  4. 04最近の指標を後で使うために保存

MCP 対応

MCP クライアントに、MISP IOC の取得、集計、絞り込み、出力ツールとサーバー情報リソースを提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MISP MCP サーバー

MISP(Malware Information Sharing Platform)の IOC 取得機能を、Claude Desktop などの MCP 互換クライアントに公開するシンプルな Model Context Protocol(MCP)サーバーです。

機能

  • 最新の IOC を取得:過去 24 時間以内に MISP に追加された IOC を取得します
  • IOC の概要:IOC タイプ別の統計と件数を取得します
  • タイプで絞り込み:特定のタイプ(IP、ドメイン、URL など)で絞り込んだ IOC を取得します
  • ファイルに保存:IOC を JSON ファイルにエクスポートします
  • 接続を確認:MISP への接続と設定を確認します

前提条件

  • Python 3.8+
  • MISP インスタンスへのアクセス
  • 適切な権限を持つ MISP API キー

インストール

  1. プロジェクトファイルをクローンまたはダウンロードします:

    git clone <your-repo-url>
    cd misp-mcp-server
    
  2. 依存関係をインストールします:

    pip install -r requirements.txt
    
  3. 環境変数を設定します: MISP の認証情報を記載した .env ファイルを作成します:

    MISP_URL=https://your-misp-instance.com
    MISP_API_KEY=your-api-key-here
    

使用方法

MCP サーバーの実行
python misp_mcp_server.py

サーバーが起動し、STDIO 経由で MCP 接続を待ち受けます。

Claude Desktop への接続

以下を Claude Desktop の MCP 設定ファイルに追加します:

macOS:~/Library/Application Support/Claude/claude_desktop_config.json Windows:%APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "misp-server": {
      "command": "python",
      "args": ["/absolute/path/to/misp_mcp_server.py"],
      "env": {
        "MISP_URL": "https://your-misp-instance.com",
        "MISP_API_KEY": "your-api-key-here"
      }
    }
  }
}
MCP Inspector でのテスト
# Install MCP tools (optional)
pip install mcp

# Run the inspector
mcp-inspector python misp_mcp_server.py

利用可能なツール

get_recent_iocs()

過去 24 時間以内に MISP に追加されたすべての IOC を取得します。

戻り値:value、type、timestamp、category、tags、event フィールドを含む IOC の辞書リスト

get_ioc_summary()

最新の IOC の概要統計を取得します。

戻り値:合計件数、タイプ別件数、サンプル IOC を含む辞書

get_iocs_by_type(ioc_type: str)

特定のタイプで IOC を絞り込みます。

パラメーター:

  • ioc_type:絞り込む IOC のタイプ(例:'ip-dst'、'domain'、'url'、'md5'、'sha256')

戻り値:指定したタイプに一致する IOC のリスト

save_iocs_to_file(filename: str = None)

最新の IOC を JSON ファイルに保存します。

パラメーター:

  • filename:任意のファイル名(指定しない場合は自動生成されます)

戻り値:保存結果を含むステータス辞書

check_misp_connection()

MISP への接続と設定を確認します。

戻り値:接続ステータスと設定情報

利用可能なリソース

misp://server-info

利用可能なツールと説明を含む、MCP サーバーの情報を取得します。

やり取りの例

Claude Desktop に接続すると、次のように尋ねることができます:

  • 「MISP の最新 IOC の概要を取得して」
  • 「過去 24 時間以内の IP アドレスの IOC をすべて表示して」
  • 「最新の IOC を 'threats_today.json' という名前のファイルに保存して」
  • 「MISP への接続が正常に機能しているか確認して」
  • 「最近追加されたドメインの IOC はいくつ?」

ファイル構成

misp-mcp-server/
├── misp_to_json.py          # Original MISP IOC retrieval functions
├── misp_mcp_server.py       # MCP server implementation
├── requirements.txt         # Python dependencies
├── README.md               # This file
├── .env                    # Environment variables (create this)
└── .env.example           # Example environment file

設定

環境変数
変数説明必須
MISP_URLMISP インスタンスの URLはい
MISP_API_KEYMISP API 認証キーはい
MISP の権限

MISP API キーには、次の権限が必要です:

  • 属性への読み取りアクセス
  • イベントへのアクセス(コンテキスト用)
  • タグの表示権限(タグを使用する場合)

トラブルシューティング

よくある問題

「MISP_API_KEY not found」

  • .env ファイルがスクリプトと同じディレクトリにあることを確認してください
  • API キーの形式が正しいことを確認してください

「Failed to connect to MISP」

  • .env ファイル内の MISP_URL を確認してください
  • ネットワークから MISP インスタンスにアクセスできることを確認してください
  • SSL 証明書の問題を確認してください(ローカルインスタンスではスクリプトが ssl=False を使用します)

「No IOCs found」

  • 過去 24 時間以内に IOC が追加されていない場合、これは正常です
  • MISP インスタンスで最近のアクティビティを確認してください

Pydantic の検証エラー

  • fastmcp 2.0 以降を使用していることを確認してください
  • すべての関数パラメーターに適切な型ヒントが設定されていることを確認してください
デバッグモード

misp_mcp_server.py の先頭に以下を追加すると、デバッグログが有効になります:

import logging
logging.basicConfig(level=logging.DEBUG)

開発

新しいツールの追加

新しい MCP ツールを追加するには、関数に @mcp.tool() デコレーターを付けます:

@mcp.tool()
def your_new_function(param: str) -> dict:
    """Description of what this tool does"""
    # Your implementation here
    return {"result": "success"}
新しいリソースの追加

新しい MCP リソースを追加するには、@mcp.resource() を使用します。

@mcp.resource("misp://your-resource")
def your_resource() -> str:
    """Resource description"""
    return "Resource content"

ライセンス

このプロジェクトは、教育目的および運用目的で現状有姿のまま提供されます。IOC データを扱う際は、組織のセキュリティポリシーを遵守してください。

コントリビューション

  1. リポジトリをフォークします
  2. フィーチャーブランチを作成します
  3. 変更を加えます
  4. MCP Inspector でテストします
  5. プルリクエストを送信します

サポート

以下に関する問題について:


注記:このサーバーは、信頼できる MISP インスタンスでの内部利用を想定して設計されています。脅威インテリジェンスデータを扱う際は、常に組織のセキュリティガイドラインに従ってください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。