Serveur d'API hashlookup CIRCL MCP

Intermédiaire

Ceci est unSecOps, AI RAGworkflow d'automatisation du domainecontenant 15 nœuds.Utilise principalement des nœuds comme HttpRequestTool, McpTrigger. utilisationhashlookup CIRCL API进行AIagent文件哈希验证

Prérequis
  • Peut nécessiter les informations d'identification d'authentification de l'API cible
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "id": "gjWBBSi8vTPYPDYJ",
  "meta": null,
  "name": "hashlookup CIRCL API MCP Server",
  "tags": [],
  "nodes": [
    {
      "id": "41d644d4-61e0-4fce-bb6d-2b5bcd5fccc9",
      "name": "Instructions de configuration",
      "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": "Aperçu du workflow",
      "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": "Serveur MCP hashlookup CIRCL",
      "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": "Note adhésive",
      "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": "Recherche en masse de 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": "Recherche en masse de 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": "Lister les enfants 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": "Obtenir les infos de la base",
      "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": "Rechercher un hash 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": "Rechercher un hash 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": "Rechercher un hash 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": "Lister les parents 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": "Créer une session de recherche",
      "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": "Obtenir les résultats de session",
      "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": "Obtenir les requêtes principales",
      "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
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Intermédiaire - Opérations de sécurité, RAG IA

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Informations sur le workflow
Niveau de difficulté
Intermédiaire
Nombre de nœuds15
Catégorie2
Types de nœuds3
Description de la difficulté

Adapté aux utilisateurs expérimentés, avec des workflows de complexité moyenne contenant 6-15 nœuds

Auteur
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

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34