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

13 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.1.5Base ProtocolJSON-RPCJSON-RPC batching is NOT supportedMUST1.1.1
71.1.2.1Base ProtocolJSON-RPCResponses MUST include the same ID as the corresponding requestMUST1.1.2
81.1.2.2Base ProtocolJSON-RPCResponses MUST include either a result or an error (not both)MUST1.1.2
91.1.2.3Base ProtocolJSON-RPCError responses MUST include an error code and messageMUST1.1.2
101.1.3.1Base ProtocolJSON-RPCNotifications MUST NOT include an IDMUST1.1.3
111.1.3.2Base ProtocolJSON-RPCNotifications MUST include a method stringMUST1.1.3
121.2.1.1Base ProtocolTransportSTDIO: Client MUST launch server as subprocessMUST1.2.1
131.2.1.2Base ProtocolTransportSTDIO: Server MUST read from stdin and write to stdoutMUST1.2.1
141.2.1.3Base ProtocolTransportSTDIO: Messages MUST be delimited by newlinesMUST1.2.1
151.2.1.4Base ProtocolTransportSTDIO: Messages MUST NOT contain embedded newlinesMUST1.2.1
161.2.1.5Base ProtocolTransportSTDIO: Server MUST NOT write anything to stdout that is not a valid MCP messageMUST1.2.1
171.2.1.6Base ProtocolTransportSTDIO: Client MUST NOT write anything to stdin that is not a valid MCP messageMUST1.2.1
181.2.2.1Base ProtocolTransportHTTP: Server MUST provide single HTTP endpoint supporting POST and GETMUST1.2.2
191.2.2.2Base ProtocolTransportHTTP: Client messages MUST be sent as HTTP POST requestsMUST1.2.2
201.2.2.3Base ProtocolTransportHTTP: Server MAY use Server-Sent Events for streaming responsesMAY1.2.2
211.2.2.4Base ProtocolTransportHTTP: Client MUST include MCP-Protocol-Version header on all requestsMUST1.2.2
221.2.2.5Base ProtocolTransportHTTP: Server MUST validate Origin header to prevent DNS rebinding attacksMUST1.2.2
231.2.2.6Base ProtocolTransportHTTP: Servers SHOULD bind only to localhost when running locallySHOULD1.2.2
241.3.1.1Base ProtocolLifecycleClient MUST send initialize request as first interactionMUST1.3.1
251.3.1.2Base ProtocolLifecycleInitialize request MUST include protocol version supportedMUST1.3.1
261.3.1.3Base ProtocolLifecycleInitialize request MUST include client capabilitiesMUST1.3.1
271.3.1.4Base ProtocolLifecycleInitialize request MUST include client implementation informationMUST1.3.1
281.3.1.5Base ProtocolLifecycleServer MUST respond with protocol versionMUST1.3.1
291.3.1.6Base ProtocolLifecycleServer MUST respond with server capabilitiesMUST1.3.1
301.3.1.7Base ProtocolLifecycleServer MUST respond with server implementation informationMUST1.3.1
311.3.1.8Base ProtocolLifecycleAfter successful initialization client MUST send initialized notificationMUST1.3.1
321.3.2.1Base ProtocolLifecycleClient MUST send a protocol version it supportsMUST1.3.2
331.3.2.2Base ProtocolLifecycleIf server supports requested version it MUST respond with same versionMUST1.3.2
341.3.2.3Base ProtocolLifecycleOtherwise server MUST respond with another supported versionMUST1.3.2
351.3.2.4Base ProtocolLifecycleIf client doesn't support server's version it SHOULD disconnectSHOULD1.3.2
361.3.3.1Base ProtocolLifecycleClient and server MUST declare capabilities during initializationMUST1.3.3
371.3.3.2Base ProtocolLifecycleBoth parties SHOULD respect negotiated capabilitiesSHOULD1.3.3
381.3.4.1Base ProtocolLifecycleFor stdio: client SHOULD close input stream to server for shutdownSHOULD1.3.4
391.3.4.2Base ProtocolLifecycleFor HTTP: shutdown indicated by closing HTTP connectionsINFO1.3.4
401.4.1.1Base ProtocolAuthorizationMCP servers MUST act as OAuth 2.1 resource serversMUST1.4.1
411.4.1.2Base ProtocolAuthorizationMCP clients MUST implement Resource Indicators (RFC 8707)MUST1.4.1
421.4.1.3Base ProtocolAuthorizationAuthorization servers MUST implement OAuth 2.1 with security measuresMUST1.4.1
431.4.1.4Base ProtocolAuthorizationAuthorization servers SHOULD support Dynamic Client RegistrationSHOULD1.4.1
441.4.2.1Base ProtocolAuthorizationMCP servers MUST implement OAuth 2.0 Protected Resource MetadataMUST1.4.2
451.4.2.2Base ProtocolAuthorizationServers MUST use WWW-Authenticate header when returning 401MUST1.4.2
461.4.2.3Base ProtocolAuthorizationClients MUST parse WWW-Authenticate headers and respond to 401MUST1.4.2
471.4.3.1Base ProtocolAuthorizationClients MUST use Authorization header with Bearer tokenMUST1.4.3
481.4.3.2Base ProtocolAuthorizationAccess tokens MUST NOT be included in URI query stringsMUST1.4.3
491.4.3.3Base ProtocolAuthorizationServers MUST validate access tokens were issued specifically for themMUST1.4.3
501.4.3.4Base ProtocolAuthorizationServers MUST NOT accept tokens intended for other resourcesMUST1.4.3
511.5.1.1Base ProtocolSecurityUsers MUST explicitly consent to data access and operationsMUST1.5.1
521.5.1.2Base ProtocolSecurityUsers MUST retain control over data sharing and actionsMUST1.5.1
531.5.1.3Base ProtocolSecurityHosts MUST obtain explicit user consent before exposing user dataMUST1.5.1
541.5.1.4Base ProtocolSecurityTools require explicit user consent before invocationMUST1.5.1
551.5.2.1Base ProtocolSecurityServers MUST validate token audience to prevent confused deputy attacksMUST1.5.2
561.5.2.2Base ProtocolSecurityToken passthrough is explicitly forbiddenMUST1.5.2
571.5.2.3Base ProtocolSecurityClients MUST include resource parameter in authorization requestsMUST1.5.2
581.5.2.4Base ProtocolSecurityAuthorization servers SHOULD issue short-lived access tokensSHOULD1.5.2
591.5.3.1Base ProtocolSecuritySession IDs MUST be secure and non-deterministicMUST1.5.3
601.5.3.2Base ProtocolSecurityServers SHOULD bind session IDs to user-specific informationSHOULD1.5.3
611.5.3.3Base ProtocolSecurityServers MUST verify all inbound requests when authorization is implementedMUST1.5.3
622.1.1.1Server FeaturesResourcesServers supporting resources MUST declare resources capabilityMUST2.1.1
632.1.1.2Server FeaturesResourcesResources capability MAY include subscribe featureMAY2.1.1
642.1.1.3Server FeaturesResourcesResources capability MAY include listChanged featureMAY2.1.1
652.1.2.1Server FeaturesResourcesServer response to resources/list MUST include resources arrayMUST2.1.2
662.1.2.2Server FeaturesResourcesEach resource MUST include uri and nameMUST2.1.2
672.1.2.3Server FeaturesResourcesEach resource SHOULD include title for display purposesSHOULD2.1.2
682.1.3.1Server FeaturesResourcesServer response to resources/read MUST include contents arrayMUST2.1.3
692.1.3.2Server FeaturesResourcesEach content item MUST include uri and either text or blobMUST2.1.3
702.1.3.3Server FeaturesResourcesEach content item SHOULD include mimeTypeSHOULD2.1.3
712.1.4.1Server FeaturesResourcesServer response to resources/templates/list MUST include resourceTemplates arrayMUST2.1.4
722.1.4.2Server FeaturesResourcesEach template MUST include uriTemplateMUST2.1.4
732.1.5.1Server FeaturesResourcesServer MUST send notifications/resources/updated when resource changesMUST2.1.5
742.1.5.2Server FeaturesResourcesServer MUST support subscribe capability to use subscription featureMUST2.1.5
752.1.6.1Server FeaturesResourcesServer SHOULD send notifications/resources/list_changed when resource list changesSHOULD2.1.6
762.1.6.2Server FeaturesResourcesServer MUST support listChanged capability to use list_changed notificationMUST2.1.6
772.2.1.1Server FeaturesPromptsServers supporting prompts MUST declare prompts capabilityMUST2.2.1
782.2.1.2Server FeaturesPromptsPrompts capability MAY include listChanged featureMAY2.2.1
792.2.2.1Server FeaturesPromptsServer response to prompts/list MUST include prompts arrayMUST2.2.2
802.2.2.2Server FeaturesPromptsEach prompt MUST include nameMUST2.2.2
812.2.2.3Server FeaturesPromptsEach prompt SHOULD include title for display purposesSHOULD2.2.2
822.2.3.1Server FeaturesPromptsServer response to prompts/get MUST include messages arrayMUST2.2.3
832.2.3.2Server FeaturesPromptsEach message MUST include role and contentMUST2.2.3
842.2.3.3Server FeaturesPromptsContent MUST be one of: text image audio or resourceMUST2.2.3
852.2.4.1Server FeaturesPromptsServer SHOULD send notifications/prompts/list_changed when prompt list changesSHOULD2.2.4
862.2.4.2Server FeaturesPromptsServer MUST support listChanged capability to use list_changed notificationMUST2.2.4
872.3.1.1Server FeaturesToolsServers supporting tools MUST declare tools capabilityMUST2.3.1
882.3.1.2Server FeaturesToolsTools capability MAY include listChanged featureMAY2.3.1
892.3.2.1Server FeaturesToolsServer response to tools/list MUST include tools arrayMUST2.3.2
902.3.2.2Server FeaturesToolsEach tool MUST include name description and inputSchemaMUST2.3.2
912.3.2.3Server FeaturesToolsEach tool SHOULD include title for display purposesSHOULD2.3.2
922.3.2.4Server FeaturesToolsEach tool MAY include outputSchema for structured resultsMAY2.3.2
932.3.3.1Server FeaturesToolsServer response to tools/call MUST include content array and isError flagMUST2.3.3
942.3.3.2Server FeaturesToolsEach content item MUST be one of: text image audio resource or resource_linkMUST2.3.3
952.3.3.3Server FeaturesToolsTools MAY return structured content in structuredContent fieldMAY2.3.3
962.3.3.4Server FeaturesToolsIf outputSchema provided structured results MUST conform to schemaMUST2.3.3
972.3.4.1Server FeaturesToolsServer SHOULD send notifications/tools/list_changed when tool list changesSHOULD2.3.4
982.3.4.2Server FeaturesToolsServer MUST support listChanged capability to use list_changed notificationMUST2.3.4
993.1.1.1Client FeaturesRootsClients supporting roots MUST declare roots capabilityMUST3.1.1
1003.1.1.2Client FeaturesRootsRoots capability MAY include listChanged featureMAY3.1.1
1013.1.2.1Client FeaturesRootsClient response to roots/list MUST include roots arrayMUST3.1.2
1023.1.2.2Client FeaturesRootsEach root MUST include uriMUST3.1.2
1033.1.2.3Client FeaturesRootsEach root SHOULD include name for display purposesSHOULD3.1.2
1043.1.3.1Client FeaturesRootsClient MUST send notifications/roots/list_changed when root list changesMUST3.1.3
1053.1.3.2Client FeaturesRootsClient MUST support listChanged capability to use list_changed notificationMUST3.1.3
1063.2.1.1Client FeaturesSamplingClients supporting sampling MUST declare sampling capabilityMUST3.2.1
1073.2.2.1Client FeaturesSamplingClient response to sampling/createMessage MUST include role content model stopReasonMUST3.2.2
1083.2.2.2Client FeaturesSamplingContent MUST be one of: text image or audioMUST3.2.2
1093.2.2.3Client FeaturesSamplingClients SHOULD implement human-in-the-loop approval for sampling requestsSHOULD3.2.2
1103.3.1.1Client FeaturesElicitationClients supporting elicitation MUST declare elicitation capabilityMUST3.3.1
1113.3.2.1Client FeaturesElicitationClient response to elicitation/create MUST include action and optionally contentMUST3.3.2
1123.3.2.2Client FeaturesElicitationAction MUST be one of: accept reject or cancelMUST3.3.2
1133.3.2.3Client FeaturesElicitationSchema MUST be restricted to flat objects with primitive propertiesMUST3.3.2
1143.3.2.4Client FeaturesElicitationClients SHOULD provide clear UI for elicitation requestsSHOULD3.3.2
1154.1.1.1UtilitiesPingPing receiver MUST respond promptly with empty responseMUST4.1.1
1164.2.1.1UtilitiesCancellationCancellation notification MUST include requestId of request to cancelMUST4.2.1
1174.2.1.2UtilitiesCancellationCancellation notifications MUST only reference previously issued requestsMUST4.2.1
1184.2.1.3UtilitiesCancellationInitialize request MUST NOT be cancelled by clientsMUST4.2.1
1194.2.1.4UtilitiesCancellationReceivers SHOULD stop processing cancelled requestSHOULD4.2.1
1204.3.1.1UtilitiesProgressProgress tokens MUST be unique across active requestsMUST4.3.1
1214.3.2.1UtilitiesProgressProgress notifications MUST include progressToken and progress valueMUST4.3.2
1224.3.2.2UtilitiesProgressProgress value MUST increase with each notificationMUST4.3.2
1234.3.2.3UtilitiesProgressProgress notifications MUST only reference active requestsMUST4.3.2
1244.4.1.1UtilitiesLoggingServers supporting logging MUST declare logging capabilityMUST4.4.1
1254.4.2.1UtilitiesLoggingLog messages MUST follow standard syslog severity levelsMUST4.4.2
1264.4.2.2UtilitiesLoggingLog messages MUST NOT contain sensitive informationMUST4.4.2
1274.5.1.1UtilitiesCompletionServer response to completion/complete MUST include completion valuesMUST4.5.1
1284.5.1.2UtilitiesCompletionCompletion response limited to maximum 100 items per responseMUST4.5.1
1294.5.1.3UtilitiesCompletionCompletion requests MAY include context with previously-resolved argumentsMAY4.5.1
1304.6.1.1UtilitiesPaginationClients MUST treat cursors as opaque tokensMUST4.6.1
1314.6.1.2UtilitiesPaginationServers SHOULD provide stable cursorsSHOULD4.6.1
1324.6.1.3UtilitiesPaginationMissing nextCursor indicates end of resultsINFO4.6.1
1335.1.1.1Meta FieldsReservedThe _meta property is reserved by MCP for protocol-level metadataMUST5.1.1
1345.1.1.2Meta FieldsReservedPrefixes beginning with modelcontextprotocol or mcp are reserved for MCP useMUST5.1.1