Jake Shore f3c4cd817b Add all MCP servers + factory infra to MCPEngine — 2026-02-06
=== NEW SERVERS ADDED (7) ===
- servers/closebot — 119 tools, 14 modules, 4,656 lines TS (Stage 7)
- servers/google-console — Google Search Console MCP (Stage 7)
- servers/meta-ads — Meta/Facebook Ads MCP (Stage 8)
- servers/twilio — Twilio communications MCP (Stage 8)
- servers/competitor-research — Competitive intel MCP (Stage 6)
- servers/n8n-apps — n8n workflow MCP apps (Stage 6)
- servers/reonomy — Commercial real estate MCP (Stage 1)

=== FACTORY INFRASTRUCTURE ADDED ===
- infra/factory-tools — mcp-jest, mcp-validator, mcp-add, MCP Inspector
  - 60 test configs, 702 auto-generated test cases
  - All 30 servers score 100/100 protocol compliance
- infra/command-center — Pipeline state, operator playbook, dashboard config
- infra/factory-reviews — Automated eval reports

=== DOCS ADDED ===
- docs/MCP-FACTORY.md — Factory overview
- docs/reports/ — 5 pipeline evaluation reports
- docs/research/ — Browser MCP research

=== RULES ESTABLISHED ===
- CONTRIBUTING.md — All MCP work MUST go in this repo
- README.md — Full inventory of 37 servers + infra docs
- .gitignore — Updated for Python venvs

TOTAL: 37 MCP servers + full factory pipeline in one repo.
This is now the single source of truth for all MCP work.
2026-02-06 06:32:29 -05:00

9.0 KiB

1IDCategorySubcategoryRequirementTypeReference
21.1.1.1Base ProtocolJSON-RPCMessages MUST follow JSON-RPC 2.0 specificationMUST1.1.1
31.1.1.2Base ProtocolJSON-RPCRequests MUST include a string or integer ID (not null)MUST1.1.1
41.1.1.3Base ProtocolJSON-RPCRequest IDs MUST be unique within a sessionMUST1.1.1
51.1.1.4Base ProtocolJSON-RPCRequests MUST include a method stringMUST1.1.1
61.1.2.1Base ProtocolJSON-RPCResponses MUST include the same ID as the corresponding requestMUST1.1.2
71.1.2.2Base ProtocolJSON-RPCResponses MUST include either a result or an error (not both)MUST1.1.2
81.1.2.3Base ProtocolJSON-RPCError responses MUST include an error code and messageMUST1.1.2
91.1.3.1Base ProtocolJSON-RPCNotifications MUST NOT include an IDMUST1.1.3
101.1.3.2Base ProtocolJSON-RPCNotifications MUST include a method stringMUST1.1.3
111.2.1.1Base ProtocolTransportSTDIO: Client MUST launch server as subprocessMUST1.2.1
121.2.1.2Base ProtocolTransportSTDIO: Server MUST read from stdin and write to stdoutMUST1.2.1
131.2.1.3Base ProtocolTransportSTDIO: Messages MUST be delimited by newlinesMUST1.2.1
141.2.1.4Base ProtocolTransportSTDIO: Messages MUST NOT contain embedded newlinesMUST1.2.1
151.2.1.5Base ProtocolTransportSTDIO: Server MUST NOT write anything to stdout that is not a valid MCP messageMUST1.2.1
161.2.1.6Base ProtocolTransportSTDIO: Client MUST NOT write anything to stdin that is not a valid MCP messageMUST1.2.1
171.2.2.1Base ProtocolTransportHTTP with SSE: Server MUST provide two endpoints for SSE and HTTP POSTMUST1.2.2
181.2.2.2Base ProtocolTransportHTTP with SSE: Server MUST send endpoint event with URI for client messagesMUST1.2.2
191.2.2.3Base ProtocolTransportHTTP with SSE: Client messages MUST be sent as HTTP POST requestsMUST1.2.2
201.3.1.1Base ProtocolLifecycleClient MUST send initialize request as first interactionMUST1.3.1
211.3.1.2Base ProtocolLifecycleInitialize request MUST include protocol version supportedMUST1.3.1
221.3.1.3Base ProtocolLifecycleInitialize request MUST include client capabilitiesMUST1.3.1
231.3.1.4Base ProtocolLifecycleInitialize request MUST include client implementation informationMUST1.3.1
241.3.1.5Base ProtocolLifecycleServer MUST respond with protocol versionMUST1.3.1
251.3.1.6Base ProtocolLifecycleServer MUST respond with server capabilitiesMUST1.3.1
261.3.1.7Base ProtocolLifecycleServer MUST respond with server implementation informationMUST1.3.1
271.3.1.8Base ProtocolLifecycleAfter successful initialization client MUST send initialized notificationMUST1.3.1
281.3.1.9Base ProtocolLifecycleClient SHOULD NOT send requests other than pings before server responds to initializeSHOULD1.3.1
291.3.1.10Base ProtocolLifecycleServer SHOULD NOT send requests other than pings and logging before initialized notificationSHOULD1.3.1
301.3.2.1Base ProtocolLifecycleClient MUST send a protocol version it supportsMUST1.3.2
311.3.2.2Base ProtocolLifecycleIf server supports requested version it MUST respond with same versionMUST1.3.2
321.3.2.3Base ProtocolLifecycleOtherwise server MUST respond with another supported versionMUST1.3.2
331.3.2.4Base ProtocolLifecycleIf client doesn't support server's version it SHOULD disconnectSHOULD1.3.2
341.3.3.1Base ProtocolLifecycleClient and server MUST declare capabilities during initializationMUST1.3.3
351.3.3.2Base ProtocolLifecycleBoth parties SHOULD respect negotiated capabilitiesSHOULD1.3.3
361.3.4.1Base ProtocolLifecycleFor stdio: client SHOULD close input stream to server for shutdownSHOULD1.3.4
371.3.4.2Base ProtocolLifecycleFor HTTP: shutdown indicated by closing HTTP connectionsINFO1.3.4
382.1.1.1Server FeaturesResourcesServers supporting resources MUST declare resources capabilityMUST2.1.1
392.1.1.2Server FeaturesResourcesResources capability MAY include subscribe featureMAY2.1.1
402.1.1.3Server FeaturesResourcesResources capability MAY include listChanged featureMAY2.1.1
412.1.2.1Server FeaturesResourcesServer response to resources/list MUST include resources arrayMUST2.1.2
422.1.2.2Server FeaturesResourcesEach resource MUST include uri and nameMUST2.1.2
432.1.3.1Server FeaturesResourcesServer response to resources/read MUST include contents arrayMUST2.1.3
442.1.3.2Server FeaturesResourcesEach content item MUST include uri and either text or blobMUST2.1.3
452.1.3.3Server FeaturesResourcesEach content item SHOULD include mimeTypeSHOULD2.1.3
462.1.4.1Server FeaturesResourcesServer response to resources/templates/list MUST include resourceTemplates arrayMUST2.1.4
472.1.4.2Server FeaturesResourcesEach template MUST include uriTemplateMUST2.1.4
482.1.5.1Server FeaturesResourcesServer MUST send notifications/resources/updated when resource changesMUST2.1.5
492.1.5.2Server FeaturesResourcesServer MUST support subscribe capability to use subscription featureMUST2.1.5
502.1.6.1Server FeaturesResourcesServer SHOULD send notifications/resources/list_changed when resource list changesSHOULD2.1.6
512.1.6.2Server FeaturesResourcesServer MUST support listChanged capability to use list_changed notificationMUST2.1.6
522.2.1.1Server FeaturesPromptsServers supporting prompts MUST declare prompts capabilityMUST2.2.1
532.2.1.2Server FeaturesPromptsPrompts capability MAY include listChanged featureMAY2.2.1
542.2.2.1Server FeaturesPromptsServer response to prompts/list MUST include prompts arrayMUST2.2.2
552.2.2.2Server FeaturesPromptsEach prompt MUST include nameMUST2.2.2
562.2.3.1Server FeaturesPromptsServer response to prompts/get MUST include messages arrayMUST2.2.3
572.2.3.2Server FeaturesPromptsEach message MUST include role and contentMUST2.2.3
582.2.3.3Server FeaturesPromptsContent MUST be one of: text image or resourceMUST2.2.3
592.2.4.1Server FeaturesPromptsServer SHOULD send notifications/prompts/list_changed when prompt list changesSHOULD2.2.4
602.2.4.2Server FeaturesPromptsServer MUST support listChanged capability to use list_changed notificationMUST2.2.4
612.3.1.1Server FeaturesToolsServers supporting tools MUST declare tools capabilityMUST2.3.1
622.3.1.2Server FeaturesToolsTools capability MAY include listChanged featureMAY2.3.1
632.3.2.1Server FeaturesToolsServer response to tools/list MUST include tools arrayMUST2.3.2
642.3.2.2Server FeaturesToolsEach tool MUST include name description and inputSchemaMUST2.3.2
652.3.3.1Server FeaturesToolsServer response to tools/call MUST include content array and isError flagMUST2.3.3
662.3.3.2Server FeaturesToolsEach content item MUST be one of: text image or resourceMUST2.3.3
672.3.4.1Server FeaturesToolsServer SHOULD send notifications/tools/list_changed when tool list changesSHOULD2.3.4
682.3.4.2Server FeaturesToolsServer MUST support listChanged capability to use list_changed notificationMUST2.3.4
693.1.1.1Client FeaturesRootsClients supporting roots MUST declare roots capabilityMUST3.1.1
703.1.1.2Client FeaturesRootsRoots capability MAY include listChanged featureMAY3.1.1
713.1.2.1Client FeaturesRootsClient response to roots/list MUST include roots arrayMUST3.1.2
723.1.2.2Client FeaturesRootsEach root MUST include uriMUST3.1.2
733.1.3.1Client FeaturesRootsClient MUST send notifications/roots/list_changed when root list changesMUST3.1.3
743.1.3.2Client FeaturesRootsClient MUST support listChanged capability to use list_changed notificationMUST3.1.3
753.2.1.1Client FeaturesSamplingClients supporting sampling MUST declare sampling capabilityMUST3.2.1
763.2.2.1Client FeaturesSamplingClient response to sampling/createMessage MUST include role content model stopReasonMUST3.2.2
773.2.2.2Client FeaturesSamplingContent MUST be one of: text or imageMUST3.2.2
784.1.1.1UtilitiesPingPing receiver MUST respond promptly with empty responseMUST4.1.1
794.2.1.1UtilitiesCancellationCancellation notification MUST include requestId of request to cancelMUST4.2.1
804.2.1.2UtilitiesCancellationCancellation notifications MUST only reference previously issued requestsMUST4.2.1
814.2.1.3UtilitiesCancellationInitialize request MUST NOT be cancelled by clientsMUST4.2.1
824.2.1.4UtilitiesCancellationReceivers SHOULD stop processing cancelled requestSHOULD4.2.1
834.3.1.1UtilitiesProgressProgress tokens MUST be unique across active requestsMUST4.3.1
844.3.2.1UtilitiesProgressProgress notifications MUST include progressToken and progress valueMUST4.3.2
854.3.2.2UtilitiesProgressProgress value MUST increase with each notificationMUST4.3.2
864.3.2.3UtilitiesProgressProgress notifications MUST only reference active requestsMUST4.3.2
874.4.1.1UtilitiesLoggingServers supporting logging MUST declare logging capabilityMUST4.4.1
884.4.3.1UtilitiesLoggingServer sends notifications/message with log level optional logger name and dataINFO4.4.3
894.5.1.1UtilitiesCompletionServer response to completion/complete MUST include completion valuesMUST4.5.1
904.5.1.2UtilitiesCompletionCompletion response limited to maximum 100 items per responseMUST4.5.1
914.6.1.1UtilitiesPaginationClients MUST treat cursors as opaque tokensMUST4.6.1