{
  "id": "etjoq14x4CdLLzBe",
  "meta": null,
  "name": "Transportation Laws and Incentives MCP Server",
  "tags": [],
  "nodes": [
    {
      "id": "d8485117-270c-4c8e-b5ef-b2616663aae8",
      "name": "Setup Instructions",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1380,
        -240
      ],
      "parameters": {
        "color": 4,
        "height": 1020,
        "content": "### \u2699\ufe0f 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### \ud83d\udca1 Usage Notes\n\u2022 Parameters are auto-populated by AI using $fromAI() expressions\n\u2022 With 4 API endpoints available as tools\n\u2022 Responses maintain original API structure\n\n\n### \ud83d\udee0\ufe0f Customization\n\u2022 Add data transformation nodes if needed\n\u2022 Implement custom error handling\n\u2022 Add logging or monitoring nodes\n\n\u2022 Modify parameter defaults in any HTTP request node as needed\n\n### \ud83d\udcac 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": "fee689e6-a6c3-476b-a264-2a4273b72879",
      "name": "Workflow Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1120,
        -100
      ],
      "parameters": {
        "width": 320,
        "height": 680,
        "content": "## \ud83d\udee0\ufe0f Transportation Laws and Incentives MCP Server \u2705 4 operations\n\n### About\nQuery our database of federal and state laws and incentives for alternative fuels and vehicles, air quality, fuel efficiency, and other transportation-related topics. This dataset powers the Federal and State Laws and Incentives on the Alternative Fuels Data Center.\n\n### \ud83d\udd27 How it Works\n\nThis workflow converts the Transportation Laws and Incentives API into an MCP-compatible interface for AI agents.\n\n\u2022 **MCP Trigger**: Serves as your server endpoint for AI agent requests\n\u2022 **HTTP Request Nodes**: Handle API calls to http://developer.nrel.gov/api/transportation-incentives-laws\n\u2022 **AI Expressions**: Automatically populate parameters via `$fromAI()` placeholders\n\u2022 **Native Integration**: Returns responses directly to the AI agent\n"
      },
      "typeVersion": 1
    },
    {
      "id": "76d2972b-2b9a-4659-a6c4-04af35775ba2",
      "name": "Transportation Laws and Incentives MCP Server",
      "type": "@n8n/n8n-nodes-langchain.mcpTrigger",
      "position": [
        -940,
        -240
      ],
      "parameters": {
        "path": "transportation-laws-and-incentives-mcp"
      },
      "typeVersion": 1
    },
    {
      "id": "250c90e9-bbc6-48a9-8537-7959a58e3bf6",
      "name": "List Laws and Incentives",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -640,
        100
      ],
      "parameters": {
        "url": "=http://developer.nrel.gov/api/transportation-incentives-laws/v1.{{ $fromAI('output_format', 'Response format', 'string', 'json') }}",
        "options": {},
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "api_key",
              "value": "={{ $fromAI('api_key', 'API Key', 'string', 'DEMO_KEY') }}"
            },
            {
              "name": "limit",
              "value": "={{ $fromAI('limit', 'Limit the number of laws returned', 'number', 10) }}"
            },
            {
              "name": "jurisdiction",
              "value": "={{ $fromAI('jurisdiction', 'Return laws for the given Jurisdiction. Jurisdiction must be given as a two character state code (eg, 'CO' for Colorado). A single jurisdiction, or a comma-separate list of multiple jurisdiction, may be given. Use the code 'US' for federal laws and the code 'DC' for Washington D.C.', 'string') }}"
            },
            {
              "name": "technology",
              "value": "={{ $fromAI('technology', 'Search by the technology type. A single type, or a comma-separate list of multiple types, may be given. Values and what they stand for are as follows: 'BIOD' for Biodiesel, 'ETH' for Ethanol / Flexible Fuel Vehicles, 'NG' for Natural Gas / Natural Gas Vehicles, 'LPG' for Liquefied Petroleum Gas (Propane) / Propane Vehicles, 'HY' for Hydrogen / Fuel Cell Electric Vehicles, 'ELEC' for All-Electric Vehicles (EVs), 'PHEV' for Plug-In Hybrid Electric Vehicles (PHEVs), 'HEV' for Hybrid Electric Vehicles (HEVs), 'NEVS' for Neighborhood Electric Vehicles (NEVs), 'RD' for Renewable Diesel, 'AFTMKTCONV' for Aftermarket Conversions, 'EFFEC' for Fuel Economy / Efficiency, 'IR' for Idle Reduction, 'AUTONOMOUS' for Connected and Autonomous Vehicles, and 'OTHER' for Other.', 'string') }}"
            },
            {
              "name": "incentive_type",
              "value": "={{ $fromAI('incentive_type', 'Search by the incentive type. A single type, or a comma-separate list of multiple types, may be given. Values and what they stand for are as follows: 'GNT' for Grants, 'TAX' for Tax Incentives, 'LOANS' for Loans and Leases, 'RBATE' for Rebates, 'EXEM' for Exemptions, 'TOU' for Time-of-Use Rate, and 'OTHER' for Other.', 'string') }}"
            },
            {
              "name": "regulation_type",
              "value": "={{ $fromAI('regulation_type', 'Search by the regulation type. A single type, or a comma-separate list of multiple types, may be given. Values and what they stand for are as follows: 'REQ' for Acquisition / Fuel Use, 'DREST' for Driving / Idling, 'REGIS' for Registration / Licensing, 'EVFEE' for EV Registration Fee, 'FUEL' for Fuel Taxes, 'STD' for Fuel Production / Quality, 'RFS' for Renewable Fuel Standard / Mandate, 'AIRQEMISSIONS' for Air Quality / Emissions, 'CCEINIT' for Climate Change / Energy Initiatives, 'UTILITY' for Utility Definition, 'BUILD' for Building Codes, 'RTC' for Right-to-Charge, and 'OTHER' for Other.', 'string') }}"
            },
            {
              "name": "user_type",
              "value": "={{ $fromAI('user_type', 'Search by the user type. A single type, or a comma-separate list of multiple types, may be given. Values and what they stand for are as follows: 'FLEET' for Commercial, 'GOV' for Government Entity, 'TRIBAL' for Tribal Government, 'IND' for Personal Vehicle Owner or Driver, 'STATION' for Alternative Fuel Infrastructure Operator, 'AFP' for Alternative Fuel Producer, 'PURCH' for Alternative Fuel Purchaser, 'MAN' for Alternative Fuel Vehicle (AFV) Manufacturer or Retrofitter, 'MUD' for Multi-Unit Dwelling, 'TRANS' for Transit, and 'OTHER' for Other.', 'string') }}"
            },
            {
              "name": "poc",
              "value": "={{ $fromAI('poc', 'Include points of contacts in the return value.', 'boolean', false) }}"
            },
            {
              "name": "recent",
              "value": "={{ $fromAI('recent', 'Return only recently added or updated laws and incentives', 'boolean', false) }}"
            },
            {
              "name": "expired",
              "value": "={{ $fromAI('expired', 'The 'true' value returns only expired, repealed, or archived laws and incentives. The default 'false' value returns only current laws and incentives.', 'boolean', false) }}"
            },
            {
              "name": "law_type",
              "value": "={{ $fromAI('law_type', 'Search by the law type. A single type, or a comma-separate list of multiple types, may be given. Values are as follows: 'STATEINC' for State Incentives, 'UPINC ' for Utility/Private Incentives, 'LAWREG' for Laws and Regulations, 'INC' for Incentives, 'PROG' for Programs, 'LUP' for Last Updated, 'OVIEW' for Overview, and 'HILITE' for Highlights.', 'string') }}"
            },
            {
              "name": "keyword",
              "value": "={{ $fromAI('keyword', 'Search laws by keyword in title or text.', 'string') }}"
            },
            {
              "name": "local",
              "value": "={{ $fromAI('local', 'Show only local examples of laws and incentives.', 'boolean', false) }}"
            }
          ]
        },
        "toolDescription": "Full list of laws and incentives that match your query.\n\nParameters:\n- Path parameters:\n  \u2022 output_format (required) - Response format\n- Query parameters:\n  \u2022 api_key (required) - API Key\n  \u2022 limit (optional) - Limit the number of laws returned\n  \u2022 jurisdiction (optional) - Laws for the given Jurisdiction. Jurisdiction must be given as a two character state code (eg, 'CO' for Colorado). A single jurisdiction, or a comma-separate list of multiple jurisdiction, may be given. Use the code 'US' for federal laws and the code 'DC' for Washington D.C.\n  \u2022 technology (optional) - Search by the technology type. A single type, or a comma-separate list of multiple types, may be given. Values and what they stand for are as follows: 'BIOD' for Biodiesel, 'ETH' for Ethanol / Flexible Fuel Vehicles, 'NG' for Natural Gas / Natural Gas Vehicles, 'LPG' for Liquefied Petroleum Gas (Propane) / Propane Vehicles, 'HY' for Hydrogen / Fuel Cell Electric Vehicles, 'ELEC' for All-Electric Vehicles (EVs), 'PHEV' for Plug-In Hybrid Electric Vehicles (PHEVs), 'HEV' for Hybrid Electric Vehicles (HEVs), 'NEVS' for Neighborhood Electric Vehicles (NEVs), 'RD' for Renewable Diesel, 'AFTMKTCONV' for Aftermarket Conversions, 'EFFEC' for Fuel Economy / Efficiency, 'IR' for Idle Reduction, 'AUTONOMOUS' for Connected and Autonomous Vehicles, and 'OTHER' for Other.\n  \u2022 incentive_type (optional) - Search by the incentive type. A single type, or a comma-separate list of multiple types, may be given. Values and what they stand for are as follows: 'GNT' for Grants, 'TAX' for Tax Incentives, 'LOANS' for Loans and Leases, 'RBATE' for Rebates, 'EXEM' for Exemptions, 'TOU' for Time-of-Use Rate, and 'OTHER' for Other.\n  \u2022 regulation_type (optional) - Search by the regulation type. A single type, or a comma-separate list of multiple types, may be given. Values and what they stand for are as follows: 'REQ' for Acquisition / Fuel Use, 'DREST' for Driving / Idling, 'REGIS' for Registration / Licensing, 'EVFEE' for EV Registration Fee, 'FUEL' for Fuel Taxes, 'STD' for Fuel Production / Quality, 'RFS' for Renewable Fuel Standard / Mandate, 'AIRQEMISSIONS' for Air Quality / Emissions, 'CCEINIT' for Climate Change / Energy Initiatives, 'UTILITY' for Utility Definition, 'BUILD' for Building Codes, 'RTC' for Right-to-Charge, and 'OTHER' for Other.\n  \u2022 user_type (optional) - Search by the user type. A single type, or a comma-separate list of multiple types, may be given. Values and what they stand for are as follows: 'FLEET' for Commercial, 'GOV' for Government Entity, 'TRIBAL' for Tribal Government, 'IND' for Personal Vehicle Owner or Driver, 'STATION' for Alternative Fuel Infrastructure Operator, 'AFP' for Alternative Fuel Producer, 'PURCH' for Alternative Fuel Purchaser, 'MAN' for Alternative Fuel Vehicle (AFV) Manufacturer or Retrofitter, 'MUD' for Multi-Unit Dwelling, 'TRANS' for Transit, and 'OTHER' for Other.\n  \u2022 poc (optional) - Include points of contacts in the return value.\n  \u2022 recent (optional) - Only recently added or updated laws and incentives\n  \u2022 expired (optional) - 'true' value returns only expired, repealed, or archived laws and incentives. The default 'false' value returns only current laws and incentives.\n  \u2022 law_type (optional) - Search by the law type. A single type, or a comma-separate list of multiple types, may be given. Values are as follows: 'STATEINC' for State Incentives, 'UPINC ' for Utility/Private Incentives, 'LAWREG' for Laws and Regulations, 'INC' for Incentives, 'PROG' for Programs, 'LUP' for Last Updated, 'OVIEW' for Overview, and 'HILITE' for Highlights.\n  \u2022 keyword (optional) - Search laws by keyword in title or text.\n  \u2022 local (optional) - Show only local examples of laws and incentives."
      },
      "typeVersion": 4.2
    },
    {
      "id": "03e700cc-c08b-4bfb-ab6f-dbeebbf0f061",
      "name": "Grid Note 1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -720,
        40
      ],
      "parameters": {
        "color": 7,
        "height": 220,
        "content": "## Output Format"
      },
      "typeVersion": 1
    },
    {
      "id": "e62cc78c-1794-44b5-a444-e287f6f3dff1",
      "name": "List Law Categories",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -360,
        100
      ],
      "parameters": {
        "url": "=http://developer.nrel.gov/api/transportation-incentives-laws/v1/category-list.{{ $fromAI('output_format', 'Response format', 'string', 'json') }}",
        "options": {},
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "api_key",
              "value": "={{ $fromAI('api_key', 'API Key', 'string', 'DEMO_KEY') }}"
            },
            {
              "name": "type",
              "value": "={{ $fromAI('type', 'Search by the category type.', 'string') }}"
            }
          ]
        },
        "toolDescription": "Law categories for a given category type.\n\nParameters:\n- Path parameters:\n  \u2022 output_format (required) - Response format\n- Query parameters:\n  \u2022 api_key (required) - API Key\n  \u2022 type (optional) - Search by the category type."
      },
      "typeVersion": 4.2
    },
    {
      "id": "50c73cc2-2aca-4252-ab31-643c92169651",
      "name": "Grid Note 2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -440,
        40
      ],
      "parameters": {
        "color": 7,
        "height": 220,
        "content": "## Output Format"
      },
      "typeVersion": 1
    },
    {
      "id": "f638a6d6-8cec-4b06-9617-7d0f565a3408",
      "name": "Get Jurisdiction Contacts",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -80,
        100
      ],
      "parameters": {
        "url": "=http://developer.nrel.gov/api/transportation-incentives-laws/v1/pocs.{{ $fromAI('output_format', 'Response format', 'string', 'json') }}",
        "options": {},
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "api_key",
              "value": "={{ $fromAI('api_key', 'API Key', 'string', 'DEMO_KEY') }}"
            },
            {
              "name": "jurisdiction",
              "value": "={{ $fromAI('jurisdiction', 'Return the points of contact for the given Jurisdiction. Jurisdiction must be given as a two character state code (eg, 'CO' for Colorado). A single jurisdiction, or a comma-separate list of multiple jurisdiction, may be given. Use the code 'US' for federal laws and the code 'DC' for Washington D.C.', 'string') }}"
            }
          ]
        },
        "toolDescription": "Get the points of contact for a given jurisdiction.\n\nParameters:\n- Path parameters:\n  \u2022 output_format (required) - Response format\n- Query parameters:\n  \u2022 api_key (required) - API Key\n  \u2022 jurisdiction (required) - Points of contact for the given Jurisdiction. Jurisdiction must be given as a two character state code (eg, 'CO' for Colorado). A single jurisdiction, or a comma-separate list of multiple jurisdiction, may be given. Use the code 'US' for federal laws and the code 'DC' for Washington D.C."
      },
      "typeVersion": 4.2
    },
    {
      "id": "d3cf0d90-58f8-47ce-89b9-3f6507346fb9",
      "name": "Grid Note 3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -160,
        40
      ],
      "parameters": {
        "color": 7,
        "height": 220,
        "content": "## Output Format"
      },
      "typeVersion": 1
    },
    {
      "id": "9fdb117a-9293-4c63-8378-67fb71bbd627",
      "name": "Get Law Details by ID",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        200,
        100
      ],
      "parameters": {
        "url": "=http://developer.nrel.gov/api/transportation-incentives-laws/v1/{{ $fromAI('id', 'The id of the law that you are searching', 'number') }}.{{ $fromAI('output_format', 'Response format', 'string', 'json') }}",
        "options": {},
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "api_key",
              "value": "={{ $fromAI('api_key', 'API Key', 'string', 'DEMO_KEY') }}"
            },
            {
              "name": "poc",
              "value": "={{ $fromAI('poc', 'Include points of contacts in the return value.', 'boolean', false) }}"
            },
            {
              "name": "expired",
              "value": "={{ $fromAI('expired', 'The 'true' value returns a record no matter its status (current, expired, archived, or repealed). The default 'false' value returns only current laws and incentives.', 'boolean', false) }}"
            }
          ]
        },
        "toolDescription": "Fetch the details of a specific law given the law's ID.\n\nParameters:\n- Path parameters:\n  \u2022 output_format (required) - Response format\n  \u2022 id (required) - Id of the law that you are searching\n- Query parameters:\n  \u2022 api_key (required) - API Key\n  \u2022 poc (optional) - Include points of contacts in the return value.\n  \u2022 expired (optional) - 'true' value returns a record no matter its status (current, expired, archived, or repealed). The default 'false' value returns only current laws and incentives."
      },
      "typeVersion": 4.2
    },
    {
      "id": "64452e2e-ef8b-4106-bf29-ea39672f306d",
      "name": "Grid Note 4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        120,
        40
      ],
      "parameters": {
        "color": 7,
        "height": 220,
        "content": "## Output Format"
      },
      "typeVersion": 1
    }
  ],
  "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-03T05:56:22.209Z",
      "projectId": "G5fce9xGuBAsWBXe",
      "updatedAt": "2025-07-03T05:56:22.209Z",
      "workflowId": "etjoq14x4CdLLzBe"
    }
  ],
  "settings": {
    "timezone": "America/New_York"
  },
  "createdAt": "2025-07-03T05:56:22.205Z",
  "updatedAt": "2025-07-03T16:38:20.000Z",
  "versionId": "d149413a-9182-4802-ac1b-aecc043c139c",
  "isArchived": false,
  "staticData": null,
  "connections": {
    "List Law Categories": {
      "ai_tool": [
        [
          {
            "node": "Transportation Laws and Incentives MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get Law Details by ID": {
      "ai_tool": [
        [
          {
            "node": "Transportation Laws and Incentives MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "List Laws and Incentives": {
      "ai_tool": [
        [
          {
            "node": "Transportation Laws and Incentives MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get Jurisdiction Contacts": {
      "ai_tool": [
        [
          {
            "node": "Transportation Laws and Incentives MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  },
  "triggerCount": 0
}