@revealui/mcp 0.1.0 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. package/LICENSE +22 -0
  2. package/LICENSE.commercial +111 -0
  3. package/README.md +3 -0
  4. package/dist/{packages/mcp/src/adapters → adapters}/db.d.ts +1 -1
  5. package/dist/adapters/db.d.ts.map +1 -0
  6. package/dist/adapters/db.js.map +1 -0
  7. package/dist/config/index.d.ts.map +1 -0
  8. package/dist/config/index.js.map +1 -0
  9. package/dist/contracts.d.ts.map +1 -0
  10. package/dist/contracts.js.map +1 -0
  11. package/dist/{packages/mcp/src/hypervisor.d.ts → hypervisor.d.ts} +56 -0
  12. package/dist/hypervisor.d.ts.map +1 -0
  13. package/dist/{packages/mcp/src/hypervisor.js → hypervisor.js} +209 -1
  14. package/dist/hypervisor.js.map +1 -0
  15. package/dist/{packages/mcp/src/index.d.ts → index.d.ts} +9 -5
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/{packages/mcp/src/index.js → index.js} +8 -4
  18. package/dist/index.js.map +1 -0
  19. package/dist/{packages/mcp/src/servers → servers}/adapter.d.ts +11 -1
  20. package/dist/servers/adapter.d.ts.map +1 -0
  21. package/dist/{packages/mcp/src/servers → servers}/adapter.js +20 -4
  22. package/dist/servers/adapter.js.map +1 -0
  23. package/dist/servers/revealui-content.d.ts +21 -0
  24. package/dist/servers/revealui-content.d.ts.map +1 -0
  25. package/dist/servers/revealui-content.js +211 -0
  26. package/dist/servers/revealui-content.js.map +1 -0
  27. package/dist/servers/revealui-email.d.ts +18 -0
  28. package/dist/servers/revealui-email.d.ts.map +1 -0
  29. package/dist/servers/revealui-email.js +190 -0
  30. package/dist/servers/revealui-email.js.map +1 -0
  31. package/dist/servers/revealui-stripe.d.ts +19 -0
  32. package/dist/servers/revealui-stripe.d.ts.map +1 -0
  33. package/dist/servers/revealui-stripe.js +228 -0
  34. package/dist/servers/revealui-stripe.js.map +1 -0
  35. package/package.json +50 -11
  36. package/.env.example +0 -9
  37. package/MCP_MAINTENANCE.md +0 -265
  38. package/__tests__/crdt.integration.test.ts +0 -156
  39. package/configs/README.md +0 -77
  40. package/configs/claude-template.json +0 -54
  41. package/dist/packages/core/src/database/ssl-config.d.ts +0 -9
  42. package/dist/packages/core/src/database/ssl-config.d.ts.map +0 -1
  43. package/dist/packages/core/src/database/ssl-config.js +0 -8
  44. package/dist/packages/core/src/database/ssl-config.js.map +0 -1
  45. package/dist/packages/core/src/features.d.ts +0 -86
  46. package/dist/packages/core/src/features.d.ts.map +0 -1
  47. package/dist/packages/core/src/features.js +0 -93
  48. package/dist/packages/core/src/features.js.map +0 -1
  49. package/dist/packages/core/src/license.d.ts +0 -75
  50. package/dist/packages/core/src/license.d.ts.map +0 -1
  51. package/dist/packages/core/src/license.js +0 -174
  52. package/dist/packages/core/src/license.js.map +0 -1
  53. package/dist/packages/core/src/monitoring/alerts.d.ts +0 -118
  54. package/dist/packages/core/src/monitoring/alerts.d.ts.map +0 -1
  55. package/dist/packages/core/src/monitoring/alerts.js +0 -325
  56. package/dist/packages/core/src/monitoring/alerts.js.map +0 -1
  57. package/dist/packages/core/src/monitoring/cleanup-manager.d.ts +0 -71
  58. package/dist/packages/core/src/monitoring/cleanup-manager.d.ts.map +0 -1
  59. package/dist/packages/core/src/monitoring/cleanup-manager.js +0 -227
  60. package/dist/packages/core/src/monitoring/cleanup-manager.js.map +0 -1
  61. package/dist/packages/core/src/monitoring/health-monitor.d.ts +0 -22
  62. package/dist/packages/core/src/monitoring/health-monitor.d.ts.map +0 -1
  63. package/dist/packages/core/src/monitoring/health-monitor.js +0 -143
  64. package/dist/packages/core/src/monitoring/health-monitor.js.map +0 -1
  65. package/dist/packages/core/src/monitoring/index.d.ts +0 -14
  66. package/dist/packages/core/src/monitoring/index.d.ts.map +0 -1
  67. package/dist/packages/core/src/monitoring/index.js +0 -18
  68. package/dist/packages/core/src/monitoring/index.js.map +0 -1
  69. package/dist/packages/core/src/monitoring/process-registry.d.ts +0 -97
  70. package/dist/packages/core/src/monitoring/process-registry.d.ts.map +0 -1
  71. package/dist/packages/core/src/monitoring/process-registry.js +0 -223
  72. package/dist/packages/core/src/monitoring/process-registry.js.map +0 -1
  73. package/dist/packages/core/src/monitoring/types.d.ts +0 -231
  74. package/dist/packages/core/src/monitoring/types.d.ts.map +0 -1
  75. package/dist/packages/core/src/monitoring/types.js +0 -43
  76. package/dist/packages/core/src/monitoring/types.js.map +0 -1
  77. package/dist/packages/core/src/monitoring/zombie-detector.d.ts +0 -81
  78. package/dist/packages/core/src/monitoring/zombie-detector.d.ts.map +0 -1
  79. package/dist/packages/core/src/monitoring/zombie-detector.js +0 -232
  80. package/dist/packages/core/src/monitoring/zombie-detector.js.map +0 -1
  81. package/dist/packages/core/src/observability/logger.d.ts +0 -47
  82. package/dist/packages/core/src/observability/logger.d.ts.map +0 -1
  83. package/dist/packages/core/src/observability/logger.js +0 -141
  84. package/dist/packages/core/src/observability/logger.js.map +0 -1
  85. package/dist/packages/core/src/utils/logger-server.d.ts +0 -32
  86. package/dist/packages/core/src/utils/logger-server.d.ts.map +0 -1
  87. package/dist/packages/core/src/utils/logger-server.js +0 -69
  88. package/dist/packages/core/src/utils/logger-server.js.map +0 -1
  89. package/dist/packages/core/src/utils/request-context.d.ts +0 -143
  90. package/dist/packages/core/src/utils/request-context.d.ts.map +0 -1
  91. package/dist/packages/core/src/utils/request-context.js +0 -169
  92. package/dist/packages/core/src/utils/request-context.js.map +0 -1
  93. package/dist/packages/dev/src/code-validator/index.d.ts +0 -20
  94. package/dist/packages/dev/src/code-validator/index.d.ts.map +0 -1
  95. package/dist/packages/dev/src/code-validator/index.js +0 -20
  96. package/dist/packages/dev/src/code-validator/index.js.map +0 -1
  97. package/dist/packages/dev/src/code-validator/types.d.ts +0 -67
  98. package/dist/packages/dev/src/code-validator/types.d.ts.map +0 -1
  99. package/dist/packages/dev/src/code-validator/types.js +0 -7
  100. package/dist/packages/dev/src/code-validator/types.js.map +0 -1
  101. package/dist/packages/dev/src/code-validator/validator.d.ts +0 -48
  102. package/dist/packages/dev/src/code-validator/validator.d.ts.map +0 -1
  103. package/dist/packages/dev/src/code-validator/validator.js +0 -176
  104. package/dist/packages/dev/src/code-validator/validator.js.map +0 -1
  105. package/dist/packages/mcp/src/adapters/db.d.ts.map +0 -1
  106. package/dist/packages/mcp/src/adapters/db.js.map +0 -1
  107. package/dist/packages/mcp/src/config/index.d.ts.map +0 -1
  108. package/dist/packages/mcp/src/config/index.js.map +0 -1
  109. package/dist/packages/mcp/src/contracts.d.ts.map +0 -1
  110. package/dist/packages/mcp/src/contracts.js.map +0 -1
  111. package/dist/packages/mcp/src/hypervisor.d.ts.map +0 -1
  112. package/dist/packages/mcp/src/hypervisor.js.map +0 -1
  113. package/dist/packages/mcp/src/index.d.ts.map +0 -1
  114. package/dist/packages/mcp/src/index.js.map +0 -1
  115. package/dist/packages/mcp/src/servers/adapter.d.ts.map +0 -1
  116. package/dist/packages/mcp/src/servers/adapter.js.map +0 -1
  117. package/dist/packages/mcp/src/servers/code-validator.d.ts +0 -24
  118. package/dist/packages/mcp/src/servers/code-validator.d.ts.map +0 -1
  119. package/dist/packages/mcp/src/servers/code-validator.js +0 -156
  120. package/dist/packages/mcp/src/servers/code-validator.js.map +0 -1
  121. package/dist/packages/mcp/src/servers/neon.d.ts +0 -11
  122. package/dist/packages/mcp/src/servers/neon.d.ts.map +0 -1
  123. package/dist/packages/mcp/src/servers/neon.js +0 -90
  124. package/dist/packages/mcp/src/servers/neon.js.map +0 -1
  125. package/dist/packages/mcp/src/servers/next-devtools.d.ts +0 -11
  126. package/dist/packages/mcp/src/servers/next-devtools.d.ts.map +0 -1
  127. package/dist/packages/mcp/src/servers/next-devtools.js +0 -215
  128. package/dist/packages/mcp/src/servers/next-devtools.js.map +0 -1
  129. package/dist/packages/mcp/src/servers/playwright.d.ts +0 -11
  130. package/dist/packages/mcp/src/servers/playwright.d.ts.map +0 -1
  131. package/dist/packages/mcp/src/servers/playwright.js +0 -68
  132. package/dist/packages/mcp/src/servers/playwright.js.map +0 -1
  133. package/dist/packages/mcp/src/servers/stripe.d.ts +0 -11
  134. package/dist/packages/mcp/src/servers/stripe.d.ts.map +0 -1
  135. package/dist/packages/mcp/src/servers/stripe.js +0 -86
  136. package/dist/packages/mcp/src/servers/stripe.js.map +0 -1
  137. package/dist/packages/mcp/src/servers/supabase.d.ts +0 -11
  138. package/dist/packages/mcp/src/servers/supabase.d.ts.map +0 -1
  139. package/dist/packages/mcp/src/servers/supabase.js +0 -144
  140. package/dist/packages/mcp/src/servers/supabase.js.map +0 -1
  141. package/dist/packages/mcp/src/servers/vercel.d.ts +0 -11
  142. package/dist/packages/mcp/src/servers/vercel.d.ts.map +0 -1
  143. package/dist/packages/mcp/src/servers/vercel.js +0 -87
  144. package/dist/packages/mcp/src/servers/vercel.js.map +0 -1
  145. package/dist/packages/mcp/src/servers/vultr-test.d.ts +0 -3
  146. package/dist/packages/mcp/src/servers/vultr-test.d.ts.map +0 -1
  147. package/dist/packages/mcp/src/servers/vultr-test.js +0 -82
  148. package/dist/packages/mcp/src/servers/vultr-test.js.map +0 -1
  149. package/dist/scripts/lib/analyzers/console-analyzer.d.ts +0 -188
  150. package/dist/scripts/lib/analyzers/console-analyzer.d.ts.map +0 -1
  151. package/dist/scripts/lib/analyzers/console-analyzer.js +0 -432
  152. package/dist/scripts/lib/analyzers/console-analyzer.js.map +0 -1
  153. package/dist/scripts/lib/analyzers/index.d.ts +0 -11
  154. package/dist/scripts/lib/analyzers/index.d.ts.map +0 -1
  155. package/dist/scripts/lib/analyzers/index.js +0 -11
  156. package/dist/scripts/lib/analyzers/index.js.map +0 -1
  157. package/dist/scripts/lib/args.d.ts +0 -104
  158. package/dist/scripts/lib/args.d.ts.map +0 -1
  159. package/dist/scripts/lib/args.js +0 -304
  160. package/dist/scripts/lib/args.js.map +0 -1
  161. package/dist/scripts/lib/cache.d.ts +0 -185
  162. package/dist/scripts/lib/cache.d.ts.map +0 -1
  163. package/dist/scripts/lib/cache.js +0 -390
  164. package/dist/scripts/lib/cache.js.map +0 -1
  165. package/dist/scripts/lib/cli/dispatch.d.ts +0 -116
  166. package/dist/scripts/lib/cli/dispatch.d.ts.map +0 -1
  167. package/dist/scripts/lib/cli/dispatch.js +0 -206
  168. package/dist/scripts/lib/cli/dispatch.js.map +0 -1
  169. package/dist/scripts/lib/cli/index.d.ts +0 -10
  170. package/dist/scripts/lib/cli/index.d.ts.map +0 -1
  171. package/dist/scripts/lib/cli/index.js +0 -10
  172. package/dist/scripts/lib/cli/index.js.map +0 -1
  173. package/dist/scripts/lib/database/ssl-config.d.ts +0 -26
  174. package/dist/scripts/lib/database/ssl-config.d.ts.map +0 -1
  175. package/dist/scripts/lib/database/ssl-config.js +0 -47
  176. package/dist/scripts/lib/database/ssl-config.js.map +0 -1
  177. package/dist/scripts/lib/errors.d.ts +0 -218
  178. package/dist/scripts/lib/errors.d.ts.map +0 -1
  179. package/dist/scripts/lib/errors.js +0 -543
  180. package/dist/scripts/lib/errors.js.map +0 -1
  181. package/dist/scripts/lib/exec.d.ts +0 -107
  182. package/dist/scripts/lib/exec.d.ts.map +0 -1
  183. package/dist/scripts/lib/exec.js +0 -232
  184. package/dist/scripts/lib/exec.js.map +0 -1
  185. package/dist/scripts/lib/index.d.ts +0 -50
  186. package/dist/scripts/lib/index.d.ts.map +0 -1
  187. package/dist/scripts/lib/index.js +0 -65
  188. package/dist/scripts/lib/index.js.map +0 -1
  189. package/dist/scripts/lib/logger.d.ts +0 -50
  190. package/dist/scripts/lib/logger.d.ts.map +0 -1
  191. package/dist/scripts/lib/logger.js +0 -159
  192. package/dist/scripts/lib/logger.js.map +0 -1
  193. package/dist/scripts/lib/output.d.ts +0 -149
  194. package/dist/scripts/lib/output.d.ts.map +0 -1
  195. package/dist/scripts/lib/output.js +0 -263
  196. package/dist/scripts/lib/output.js.map +0 -1
  197. package/dist/scripts/lib/parallel.d.ts +0 -164
  198. package/dist/scripts/lib/parallel.d.ts.map +0 -1
  199. package/dist/scripts/lib/parallel.js +0 -355
  200. package/dist/scripts/lib/parallel.js.map +0 -1
  201. package/dist/scripts/lib/paths.d.ts +0 -92
  202. package/dist/scripts/lib/paths.d.ts.map +0 -1
  203. package/dist/scripts/lib/paths.js +0 -171
  204. package/dist/scripts/lib/paths.js.map +0 -1
  205. package/dist/scripts/lib/state/adapters/memory.d.ts +0 -42
  206. package/dist/scripts/lib/state/adapters/memory.d.ts.map +0 -1
  207. package/dist/scripts/lib/state/adapters/memory.js +0 -110
  208. package/dist/scripts/lib/state/adapters/memory.js.map +0 -1
  209. package/dist/scripts/lib/state/adapters/pglite.d.ts +0 -46
  210. package/dist/scripts/lib/state/adapters/pglite.d.ts.map +0 -1
  211. package/dist/scripts/lib/state/adapters/pglite.js +0 -256
  212. package/dist/scripts/lib/state/adapters/pglite.js.map +0 -1
  213. package/dist/scripts/lib/state/index.d.ts +0 -16
  214. package/dist/scripts/lib/state/index.d.ts.map +0 -1
  215. package/dist/scripts/lib/state/index.js +0 -16
  216. package/dist/scripts/lib/state/index.js.map +0 -1
  217. package/dist/scripts/lib/state/types.d.ts +0 -111
  218. package/dist/scripts/lib/state/types.d.ts.map +0 -1
  219. package/dist/scripts/lib/state/types.js +0 -8
  220. package/dist/scripts/lib/state/types.js.map +0 -1
  221. package/dist/scripts/lib/state/workflow-state.d.ts +0 -110
  222. package/dist/scripts/lib/state/workflow-state.d.ts.map +0 -1
  223. package/dist/scripts/lib/state/workflow-state.js +0 -331
  224. package/dist/scripts/lib/state/workflow-state.js.map +0 -1
  225. package/dist/scripts/lib/telemetry.d.ts +0 -194
  226. package/dist/scripts/lib/telemetry.d.ts.map +0 -1
  227. package/dist/scripts/lib/telemetry.js +0 -394
  228. package/dist/scripts/lib/telemetry.js.map +0 -1
  229. package/dist/scripts/lib/utils.d.ts +0 -270
  230. package/dist/scripts/lib/utils.d.ts.map +0 -1
  231. package/dist/scripts/lib/utils.js +0 -473
  232. package/dist/scripts/lib/utils.js.map +0 -1
  233. package/dist/scripts/lib/validation/database.d.ts +0 -83
  234. package/dist/scripts/lib/validation/database.d.ts.map +0 -1
  235. package/dist/scripts/lib/validation/database.js +0 -199
  236. package/dist/scripts/lib/validation/database.js.map +0 -1
  237. package/dist/scripts/lib/validation/env.d.ts +0 -80
  238. package/dist/scripts/lib/validation/env.d.ts.map +0 -1
  239. package/dist/scripts/lib/validation/env.js +0 -246
  240. package/dist/scripts/lib/validation/env.js.map +0 -1
  241. package/dist/scripts/lib/validation/index.d.ts +0 -16
  242. package/dist/scripts/lib/validation/index.d.ts.map +0 -1
  243. package/dist/scripts/lib/validation/index.js +0 -16
  244. package/dist/scripts/lib/validation/index.js.map +0 -1
  245. package/dist/scripts/lib/validation/post-execution.d.ts +0 -74
  246. package/dist/scripts/lib/validation/post-execution.d.ts.map +0 -1
  247. package/dist/scripts/lib/validation/post-execution.js +0 -110
  248. package/dist/scripts/lib/validation/post-execution.js.map +0 -1
  249. package/dist/scripts/lib/validation/pre-execution.d.ts +0 -165
  250. package/dist/scripts/lib/validation/pre-execution.d.ts.map +0 -1
  251. package/dist/scripts/lib/validation/pre-execution.js +0 -466
  252. package/dist/scripts/lib/validation/pre-execution.js.map +0 -1
  253. package/dist/scripts/lib/validators/documentation-validator.d.ts +0 -242
  254. package/dist/scripts/lib/validators/documentation-validator.d.ts.map +0 -1
  255. package/dist/scripts/lib/validators/documentation-validator.js +0 -584
  256. package/dist/scripts/lib/validators/documentation-validator.js.map +0 -1
  257. package/dist/scripts/lib/validators/index.d.ts +0 -11
  258. package/dist/scripts/lib/validators/index.d.ts.map +0 -1
  259. package/dist/scripts/lib/validators/index.js +0 -11
  260. package/dist/scripts/lib/validators/index.js.map +0 -1
  261. package/docker-compose.yml +0 -46
  262. package/docs/INDEX.md +0 -88
  263. package/docs/README.md +0 -774
  264. package/docs/SETUP.md +0 -264
  265. package/docs/servers/code-validator.md +0 -586
  266. package/eslint.config.js +0 -7
  267. package/migrations/0001_add_crdt_columns.sql +0 -8
  268. package/migrations/0001_rollback.sql +0 -6
  269. package/migrations/005_performance_indexes.sql +0 -190
  270. package/migrations/backfill_crdt_meta.js +0 -45
  271. package/src/__tests__/hypervisor.test.ts +0 -212
  272. package/src/adapters/db.ts +0 -180
  273. package/src/config/config.json +0 -49
  274. package/src/config/index.ts +0 -30
  275. package/src/contracts.ts +0 -221
  276. package/src/hypervisor.ts +0 -464
  277. package/src/index.ts +0 -87
  278. package/src/servers/adapter.ts +0 -643
  279. package/src/servers/code-validator.ts +0 -188
  280. package/src/servers/neon.ts +0 -103
  281. package/src/servers/next-devtools.ts +0 -230
  282. package/src/servers/playwright.ts +0 -77
  283. package/src/servers/stripe.ts +0 -99
  284. package/src/servers/supabase.ts +0 -161
  285. package/src/servers/vercel.ts +0 -100
  286. package/src/servers/vultr-test.ts +0 -97
  287. package/tsconfig.json +0 -12
  288. package/vitest.config.ts +0 -22
  289. /package/dist/{packages/mcp/src/adapters → adapters}/db.js +0 -0
  290. /package/dist/{packages/mcp/src/config → config}/index.d.ts +0 -0
  291. /package/dist/{packages/mcp/src/config → config}/index.js +0 -0
  292. /package/dist/{packages/mcp/src/contracts.d.ts → contracts.d.ts} +0 -0
  293. /package/dist/{packages/mcp/src/contracts.js → contracts.js} +0 -0
package/docs/README.md DELETED
@@ -1,774 +0,0 @@
1
- # Model Context Protocol (MCP) - Complete Guide
2
-
3
- Complete guide for setting up and using Model Context Protocol (MCP) servers in RevealUI, including Next.js DevTools integration.
4
-
5
- ---
6
-
7
- ## Table of Contents
8
-
9
- - [Overview](#overview)
10
- - [Quick Start](#quick-start)
11
- - [MCP Servers](#mcp-servers)
12
- - [Getting API Keys](#getting-api-keys)
13
- - [Next.js DevTools MCP](#nextjs-devtools-mcp)
14
- - [Configuration](#configuration)
15
- - [Usage Examples](#usage-examples)
16
- - [Troubleshooting](#troubleshooting)
17
- - [Testing](#testing)
18
- - [Related Documentation](#related-documentation)
19
-
20
- ---
21
-
22
- ## Overview
23
-
24
- RevealUI includes 6 MCP servers for enhanced AI capabilities:
25
-
26
- - **Vercel MCP** - Deploy and manage Vercel projects
27
- - **Stripe MCP** - Payment processing and billing operations
28
- - **NeonDB MCP** - Database operations and SQL queries
29
- - **Supabase MCP** - Supabase project management and CRUD operations
30
- - **Playwright MCP** - Browser automation and web scraping
31
- - **Next.js DevTools MCP** - Next.js 16+ runtime diagnostics and automation
32
-
33
- All servers are **free** and run locally as npm packages.
34
-
35
- ---
36
-
37
- **Prerequisites**: Complete [QUICK_START.md](./QUICK_START.md) first for basic setup.
38
-
39
- ## MCP-Specific Setup
40
-
41
- ### 1. Configure MCP Environment Variables
42
-
43
- Add MCP server API keys to `.env.development.local`:
44
-
45
- ```env
46
- # Vercel MCP
47
- VERCEL_API_KEY=vercel_xxx...
48
-
49
- # Stripe MCP (likely already configured from Quick Start)
50
- STRIPE_SECRET_KEY=sk_test_xxx...
51
-
52
- # NeonDB MCP
53
- NEON_API_KEY=neon_xxx...
54
-
55
- # Supabase MCP
56
- SUPABASE_URL=https://xxx.supabase.co
57
- SUPABASE_ANON_KEY=eyJxxx...
58
- SUPABASE_SERVICE_ROLE_KEY=eyJxxx...
59
-
60
- # Next.js DevTools MCP
61
- NEXT_TELEMETRY_DISABLED=0
62
- ```
63
-
64
- See [Getting API Keys](#getting-api-keys) section below for instructions.
65
-
66
- ### 2. Start MCP Servers
67
-
68
- ```bash
69
- # Start all servers
70
- pnpm mcp:all
71
-
72
- # Or start individually
73
- pnpm mcp:vercel
74
- pnpm mcp:stripe
75
- pnpm mcp:neon
76
- pnpm mcp:supabase
77
- pnpm mcp:playwright
78
- pnpm mcp:next-devtools
79
- ```
80
-
81
- ---
82
-
83
- ## MCP Servers
84
-
85
- ### Vercel MCP (`vercel-mcp@0.0.7`)
86
-
87
- **Capabilities:**
88
- - Deploy projects
89
- - Manage domains
90
- - Configure environment variables
91
- - View project analytics
92
- - Manage teams and permissions
93
-
94
- **Environment:** `VERCEL_API_KEY`
95
-
96
- **Status:** ✅ Working
97
-
98
- ---
99
-
100
- ### Stripe MCP (`@stripe/mcp@0.1.4`)
101
-
102
- **Capabilities:**
103
- - `balance.read` - Retrieve balance information
104
- - `coupons.create/read` - Manage coupons
105
- - `customers.create/read` - Manage customers
106
- - `invoices.create/read/update` - Invoice operations
107
- - `paymentIntents.read` - Payment intent information
108
- - `paymentLinks.create` - Create payment links
109
- - `prices.create/read` - Price management
110
- - `products.create/read` - Product management
111
- - `refunds.create` - Process refunds
112
- - `subscriptions.read/update` - Subscription management
113
- - `documentation.read` - Search Stripe documentation
114
-
115
- **Environment:** `STRIPE_SECRET_KEY`
116
-
117
- **Status:** ✅ Working
118
-
119
- ---
120
-
121
- ### NeonDB MCP (`@neondatabase/mcp-server-neon@0.6.5`)
122
-
123
- **Capabilities:**
124
- - Execute SQL queries
125
- - Create tables
126
- - Update rows
127
- - Delete tables
128
- - Manage database schema
129
- - Interact with Neon Management API
130
-
131
- **Environment:** `NEON_API_KEY`
132
-
133
- **Status:** ⚠️ Requires API key setup
134
-
135
- ---
136
-
137
- ### Supabase MCP (`supabase-mcp@1.5.0`)
138
-
139
- **Capabilities:**
140
- - CRUD operations on tables
141
- - Query data
142
- - Manage database records
143
- - Interact with Supabase projects
144
-
145
- **Environment:** `SUPABASE_URL`, `SUPABASE_ANON_KEY` (required), `SUPABASE_SERVICE_ROLE_KEY` (optional)
146
-
147
- **Status:** ⚠️ Requires credentials setup
148
-
149
- ---
150
-
151
- ### Playwright MCP (`@executeautomation/playwright-mcp-server@1.0.12`)
152
-
153
- **Capabilities:**
154
- - Navigate to URLs
155
- - Take screenshots
156
- - Click elements
157
- - Fill forms
158
- - Extract text and data
159
- - Run browser automation scripts
160
- - Web scraping capabilities
161
-
162
- **Environment:** None required
163
-
164
- **Status:** ✅ Working (downloads browser binaries on first run ~300MB)
165
-
166
- ---
167
-
168
- ### Next.js DevTools MCP (`next-devtools-mcp@0.3.9`)
169
-
170
- **Capabilities:**
171
- - Auto-discover Next.js 16+ dev servers
172
- - Real-time error reporting
173
- - Route discovery and metadata
174
- - Development server logs
175
- - Server Action discovery
176
- - Component tree analysis
177
- - Build configuration inspection
178
- - Automated Next.js 16 upgrades
179
- - Cache Components setup with error fixing
180
-
181
- **Environment:** `NEXT_TELEMETRY_DISABLED` (optional)
182
-
183
- **Status:** ✅ Working (requires Next.js 16+)
184
-
185
- ---
186
-
187
- ## Getting API Keys
188
-
189
- ### Vercel API Key
190
-
191
- 1. Go to https://vercel.com/account/tokens
192
- 2. Click "Create Token"
193
- 3. Copy the token (starts with `vercel_`)
194
- 4. Add to `.env`: `VERCEL_API_KEY=vercel_xxx...`
195
-
196
- ### Stripe Secret Key
197
-
198
- 1. Go to https://dashboard.stripe.com/apikeys
199
- 2. Copy the "Secret key" (starts with `sk_test_` for test mode)
200
- 3. Add to `.env`: `STRIPE_SECRET_KEY=sk_test_xxx...`
201
-
202
- ### Neon API Key
203
-
204
- 1. Go to https://console.neon.tech/app/settings/api-keys
205
- 2. Click "Create API Key"
206
- 3. Copy the key (starts with `neon_`)
207
- 4. Add to `.env`: `NEON_API_KEY=neon_xxx...`
208
-
209
- **Detailed guide**: See [NEON_API_KEY_SETUP.md](./ENVIRONMENT_VARIABLES_GUIDE.md)
210
-
211
- ### Supabase Credentials
212
-
213
- **⚠️ Important: Supabase API Key Changes (2025)**
214
-
215
- Supabase introduced new API keys in June 2025. Both legacy and new keys are supported:
216
-
217
- **New API Keys (Recommended):**
218
- - **Publishable Key** (`sb_publishable_...`) - Replaces anon key, safe to expose
219
- - **Secret Key** (`sb_secret_...`) - Replaces service_role key, for backend use
220
-
221
- **Legacy API Keys (Deprecated Nov 2025):**
222
- - **anon key** (JWT format) - Still works but will be deprecated
223
- - **service_role key** (JWT format) - Still works but will be deprecated
224
-
225
- **Getting Your Keys:**
226
-
227
- 1. Go to https://supabase.com/dashboard
228
- 2. Select your project
229
- 3. Go to Settings → API
230
- 4. Copy:
231
- - **Project URL** → `SUPABASE_URL`
232
- - **For new keys:**
233
- - **Publishable key** (`sb_publishable_...`) → `SUPABASE_PUBLISHABLE_KEY`
234
- - **Secret key** (`sb_secret_...`) → `SUPABASE_SECRET_KEY`
235
- - **For legacy keys:**
236
- - **anon/public key** (JWT) → `SUPABASE_ANON_KEY`
237
- - **service_role key** (JWT) → `SUPABASE_SERVICE_ROLE_KEY`
238
-
239
- **Migration Timeline:**
240
- - **June 2025**: New keys available (early preview)
241
- - **July 2025**: Full feature launch
242
- - **November 2025**: Legacy keys deprecated for new projects
243
-
244
- **Reference:** [Supabase API Key Changes Discussion](https://github.com/orgs/supabase/discussions/29260) | [Official Docs](https://supabase.com/docs/guides/api/api-keys)
245
-
246
- **MCP_API_KEY (Optional but Recommended):**
247
-
248
- The `MCP_API_KEY` is **NOT** a Supabase key - it's a key you generate yourself to secure the MCP server HTTP endpoint.
249
-
250
- - **Auto-generated**: If not set, the script will auto-generate a secure random key (shown in console)
251
- - **Recommended**: Copy the auto-generated key to your `.env` file to persist it across restarts
252
- - **Manual generation**: Run `node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"` to generate a 64-character hex string
253
- - **Purpose**: Authenticates requests to the MCP server HTTP endpoint (prevents unauthorized access)
254
-
255
- **Example:**
256
- ```env
257
- MCP_API_KEY=5b32a7c681704fdef16dcfd018e86660bf2a79dc7f7551a987cb94bb0a72eda1
258
- ```
259
-
260
- **Note**: The script will show you the auto-generated key when you first run it - just copy it to your `.env` file.
261
-
262
- **IPv4/IPv6 Note**: See [SUPABASE_IPV4_EXPLANATION.md](./DATABASE.md) for network compatibility info.
263
-
264
- ---
265
-
266
- ## Next.js DevTools MCP
267
-
268
- The Next.js DevTools MCP provides runtime diagnostics, automated upgrades, and intelligent error fixing for Next.js 16+ applications.
269
-
270
- ### Prerequisites
271
-
272
- - Next.js 16.0.0 or higher
273
- - Development server running
274
- - MCP server configured in Cursor
275
-
276
- ### How It Works
277
-
278
- **Important**: MCP servers in Cursor are **automatically managed**. You don't need to manually start them!
279
-
280
- 1. **Cursor reads** `.cursor/mcp-config.json` at startup
281
- 2. **Cursor starts** MCP servers automatically when needed
282
- 3. **You use them** through Cursor's AI chat - no manual commands needed
283
-
284
- ### Integration with Your CMS App
285
-
286
- Your CMS app (`apps/cms`) is perfectly configured for Next.js DevTools MCP:
287
-
288
- ```json
289
- {
290
- "next": "16.1.1", // Next.js 16+ required
291
- "dev": "next dev --turbo --port 4000" // Standard port
292
- }
293
- ```
294
-
295
- ### MCP Endpoint
296
-
297
- Next.js 16 automatically exposes an MCP endpoint:
298
- - **URL:** `http://localhost:4000/_next/mcp`
299
- - **Available when:** Dev server is running
300
- - **Authentication:** None (localhost only)
301
-
302
- ### Integration Flow
303
-
304
- ```
305
- Cursor AI
306
-
307
- Next.js DevTools MCP Server (mcp-next-devtools.ts)
308
-
309
- nextjs_index / nextjs_call tools
310
-
311
- HTTP Request to http://localhost:4000/_next/mcp
312
-
313
- Next.js 16 Dev Server (built-in MCP endpoint)
314
-
315
- Returns: Errors, Routes, Logs, etc.
316
-
317
- MCP Server formats response
318
-
319
- Cursor displays results
320
- ```
321
-
322
- ### Available Tools (via MCP)
323
-
324
- When your dev server is running, you can use these tools:
325
-
326
- 1. **get_errors** - Real-time error reporting
327
- 2. **get_routes** - Route discovery and metadata
328
- 3. **get_logs** - Development server logs
329
- 4. **get_server_actions** - Server Action discovery
330
- 5. **get_component_tree** - Component hierarchy
331
- 6. **get_build_info** - Build configuration and status
332
-
333
- ### Features
334
-
335
- #### 1. Auto-Discovery
336
-
337
- Automatically scans common ports (3000, 3001, 4000, 5000, etc.) for running Next.js 16+ dev servers.
338
-
339
- **Ask in Cursor:**
340
- ```
341
- Next Devtools, what servers are running?
342
- ```
343
-
344
- **Returns:**
345
- - Server port, PID, URL, version
346
- - Available diagnostic tools
347
- - Framework metadata (Turbopack, App Directory, etc.)
348
-
349
- **Key Point:** Zero configuration - it automatically finds your CMS app!
350
-
351
- #### 2. Runtime Diagnostics
352
-
353
- **Query Build/Runtime Errors:**
354
- ```
355
- Next Devtools, what errors are in my Next.js app?
356
- ```
357
-
358
- Returns real-time error information including:
359
- - TypeScript errors
360
- - Module resolution errors
361
- - Runtime warnings
362
- - Error location (file, line, column)
363
- - Error category and severity
364
-
365
- **View Application Routes:**
366
- ```
367
- Next Devtools, show me my application routes
368
- ```
369
-
370
- Returns complete route structure:
371
- - All pages, API routes, and dynamic segments
372
- - Route metadata and configurations
373
- - Layout information
374
- - Catch-all routes
375
-
376
- **Check Dev Server Logs:**
377
- ```
378
- Next Devtools, what's in the dev server logs?
379
- ```
380
-
381
- Returns recent development server output:
382
- - Build messages
383
- - Hot reload events
384
- - Compilation warnings
385
- - Error messages with timestamps
386
-
387
- #### 3. Upgrade Automation
388
-
389
- **Upgrade to Next.js 16:**
390
- ```
391
- Next Devtools, help me upgrade to Next.js 16
392
- ```
393
-
394
- Automated upgrade process:
395
- - Checks current Next.js version
396
- - Runs official Next.js codemod automatically
397
- - Updates async APIs (params, searchParams, cookies, headers)
398
- - Migrates configuration changes
399
- - Fixes deprecated features
400
- - Provides step-by-step guidance
401
-
402
- #### 4. Cache Components Setup
403
-
404
- **Enable Cache Components:**
405
- ```
406
- Next Devtools, enable Cache Components in my Next.js 16 app
407
- ```
408
-
409
- Complete automated setup:
410
- - Pre-flight compatibility checks
411
- - Enables Cache Components configuration
412
- - Starts dev server with MCP enabled
413
- - Automated route verification
414
- - Intelligent error detection and fixing:
415
- - Suspense boundary setup
416
- - Caching directive placement
417
- - Static params configuration
418
- - Final verification and build testing
419
-
420
- **Key Point:** Complete automation - detects issues, fixes them, verifies everything works!
421
-
422
- ---
423
-
424
- ## Configuration
425
-
426
- ### Cursor IDE
427
-
428
- MCP servers are configured in `.cursor/mcp-config.json`:
429
-
430
- ```json
431
- {
432
- "mcpServers": {
433
- "vercel": {
434
- "command": "pnpm",
435
- "args": ["mcp:vercel"],
436
- "env": {
437
- "VERCEL_API_KEY": "${VERCEL_API_KEY}"
438
- }
439
- },
440
- "stripe": {
441
- "command": "pnpm",
442
- "args": ["mcp:stripe"],
443
- "env": {
444
- "STRIPE_SECRET_KEY": "${STRIPE_SECRET_KEY}"
445
- }
446
- },
447
- "neon": {
448
- "command": "pnpm",
449
- "args": ["mcp:neon"],
450
- "env": {
451
- "NEON_API_KEY": "${NEON_API_KEY}"
452
- }
453
- },
454
- "supabase": {
455
- "command": "pnpm",
456
- "args": ["mcp:supabase"],
457
- "env": {
458
- "SUPABASE_URL": "${SUPABASE_URL}",
459
- "SUPABASE_ANON_KEY": "${SUPABASE_ANON_KEY}"
460
- }
461
- },
462
- "playwright": {
463
- "command": "pnpm",
464
- "args": ["mcp:playwright"]
465
- },
466
- "next-devtools": {
467
- "command": "pnpm",
468
- "args": ["mcp:next-devtools"],
469
- "env": {
470
- "NEXT_TELEMETRY_DISABLED": "${NEXT_TELEMETRY_DISABLED:-0}"
471
- }
472
- }
473
- }
474
- }
475
- ```
476
-
477
- **Note:** Restart Cursor after configuration changes.
478
-
479
- ---
480
-
481
- ## Usage Examples
482
-
483
- ### Example 1: Debug Build Errors
484
-
485
- ```
486
- You: "Next Devtools, what errors are in my Next.js app?"
487
-
488
- MCP: Discovers server → Calls get_errors → Returns errors
489
-
490
- You: "Show me the error in populateArchiveBlock.ts"
491
-
492
- MCP: Provides detailed error info with file location
493
- ```
494
-
495
- ### Example 2: Understand Application Structure
496
-
497
- ```
498
- You: "Next Devtools, show me my application routes"
499
-
500
- MCP: Discovers server → Calls get_routes → Returns route list
501
-
502
- You: "What pages use dynamic segments?"
503
-
504
- MCP: Filters routes and shows dynamic segment usage
505
- ```
506
-
507
- ### Example 3: Enable Cache Components
508
-
509
- ```
510
- You: "Next Devtools, enable Cache Components"
511
-
512
- MCP: Runs enable_cache_components tool:
513
- 1. Checks compatibility
514
- 2. Updates config
515
- 3. Runs dev server
516
- 4. Detects errors
517
- 5. Auto-fixes issues
518
- 6. Verifies success
519
- ```
520
-
521
- ### Example 4: Using Next.js DevTools MCP
522
-
523
- To use the Next.js DevTools MCP effectively:
524
-
525
- **Step 1: Start Your CMS Dev Server**
526
- ```bash
527
- cd apps/cms
528
- pnpm dev
529
- ```
530
-
531
- **Step 2: Start Next.js DevTools MCP Server (Optional)**
532
- ```bash
533
- # In another terminal
534
- pnpm mcp:next-devtools
535
-
536
- # Or start all MCP servers
537
- pnpm mcp:all
538
- ```
539
-
540
- **Note:** Cursor manages MCP servers automatically, so manual startup is only for testing.
541
-
542
- **Step 3: Try These Commands in Cursor**
543
-
544
- **Auto-Discovery:**
545
- ```
546
- Next Devtools, what servers are running?
547
- ```
548
- Shows all Next.js 16+ dev servers with their ports, tools, and metadata.
549
-
550
- **Runtime Diagnostics - Errors:**
551
- ```
552
- Next Devtools, what errors are in my Next.js app?
553
- ```
554
- Shows real-time build and runtime errors from your CMS app.
555
-
556
- **Runtime Diagnostics - Routes:**
557
- ```
558
- Next Devtools, show me my application routes
559
- ```
560
- Shows all routes, pages, API endpoints, and dynamic segments.
561
-
562
- **Runtime Diagnostics - Logs:**
563
- ```
564
- Next Devtools, what's in the dev server logs?
565
- ```
566
- Shows recent development server output and messages.
567
-
568
- **Upgrade Automation:**
569
- ```
570
- Next Devtools, help me upgrade to Next.js 16
571
- ```
572
- Automated upgrade with codemods (confirms if already on 16.1.1).
573
-
574
- **Cache Components Setup:**
575
- ```
576
- Next Devtools, enable Cache Components in my Next.js 16 app
577
- ```
578
- Complete automated setup with error detection and fixing.
579
-
580
- ---
581
-
582
- ## Troubleshooting
583
-
584
- ### "Missing API key" Error
585
-
586
- **Solution:** Ensure your `.env` file has the required environment variables:
587
- - Check file location: `<your-project-root>/.env`
588
- - Verify variable names match exactly (case-sensitive)
589
- - Restart the MCP server after adding variables
590
-
591
- ### "Connection refused" Error
592
-
593
- **Solution:**
594
- - Ensure MCP servers are running: `pnpm mcp:all`
595
- - Check if port conflicts exist
596
- - Verify Cursor has restarted after configuration
597
-
598
- ### "Command not found" Error
599
-
600
- **Solution:**
601
- - Run `pnpm install` to install dependencies
602
- - Verify scripts exist in `package.json`
603
- - Check Node.js version (requires Node 18+)
604
-
605
- ### Vercel MCP Silent Failure
606
-
607
- **Solution:**
608
- - Verify `vercel-mcp` package is installed: `ls node_modules/vercel-mcp`
609
- - Check API key format (should start with `vercel_`)
610
- - Test manually: `node node_modules/vercel-mcp/build/index.js VERCEL_API_KEY=test`
611
-
612
- ### Playwright Download Issues
613
-
614
- **Solution:**
615
- - First run downloads ~300MB of browser binaries (be patient)
616
- - Check internet connection
617
- - Verify disk space available
618
- - Run manually: `pnpm dlx @executeautomation/playwright-mcp-server`
619
-
620
- ### Next.js DevTools: MCP Server Can't Find Dev Server
621
-
622
- **Problem:** `No server info found`
623
-
624
- **Solutions:**
625
- 1. Ensure dev server is running: `cd apps/cms && pnpm dev`
626
- 2. Check port 4000 is accessible: `curl http://localhost:4000`
627
- 3. Verify Next.js version is 16+: Check `package.json`
628
-
629
- ### Next.js DevTools: MCP Endpoint Not Available
630
-
631
- **Problem:** Cannot connect to `/_next/mcp`
632
-
633
- **Solutions:**
634
- 1. Dev server must be running
635
- 2. Next.js must be 16.0.0 or higher
636
- 3. Check browser console for errors
637
- 4. Try: `curl http://localhost:4000/_next/mcp`
638
-
639
- ### Next.js DevTools: Tools Not Available
640
-
641
- **Problem:** `nextjs_call` returns empty tools list
642
-
643
- **Solutions:**
644
- 1. Restart dev server
645
- 2. Check Next.js version compatibility
646
- 3. Verify MCP endpoint is responding
647
- 4. Check dev server logs for errors
648
-
649
- ### Next.js DevTools: MCP Not Working in Cursor
650
-
651
- **Solutions:**
652
- 1. **Restart Cursor** - MCP servers load at startup
653
- 2. **Check config file exists**: `.cursor/mcp-config.json`
654
- 3. **Verify package installed**: `pnpm list next-devtools-mcp`
655
-
656
- ### Next.js DevTools: Server Won't Start Manually
657
-
658
- If you want to test manually:
659
- ```bash
660
- # Check if script works
661
- pnpm mcp:next-devtools
662
-
663
- # Should start MCP server (will run until stopped)
664
- ```
665
-
666
- ---
667
-
668
- ## Testing
669
-
670
- ### Test Individual Servers
671
-
672
- ```bash
673
- # Test each server (will timeout after 3 seconds - this is normal)
674
- timeout 3 pnpm mcp:vercel # Should show "Starting Vercel MCP Server..."
675
- timeout 3 pnpm mcp:stripe # Should show "Starting Stripe MCP Server..."
676
- timeout 3 pnpm mcp:neon # Will fail if NEON_API_KEY not set
677
- timeout 3 pnpm mcp:supabase # Will fail if SUPABASE_URL not set
678
- timeout 3 pnpm mcp:playwright # Should show "Starting Playwright MCP Server..."
679
- timeout 3 pnpm mcp:next-devtools # Should show "Starting Next.js DevTools MCP..."
680
- ```
681
-
682
- ### Verify All Servers Start
683
-
684
- ```bash
685
- # Start all servers (Ctrl+C to stop)
686
- pnpm mcp:all
687
-
688
- # Expected output:
689
- # [0] ✅ Vercel MCP Server running
690
- # [1] ✅ Stripe MCP Server running
691
- # [2] ⚠️ NeonDB MCP: Missing NEON_API_KEY
692
- # [3] ⚠️ Supabase MCP: Missing SUPABASE_URL
693
- # [4] ✅ Playwright MCP Server running
694
- # [5] ✅ Next.js DevTools MCP Server running
695
- ```
696
-
697
- ### Next.js DevTools Verification
698
-
699
- Use this checklist to verify everything is working:
700
-
701
- - [ ] CMS dev server running (`cd apps/cms && pnpm dev`)
702
- - [ ] Next.js DevTools MCP running (`pnpm mcp:next-devtools`)
703
- - [ ] MCP endpoint accessible (`curl http://localhost:4000/_next/mcp`)
704
- - [ ] Can discover servers (ask: "what servers are running?")
705
- - [ ] Can query errors (ask: "what errors are in my app?")
706
- - [ ] Can view routes (ask: "show me my routes")
707
-
708
- ---
709
-
710
- ## Project Conventions
711
-
712
- ### Script Execution
713
-
714
- All MCP scripts use:
715
- - ✅ `pnpm dlx` instead of `npx` (project requirement)
716
- - ✅ `tsx` for TypeScript execution
717
- - ✅ `dotenv` for environment variable loading
718
- - ✅ Proper error handling and signal management
719
-
720
- ### File Locations
721
-
722
- - **Scripts**: `scripts/mcp-*.ts`
723
- - **Config**: `.cursor/mcp-config.json`
724
- - **Environment**: `.env` (project root)
725
- - **Documentation**: `docs/mcp/MCP.md`
726
-
727
- ---
728
-
729
- ## Cost
730
-
731
- All MCP servers are **completely free**:
732
- - ✅ No subscription fees
733
- - ✅ No usage-based pricing
734
- - ✅ Only your existing service API usage costs apply
735
- - ⚠️ Playwright downloads browser binaries (~300MB) on first run
736
-
737
- ---
738
-
739
- ## Current Status
740
-
741
- | Server | Status | Package | Env Required |
742
- |--------|--------|---------|--------------|
743
- | Vercel | ✅ Working | `vercel-mcp@0.0.7` | `VERCEL_API_KEY` |
744
- | Stripe | ✅ Working | `@stripe/mcp@0.1.4` | `STRIPE_SECRET_KEY` |
745
- | NeonDB | ⚠️ Needs API Key | `@neondatabase/mcp-server-neon@0.6.5` | `NEON_API_KEY` |
746
- | Supabase | ⚠️ Needs Credentials | `supabase-mcp@1.5.0` | `SUPABASE_URL`, `SUPABASE_ANON_KEY` |
747
- | Playwright | ✅ Working | `@executeautomation/playwright-mcp-server@1.0.12` | None |
748
- | Next.js DevTools | ✅ Working | `next-devtools-mcp@0.3.9` | None (requires Next.js 16+) |
749
-
750
- ---
751
-
752
- ## Related Documentation
753
-
754
- - [MCP Fixes 2025](./MCP_FIXES_2025.md) - Recent MCP updates and fixes
755
- - [Next.js DevTools Demo](./NEXTJS_DEVTOOLS_MCP_DEMO.md) - Demo and examples
756
- - [MCP Demo Interaction](./demo-mcp-interaction.md) - Interaction examples
757
- - [Neon API Key Setup](./ENVIRONMENT_VARIABLES_GUIDE.md) - Detailed Neon setup
758
- - [Supabase IPv4/IPv6](./DATABASE.md) - Network compatibility
759
- - [Environment Variables Guide](./ENVIRONMENT_VARIABLES_GUIDE.md) - Configuration
760
- - [Master Index](../INDEX.md) - Complete documentation index
761
-
762
- ---
763
-
764
- ## External Resources
765
-
766
- - [Next.js DevTools MCP GitHub](https://github.com/vercel/next-devtools-mcp)
767
- - [Next.js 16 MCP Documentation](https://nextjs.org/docs)
768
- - [Model Context Protocol Spec](https://modelcontextprotocol.io)
769
- - [Supabase API Key Changes Discussion](https://github.com/orgs/supabase/discussions/29260)
770
-
771
- ---
772
-
773
- **Last Updated:** January 2025
774
- **Maintained by:** RevealUI Team