n8n MCP Server
Provides comprehensive workflow automation management with 40+ tools for creating, updating, executing, and managing workflows, credentials, executions, tags, variables, projects, users, and Git-based source control in n8n instances.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@n8n MCP Server list my active workflows tagged with marketing"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
n8n MCP Server
A comprehensive MCP (Model Context Protocol) server for n8n workflow automation. This connector provides Claude Desktop with ALL available n8n API operations, enabling full workflow management directly from Claude.
Features
Unlike the limited default connector, this server includes 40+ tools covering:
Workflow Management
n8n_list_workflows- List all workflows with filteringn8n_get_workflow- Get full workflow details including nodes and connectionsn8n_create_workflow- Create new workflows with nodes and connectionsn8n_update_workflow- Update existing workflowsn8n_delete_workflow- Delete workflowsn8n_activate_workflow- Activate a workflown8n_deactivate_workflow- Deactivate a workflown8n_run_workflow- Execute a workflow manuallyn8n_update_workflow_tags- Update workflow tag associationsn8n_duplicate_workflow- Create a copy of a workflown8n_export_workflow- Export workflow as JSONn8n_import_workflow- Import workflow from JSONn8n_transfer_workflow- Transfer workflow to another project
Execution Management
n8n_list_executions- List workflow executions with filteringn8n_get_execution- Get detailed execution informationn8n_delete_execution- Delete a single executionn8n_delete_executions- Bulk delete executionsn8n_stop_execution- Stop a running executionn8n_retry_execution- Retry a failed execution
Credential Management
n8n_list_credentials- List all credentialsn8n_get_credential- Get credential detailsn8n_create_credential- Create new credentialsn8n_update_credential- Update existing credentialsn8n_delete_credential- Delete credentialsn8n_get_credential_schema- Get required fields for credential typen8n_transfer_credential- Transfer credential to another project
Tag Management
n8n_list_tags- List all tagsn8n_get_tag- Get tag detailsn8n_create_tag- Create new tagsn8n_update_tag- Rename tagsn8n_delete_tag- Delete tags
Variable Management
n8n_list_variables- List all environment variablesn8n_get_variable- Get variable detailsn8n_create_variable- Create new variablesn8n_update_variable- Update variablesn8n_delete_variable- Delete variables
Project Management
n8n_list_projects- List all projectsn8n_get_project- Get project detailsn8n_create_project- Create new projectsn8n_update_project- Rename projectsn8n_delete_project- Delete projects
User Management
n8n_list_users- List all usersn8n_get_user- Get user detailsn8n_get_current_user- Get current authenticated user
Source Control (Git)
n8n_source_control_status- Get Git statusn8n_source_control_pull- Pull changes from remoten8n_source_control_push- Push changes to remoten8n_source_control_disconnect- Disconnect Git integration
Security & Utilities
n8n_check_connection- Test API connectionn8n_generate_audit- Generate security audit reportn8n_get_node_types- List available node typesn8n_get_active_webhooks- List active webhooks
Related MCP server: n8n MCP Server
Installation
Prerequisites
Node.js 18 or later
n8n instance with API access enabled
n8n API key (generate in n8n Settings → API)
Setup
Clone or download this project:
git clone git@github.com:DrBalls/n8n-mcp-server-v2.git cd n8n-mcp-server-v2Install dependencies:
npm installBuild the project:
npm run buildConfigure Claude Desktop:
Add to your Claude Desktop configuration file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:%APPDATA%\Claude\claude_desktop_config.json{ "mcpServers": { "n8n": { "command": "node", "args": ["/absolute/path/to/n8n-mcp-server-v2/dist/index.js"], "env": { "N8N_URL": "http://localhost:5678", "N8N_API_KEY": "your-api-key-here" } } } }Restart Claude Desktop
Configuration
Environment Variables
Variable | Description | Default |
| Base URL of your n8n instance |
|
| Your n8n API key | (required) |
Getting an API Key
Open your n8n instance
Go to Settings → API
Click Create API Key
Copy the generated key
Usage Examples
Create a Simple Workflow
Create a new n8n workflow called "Hello World" with:
1. A manual trigger node
2. A Set node that outputs {"message": "Hello, World!"}List and Filter Workflows
Show me all active workflows tagged with "production"Run a Workflow with Input
Execute workflow ID abc123 with input data: {"email": "test@example.com"}Manage Credentials
List all Slack credentials and show me the schema for creating new onesCheck Execution Status
Show me the last 10 failed executions and their error messagesSource Control
What's the current Git status? Are there any unpushed changes?Common Node Types
When creating workflows, use these node type identifiers:
Node | Type String |
Manual Trigger |
|
Schedule Trigger |
|
Webhook |
|
HTTP Request |
|
Code (JavaScript) |
|
Set |
|
IF |
|
Switch |
|
Merge |
|
Split In Batches |
|
Wait |
|
No Operation |
|
Troubleshooting
Connection Failed
Verify your
N8N_URLis correct and accessibleCheck that your API key is valid
Ensure n8n API access is enabled in settings
Permission Denied
Your API key may not have sufficient permissions
Check if the API user has access to the requested resource
Workflow Not Found
Verify the workflow ID is correct
Check if the workflow exists in the specified project
Development
Building
npm run buildTesting Connection
After building, test the connection:
N8N_URL=http://localhost:5678 N8N_API_KEY=your-key node dist/index.jsLicense
MIT
Contributing
Contributions are welcome! Please feel free to submit issues or pull requests.
Available Tools
52 toolsn8n_activate_workflowActivate n8n WorkflowBIdempotent
Activate a workflow so it can run automatically based on its triggers.
Args:
id (string): Workflow ID to activate
Returns: The activated workflow.
Inputs: id (required).
n8n_check_connectionCheck n8n ConnectionARead-onlyIdempotent
Test the connection to the n8n instance.
Verifies that the API key is valid and the n8n instance is reachable.
Returns:
connected: Whether connection is successful
error: Error message if connection failed
Inputs: no named parameters.
n8n_create_credentialCreate n8n CredentialA
Create a new credential.
Args:
name (string): Credential name
type (string): Credential type (use n8n_get_credential_schema to see required fields)
data (object): Credential data (fields depend on type)
Common credential types:
slackApi: { accessToken }
httpBasicAuth: { user, password }
httpHeaderAuth: { name, value }
oAuth2Api: { clientId, clientSecret, ... }
gmailOAuth2Api: OAuth credentials for Gmail
notionApi: { apiKey }
openAiApi: { apiKey }
Use n8n_get_credential_schema to get the exact fields required for a type.
Returns: The created credential (without sensitive data).
Inputs: name (required), type (required), data (required).
n8n_create_projectCreate n8n ProjectB
Create a new project for organizing workflows and credentials.
Args:
name (string): Project name
Returns: The created project.
Inputs: name (required).
n8n_create_tagCreate n8n TagB
Create a new tag for organizing workflows.
Args:
name (string): Tag name (max 24 characters)
Returns: The created tag.
Inputs: name (required).
n8n_create_variableCreate n8n VariableA
Create a new environment variable.
Variables can be used in workflows with $vars.variableName syntax.
Args:
key (string): Variable key (alphanumeric + underscore, must start with letter or underscore)
value (string): Variable value
Returns: The created variable.
Inputs: key (required), value (required).
n8n_create_workflowCreate n8n WorkflowB
Create a new workflow in n8n.
Args:
name (string): Workflow name (required)
nodes (array): Array of node objects, each with:
name (string): Node display name
type (string): Node type (e.g., "n8n-nodes-base.httpRequest")
position ([x, y]): Canvas position
parameters (object): Node-specific parameters
credentials (object, optional): Credential mappings
connections (object): Node connections mapping
settings (object, optional): Workflow settings
tags (array, optional): Tag IDs to associate
Returns: The created workflow with its assigned ID.
Example node types:
n8n-nodes-base.manualTrigger - Manual trigger
n8n-nodes-base.scheduleTrigger - Scheduled trigger
n8n-nodes-base.webhook - Webhook trigger
n8n-nodes-base.httpRequest - HTTP Request
n8n-nodes-base.code - Custom JavaScript/Python
n8n-nodes-base.set - Set data
n8n-nodes-base.if - Conditional
n8n-nodes-base.merge - Merge data
Inputs: name (required), nodes, connections, settings, +2 more.
n8n_deactivate_workflowDeactivate n8n WorkflowAIdempotent
Deactivate a workflow to stop it from running automatically.
Args:
id (string): Workflow ID to deactivate
Returns: The deactivated workflow.
Inputs: id (required).
n8n_delete_credentialDelete n8n CredentialADestructiveIdempotent
Delete a credential.
⚠️ WARNING: This will break any workflows using this credential!
Args:
id (string): Credential ID to delete
Returns: Confirmation of deletion.
Inputs: id (required).
n8n_delete_executionDelete n8n ExecutionADestructiveIdempotent
Delete a specific execution by ID.
⚠️ WARNING: This action cannot be undone!
Args:
id (string): Execution ID to delete
Returns: Confirmation of deletion.
Inputs: id (required).
n8n_delete_executionsDelete n8n Executions (Bulk)ADestructive
Delete multiple executions based on filters.
⚠️ WARNING: This action cannot be undone! Use with caution.
Args:
workflowId (string, optional): Delete executions for this workflow
status (string, optional): Delete executions with this status
deleteBefore (string, optional): Delete executions before this date (ISO 8601 format)
ids (array, optional): Specific execution IDs to delete
Returns: Count of deleted executions.
Inputs: workflowId, status, deleteBefore, ids.
n8n_delete_projectDelete n8n ProjectADestructiveIdempotent
Delete a project.
⚠️ WARNING: All workflows and credentials in this project will be affected!
Args:
id (string): Project ID to delete
Returns: Confirmation of deletion.
Inputs: id (required).
n8n_delete_tagDelete n8n TagBDestructiveIdempotent
Delete a tag.
Args:
id (string): Tag ID to delete
Returns: Confirmation of deletion.
Inputs: id (required).
n8n_delete_variableDelete n8n VariableADestructiveIdempotent
Delete a variable.
⚠️ WARNING: Workflows using this variable will break!
Args:
id (string): Variable ID to delete
Returns: Confirmation of deletion.
Inputs: id (required).
n8n_delete_workflowDelete n8n WorkflowADestructiveIdempotent
Permanently delete a workflow.
⚠️ WARNING: This action cannot be undone!
Args:
id (string): Workflow ID to delete
Returns: Confirmation of deletion.
Inputs: id (required).
n8n_duplicate_workflowDuplicate WorkflowA
Create a copy of an existing workflow.
Args:
id (string): Workflow ID to duplicate
newName (string, optional): Name for the copy (default: "Copy of [original name]")
Returns: The duplicated workflow with its new ID.
Inputs: id (required), newName.
n8n_export_workflowExport Workflow JSONARead-onlyIdempotent
Export a workflow as JSON for backup or import elsewhere.
Args:
id (string): Workflow ID to export
Returns: Complete workflow JSON that can be imported into another n8n instance.
Inputs: id (required).
n8n_generate_auditGenerate Security AuditARead-onlyIdempotent
Generate a security audit report for the n8n instance.
Args:
categories (array, optional): Categories to audit:
credentials: Check credential security
database: Check database configuration
filesystem: Check file system access
instance: Check instance configuration
nodes: Check node security
daysAbandonedWorkflow (number, optional): Days to consider workflow abandoned
Returns: Audit report with risk levels and issues by category.
Inputs: categories, daysAbandonedWorkflow.
n8n_get_active_webhooksGet Active WebhooksARead-onlyIdempotent
Get a list of all active webhooks in the n8n instance.
Returns: List of active webhooks with their paths and associated workflows.
Inputs: no named parameters.
n8n_get_credentialGet n8n CredentialARead-onlyIdempotent
Get details of a specific credential (without sensitive data).
Args:
id (string): Credential ID
Returns: Credential metadata (id, name, type, timestamps). ⚠️ Credential data/secrets are NOT returned for security.
Inputs: id (required).
n8n_get_credential_schemaGet Credential SchemaARead-onlyIdempotent
Get the schema/fields required for a credential type.
Args:
credentialType (string): The credential type (e.g., "slackApi", "httpBasicAuth")
Returns: JSON schema showing required and optional fields for the credential type.
Use this before creating credentials to know what data fields are needed.
Inputs: credentialType (required).
n8n_get_current_userGet Current n8n UserARead-onlyIdempotent
Get details of the currently authenticated user (owner of the API key).
Returns: Current user details with id, email, name, and role.
Inputs: no named parameters.
n8n_get_executionGet n8n ExecutionARead-onlyIdempotent
Get detailed information about a specific execution.
Args:
id (string): Execution ID
includeData (boolean): Include full execution data with node outputs (default: true)
Returns: Complete execution details including:
Status and mode
Timestamps (started, stopped)
Workflow data
Node execution results (if includeData is true)
Inputs: id (required), includeData.
n8n_get_node_typesGet Available Node TypesARead-onlyIdempotent
Get a list of all available node types in the n8n instance.
Returns: List of node types with their descriptions and categories.
Useful for understanding what nodes are available when creating workflows.
Inputs: no named parameters.
n8n_get_projectGet n8n ProjectBRead-onlyIdempotent
Get details of a specific project.
Args:
id (string): Project ID
Returns: Project details with id, name, and type.
Inputs: id (required).
n8n_get_tagGet n8n TagBRead-onlyIdempotent
Get details of a specific tag.
Args:
id (string): Tag ID
Returns: Tag details with id and name.
Inputs: id (required).
n8n_get_userGet n8n UserBRead-onlyIdempotent
Get details of a specific user.
Args:
id (string): User ID
Returns: User details with id, email, name, and role.
Inputs: id (required).
n8n_get_variableGet n8n VariableARead-onlyIdempotent
Get a specific variable by ID.
Args:
id (string): Variable ID
Returns: Variable details with id, key, and value.
Inputs: id (required).
n8n_get_workflowGet n8n WorkflowARead-onlyIdempotent
Get full details of a specific workflow including all nodes and connections.
Args:
id (string): The workflow ID
Returns: Complete workflow object with:
name, id, active status
nodes array with all node configurations
connections mapping
settings
tags
timestamps
Inputs: id (required).
n8n_import_workflowImport Workflow JSONB
Import a workflow from JSON.
Args:
workflowJson (object): Complete workflow JSON object with:
name (string): Workflow name
nodes (array): Workflow nodes
connections (object): Node connections
settings (object, optional): Workflow settings
Returns: The imported workflow with its new ID.
Inputs: workflowJson (required).
n8n_list_credentialsList n8n CredentialsARead-onlyIdempotent
List all credentials (without sensitive data).
Args:
type (string, optional): Filter by credential type (e.g., "slackApi", "httpBasicAuth")
limit (number): Maximum results (default: 100)
cursor (string, optional): Pagination cursor
Returns: List of credentials with id, name, type, and timestamps. ⚠️ Credential data/secrets are NOT included for security.
Inputs: type, limit, cursor.
n8n_list_executionsList n8n ExecutionsBRead-onlyIdempotent
List workflow executions with optional filtering.
Args:
workflowId (string, optional): Filter by workflow ID
status (string, optional): Filter by status (error, success, waiting, new, running, canceled, crashed)
includeData (boolean): Include full execution data (default: false)
projectId (string, optional): Filter by project ID
limit (number): Maximum results (default: 100)
cursor (string, optional): Pagination cursor
Returns: List of executions with id, workflowId, status, mode, timestamps.
Inputs: workflowId, status, includeData, projectId, +2 more.
n8n_list_projectsList n8n ProjectsARead-onlyIdempotent
List all projects.
Projects help organize workflows and credentials into separate workspaces.
Args:
limit (number): Maximum results (default: 100)
cursor (string, optional): Pagination cursor
Returns: List of projects with id, name, and type (personal/team).
Inputs: limit, cursor.
n8n_list_tagsList n8n TagsARead-onlyIdempotent
List all tags available for organizing workflows.
Args:
limit (number): Maximum results (default: 100)
cursor (string, optional): Pagination cursor
Returns: List of tags with id and name.
Inputs: limit, cursor.
n8n_list_usersList n8n UsersBRead-onlyIdempotent
List all users in the n8n instance.
Args:
includeRole (boolean): Include user roles (default: true)
limit (number): Maximum results (default: 100)
cursor (string, optional): Pagination cursor
Returns: List of users with id, email, name, and role.
Inputs: includeRole, limit, cursor.
n8n_list_variablesList n8n VariablesARead-onlyIdempotent
List all environment variables.
Variables are accessible in workflows using $vars.variableName syntax.
Args:
limit (number): Maximum results (default: 100)
cursor (string, optional): Pagination cursor
Returns: List of variables with id, key, and value.
Inputs: limit, cursor.
n8n_list_workflowsList n8n WorkflowsARead-onlyIdempotent
List all workflows in the n8n instance with optional filtering.
Args:
active (boolean, optional): Filter by active status
tags (string, optional): Filter by tag IDs (comma-separated)
name (string, optional): Filter by name (partial match)
projectId (string, optional): Filter by project ID
limit (number): Maximum results (default: 100, max: 250)
cursor (string, optional): Pagination cursor from previous response
Returns: List of workflows with id, name, active status, created/updated timestamps, and tags. Includes nextCursor for pagination if more results exist.
Inputs: active, tags, name, projectId, +2 more.
n8n_retry_executionRetry n8n ExecutionB
Retry a failed execution.
Args:
id (string): Execution ID to retry
Returns: The new execution created from the retry.
Inputs: id (required).
n8n_run_workflowRun n8n WorkflowB
Execute a workflow manually with optional input data.
Args:
id (string): Workflow ID to run
data (object, optional): Input data to pass to the workflow's first node
Returns: Execution result with:
executionId: ID of this execution
status: Current status
data: Output data from the workflow
Inputs: id (required), data.
n8n_source_control_disconnectDisconnect Source ControlADestructiveIdempotent
Disconnect from the remote Git repository.
⚠️ WARNING: This will remove the Git integration!
Returns: Confirmation of disconnection.
Inputs: no named parameters.
n8n_source_control_pullPull from Source ControlA
Pull changes from the remote Git repository.
Args:
force (boolean): Force pull even with local changes (default: false)
variables (object, optional): Variables to set after pull
Returns: Pull result with affected files.
Inputs: force, variables.
n8n_source_control_pushPush to Source ControlB
Push changes to the remote Git repository.
Args:
force (boolean): Force push (default: false)
message (string, optional): Commit message
Returns: Push result with affected files.
Inputs: force, message.
n8n_source_control_statusGet Source Control StatusARead-onlyIdempotent
Get the current source control (Git) status.
Returns:
branchName: Current branch
connected: Whether Git is connected
ahead: Commits ahead of remote
behind: Commits behind remote
conflicts: Any merge conflicts
Inputs: no named parameters.
n8n_stop_executionStop n8n ExecutionBIdempotent
Stop a running execution.
Args:
id (string): Execution ID to stop
Returns: The stopped execution details.
Inputs: id (required).
n8n_transfer_credentialTransfer Credential to ProjectBIdempotent
Transfer a credential to a different project.
Args:
credentialId (string): Credential ID to transfer
destinationProjectId (string): Target project ID
Returns: Confirmation of transfer.
Inputs: credentialId (required), destinationProjectId (required).
n8n_transfer_workflowTransfer Workflow to ProjectBIdempotent
Transfer a workflow to a different project.
Args:
workflowId (string): Workflow ID to transfer
destinationProjectId (string): Target project ID
Returns: Confirmation of transfer.
Inputs: workflowId (required), destinationProjectId (required).
n8n_update_credentialUpdate n8n CredentialAIdempotent
Update an existing credential.
Args:
id (string): Credential ID to update
name (string, optional): New credential name
data (object, optional): Updated credential data
Returns: The updated credential (without sensitive data).
Inputs: id (required), name, data.
n8n_update_projectUpdate n8n ProjectBIdempotent
Rename a project.
Args:
id (string): Project ID to update
name (string): New project name
Returns: The updated project.
Inputs: id (required), name (required).
n8n_update_tagUpdate n8n TagBIdempotent
Rename an existing tag.
Args:
id (string): Tag ID to update
name (string): New tag name (max 24 characters)
Returns: The updated tag.
Inputs: id (required), name (required).
n8n_update_variableUpdate n8n VariableBIdempotent
Update an existing variable.
Args:
id (string): Variable ID to update
key (string, optional): New variable key
value (string, optional): New variable value
Returns: The updated variable.
Inputs: id (required), key, value.
n8n_update_workflowUpdate n8n WorkflowAIdempotent
Update an existing workflow. Can update name, nodes, connections, settings, or tags.
⚠️ IMPORTANT: When updating nodes or connections, you must provide the COMPLETE arrays. Partial updates are not supported - the provided values will replace existing ones.
Args:
id (string): Workflow ID to update (required)
name (string, optional): New workflow name
nodes (array, optional): Complete updated nodes array
connections (object, optional): Complete updated connections
settings (object, optional): Updated settings
tags (array, optional): Updated tag IDs
Returns: The updated workflow object.
Inputs: id (required), name, nodes, connections, +3 more.
n8n_update_workflow_tagsUpdate Workflow TagsBIdempotent
Update the tags associated with a workflow.
Args:
id (string): Workflow ID
tags (array): Array of tag objects with 'id' property
Returns: The updated workflow with new tags.
Inputs: id (required), tags (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 52 tools
The tools are well-differentiated by resource type (workflow, credential, project, tag, variable, execution, user) and action (create, get, list, update, delete, activate, deactivate, run, retry, stop, export, import, duplicate, transfer, generate_audit, check_connection, get_active_webhooks, get_node_types, source_control operations). There is minimal overlap, with clear boundaries between similar tools like n8n_delete_execution and n8n_delete_executions, which are distinguished by single vs. bulk operations. The only minor ambiguity is between n8n_update_workflow and n8n_update_workflow_tags, but their descriptions clarify the scope.
All tools follow a consistent snake_case naming pattern with the prefix 'n8n_' followed by a verb (e.g., create, get, list, update, delete) and a noun (e.g., workflow, credential, project). This pattern is applied uniformly across all 52 tools, making them predictable and easy to understand. There are no deviations in style or convention.
With 52 tools, the count is excessive for an MCP server, making it overwhelming and difficult for agents to navigate effectively. While n8n is a complex automation platform, the tool surface could be more streamlined by grouping related operations or reducing redundancy. This high number exceeds typical well-scoped ranges (3-15 tools) and approaches the extreme mismatch threshold.
The tool set provides comprehensive coverage for managing n8n instances, including full CRUD operations for core resources (workflows, credentials, projects, tags, variables, users, executions), lifecycle management (activate/deactivate, run/retry/stop), import/export, auditing, source control, and utility functions. There are no obvious gaps; agents can perform all essential operations without dead ends.
Maintenance
Related MCP Connectors
Free public n8n, AI support and software acceptance templates; scoped private delivery workflows.
Build, check and fix n8n workflows from Claude, Cursor or ChatGPT. Built on 1,100+ real n8n node definitions and curated templates, with a validator that repairs common mistakes (wrong node types, missing settings) and returns JSON ready to import into n8n. Sign in with a free gydmation.com account; nothing to install.
Security scanner for n8n workflows + live MCP Trust-Check. 18 rules, OWASP mapped. Paid x402 API.
26 pay-per-call AI agent tools for marketing, sales, content, research, verification, and integration testing. Agents pay per call via x402 micropayments (USDC on Base), raw JSON in and out. Includes delivery-acceptance receipts (ACCEPT/REJECT/REVIEW), a webhook capture/replay/conformance lab, and n8n workflow validation with bounded JSON-Patch repair.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables orchestration and management of n8n workflows through tools for creating, updating, diagnosing failed executions, auto-fixing workflows, and installing community nodes.-
- AlicenseBqualityCmaintenanceEnables AI assistants to interact with n8n workflow automation instances through the REST API. Supports workflow management, execution control, tag organization, execution history monitoring, and webhook management.19128 npm5MIT
- AlicenseNot gradedqualityFmaintenanceProvides AI assistants with direct access to the n8n automation platform to manage and execute workflows, variables, and credentials. It features 18 integrated tools that allow for seamless automation management via the Model Context Protocol.128 npm3MIT
- AlicenseAqualityDmaintenanceConnects AI assistants to your n8n instance to manage workflows, executions, credentials, and user settings through 31 specialized tools. It enables users to perform n8n operations like workflow creation, activation, and execution history retrieval via natural language.2713 npmMIT