Files
n8n-mcp/tests/test-results/test-summary.json
czlonkowski 3d7fdeba02 feat: Complete overhaul to enhanced documentation-only MCP server
- Removed all workflow execution capabilities per user requirements
- Implemented enhanced documentation extraction with operations and API mappings
- Fixed credential code extraction for all nodes
- Fixed package info extraction (name and version)
- Enhanced operations parser to handle n8n markdown format
- Fixed documentation search to prioritize app nodes over trigger nodes
- Comprehensive test coverage for Slack node extraction
- All node information now includes:
  - Complete operations list (42 for Slack)
  - API method mappings with documentation URLs
  - Source code and credential definitions
  - Package metadata
  - Related resources and templates

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-08 11:07:51 +00:00

760 lines
22 KiB
JSON

{
"totalTests": 6,
"passed": 6,
"failed": 0,
"startTime": "2025-06-08T10:57:55.233Z",
"endTime": "2025-06-08T10:57:59.249Z",
"tests": [
{
"name": "Basic Node Extraction",
"status": "passed",
"startTime": "2025-06-08T10:57:55.236Z",
"endTime": "2025-06-08T10:57:55.342Z",
"error": null,
"details": {
"results": [
{
"nodeType": "@n8n/n8n-nodes-langchain.Agent",
"extracted": false,
"error": "Node source code not found for: @n8n/n8n-nodes-langchain.Agent"
},
{
"nodeType": "n8n-nodes-base.Function",
"extracted": true,
"codeLength": 7449,
"hasCredentials": false,
"hasPackageInfo": true,
"location": "node_modules/n8n-nodes-base/dist/nodes/Function/Function.node.js"
},
{
"nodeType": "n8n-nodes-base.Webhook",
"extracted": true,
"codeLength": 10667,
"hasCredentials": false,
"hasPackageInfo": true,
"location": "node_modules/n8n-nodes-base/dist/nodes/Webhook/Webhook.node.js"
}
],
"successCount": 2,
"totalTested": 3
}
},
{
"name": "List Available Nodes",
"status": "passed",
"startTime": "2025-06-08T10:57:55.342Z",
"endTime": "2025-06-08T10:57:55.689Z",
"error": null,
"details": {
"totalNodes": 439,
"packages": [
"unknown"
],
"nodesByPackage": {
"unknown": [
"ActionNetwork",
"ActiveCampaign",
"ActiveCampaignTrigger",
"AcuitySchedulingTrigger",
"Adalo",
"Affinity",
"AffinityTrigger",
"AgileCrm",
"Airtable",
"AirtableTrigger",
"AirtableV1",
"Amqp",
"AmqpTrigger",
"ApiTemplateIo",
"Asana",
"AsanaTrigger",
"Automizy",
"Autopilot",
"AutopilotTrigger",
"AwsLambda",
"AwsSns",
"AwsSnsTrigger",
"AwsCertificateManager",
"AwsComprehend",
"AwsDynamoDB",
"AwsElb",
"AwsRekognition",
"AwsS3",
"AwsS3V1",
"AwsS3V2",
"AwsSes",
"AwsSqs",
"AwsTextract",
"AwsTranscribe",
"Bannerbear",
"Baserow",
"Beeminder",
"BitbucketTrigger",
"Bitly",
"Bitwarden",
"Box",
"BoxTrigger",
"Brandfetch",
"Brevo",
"BrevoTrigger",
"Bubble",
"CalTrigger",
"CalendlyTrigger",
"Chargebee",
"ChargebeeTrigger",
"CircleCi",
"CiscoWebex",
"CiscoWebexTrigger",
"CitrixAdc",
"Clearbit",
"ClickUp",
"ClickUpTrigger",
"Clockify",
"ClockifyTrigger",
"Cloudflare",
"Cockpit",
"Coda",
"Code",
"CoinGecko",
"CompareDatasets",
"Compression",
"Contentful",
"ConvertKit",
"ConvertKitTrigger",
"Copper",
"CopperTrigger",
"Cortex",
"CrateDb",
"Cron",
"CrowdDev",
"CrowdDevTrigger",
"Crypto",
"CustomerIo",
"CustomerIoTrigger",
"DateTime",
"DateTimeV1",
"DateTimeV2",
"DebugHelper",
"DeepL",
"Demio",
"Dhl",
"Discord",
"Discourse",
"Disqus",
"Drift",
"Dropbox",
"Dropcontact",
"E2eTest",
"ERPNext",
"EditImage",
"Egoi",
"ElasticSecurity",
"Elasticsearch",
"EmailReadImap",
"EmailReadImapV1",
"EmailReadImapV2",
"EmailSend",
"EmailSendV1",
"EmailSendV2",
"Emelia",
"EmeliaTrigger",
"ErrorTrigger",
"EventbriteTrigger",
"ExecuteCommand",
"ExecuteWorkflow",
"ExecuteWorkflowTrigger",
"ExecutionData",
"FacebookGraphApi",
"FacebookTrigger",
"FacebookLeadAdsTrigger",
"FigmaTrigger",
"FileMaker",
"Filter",
"Flow",
"FlowTrigger",
"FormTrigger",
"FormIoTrigger",
"FormstackTrigger",
"Freshdesk",
"Freshservice",
"FreshworksCrm",
"Ftp",
"Function",
"FunctionItem",
"GetResponse",
"GetResponseTrigger",
"Ghost",
"Git",
"Github",
"GithubTrigger",
"Gitlab",
"GitlabTrigger",
"GoToWebinar",
"GoogleAds",
"GoogleAnalytics",
"GoogleAnalyticsV1",
"GoogleBigQuery",
"GoogleBigQueryV1",
"GoogleBooks",
"GoogleCalendar",
"GoogleCalendarTrigger",
"GoogleChat",
"GoogleCloudNaturalLanguage",
"GoogleCloudStorage",
"GoogleContacts",
"GoogleDocs",
"GoogleDrive",
"GoogleDriveTrigger",
"GoogleDriveV1",
"GoogleFirebaseCloudFirestore",
"GoogleFirebaseRealtimeDatabase",
"GSuiteAdmin",
"Gmail",
"GmailTrigger",
"GmailV1",
"GmailV2",
"GooglePerspective",
"GoogleSheets",
"GoogleSheetsTrigger",
"GoogleSlides",
"GoogleTasks",
"GoogleTranslate",
"YouTube",
"Gotify",
"Grafana",
"GraphQL",
"Grist",
"GumroadTrigger",
"HackerNews",
"HaloPSA",
"Harvest",
"HelpScout",
"HelpScoutTrigger",
"HighLevel",
"HomeAssistant",
"Html",
"HtmlExtract",
"HttpRequest",
"HttpRequestV1",
"HttpRequestV2",
"HttpRequestV3",
"Hubspot",
"HubspotTrigger",
"HubspotV1",
"HubspotV2",
"HumanticAi",
"Hunter",
"ICalendar",
"If",
"Intercom",
"Interval",
"InvoiceNinja",
"InvoiceNinjaTrigger",
"ItemLists",
"ItemListsV1",
"ItemListsV2",
"Iterable",
"Jenkins",
"Jira",
"JiraTrigger",
"JotFormTrigger",
"Kafka",
"KafkaTrigger",
"Keap",
"KeapTrigger",
"Kitemaker",
"KoBoToolbox",
"KoBoToolboxTrigger",
"Ldap",
"Lemlist",
"LemlistTrigger",
"Line",
"Linear",
"LinearTrigger",
"LingvaNex",
"LinkedIn",
"LocalFileTrigger",
"LoneScale",
"LoneScaleTrigger",
"Mqtt",
"MqttTrigger",
"Magento2",
"Mailcheck",
"Mailchimp",
"MailchimpTrigger",
"MailerLite",
"MailerLiteTrigger",
"Mailgun",
"Mailjet",
"MailjetTrigger",
"Mandrill",
"ManualTrigger",
"Markdown",
"Marketstack",
"Matrix",
"Mattermost",
"Mautic",
"MauticTrigger",
"Medium",
"Merge",
"MergeV1",
"MergeV2",
"MessageBird",
"Metabase",
"MicrosoftDynamicsCrm",
"MicrosoftExcel",
"MicrosoftExcelV1",
"MicrosoftGraphSecurity",
"MicrosoftOneDrive",
"MicrosoftOutlook",
"MicrosoftOutlookV1",
"MicrosoftSql",
"MicrosoftTeams",
"MicrosoftToDo",
"Mindee",
"Misp",
"Mocean",
"MondayCom",
"MongoDb",
"MonicaCrm",
"MoveBinaryData",
"Msg91",
"MySql",
"MySqlV1",
"N8n",
"N8nTrainingCustomerDatastore",
"N8nTrainingCustomerMessenger",
"N8nTrigger",
"Nasa",
"Netlify",
"NetlifyTrigger",
"NextCloud",
"NoOp",
"NocoDB",
"Notion",
"NotionTrigger",
"Npm",
"Odoo",
"OneSimpleApi",
"Onfleet",
"OnfleetTrigger",
"OpenAi",
"OpenThesaurus",
"OpenWeatherMap",
"Orbit",
"Oura",
"Paddle",
"PagerDuty",
"PayPal",
"PayPalTrigger",
"Peekalink",
"Phantombuster",
"PhilipsHue",
"Pipedrive",
"PipedriveTrigger",
"Plivo",
"PostBin",
"PostHog",
"Postgres",
"PostgresTrigger",
"PostgresV1",
"PostmarkTrigger",
"ProfitWell",
"Pushbullet",
"Pushcut",
"PushcutTrigger",
"Pushover",
"QuestDb",
"QuickBase",
"QuickBooks",
"QuickChart",
"RabbitMQ",
"RabbitMQTrigger",
"Raindrop",
"ReadBinaryFile",
"ReadBinaryFiles",
"ReadPDF",
"Reddit",
"Redis",
"RedisTrigger",
"RenameKeys",
"RespondToWebhook",
"Rocketchat",
"RssFeedRead",
"RssFeedReadTrigger",
"Rundeck",
"S3",
"Salesforce",
"Salesmate",
"ScheduleTrigger",
"SeaTable",
"SeaTableTrigger",
"SecurityScorecard",
"Segment",
"SendGrid",
"Sendy",
"SentryIo",
"ServiceNow",
"Set",
"SetV1",
"SetV2",
"Shopify",
"ShopifyTrigger",
"Signl4",
"Slack",
"SlackV1",
"SlackV2",
"Sms77",
"Snowflake",
"SplitInBatches",
"SplitInBatchesV1",
"SplitInBatchesV2",
"SplitInBatchesV3",
"Splunk",
"Spontit",
"Spotify",
"SpreadsheetFile",
"SseTrigger",
"Ssh",
"Stackby",
"Start",
"StickyNote",
"StopAndError",
"Storyblok",
"Strapi",
"Strava",
"StravaTrigger",
"Stripe",
"StripeTrigger",
"Supabase",
"SurveyMonkeyTrigger",
"Switch",
"SwitchV1",
"SwitchV2",
"SyncroMsp",
"Taiga",
"TaigaTrigger",
"Tapfiliate",
"Telegram",
"TelegramTrigger",
"TheHive",
"TheHiveTrigger",
"TheHiveProjectTrigger",
"TimescaleDb",
"Todoist",
"TodoistV1",
"TodoistV2",
"TogglTrigger",
"Totp",
"TravisCi",
"Trello",
"TrelloTrigger",
"Twake",
"Twilio",
"Twist",
"Twitter",
"TwitterV1",
"TwitterV2",
"TypeformTrigger",
"UProc",
"UnleashedSoftware",
"Uplead",
"UptimeRobot",
"UrlScanIo",
"VenafiTlsProtectDatacenter",
"VenafiTlsProtectDatacenterTrigger",
"VenafiTlsProtectCloud",
"VenafiTlsProtectCloudTrigger",
"Vero",
"Vonage",
"Wait",
"Webflow",
"WebflowTrigger",
"Webhook",
"Wekan",
"WhatsApp",
"Wise",
"WiseTrigger",
"WooCommerce",
"WooCommerceTrigger",
"Wordpress",
"WorkableTrigger",
"WorkflowTrigger",
"WriteBinaryFile",
"WufooTrigger",
"Xero",
"Xml",
"Yourls",
"Zammad",
"Zendesk",
"ZendeskTrigger",
"ZohoCrm",
"Zoom",
"Zulip"
]
},
"sampleNodes": [
{
"name": "ActionNetwork",
"displayName": "Action Network",
"description": "Consume the Action Network API",
"location": "node_modules/n8n-nodes-base/dist/nodes/ActionNetwork/ActionNetwork.node.js"
},
{
"name": "ActiveCampaign",
"displayName": "ActiveCampaign",
"description": "Create and edit data in ActiveCampaign",
"location": "node_modules/n8n-nodes-base/dist/nodes/ActiveCampaign/ActiveCampaign.node.js"
},
{
"name": "ActiveCampaignTrigger",
"displayName": "ActiveCampaign Trigger",
"description": "Handle ActiveCampaign events via webhooks",
"location": "node_modules/n8n-nodes-base/dist/nodes/ActiveCampaign/ActiveCampaignTrigger.node.js"
},
{
"name": "AcuitySchedulingTrigger",
"displayName": "Acuity Scheduling Trigger",
"description": "Handle Acuity Scheduling events via webhooks",
"location": "node_modules/n8n-nodes-base/dist/nodes/AcuityScheduling/AcuitySchedulingTrigger.node.js"
},
{
"name": "Adalo",
"displayName": "Adalo",
"description": "Consume Adalo API",
"location": "node_modules/n8n-nodes-base/dist/nodes/Adalo/Adalo.node.js"
}
]
}
},
{
"name": "Bulk Node Extraction",
"status": "passed",
"startTime": "2025-06-08T10:57:55.689Z",
"endTime": "2025-06-08T10:57:58.574Z",
"error": null,
"details": {
"totalAttempted": 10,
"successCount": 6,
"failureCount": 4,
"timeElapsed": 2581,
"results": [
{
"success": true,
"data": {
"nodeType": "ActionNetwork",
"name": "ActionNetwork",
"codeLength": 15810,
"codeHash": "c0a880f5754b6b532ff787bdb253dc49ffd7f470f28aeddda5be0c73f9f9935f",
"hasCredentials": true,
"hasPackageInfo": true,
"location": "node_modules/n8n-nodes-base/dist/nodes/ActionNetwork/ActionNetwork.node.js",
"extractedAt": "2025-06-08T10:57:56.009Z"
}
},
{
"success": true,
"data": {
"nodeType": "ActiveCampaign",
"name": "ActiveCampaign",
"codeLength": 38399,
"codeHash": "5ea90671718d20eecb6cddae2e21c91470fdb778e8be97106ee2539303422ad2",
"hasCredentials": true,
"hasPackageInfo": true,
"location": "node_modules/n8n-nodes-base/dist/nodes/ActiveCampaign/ActiveCampaign.node.js",
"extractedAt": "2025-06-08T10:57:56.032Z"
}
},
{
"success": false,
"nodeType": "ActiveCampaignTrigger",
"error": "Node source code not found for: ActiveCampaignTrigger"
},
{
"success": false,
"nodeType": "AcuitySchedulingTrigger",
"error": "Node source code not found for: AcuitySchedulingTrigger"
},
{
"success": true,
"data": {
"nodeType": "Adalo",
"name": "Adalo",
"codeLength": 8234,
"codeHash": "0fbcb0b60141307fdc3394154af1b2c3133fa6181aac336249c6c211fd24846f",
"hasCredentials": true,
"hasPackageInfo": true,
"location": "node_modules/n8n-nodes-base/dist/nodes/Adalo/Adalo.node.js",
"extractedAt": "2025-06-08T10:57:57.330Z"
}
},
{
"success": true,
"data": {
"nodeType": "Affinity",
"name": "Affinity",
"codeLength": 16217,
"codeHash": "e605ea187767403dfa55cd374690f7df563a0baa7ca6991d86d522dc101a2846",
"hasCredentials": true,
"hasPackageInfo": true,
"location": "node_modules/n8n-nodes-base/dist/nodes/Affinity/Affinity.node.js",
"extractedAt": "2025-06-08T10:57:57.343Z"
}
},
{
"success": false,
"nodeType": "AffinityTrigger",
"error": "Node source code not found for: AffinityTrigger"
},
{
"success": true,
"data": {
"nodeType": "AgileCrm",
"name": "AgileCrm",
"codeLength": 28115,
"codeHash": "ce71c3b5dec23a48d24c5775e9bb79006ce395bed62b306c56340b5c772379c2",
"hasCredentials": true,
"hasPackageInfo": true,
"location": "node_modules/n8n-nodes-base/dist/nodes/AgileCrm/AgileCrm.node.js",
"extractedAt": "2025-06-08T10:57:57.925Z"
}
},
{
"success": true,
"data": {
"nodeType": "Airtable",
"name": "Airtable",
"codeLength": 936,
"codeHash": "2d67e72931697178946f5127b43e954649c4c5e7ad9e29764796404ae96e7db5",
"hasCredentials": true,
"hasPackageInfo": true,
"location": "node_modules/n8n-nodes-base/dist/nodes/Airtable/Airtable.node.js",
"extractedAt": "2025-06-08T10:57:57.941Z"
}
},
{
"success": false,
"nodeType": "AirtableTrigger",
"error": "Node source code not found for: AirtableTrigger"
}
]
}
},
{
"name": "Database Schema Validation",
"status": "passed",
"startTime": "2025-06-08T10:57:58.574Z",
"endTime": "2025-06-08T10:57:58.575Z",
"error": null,
"details": {
"schemaValid": true,
"tablesCount": 4,
"estimatedStoragePerNode": 16834
}
},
{
"name": "Error Handling",
"status": "passed",
"startTime": "2025-06-08T10:57:58.575Z",
"endTime": "2025-06-08T10:57:59.244Z",
"error": null,
"details": {
"totalTests": 3,
"passed": 2,
"results": [
{
"name": "Non-existent node",
"nodeType": "non-existent-package.FakeNode",
"expectedError": "not found",
"passed": true,
"actualError": "Node source code not found for: non-existent-package.FakeNode"
},
{
"name": "Invalid node type format",
"nodeType": "",
"expectedError": "invalid",
"passed": false,
"actualError": "Node source code not found for: "
},
{
"name": "Malformed package name",
"nodeType": "@invalid@package.Node",
"expectedError": "not found",
"passed": true,
"actualError": "Node source code not found for: @invalid@package.Node"
}
]
}
},
{
"name": "MCP Server Integration",
"status": "passed",
"startTime": "2025-06-08T10:57:59.244Z",
"endTime": "2025-06-08T10:57:59.249Z",
"error": null,
"details": {
"serverCreated": true,
"config": {
"port": 3000,
"host": "0.0.0.0",
"authToken": "test-token"
}
}
}
],
"extractedNodes": 6,
"databaseSchema": {
"tables": {
"nodes": {
"columns": {
"id": "UUID PRIMARY KEY",
"node_type": "VARCHAR(255) UNIQUE NOT NULL",
"name": "VARCHAR(255) NOT NULL",
"package_name": "VARCHAR(255)",
"display_name": "VARCHAR(255)",
"description": "TEXT",
"version": "VARCHAR(50)",
"code_hash": "VARCHAR(64) NOT NULL",
"code_length": "INTEGER NOT NULL",
"source_location": "TEXT",
"extracted_at": "TIMESTAMP NOT NULL",
"updated_at": "TIMESTAMP"
},
"indexes": [
"node_type",
"package_name",
"code_hash"
]
},
"node_source_code": {
"columns": {
"id": "UUID PRIMARY KEY",
"node_id": "UUID REFERENCES nodes(id)",
"source_code": "TEXT NOT NULL",
"compiled_code": "TEXT",
"source_map": "TEXT"
}
},
"node_credentials": {
"columns": {
"id": "UUID PRIMARY KEY",
"node_id": "UUID REFERENCES nodes(id)",
"credential_type": "VARCHAR(255) NOT NULL",
"credential_code": "TEXT NOT NULL",
"required_fields": "JSONB"
}
},
"node_metadata": {
"columns": {
"id": "UUID PRIMARY KEY",
"node_id": "UUID REFERENCES nodes(id)",
"package_info": "JSONB",
"dependencies": "JSONB",
"icon": "TEXT",
"categories": "TEXT[]",
"documentation_url": "TEXT"
}
}
}
}
}