* fix: use lowercase for community node names to match n8n convention Community nodes in n8n use lowercase node class names (e.g., chatwoot not Chatwoot). The extractNodeNameFromPackage method was incorrectly capitalizing node names, causing validation failures. Changes: - Fix extractNodeNameFromPackage to use lowercase instead of capitalizing - Add case-insensitive fallback in getNode for robustness - Update tests to expect lowercase node names - Bump version to 2.32.1 Fixes the case sensitivity bug where MCP stored Chatwoot but n8n expected chatwoot. Conceived by Romuald Członkowski - www.aiadvisors.pl/en 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * chore: rebuild community nodes database with lowercase names Rebuilt database after fixing extractNodeNameFromPackage to use lowercase node names matching n8n convention. Conceived by Romuald Członkowski - www.aiadvisors.pl/en 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Romuald Członkowski <romualdczlonkowski@MacBook-Pro-Romuald.local> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
7.2 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
[2.32.1] - 2026-01-08
Fixed
- Community node case sensitivity bug: Fixed
extractNodeNameFromPackageto use lowercase node names, matching n8n's community node convention (e.g.,chatwootinstead ofChatwoot). This resolves validation failures for community nodes with incorrect casing. - Case-insensitive node lookup: Added fallback in
getNodeto handle case differences between stored and requested node types for better robustness.
[2.32.0] - 2026-01-07
Added
Community Nodes Support (Issues #23, #490)
Added comprehensive support for n8n community nodes, expanding the node database from 537 core nodes to 1,084 total nodes (537 core + 547 community).
New Features:
- 547 community nodes indexed (301 verified + 246 popular npm packages)
sourcefilter forsearch_nodes: Filter byall,core,community, orverified- Community metadata in search results:
isCommunity,isVerified,authorName,npmDownloads - Full schema support for verified community nodes (no additional parsing needed)
Data Sources:
- Verified nodes fetched from n8n Strapi API (
api.n8n.io/api/community-nodes) - Popular npm packages from npm registry (keyword:
n8n-community-node-package)
New CLI Commands:
npm run fetch:community # Full rebuild (verified + top 100 npm)
npm run fetch:community:verified # Verified nodes only (fast)
npm run fetch:community:update # Incremental update (skip existing)
Example Usage:
// Search only community nodes
search_nodes({query: "scraping", source: "community"})
// Search verified community nodes
search_nodes({query: "pdf", source: "verified"})
// Results include community metadata
{
nodeType: "n8n-nodes-brightdata.brightData",
displayName: "BrightData",
isCommunity: true,
isVerified: true,
authorName: "brightdata.com",
npmDownloads: 1234
}
Files Added:
src/community/community-node-service.ts- Business logic for syncing community nodessrc/community/community-node-fetcher.ts- API integration for Strapi and npmsrc/scripts/fetch-community-nodes.ts- CLI script for fetching community nodes
Files Modified:
src/database/schema.sql- Added community columns and indexessrc/database/node-repository.ts- Extended for community node fieldssrc/mcp/tools.ts- Addedsourceparameter tosearch_nodessrc/mcp/server.ts- Added source filtering and community metadata to resultssrc/mcp/tool-docs/discovery/search-nodes.ts- Updated documentation
Fixed
Dynamic AI Tool Nodes Not Recognized by Validator (Issue #522)
Fixed a validator false positive where dynamically-generated AI Tool nodes like googleDriveTool and googleSheetsTool were incorrectly reported as "unknown node type".
Root Cause: n8n creates Tool variants at runtime when ANY node is connected to an AI Agent's tool slot (e.g., googleDrive → googleDriveTool). These dynamic nodes don't exist in npm packages, so the MCP database couldn't discover them during rebuild.
Solution: Added validation-time inference that checks if the base node exists when a *Tool node type is not found. If the base node exists, the Tool variant is treated as valid with an informative warning.
Changes:
workflow-validator.ts: Added inference logic for dynamic Tool variantsnode-similarity-service.ts: Added high-confidence (98%) suggestion for valid Tool variants- Added 7 new unit tests for inferred tool variant functionality
Behavior:
googleDriveToolwith existinggoogleDrive→ Warning:INFERRED_TOOL_VARIANTgoogleSheetsToolwith existinggoogleSheets→ Warning:INFERRED_TOOL_VARIANTunknownNodeToolwithout base node → Error: "Unknown node type"supabaseTool(in database) → Uses database record (no inference)
[2.31.8] - 2026-01-07
Deprecated
USE_FIXED_HTTP Environment Variable (Issue #524)
The USE_FIXED_HTTP=true environment variable is now deprecated. The fixed HTTP implementation does not support SSE (Server-Sent Events) streaming required by clients like OpenAI Codex.
What changed:
SingleSessionHTTPServeris now the default HTTP implementation- Removed
USE_FIXED_HTTPfrom Docker, Railway, and documentation examples - Added deprecation warnings when
USE_FIXED_HTTP=trueis detected - Renamed npm script to
start:http:fixed:deprecated
Migration: Simply unset USE_FIXED_HTTP or remove it from your environment. The SingleSessionHTTPServer supports both JSON-RPC and SSE streaming automatically.
Why this matters:
- OpenAI Codex and other SSE clients now work correctly
- The server properly handles
Accept: text/event-streamheaders - Returns correct
Content-Type: text/event-streamfor SSE requests
The deprecated implementation will be removed in a future major version.
[2.31.7] - 2026-01-06
Changed
- Updated n8n from 2.1.5 to 2.2.3
- Updated n8n-core from 2.1.4 to 2.2.2
- Updated n8n-workflow from 2.1.1 to 2.2.2
- Updated @n8n/n8n-nodes-langchain from 2.1.4 to 2.2.2
- Rebuilt node database with 540 nodes (434 from n8n-nodes-base, 106 from @n8n/n8n-nodes-langchain)
[2.31.6] - 2026-01-03
Changed
Dependencies Update
- Updated n8n from 2.1.4 to 2.1.5
- Updated n8n-core from 2.1.3 to 2.1.4
- Updated @n8n/n8n-nodes-langchain from 2.1.3 to 2.1.4
- Rebuilt node database with 540 nodes (434 from n8n-nodes-base, 106 from @n8n/n8n-nodes-langchain)
[2.31.5] - 2026-01-02
Added
MCP Tool Annotations (PR #512)
Added MCP tool annotations to all 20 tools following the MCP specification. These annotations help AI assistants understand tool behavior and capabilities.
Annotations added:
title: Human-readable name for each toolreadOnlyHint: True for tools that don't modify state (11 tools)destructiveHint: True for delete operations (3 tools)idempotentHint: True for operations that produce same result when called repeatedly (14 tools)openWorldHint: True for tools accessing external n8n API (13 tools)
Documentation tools (7): All marked readOnlyHint=true, idempotentHint=true
tools_documentation,search_nodes,get_node,validate_node,get_template,search_templates,validate_workflow
Management tools (13): All marked openWorldHint=true
- Read-only:
n8n_get_workflow,n8n_list_workflows,n8n_validate_workflow,n8n_health_check - Idempotent updates:
n8n_update_full_workflow,n8n_update_partial_workflow,n8n_autofix_workflow - Destructive:
n8n_delete_workflow,n8n_executions(delete action),n8n_workflow_versions(delete/truncate)
[2.31.4] - 2026-01-02
Fixed
Workflow Data Mangled During Serialization: snake_case Conversion (Issue #517)
Fixed a critical bug where workflow mutation data was corrupted during serialization to Supabase, making 98.9% of collected workflow data invalid for n8n API operations.