Chomp Food Database API-Dokumentations MCP-Server

Fortgeschritten

Dies ist ein Engineering, AI RAG-Bereich Automatisierungsworkflow mit 8 Nodes. Hauptsächlich werden HttpRequestTool, McpTrigger und andere Nodes verwendet. Chomp-Lebensmittel-Datenbank (4 Lebensmittel-Operationen) über MCP-Server für KI-Agenten verfügbar machen

Voraussetzungen
  • Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
  "id": "Cx9PYI2OK1XjhT1M",
  "meta": null,
  "name": "Chomp Food Database API Documentation MCP Server",
  "tags": [],
  "nodes": [
    {
      "id": "a41b49f5-0c55-41dd-a365-efc324769a94",
      "name": "Setzenup-Anleitung",
      "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. **Configure Authentication**: \nSet up apiKey credentials\n   - Type: API Key in query\n   - Key name: api_key\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 4 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": "460cd144-05a1-4a07-a85b-2e38db8e8667",
      "name": "Workflow-Überblick",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1120,
        -240
      ],
      "parameters": {
        "width": 420,
        "height": 920,
        "content": "## 🛠️ Chomp Food Database API Documentation MCP Server ✅ 4 operations\n\n### About\nThis API requires an API key, which you can get by subscribing at [https://chompthis.com/api](https://chompthis.com/api/). After obtaining your key, authorize it in the interface and use the endpoints by providing required parameters. Examples and API key management are available in the provided links.\n\n### 🔧 How it Works\n\nThis workflow converts the Chomp Food Database API Documentation 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://chompthis.com/api/v2\n• **AI Expressions**: Automatically populate parameters via `$fromAI()` placeholders\n• **Native Integration**: Returns responses directly to the AI agent\n\n\n### 📋 Available Operations (4 endpoints)\n\n**Food (4 operations)**\nGet Branded Food by Barcode, Get Branded Food by Name, Search Branded Food Items, Search Food Ingredients\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "ea577bfd-b64b-4639-9392-18084021124d",
      "name": "Chomp Food Database API Dokumentation MCP-Server",
      "type": "@n8n/n8n-nodes-langchain.mcpTrigger",
      "position": [
        -620,
        -240
      ],
      "webhookId": "00375c14-b231-47a1-9287-79dadac3ae5c",
      "parameters": {
        "path": "chomp-food-database-api-documentation-mcp"
      },
      "typeVersion": 1
    },
    {
      "id": "6c006134-5479-4b7c-8381-9d624746a857",
      "name": "Haftnotiz",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -660,
        -100
      ],
      "parameters": {
        "color": 2,
        "width": 900,
        "height": 200,
        "content": "## Food"
      },
      "typeVersion": 1
    },
    {
      "id": "7a034d06-0488-4c5a-95db-945d1deb547a",
      "name": "Markenlebensmittel per Barcode abrufen",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -520,
        -60
      ],
      "parameters": {
        "url": "=https://chompthis.com/api/v2/food/branded/barcode.php",
        "options": {},
        "sendQuery": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "queryAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "code",
              "value": "={{ $fromAI('code', '#### UPC/EAN barcode **Example** > ```&code=0842234000988```', 'string') }}"
            }
          ]
        },
        "toolDescription": "Get a branded food item using a barcode\n\nParameters:\n- Query parameters:\n  • code (required) - #### UPC/EAN barcode **Example** > ```&code=0842234000988```"
      },
      "typeVersion": 4.2
    },
    {
      "id": "610ac60c-53eb-4e2d-b74c-9b2af52e502e",
      "name": "Markenlebensmittel per Name abrufen",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -320,
        -60
      ],
      "parameters": {
        "url": "=https://chompthis.com/api/v2/food/branded/name.php",
        "options": {},
        "sendQuery": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "queryAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "name",
              "value": "={{ $fromAI('name', '#### Search for branded food items using a general food name keyword. This does not have to exactly match the \"official\" name for the food. **Example** > ```&name=Starburst```', 'string') }}"
            },
            {
              "name": "limit",
              "value": "={{ $fromAI('limit', '#### Set maximum number of records you want the API to return. The default value is \"**10**.\" **Example** > ```&limit=10```', 'number') }}"
            },
            {
              "name": "page",
              "value": "={{ $fromAI('page', '#### This is how you paginate the search result. By default, you will see the first 10 records. You must increment the page number to access the next 10 records, and so on. The default value is \"**1**.\" **Example** > ```&page=1```', 'number') }}"
            }
          ]
        },
        "toolDescription": "Get a branded food item by name\n\nParameters:\n- Query parameters:\n  • name (required) - #### Search for branded food items using a general food name keyword. This does not have to exactly match the \"official\" name for the food. **Example** > ```&name=Starburst```\n  • limit (optional) - #### Set maximum number of records you want the API to return. The default value is \"**10**.\" **Example** > ```&limit=10```\n  • page (optional) - #### This is how you paginate the search result. By default, you will see the first 10 records. You must increment the page number to access the next 10 records, and so on. The default value is \"**1**.\" **Example** > ```&page=1```"
      },
      "typeVersion": 4.2
    },
    {
      "id": "48be4792-8bcb-4afb-a5d1-9bb894c81547",
      "name": "Markenlebensmittel suchen",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -120,
        -60
      ],
      "parameters": {
        "url": "=https://chompthis.com/api/v2/food/branded/search.php",
        "options": {},
        "sendQuery": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "queryAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "allergen",
              "value": "={{ $fromAI('allergen', '#### Filter the search to only include branded foods that contain a specific allergen. **Example** > ```&allergen=Peanuts``` **Important Note**: This parameter cannot be used alone. It must be paired with at least 1 additional parameter.', 'string') }}"
            },
            {
              "name": "brand",
              "value": "={{ $fromAI('brand', '#### Filter the search to only include branded foods that are owned by a specific brand. **Example** > ```&brand=Starbucks```', 'string') }}"
            },
            {
              "name": "category",
              "value": "={{ $fromAI('category', '#### Filter the search to only include branded foods from a specific category. **Example** > ```&category=Plant Based Foods```', 'string') }}"
            },
            {
              "name": "country",
              "value": "={{ $fromAI('country', '#### Filter the search to only include branded foods that are sold in a specific country. **Example** > ```&country=United States``` **Important Note**: This parameter cannot be used alone. It must be paired with at least 1 additional parameter.', 'string') }}"
            },
            {
              "name": "diet",
              "value": "={{ $fromAI('diet', '#### Filter the search to only include branded foods that are considered compatible with a specific diet. **Important Note**: This parameter cannot be used alone. It must be paired with at least 1 additional parameter.', 'string') }}"
            },
            {
              "name": "ingredient",
              "value": "={{ $fromAI('ingredient', '#### Filter the search to only include branded foods that contain a specific ingredient. **Example** > ```&ingredient=Salt```', 'string') }}"
            },
            {
              "name": "keyword",
              "value": "={{ $fromAI('keyword', '#### Filter the search to only include branded foods that are associated with a specific keyword. **Example** > ```&keyword=Organic``` **Important Note**: This parameter cannot be used alone. It must be paired with at least 1 additional parameter.', 'string') }}"
            },
            {
              "name": "mineral",
              "value": "={{ $fromAI('mineral', '#### Filter the search to only include branded foods that contain a specific mineral. **Example** > ```&mineral=Potassium```', 'string') }}"
            },
            {
              "name": "nutrient",
              "value": "={{ $fromAI('nutrient', '#### Filter the search to only include branded foods that contain a specific nutrient. **Example** > ```&nutrient=Caffeine``` **Important Note**: This parameter cannot be used alone. It must be paired with at least 1 additional parameter.', 'string') }}"
            },
            {
              "name": "palm_oil",
              "value": "={{ $fromAI('palm_oil', '#### Filter the search to only include branded foods that contain a specific ingredient made using palm oil. **Example** > ```&palm_oil=E160a Beta Carotene```', 'string') }}"
            },
            {
              "name": "trace",
              "value": "={{ $fromAI('trace', '### Filter the search to only include branded foods that contain a specific trace ingredient. **Example** > ```&trace=Tree Nuts``` **Important Note**: This parameter cannot be used alone. It must be paired with at least 1 additional parameter.', 'string') }}"
            },
            {
              "name": "vitamin",
              "value": "={{ $fromAI('vitamin', '#### Filter the search to only include branded foods that contain a specific vitamin. **Example** > ```&vitamin=Biotin```', 'string') }}"
            },
            {
              "name": "limit",
              "value": "={{ $fromAI('limit', '#### Set maximum number of records you want the API to return. The default value is \"**10**.\" **Example** > ```&limit=10```', 'number') }}"
            },
            {
              "name": "page",
              "value": "={{ $fromAI('page', '#### This is how you paginate the search result. By default, you will see the first 10 records. You must increment the page number to access the next 10 records, and so on. The default value is \"**1**.\" **Example** > ```&page=1```', 'number') }}"
            }
          ]
        },
        "toolDescription": "Get data for branded food items using various search parameters\n\nParameters:\n- Query parameters:\n  • allergen (optional) - #### Filter the search to only include branded foods that contain a specific allergen. **Example** > ```&allergen=Peanuts``` **Important Note**: This parameter cannot be used alone. It must be paired with at least 1 additional parameter.\n  • brand (optional) - #### Filter the search to only include branded foods that are owned by a specific brand. **Example** > ```&brand=Starbucks```\n  • category (optional) - #### Filter the search to only include branded foods from a specific category. **Example** > ```&category=Plant Based Foods```\n  • country (optional) - #### Filter the search to only include branded foods that are sold in a specific country. **Example** > ```&country=United States``` **Important Note**: This parameter cannot be used alone. It must be paired with at least 1 additional parameter.\n  • diet (optional) - #### Filter the search to only include branded foods that are considered compatible with a specific diet. **Important Note**: This parameter cannot be used alone. It must be paired with at least 1 additional parameter.\n  • ingredient (optional) - #### Filter the search to only include branded foods that contain a specific ingredient. **Example** > ```&ingredient=Salt```\n  • keyword (optional) - #### Filter the search to only include branded foods that are associated with a specific keyword. **Example** > ```&keyword=Organic``` **Important Note**: This parameter cannot be used alone. It must be paired with at least 1 additional parameter.\n  • mineral (optional) - #### Filter the search to only include branded foods that contain a specific mineral. **Example** > ```&mineral=Potassium```\n  • nutrient (optional) - #### Filter the search to only include branded foods that contain a specific nutrient. **Example** > ```&nutrient=Caffeine``` **Important Note**: This parameter cannot be used alone. It must be paired with at least 1 additional parameter.\n  • palm_oil (optional) - #### Filter the search to only include branded foods that contain a specific ingredient made using palm oil. **Example** > ```&palm_oil=E160a Beta Carotene```\n  • trace (optional) - ### Filter the search to only include branded foods that contain a specific trace ingredient. **Example** > ```&trace=Tree Nuts``` **Important Note**: This parameter cannot be used alone. It must be paired with at least 1 additional parameter.\n  • vitamin (optional) - #### Filter the search to only include branded foods that contain a specific vitamin. **Example** > ```&vitamin=Biotin```\n  • limit (optional) - #### Set maximum number of records you want the API to return. The default value is \"**10**.\" **Example** > ```&limit=10```\n  • page (optional) - #### This is how you paginate the search result. By default, you will see the first 10 records. You must increment the page number to access the next 10 records, and so on. The default value is \"**1**.\" **Example** > ```&page=1```"
      },
      "typeVersion": 4.2
    },
    {
      "id": "b2c44ba5-871b-4e25-a8e3-1c1beff57036",
      "name": "Lebensmittelzutaten suchen",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        80,
        -60
      ],
      "parameters": {
        "url": "=https://chompthis.com/api/v2/food/ingredient/search.php",
        "options": {},
        "sendQuery": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "queryAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "find",
              "value": "={{ $fromAI('find', 'Search our database for a single ingredient or a specific set of ingredients. **Example #1: Single Ingredient** > ```&find=raw broccoli``` **Example #2: Set of Ingredients** > ```&find=raw broccoli,buttermilk waffle,mashed potatoes``` **Important Notes** * Comma-separated lists cannot contain more than **10 ingredients**. You must perform additional API calls if you are looking up more than 10 ingredients.', 'string') }}"
            },
            {
              "name": "limit",
              "value": "={{ $fromAI('limit', '#### Set maximum number of records you want the API to return, per search term. The default value is \"**1**.\" **Example** > ```&limit=3```', 'number') }}"
            }
          ]
        },
        "toolDescription": "Get raw/generic food ingredient item(s)\n\nParameters:\n- Query parameters:\n  • find (required) - Search our database for a single ingredient or a specific set of ingredients. **Example #1: Single Ingredient** > ```&find=raw broccoli``` **Example #2: Set of Ingredients** > ```&find=raw broccoli,buttermilk waffle,mashed potatoes``` **Important Notes** * Comma-separated lists cannot contain more than **10 ingredients**. You must perform additional API calls if you are looking up more than 10 ingredients.\n  • limit (optional) - #### Set maximum number of records you want the API to return, per search term. The default value is \"**1**.\" **Example** > ```&limit=3```"
      },
      "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-01T23:49:47.220Z",
      "projectId": "G5fce9xGuBAsWBXe",
      "updatedAt": "2025-07-01T23:49:47.220Z",
      "workflowId": "Cx9PYI2OK1XjhT1M"
    }
  ],
  "pinData": {},
  "settings": {
    "timezone": "America/New_York"
  },
  "createdAt": "2025-07-01T23:49:47.218Z",
  "updatedAt": "2025-07-01T23:49:58.000Z",
  "versionId": "c551b946-8f90-41c3-a297-8727c2600585",
  "isArchived": false,
  "staticData": null,
  "connections": {
    "b2c44ba5-871b-4e25-a8e3-1c1beff57036": {
      "ai_tool": [
        [
          {
            "node": "ea577bfd-b64b-4639-9392-18084021124d",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "610ac60c-53eb-4e2d-b74c-9b2af52e502e": {
      "ai_tool": [
        [
          {
            "node": "ea577bfd-b64b-4639-9392-18084021124d",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "48be4792-8bcb-4afb-a5d1-9bb894c81547": {
      "ai_tool": [
        [
          {
            "node": "ea577bfd-b64b-4639-9392-18084021124d",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "7a034d06-0488-4c5a-95db-945d1deb547a": {
      "ai_tool": [
        [
          {
            "node": "ea577bfd-b64b-4639-9392-18084021124d",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  },
  "triggerCount": 0
}
Häufig gestellte Fragen

Wie verwende ich diesen Workflow?

Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.

Für welche Szenarien ist dieser Workflow geeignet?

Fortgeschritten - Engineering, KI RAG

Ist es kostenpflichtig?

Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.

Workflow-Informationen
Schwierigkeitsgrad
Fortgeschritten
Anzahl der Nodes8
Kategorie2
Node-Typen3
Schwierigkeitsbeschreibung

Für erfahrene Benutzer, mittelkomplexe Workflows mit 6-15 Nodes

Autor
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

Externe Links
Auf n8n.io ansehen

Diesen Workflow teilen

Kategorien

Kategorien: 34