hashlookup CIRCL API MCPサーバー

中級

これはSecOps, AI RAG分野の自動化ワークフローで、15個のノードを含みます。主にHttpRequestTool, McpTriggerなどのノードを使用。 hashlookup CIRCL API を使用した AI エージェント ファイルのハッシュ検証

前提条件
  • ターゲットAPIの認証情報が必要な場合あり
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "id": "gjWBBSi8vTPYPDYJ",
  "meta": null,
  "name": "hashlookup CIRCL API MCP Server",
  "tags": [],
  "nodes": [
    {
      "id": "41d644d4-61e0-4fce-bb6d-2b5bcd5fccc9",
      "name": "セットアップ手順",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1380,
        -240
      ],
      "parameters": {
        "color": 4,
        "height": 1060,
        "content": "### ⚙️ Setup Instructions\n\n1. **Import Workflow**: \nLoad this workflow into your n8n instance\n\n2. **Authentication**: \nNo authentication required\n\n3. **Activate Workflow**:\nEnable the workflow to start the MCP server\n\n4. **Get MCP URL**: \nCopy the webhook URL from the MCP trigger\n\n5. **Connect AI Agent**:\nUse the MCP URL in your AI agent configuration\n\n\n### 💡 Usage Notes\n• Parameters are auto-populated by AI using $fromAI() expressions\n• With 11 API endpoints available as tools\n• Responses maintain original API structure\n\n\n### 🛠️ Customization\n• Add data transformation nodes if needed\n• Implement custom error handling\n• Add logging or monitoring nodes\n\n• Modify parameter defaults in any HTTP request node as needed\n\n### 💬 Need Help?\nPing me on [discord](https://discord.me/cfomodz) for integration guidance and custom automations. Check the [n8n documentation](https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolmcp/) for more information."
      },
      "typeVersion": 1
    },
    {
      "id": "467248d4-c590-475b-afb5-8612ce3900ca",
      "name": "ワークフロー概要",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1120,
        -240
      ],
      "parameters": {
        "width": 420,
        "height": 920,
        "content": "## 🛠️ hashlookup CIRCL MCP Server ✅ 11 operations\n\n### About\nThe CIRCL Hash Lookup API lets developers query known file hashes via a RESTful HTTP interface, with OpenAPI documentation available. It supports online queries and offers an offline Bloom filter option for local file checks. Sample queries and usage details are provided in the project documentation.\n\n### 🔧 How it Works\n\nThis workflow converts the hashlookup CIRCL API into an MCP-compatible interface for AI agents.\n\n• **MCP Trigger**: Serves as your server endpoint for AI agent requests\n• **HTTP Request Nodes**: Handle API calls to https://hashlookup.circl.lu\n• **AI Expressions**: Automatically populate parameters via `$fromAI()` placeholders\n• **Native Integration**: Returns responses directly to the AI agent\n\n\n### 📋 Available Operations (11 endpoints)\n\n**Default (11 operations)**\nBulk Search MD5 Hashes, Bulk Search SHA1 Hashes, List SHA1 Children, Get Database Info, Lookup MD5 Hash, Lookup SHA1 Hash, Lookup SHA256 Hash, List SHA1 Parents, Create Search Session, Get Session Results, Get Top Queries\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "a0aac3d5-272c-47e5-9eb6-81ed203ed016",
      "name": "hashlookup CIRCL MCPサーバー",
      "type": "@n8n/n8n-nodes-langchain.mcpTrigger",
      "position": [
        -620,
        -240
      ],
      "webhookId": "7780fda3-6fb2-4d70-a156-9b8b087bd08c",
      "parameters": {
        "path": "hashlookup-circl-mcp"
      },
      "typeVersion": 1
    },
    {
      "id": "9804e5ff-1538-4252-9bc0-a9f6e8b3b81a",
      "name": "付箋ノート",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -660,
        -100
      ],
      "parameters": {
        "color": 2,
        "width": 1220,
        "height": 440,
        "content": "## Default"
      },
      "typeVersion": 1
    },
    {
      "id": "08561b6b-7d05-4514-b8c8-d689bc728ac8",
      "name": "MD5ハッシュ一括検索",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -520,
        -60
      ],
      "parameters": {
        "url": "=https://hashlookup.circl.lu/bulk/md5",
        "method": "POST",
        "options": {},
        "toolDescription": "Bulk search of MD5 hashes in a JSON array with the key 'hashes'."
      },
      "typeVersion": 4.2
    },
    {
      "id": "f8df85ff-c265-47f6-b706-9ad7fb194fa4",
      "name": "SHA1ハッシュ一括検索",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -320,
        -60
      ],
      "parameters": {
        "url": "=https://hashlookup.circl.lu/bulk/sha1",
        "method": "POST",
        "options": {},
        "toolDescription": "Bulk search of SHA1 hashes in a JSON array with the 'hashes'."
      },
      "typeVersion": 4.2
    },
    {
      "id": "dfd4d0c8-b1fa-46aa-b550-0f4cb7bda2d6",
      "name": "SHA1子ハッシュ一覧",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -120,
        -60
      ],
      "parameters": {
        "url": "=https://hashlookup.circl.lu/children/{{ $fromAI('sha1', 'Sha1', 'string') }}/{{ $fromAI('count', 'Count', 'number') }}/{{ $fromAI('cursor', 'Cursor', 'string') }}",
        "options": {},
        "toolDescription": "Children from a given SHA1. A number of element to return and an offset must be given. If not set it will be the 100 first elements. A cursor must be given to paginate over. The starting cursor is 0.\n\nParameters:\n- Path parameters:\n  • sha1 (required)\n  • count (required)\n  • cursor (required)"
      },
      "typeVersion": 4.2
    },
    {
      "id": "3e98f6ca-25a4-4f55-9825-2e4593cf5609",
      "name": "データベース情報取得",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        80,
        -60
      ],
      "parameters": {
        "url": "=https://hashlookup.circl.lu/info",
        "options": {},
        "toolDescription": "Info about the hashlookup database"
      },
      "typeVersion": 4.2
    },
    {
      "id": "5150eb48-6353-46a8-9428-e1aa2522c64e",
      "name": "MD5ハッシュ照会",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        280,
        -60
      ],
      "parameters": {
        "url": "=https://hashlookup.circl.lu/lookup/md5/{{ $fromAI('md5', 'Md5', 'string') }}",
        "options": {},
        "toolDescription": "Lookup MD5.\n\nParameters:\n- Path parameters:\n  • md5 (required)"
      },
      "typeVersion": 4.2
    },
    {
      "id": "4f773006-5472-426e-820a-e0d64179664a",
      "name": "SHA1ハッシュ照会",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -600,
        160
      ],
      "parameters": {
        "url": "=https://hashlookup.circl.lu/lookup/sha1/{{ $fromAI('sha1', 'Sha1', 'string') }}",
        "options": {},
        "toolDescription": "Lookup SHA-1.\n\nParameters:\n- Path parameters:\n  • sha1 (required)"
      },
      "typeVersion": 4.2
    },
    {
      "id": "2b865b56-d203-49b8-966f-84e472182b27",
      "name": "SHA256ハッシュ照会",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -400,
        160
      ],
      "parameters": {
        "url": "=https://hashlookup.circl.lu/lookup/sha256/{{ $fromAI('sha256', 'Sha256', 'string') }}",
        "options": {},
        "toolDescription": "Lookup SHA-256.\n\nParameters:\n- Path parameters:\n  • sha256 (required)"
      },
      "typeVersion": 4.2
    },
    {
      "id": "c4ae2946-0b3b-485b-a079-c40a61227cb3",
      "name": "SHA1親ハッシュ一覧",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -200,
        160
      ],
      "parameters": {
        "url": "=https://hashlookup.circl.lu/parents/{{ $fromAI('sha1', 'Sha1', 'string') }}/{{ $fromAI('count', 'Count', 'number') }}/{{ $fromAI('cursor', 'Cursor', 'string') }}",
        "options": {},
        "toolDescription": "Parents from a given SHA1. A number of element to return and an offset must be given. If not set it will be the 100 first elements. A cursor must be given to paginate over. The starting cursor is 0.\n\nParameters:\n- Path parameters:\n  • sha1 (required)\n  • count (required)\n  • cursor (required)"
      },
      "typeVersion": 4.2
    },
    {
      "id": "6ea1a2c3-b897-4725-9cd4-a59d43c953c6",
      "name": "検索セッション作成",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        0,
        160
      ],
      "parameters": {
        "url": "=https://hashlookup.circl.lu/session/create/{{ $fromAI('name', 'Name', 'string') }}",
        "options": {},
        "toolDescription": "Create a session key to keep search context. The session is attached to a name. After the session is created, the header `hashlookup_session` can be set to the session name.\n\nParameters:\n- Path parameters:\n  • name (required)"
      },
      "typeVersion": 4.2
    },
    {
      "id": "49e16128-fb61-4165-8568-c753dbf315be",
      "name": "セッション結果取得",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        200,
        160
      ],
      "parameters": {
        "url": "=https://hashlookup.circl.lu/session/get/{{ $fromAI('name', 'Name', 'string') }}",
        "options": {},
        "toolDescription": "Set of matching and non-matching hashes from a session.\n\nParameters:\n- Path parameters:\n  • name (required)"
      },
      "typeVersion": 4.2
    },
    {
      "id": "2d704fae-771c-4d87-837a-6b832b6515a9",
      "name": "トップクエリ取得",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        400,
        160
      ],
      "parameters": {
        "url": "=https://hashlookup.circl.lu/stats/top",
        "options": {},
        "toolDescription": "Top 100 of most queried values."
      },
      "typeVersion": 4.2
    }
  ],
  "active": false,
  "shared": [
    {
      "role": "workflow:owner",
      "project": {
        "id": "G5fce9xGuBAsWBXe",
        "icon": null,
        "name": "David Ashby <david.ashby.lds@gmail.com>",
        "type": "personal",
        "createdAt": "2025-06-04T02:55:02.013Z",
        "updatedAt": "2025-06-04T02:56:01.361Z",
        "projectRelations": [
          {
            "role": "project:personalOwner",
            "user": {
              "id": "715c1c00-cb48-4712-9a32-f1f4b6db2b30",
              "role": "global:owner",
              "email": "david.ashby.lds@gmail.com",
              "disabled": false,
              "lastName": "Ashby",
              "settings": {
                "npsSurvey": {
                  "responded": true,
                  "lastShownAt": 1749357655581
                },
                "userActivated": true,
                "userActivatedAt": 1749075994495,
                "easyAIWorkflowOnboarded": true,
                "firstSuccessfulWorkflowId": "3N3vVikZb3MckFYm"
              },
              "createdAt": "2025-06-04T02:55:01.745Z",
              "firstName": "David",
              "isPending": false,
              "updatedAt": "2025-06-08T04:40:58.399Z",
              "mfaEnabled": false,
              "personalizationAnswers": {
                "version": "v4",
                "personalization_survey_n8n_version": "1.95.3",
                "personalization_survey_submitted_at": "2025-06-04T02:56:07.075Z"
              }
            },
            "userId": "715c1c00-cb48-4712-9a32-f1f4b6db2b30",
            "createdAt": "2025-06-04T02:55:02.013Z",
            "projectId": "G5fce9xGuBAsWBXe",
            "updatedAt": "2025-06-04T02:55:02.013Z"
          }
        ]
      },
      "createdAt": "2025-07-02T00:02:38.090Z",
      "projectId": "G5fce9xGuBAsWBXe",
      "updatedAt": "2025-07-02T00:02:38.090Z",
      "workflowId": "gjWBBSi8vTPYPDYJ"
    }
  ],
  "pinData": {},
  "settings": {
    "timezone": "America/New_York"
  },
  "createdAt": "2025-07-02T00:02:38.089Z",
  "updatedAt": "2025-07-02T00:04:58.000Z",
  "versionId": "cc390f89-a640-4365-bda7-38fa0daef2cb",
  "isArchived": false,
  "staticData": null,
  "connections": {
    "2d704fae-771c-4d87-837a-6b832b6515a9": {
      "ai_tool": [
        [
          {
            "node": "a0aac3d5-272c-47e5-9eb6-81ed203ed016",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "5150eb48-6353-46a8-9428-e1aa2522c64e": {
      "ai_tool": [
        [
          {
            "node": "a0aac3d5-272c-47e5-9eb6-81ed203ed016",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "4f773006-5472-426e-820a-e0d64179664a": {
      "ai_tool": [
        [
          {
            "node": "a0aac3d5-272c-47e5-9eb6-81ed203ed016",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "3e98f6ca-25a4-4f55-9825-2e4593cf5609": {
      "ai_tool": [
        [
          {
            "node": "a0aac3d5-272c-47e5-9eb6-81ed203ed016",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "c4ae2946-0b3b-485b-a079-c40a61227cb3": {
      "ai_tool": [
        [
          {
            "node": "a0aac3d5-272c-47e5-9eb6-81ed203ed016",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "dfd4d0c8-b1fa-46aa-b550-0f4cb7bda2d6": {
      "ai_tool": [
        [
          {
            "node": "a0aac3d5-272c-47e5-9eb6-81ed203ed016",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "2b865b56-d203-49b8-966f-84e472182b27": {
      "ai_tool": [
        [
          {
            "node": "a0aac3d5-272c-47e5-9eb6-81ed203ed016",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "49e16128-fb61-4165-8568-c753dbf315be": {
      "ai_tool": [
        [
          {
            "node": "a0aac3d5-272c-47e5-9eb6-81ed203ed016",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "6ea1a2c3-b897-4725-9cd4-a59d43c953c6": {
      "ai_tool": [
        [
          {
            "node": "a0aac3d5-272c-47e5-9eb6-81ed203ed016",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "08561b6b-7d05-4514-b8c8-d689bc728ac8": {
      "ai_tool": [
        [
          {
            "node": "a0aac3d5-272c-47e5-9eb6-81ed203ed016",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "f8df85ff-c265-47f6-b706-9ad7fb194fa4": {
      "ai_tool": [
        [
          {
            "node": "a0aac3d5-272c-47e5-9eb6-81ed203ed016",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  },
  "triggerCount": 0
}
よくある質問

このワークフローの使い方は?

上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。

このワークフローはどんな場面に適していますか?

中級 - セキュリティ運用, AI RAG検索拡張

有料ですか?

このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。

ワークフロー情報
難易度
中級
ノード数15
カテゴリー2
ノードタイプ3
難易度説明

経験者向け、6-15ノードの中程度の複雑さのワークフロー

作成者
David Ashby

David Ashby

@cfomodz

A hacker by nature, programmer by trade ⚒️ I'm looking to collaborate on things that save human labor 📫 How to reach me Github👇 -> Discord

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34