NPR收听服务MCP服务器

高级

这是一个Engineering、AI RAG领域的自动化工作流,包含 20 个节点。主要使用 HttpRequestTool、McpTrigger 等节点。 NPR收听服务MCP服务器

前置要求
  • 可能需要目标 API 的认证凭证

使用的节点 (20 个)

工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "0QeJ4aIbMhFzRhu5",
  "meta": null,
  "name": "NPR 收听服务 MCP 服务器",
  "tags": [],
  "nodes": [
    {
      "id": "7be9e88e-30f1-483c-bbb4-e7ed2e032c45",
      "name": "设置说明",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1380,
        -240
      ],
      "parameters": {
        "color": 4,
        "height": 1060,
        "content": "### ⚙️ 设置说明"
      },
      "typeVersion": 1
    },
    {
      "id": "35cb901e-e854-419d-9992-91dc391d7d6e",
      "name": "工作流概览",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1120,
        -240
      ],
      "parameters": {
        "width": 420,
        "height": 1040,
        "content": "## 🛠️ NPR 收听服务 MCP 服务器 ✅ 9 个操作"
      },
      "typeVersion": 1
    },
    {
      "id": "94246208-4692-4e28-955d-f2fe87637b67",
      "name": "NPR 收听服务 MCP 服务器",
      "type": "@n8n/n8n-nodes-langchain.mcpTrigger",
      "position": [
        -620,
        -240
      ],
      "webhookId": "0da90de6-5f15-4222-b37a-2a0d694a0728",
      "parameters": {
        "path": "npr-listening-service-mcp"
      },
      "typeVersion": 1
    },
    {
      "id": "3d2a0011-7dc6-45c5-82c6-019ce5d1853e",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -660,
        -100
      ],
      "parameters": {
        "color": 2,
        "width": 300,
        "height": 200,
        "content": "## 聚合"
      },
      "typeVersion": 1
    },
    {
      "id": "0c87620d-9608-4a9d-97d6-ff26d6dba51f",
      "name": "获取聚合推荐",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -520,
        -60
      ],
      "parameters": {
        "url": "=https://listening.api.npr.org/v2/aggregation/{{ $fromAI('aggId', 'ID of an aggregation such as a program or podcast. If the specified ID is a program that publishes rundowns, the latest rundown will be returned.', 'number') }}/recommendations",
        "options": {},
        "sendQuery": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "startNum",
              "value": "={{ $fromAI('startNum', 'The result to start with. Allows paging through the episodes of a podcast or program, with the default, `startNum=0`, being the most recent episode. Ignored for programs that publish a rundown.', 'number', 0) }}"
            }
          ]
        },
        "toolDescription": "Get a set of recommendations for an aggregation independent of the user's listening history\n\nParameters:\n- Path parameters:\n  • aggId (required) - ID of an aggregation such as a program or podcast. If the specified ID is a program that publishes rundowns, the latest rundown will be returned.\n- Query parameters:\n  • startNum (optional) - Result to start with. Allows paging through the episodes of a podcast or program, with the default, `startNum=0`, being the most recent episode. Ignored for programs that publish a rundown."
      },
      "typeVersion": 4.2
    },
    {
      "id": "1818abb9-4238-4613-ba90-485e8082a524",
      "name": "便签2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -660,
        140
      ],
      "parameters": {
        "color": 3,
        "width": 300,
        "height": 200,
        "content": "## 频道"
      },
      "typeVersion": 1
    },
    {
      "id": "8813ca45-f2a6-4ea3-a377-c4b3319b18d4",
      "name": "列出可用频道",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -520,
        180
      ],
      "parameters": {
        "url": "=https://listening.api.npr.org/v2/channels",
        "options": {},
        "sendQuery": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "exploreOnly",
              "value": "={{ $fromAI('exploreOnly', 'If set to `true`, this call will return only channels that should be shown in the client's `Explore` view', 'boolean', false) }}"
            }
          ]
        },
        "toolDescription": "Get the list of available channels\n\nParameters:\n- Query parameters:\n  • exploreOnly (optional) - If set to `true`, this call will return only channels that should be shown in the client's `Explore` view"
      },
      "typeVersion": 4.2
    },
    {
      "id": "5bf3f584-bbef-4723-9b69-db04b68d2180",
      "name": "便签3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -660,
        380
      ],
      "parameters": {
        "color": 4,
        "width": 300,
        "height": 200,
        "content": "## 历史记录"
      },
      "typeVersion": 1
    },
    {
      "id": "a3f83689-9dad-45a0-a62c-9b8a01e0b50f",
      "name": "获取用户评分历史",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -520,
        420
      ],
      "parameters": {
        "url": "=https://listening.api.npr.org/v2/history",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "toolDescription": "Get recent ratings the logged-in user has submitted"
      },
      "typeVersion": 4.2
    },
    {
      "id": "3ba30a59-c094-416e-b648-aabe01452835",
      "name": "便签说明4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -660,
        620
      ],
      "parameters": {
        "color": 5,
        "width": 500,
        "height": 200,
        "content": "## 组织"
      },
      "typeVersion": 1
    },
    {
      "id": "d2eaa3a7-d899-4f7c-bf26-1083381cc6ba",
      "name": "获取类别推荐",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -520,
        660
      ],
      "parameters": {
        "url": "=https://listening.api.npr.org/v2/organizations/{{ $fromAI('orgId', 'ID of an organization, such as an NPR One station', 'number') }}/categories/{{ $fromAI('category', 'One of the three categories of content - newscast, story, or podcast', 'string', 'story') }}/recommendations",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "toolDescription": "Get a list of recommendations from a category of content from an organization\n\nParameters:\n- Path parameters:\n  • orgId (required) - ID of an organization, such as an NPR One station\n  • category (required) - One of the three categories of content - newscast, story, or podcast"
      },
      "typeVersion": 4.2
    },
    {
      "id": "b1dd969e-1876-4a98-abad-99147e288205",
      "name": "获取组织详情",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -320,
        660
      ],
      "parameters": {
        "url": "=https://listening.api.npr.org/v2/organizations/{{ $fromAI('orgId', 'ID of an organization, such as an NPR One station', 'number') }}/recommendations",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "toolDescription": "Get a variety of details about an organization including various lists of recent audio items\n\nParameters:\n- Path parameters:\n  • orgId (required) - ID of an organization, such as an NPR One station"
      },
      "typeVersion": 4.2
    },
    {
      "id": "46e7450f-306b-4a58-9acd-ec2a589eb9cf",
      "name": "便签说明5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -660,
        860
      ],
      "parameters": {
        "color": 6,
        "width": 300,
        "height": 200,
        "content": "## 推广"
      },
      "typeVersion": 1
    },
    {
      "id": "29c7a041-9715-4df9-9d49-88fa9074393e",
      "name": "获取最近推广音频",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -520,
        900
      ],
      "parameters": {
        "url": "=https://listening.api.npr.org/v2/promo/recommendations",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "toolDescription": "Retrieve the most recent promo audio heard by the logged-in user"
      },
      "typeVersion": 4.2
    },
    {
      "id": "66444861-da4a-43ec-9531-d73311199c4c",
      "name": "便签 6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -660,
        1100
      ],
      "parameters": {
        "color": 7,
        "width": 300,
        "height": 200,
        "content": "## 评分"
      },
      "typeVersion": 1
    },
    {
      "id": "615674ac-500a-4537-8377-abc20c62af57",
      "name": "提交媒体评分",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -520,
        1140
      ],
      "parameters": {
        "url": "=https://listening.api.npr.org/v2/ratings",
        "method": "POST",
        "options": {},
        "sendQuery": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "recommend",
              "value": "={{ $fromAI('recommend', 'If set to `false`, this call will return a blank document; otherwise it will return a new recommendation object', 'boolean', true) }}"
            }
          ]
        },
        "toolDescription": "Collect new ratings for media previously recommended to the logged-in user\n\nParameters:\n- Query parameters:\n  • recommend (optional) - If set to `false`, this call will return a blank document; otherwise it will return a new recommendation object"
      },
      "typeVersion": 4.2
    },
    {
      "id": "1979c204-f489-4e07-a148-91a8934a89af",
      "name": "便签 7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -660,
        1340
      ],
      "parameters": {
        "color": 2,
        "width": 300,
        "height": 200,
        "content": "## 推荐"
      },
      "typeVersion": 1
    },
    {
      "id": "9fd1c14b-044c-4300-98f4-eb880b7ccaa1",
      "name": "获取用户推荐",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -520,
        1380
      ],
      "parameters": {
        "url": "=https://listening.api.npr.org/v2/recommendations",
        "options": {},
        "sendQuery": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "sharedMediaId",
              "value": "={{ $fromAI('sharedMediaId', 'This media was shared directly with the user; if provided, the service will add this recommendation to the top of the list', 'string') }}"
            },
            {
              "name": "notifiedMediaId",
              "value": "={{ $fromAI('notifiedMediaId', 'The user received a push notification about this media; if provided, the service will add this recommendation to the top of the list', 'string') }}"
            }
          ]
        },
        "toolDescription": "Get a list of media for the logged-in user from NPR's recommendation engine\n\nParameters:\n- Query parameters:\n  • sharedMediaId (optional) - Media was shared directly with the user; if provided, the service will add this recommendation to the top of the list\n  • notifiedMediaId (optional) - User received a push notification about this media; if provided, the service will add this recommendation to the top of the list"
      },
      "typeVersion": 4.2
    },
    {
      "id": "87d8ade4-eaea-48f4-bf93-f2053f3e9989",
      "name": "## 为什么选择 4o 模型?👆",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -660,
        1580
      ],
      "parameters": {
        "color": 3,
        "width": 300,
        "height": 200,
        "content": "## 搜索"
      },
      "typeVersion": 1
    },
    {
      "id": "fc72a50c-1408-4931-ae30-103a15a160de",
      "name": "获取搜索推荐",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -520,
        1620
      ],
      "parameters": {
        "url": "=https://listening.api.npr.org/v2/search/recommendations",
        "options": {},
        "sendQuery": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "searchTerms",
              "value": "={{ $fromAI('searchTerms', 'Search terms to search on; can include URL-encoded punctuation', 'string') }}"
            }
          ]
        },
        "toolDescription": "Get a list of recent audio and aggregation items associated with search terms\n\nParameters:\n- Query parameters:\n  • searchTerms (required) - Search terms to search on; can include URL-encoded punctuation"
      },
      "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:16.781Z",
      "projectId": "G5fce9xGuBAsWBXe",
      "updatedAt": "2025-07-03T17:14:16.781Z",
      "workflowId": "0QeJ4aIbMhFzRhu5"
    }
  ],
  "pinData": {},
  "settings": {
    "timezone": "America/New_York"
  },
  "createdAt": "2025-07-03T17:14:16.779Z",
  "updatedAt": "2025-07-03T17:16:45.000Z",
  "versionId": "70864a9e-7be4-434a-8c53-ef487233d2ce",
  "isArchived": false,
  "staticData": null,
  "connections": {
    "Submit Media Ratings": {
      "ai_tool": [
        [
          {
            "node": "NPR Listening Service MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get Recent Promo Audio": {
      "ai_tool": [
        [
          {
            "node": "NPR Listening Service MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "List Available Channels": {
      "ai_tool": [
        [
          {
            "node": "NPR Listening Service MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get Organization Details": {
      "ai_tool": [
        [
          {
            "node": "NPR Listening Service MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get User Ratings History": {
      "ai_tool": [
        [
          {
            "node": "NPR Listening Service MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get User Recommendations": {
      "ai_tool": [
        [
          {
            "node": "NPR Listening Service MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get Search Recommendations": {
      "ai_tool": [
        [
          {
            "node": "NPR Listening Service MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get Category Recommendations": {
      "ai_tool": [
        [
          {
            "node": "NPR Listening Service MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get Aggregation Recommendations": {
      "ai_tool": [
        [
          {
            "node": "NPR Listening Service MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  },
  "triggerCount": 0
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

这是一个高级难度的工作流,适用于Engineering、AI RAG等场景。适合高级用户,包含 16+ 个节点的复杂工作流

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量20
分类2
节点类型3
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
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 上查看 →

分享此工作流