feat(integrations): add n8n community node for Mem0

A programmatic n8n community node wrapping the hosted Mem0 v3 REST API:
add, search, get, get-many, update, delete, plus usableAsTool so the n8n
AI Agent can call it.

- Zero runtime dependencies (calls REST directly), TypeScript, ESLint clean —
  meets n8n verified-node requirements
- Add supports custom_instructions, custom_categories, includes, excludes,
  a client-side entity-id guard, and async event polling (itemIndex on errors)
- Anonymous opt-out telemetry (MEM0_TELEMETRY=false)
- Docs page + docs.json/llms.txt entry, ci-gate + release wiring, AGENTS.md rows
- Verified: tsc + ESLint + live E2E (add → search → get → delete) vs api.mem0.ai

Split out of #6057 per review (separate PRs per integration).
This commit is contained in:
Himanshu-Sangshetti
2026-07-23 03:02:18 +05:30
parent ca2abca2b8
commit 41a9701d7f
23 changed files with 4004 additions and 0 deletions
+31
View File
@@ -0,0 +1,31 @@
module.exports = {
root: true,
env: { browser: true, es6: true, node: true },
parser: '@typescript-eslint/parser',
parserOptions: { sourceType: 'module', extraFileExtensions: ['.json'] },
ignorePatterns: ['.eslintrc.js', '**/*.js', '**/node_modules/**', '**/dist/**'],
overrides: [
{
files: ['package.json'],
plugins: ['eslint-plugin-n8n-nodes-base'],
extends: ['plugin:n8n-nodes-base/community'],
rules: { 'n8n-nodes-base/community-package-json-name-still-default': 'off' },
},
{
files: ['./credentials/**/*.ts'],
plugins: ['eslint-plugin-n8n-nodes-base'],
extends: ['plugin:n8n-nodes-base/credentials'],
rules: {
// This rule only applies to nodes in n8n's main repository (where
// documentationUrl is an internal docs slug). Community nodes use a
// full external URL, so it is disabled here.
'n8n-nodes-base/cred-class-field-documentation-url-miscased': 'off',
},
},
{
files: ['./nodes/**/*.ts'],
plugins: ['eslint-plugin-n8n-nodes-base'],
extends: ['plugin:n8n-nodes-base/nodes'],
},
],
};