This workflow corresponds to n8n.io template #5654 — we link there as the canonical source.
This workflow follows the HTTP Request Tool → Mcptrigger recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "LGM7GXme9TYLVx2n",
"meta": null,
"name": "NPR Station Finder Service MCP Server",
"tags": [],
"nodes": [
{
"id": "6a86e0e7-236e-4531-a433-d3a0b76d9a77",
"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. **Configure Authentication**: \nSet up oauth2 credentials\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 2 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": "ce201fa2-4043-4511-8fd2-c173dde16667",
"name": "Workflow Overview",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1120,
-240
],
"parameters": {
"width": 420,
"height": 760,
"content": "## \ud83d\udee0\ufe0f NPR Station Finder Service MCP Server \u2705 2 operations\n\n### About\nAllows clients to look up NPR member station information\n\n### \ud83d\udd27 How it Works\n\nThis workflow converts the NPR Station Finder Service 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 https://station.api.npr.org\n\u2022 **AI Expressions**: Automatically populate parameters via `$fromAI()` placeholders\n\u2022 **Native Integration**: Returns responses directly to the AI agent\n\n\n### \ud83d\udccb Available Operations (2 endpoints)\n\n**Station Finder (2 operations)**\nList, Retrieve\n\n"
},
"typeVersion": 1
},
{
"id": "3e3daf17-9f45-44c1-b278-65b07eb53771",
"name": "NPR Station Finder Service MCP Server",
"type": "@n8n/n8n-nodes-langchain.mcpTrigger",
"position": [
-620,
-240
],
"parameters": {
"path": "npr-station-finder-service-mcp"
},
"typeVersion": 1
},
{
"id": "13d71f04-809f-4198-8d17-17d0e5020db5",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-660,
-100
],
"parameters": {
"color": 2,
"width": 500,
"height": 200,
"content": "## Station Finder"
},
"typeVersion": 1
},
{
"id": "ae6c5aa4-2bf9-422f-b12b-de2d2bf989e4",
"name": "Get Stations 1",
"type": "n8n-nodes-base.httpRequestTool",
"position": [
-520,
-60
],
"parameters": {
"url": "=https://station.api.npr.org/v3/stations",
"options": {},
"sendQuery": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"queryParameters": {
"parameters": [
{
"name": "q",
"value": "={{ $fromAI('q', 'Search terms to search on; can be a station name, network name, call letters, or zipcode', 'string') }}"
},
{
"name": "city",
"value": "={{ $fromAI('city', 'A city to look for stations from; intended to be paired with `state`', 'string') }}"
},
{
"name": "state",
"value": "={{ $fromAI('state', 'A state to look for stations from (using the 2-letter abbreviation); intended to be paired with `city`', 'string') }}"
},
{
"name": "lat",
"value": "={{ $fromAI('lat', 'A latitude value from a geographic coordinate system; only works if paired with `lon`', 'number') }}"
},
{
"name": "lon",
"value": "={{ $fromAI('lon', 'A longitude value from a geographic coordinate system; only works if paired with `lat`', 'number') }}"
}
]
},
"toolDescription": "List stations close to you or filter by search criteria\n\nParameters:\n- Query parameters:\n \u2022 q (optional) - Search terms to search on; can be a station name, network name, call letters, or zipcode\n \u2022 city (optional) - A city to look for stations from; intended to be paired with `state`\n \u2022 state (optional) - A state to look for stations from (using the 2-letter abbreviation); intended to be paired with `city`\n \u2022 lat (optional) - A latitude value from a geographic coordinate system; only works if paired with `lon`\n \u2022 lon (optional) - A longitude value from a geographic coordinate system; only works if paired with `lat`"
},
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "e18855f2-acb4-46b9-a08d-9554285c8600",
"name": "Get Station 1",
"type": "n8n-nodes-base.httpRequestTool",
"position": [
-320,
-60
],
"parameters": {
"url": "=https://station.api.npr.org/v3/stations/{{ $fromAI('stationId', 'The numeric ID of a station', 'number') }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"toolDescription": "Retrieve metadata for the station with the given numeric ID\n\nParameters:\n- Path parameters:\n \u2022 stationId (required) - Numeric ID of a station"
},
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
},
"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-03T17:14:07.973Z",
"projectId": "G5fce9xGuBAsWBXe",
"updatedAt": "2025-07-03T17:14:07.973Z",
"workflowId": "LGM7GXme9TYLVx2n"
}
],
"settings": {
"timezone": "America/New_York"
},
"createdAt": "2025-07-03T17:14:07.971Z",
"updatedAt": "2025-07-03T17:19:38.000Z",
"versionId": "74e4de01-1674-447a-bc0b-c3eef6d8d27a",
"isArchived": false,
"staticData": null,
"connections": {
"Get Station 1": {
"ai_tool": [
[
{
"node": "NPR Station Finder Service MCP Server",
"type": "ai_tool",
"index": 0
}
]
]
},
"Get Stations 1": {
"ai_tool": [
[
{
"node": "NPR Station Finder Service MCP Server",
"type": "ai_tool",
"index": 0
}
]
]
}
},
"triggerCount": 0
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
httpHeaderAuth
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Complete MCP server exposing 2 NPR Station Finder Service API operations to AI agents.
Source: https://n8n.io/workflows/5654/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Need help? Want access to this workflow + many more paid workflows + live Q&A sessions with a top verified n8n creator?
Need help? Want access to this workflow + many more paid workflows + live Q&A sessions with a top verified n8n creator?
An MCP server that exposes 10 specialized AI tools for deep observability over your OpenObserve logs and traces.
Complete MCP server exposing 4 Transportation Laws and Incentives API operations to AI agents.
Complete MCP server exposing 4 BikeWise API v2 API operations to AI agents.