Understanding Core, Community, and Verified Node Sources in n8n-mcp

Core nodes are built-in n8n packages marked with is_community = 0, community nodes are third-party npm packages marked with is_community = 1, and verified nodes are a trusted subset of community nodes that carry both is_community = 1 and is_verified = 1 flags.

The n8n-mcp repository provides a Model Context Protocol (MCP) server that enables semantic search across n8n workflow nodes. Understanding the differences between core, community, and verified node sources in n8n-mcp helps developers filter search results effectively and select appropriate integrations for their automation workflows.

Database Schema and Source Classification

The MCP server categorizes nodes using two boolean flags in the database schema: is_community and is_verified. These flags distinguish between officially maintained nodes and third-party contributions.

Core nodes represent the built-in functionality that ships with the official n8n package. In the database, these records have is_community = 0, indicating they are maintained by the core n8n team and included in the base installation.

Community nodes are published as separate npm packages by external developers. These records carry is_community = 1, signaling that the code originates outside the official n8n repository. Community nodes extend n8n's capabilities but undergo less stringent review than core packages.

Verified nodes constitute a curated subset of community nodes that have passed additional scrutiny. These records maintain is_community = 1 while also setting is_verified = 1, indicating the n8n team has reviewed and approved the package for reliability and security.

SQL Filter Implementation

The server translates source selection parameters into SQL WHERE clauses through the generateSourceFilter function in src/mcp/server.ts. Each source type maps to a specific database filter condition:

  • Core filter: AND n.is_community = 0 (line 1765)
  • Community filter: AND n.is_community = 1 (line 1768)
  • Verified filter: AND n.is_community = 1 AND n.is_verified = 1 (line 1771)

These filters append to the base search query in src/database/node-repository.ts, allowing the MCP server to return only nodes matching the requested source criteria.

TypeScript Type Definitions and Testing

The SourceFilter union type in the test suite explicitly defines the valid source options:

type SourceFilter = 'all' | 'core' | 'community' | 'verified';

According to tests/unit/mcp/search-nodes-source-filter.test.ts (line 123), this type ensures type safety when specifying node sources. The test file validates the SQL generation logic with specific assertions:

  • generateSourceFilter('core') returns 'AND is_community = 0' (line 143)
  • generateSourceFilter('community') returns 'AND is_community = 1' (line 158)
  • generateSourceFilter('verified') returns 'AND is_community = 1 AND is_verified = 1' (line 173)

Searching Nodes by Source

Developers can filter MCP search results using the source parameter in the searchNodes tool exposed via src/mcp/tools.ts.

Retrieving Core Nodes

To search only official built-in nodes:

import { mcpClient } from 'n8n-mcp';

const coreNodes = await mcpClient.searchNodes({ source: 'core' });
console.log(coreNodes);

Querying Community Nodes

To retrieve unverified third-party packages:

const communityNodes = await mcpClient.searchNodes({ source: 'community' });

Filtering for Verified Nodes

To limit results to community packages that have passed n8n team review:

const verifiedNodes = await mcpClient.searchNodes({ source: 'verified' });

Raw SQL Filter Usage

For internal database queries, you can apply the filter directly:

const sql = `
  SELECT * FROM nodes
  WHERE ${generateSourceFilter('verified')}
  AND name LIKE '%slack%'
`;

Summary

  • Core nodes carry is_community = 0 and ship with the official n8n package as built-in integrations.
  • Community nodes carry is_community = 1 and represent third-party npm packages extending n8n functionality.
  • Verified nodes carry both is_community = 1 and is_verified = 1, indicating community packages reviewed and approved by the n8n team.
  • The MCP server implements these distinctions in src/mcp/server.ts through SQL filters appended to search queries.
  • Developers specify the desired source using the source parameter in searchNodes() calls.

Frequently Asked Questions

How do I search only for official n8n nodes using n8n-mcp?

Pass source: 'core' to the searchNodes method. This applies the filter AND is_community = 0, returning only nodes that ship with the official n8n package and excluding all third-party contributions.

What distinguishes a verified community node from a regular community node?

Verified nodes have passed an additional review process conducted by the n8n team. While both community and verified nodes carry is_community = 1, verified nodes uniquely carry is_verified = 1 in the database, indicating they meet higher standards for code quality, security, and maintenance.

Can I search across all node sources simultaneously?

Yes. The SourceFilter type includes an 'all' option that omits source-specific SQL filters entirely, allowing the search to return core, community, and verified nodes in a single result set without applying is_community or is_verified restrictions.

Where does n8n-mcp store the node source classification?

The classification flags reside in the nodes database table accessed through src/database/node-repository.ts. The is_community and is_verified columns determine node source classification, while src/mcp/server.ts contains the logic that translates user-facing source parameters into these underlying database predicates.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →