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

> Explore core community and verified node sources in n8n-mcp to understand their differences. Learn how to identify and utilize each node type for your workflows.

- Repository: [Romuald Członkowski/n8n-mcp](https://github.com/czlonkowski/n8n-mcp)
- Tags: deep-dive
- Published: 2026-03-24

---

**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`](https://github.com/czlonkowski/n8n-mcp/blob/main/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`](https://github.com/czlonkowski/n8n-mcp/blob/main/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:

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

```

According to [`tests/unit/mcp/search-nodes-source-filter.test.ts`](https://github.com/czlonkowski/n8n-mcp/blob/main/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`](https://github.com/czlonkowski/n8n-mcp/blob/main/src/mcp/tools.ts).

### Retrieving Core Nodes

To search only official built-in nodes:

```typescript
import { mcpClient } from 'n8n-mcp';

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

```

### Querying Community Nodes

To retrieve unverified third-party packages:

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

```

### Filtering for Verified Nodes

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

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

```

### Raw SQL Filter Usage

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

```typescript
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`](https://github.com/czlonkowski/n8n-mcp/blob/main/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`](https://github.com/czlonkowski/n8n-mcp/blob/main/src/database/node-repository.ts). The `is_community` and `is_verified` columns determine node source classification, while [`src/mcp/server.ts`](https://github.com/czlonkowski/n8n-mcp/blob/main/src/mcp/server.ts) contains the logic that translates user-facing source parameters into these underlying database predicates.