![[New York Times] Article Search API MCP Server](/workflows/images/5649.webp)
[New York Times] Article Search API MCP Server
説明
Categories
🔧 Engineering🤖 AI & Machine Learning
Nodes Used
n8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.httpRequestTool@n8n/n8n-nodes-langchain.mcpTrigger
Price無料
Views0
最終更新11/28/2025
workflow.json
{
"id": "EYLulD1708dCvuLU",
"meta": null,
"name": "[New York Times] Article Search API MCP Server",
"tags": [],
"nodes": [
{
"id": "6b8f81f6-8a53-4467-a70b-e9846ced800f",
"name": "Setup Instructions",
"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 1 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": "75aaf454-5c06-4b99-9f59-940c3cd6b689",
"name": "Workflow Overview",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1120,
-240
],
"parameters": {
"width": 420,
"height": 920,
"content": "## 🛠️ Article Search MCP Server ✅ 1 operations\n\n### About\nThe Article Search API lets you query New York Times articles from 1851 to present, returning metadata including headlines, abstracts, multimedia links, and article content. Italicized terms in URIs and fields represent variables, while brackets [ ] denote optional parameters.\n\n### 🔧 How it Works\n\nThis workflow converts the Article Search 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 http://api.nytimes.com/svc/search/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 (1 endpoints)\n\n**Stories (1 operations)**\nSearch Articles\n\n"
},
"typeVersion": 1
},
{
"id": "b672dd36-23f0-4d3d-a134-3b053bf528eb",
"name": "Article Search MCP Server",
"type": "@n8n/n8n-nodes-langchain.mcpTrigger",
"position": [
-620,
-240
],
"webhookId": "4e0f198d-8dcc-4187-9155-8f8aea8640ca",
"parameters": {
"path": "article-search-mcp"
},
"typeVersion": 1
},
{
"id": "c1308c48-fd1a-43a4-9a7d-bed56e41a8f8",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-660,
-100
],
"parameters": {
"color": 2,
"width": 300,
"height": 200,
"content": "## Stories"
},
"typeVersion": 1
},
{
"id": "e61da932-518a-4520-b7c9-602a36ec9b0a",
"name": "Search Articles",
"type": "n8n-nodes-base.httpRequestTool",
"position": [
-520,
-60
],
"parameters": {
"url": "=http://api.nytimes.com/svc/search/v2/articlesearch.json",
"options": {},
"sendQuery": true,
"authentication": "genericCredentialType",
"genericAuthType": "queryAuth",
"queryParameters": {
"parameters": [
{
"name": "q",
"value": "={{ $fromAI('q', 'Search query term. Search is performed on the article body, headline and byline.', 'string') }}"
},
{
"name": "fq",
"value": "={{ $fromAI('fq', '\"Filtered search query using standard Lucene syntax. The filter query can be specified with or without a limiting field: label. See Filtering Your Search for more information about filtering.\"', 'string') }}"
},
{
"name": "begin_date",
"value": "={{ $fromAI('begin_date', '\"Format: YYYYMMDD Restricts responses to results with publication dates of the date specified or later.\"', 'string') }}"
},
{
"name": "end_date",
"value": "={{ $fromAI('end_date', '\"Format: YYYYMMDD Restricts responses to results with publication dates of the date specified or earlier.\"', 'string') }}"
},
{
"name": "sort",
"value": "={{ $fromAI('sort', '\"By default, search results are sorted by their relevance to the query term (q). Use the sort parameter to sort by pub_date.\"', 'string') }}"
},
{
"name": "fl",
"value": "={{ $fromAI('fl', '\"Comma-delimited list of fields (no limit) Limits the fields returned in your search results. By default (unless you include an fl list in your request), the following fields are returned: web_url snippet lead_paragraph abstract print_page blog source multimedia headline keywords pub_date document_type news_desk byline type_of_material _id word_count\"', 'string') }}"
},
{
"name": "hl",
"value": "={{ $fromAI('hl', 'Enables highlighting in search results. When set to true, the query term (q) is highlighted in the headline and lead_paragraph fields. Note: If highlighting is enabled, snippet will be returned even if it is not specified in your fl list.\"', 'boolean', false) }}"
},
{
"name": "page",
"value": "={{ $fromAI('page', '\"The value of page corresponds to a set of 10 results (it does not indicate the starting number of the result set). For example, page=0 corresponds to records 0-9. To return records 10-19, set page to 1, not 10.\"', 'number', 0) }}"
},
{
"name": "facet_field",
"value": "={{ $fromAI('facet_field', 'Comma-delimited list of facets Specifies the sets of facet values to include in the facets array at the end of response, which collects the facet values from all the search results. By default no facet fields will be returned. Below is the list of valid facets: section_name document_type type_of_material source day_of_week To learn more about using facets, see Using Facets.', 'string') }}"
},
{
"name": "facet_filter",
"value": "={{ $fromAI('facet_filter', 'When set to true, facet counts will respect any applied filters (fq, date range, etc.) in addition to the main query term. To filter facet counts, specifying at least one facet_field is required. To learn more about using facets, see Using Facets.', 'boolean', false) }}"
}
]
},
"toolDescription": "Article Search\n\nParameters:\n- Query parameters:\n • q (optional) - Search query term. Search is performed on the article body, headline and byline.\n • fq (optional) - \"Filtered search query using standard Lucene syntax. The filter query can be specified with or without a limiting field: label. See Filtering Your Search for more information about filtering.\"\n • begin_date (optional) - \"Format: YYYYMMDD Restricts responses to results with publication dates of the date specified or later.\"\n • end_date (optional) - \"Format: YYYYMMDD Restricts responses to results with publication dates of the date specified or earlier.\"\n • sort (optional) - \"By default, search results are sorted by their relevance to the query term (q). Use the sort parameter to sort by pub_date.\"\n • fl (optional) - \"Comma-delimited list of fields (no limit) Limits the fields returned in your search results. By default (unless you include an fl list in your request), the following fields are returned: web_url snippet lead_paragraph abstract print_page blog source multimedia headline keywords pub_date document_type news_desk byline type_of_material _id word_count\"\n • hl (optional) - Enables highlighting in search results. When set to true, the query term (q) is highlighted in the headline and lead_paragraph fields. Note: If highlighting is enabled, snippet will be returned even if it is not specified in your fl list.\"\n • page (optional) - \"The value of page corresponds to a set of 10 results (it does not indicate the starting number of the result set). For example, page=0 corresponds to records 0-9. To return records 10-19, set page to 1, not 10.\"\n • facet_field (optional) - Comma-delimited list of facets Specifies the sets of facet values to include in the facets array at the end of response, which collects the facet values from all the search results. By default no facet fields will be returned. Below is the list of valid facets: section_name document_type type_of_material source day_of_week To learn more about using facets, see Using Facets.\n • facet_filter (optional) - When set to true, facet counts will respect any applied filters (fq, date range, etc.) in addition to the main query term. To filter facet counts, specifying at least one facet_field is required. To learn more about using facets, see Using Facets."
},
"typeVersion": 4.2
}
],
"active": false,
"shared": [
{
"role": "workflow:owner",
"project": {
"id": "G5fce9xGuBAsWBXe",
"icon": null,
"name": "David Ashby <[email protected]>",
"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": "[email protected]",
"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:21.357Z",
"projectId": "G5fce9xGuBAsWBXe",
"updatedAt": "2025-07-03T17:14:21.357Z",
"workflowId": "EYLulD1708dCvuLU"
}
],
"pinData": {},
"settings": {
"timezone": "America/New_York"
},
"createdAt": "2025-07-03T17:14:21.356Z",
"updatedAt": "2025-07-03T17:16:14.000Z",
"versionId": "9f3ca262-c9d9-49b1-9874-f9d5738f4f6b",
"isArchived": false,
"staticData": null,
"connections": {
"Search Articles": {
"ai_tool": [
[
{
"node": "Article Search MCP Server",
"type": "ai_tool",
"index": 0
}
]
]
}
},
"triggerCount": 0
}