@visualprd/mcp-server 1.1.0

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 (58) hide show
  1. package/README.md +396 -0
  2. package/dist/cli.d.ts +9 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +27 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/index.d.ts +20 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +243 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/intelligence/context-optimizer.d.ts +93 -0
  11. package/dist/intelligence/context-optimizer.d.ts.map +1 -0
  12. package/dist/intelligence/context-optimizer.js +481 -0
  13. package/dist/intelligence/context-optimizer.js.map +1 -0
  14. package/dist/intelligence/error-analyzer.d.ts +49 -0
  15. package/dist/intelligence/error-analyzer.d.ts.map +1 -0
  16. package/dist/intelligence/error-analyzer.js +765 -0
  17. package/dist/intelligence/error-analyzer.js.map +1 -0
  18. package/dist/intelligence/gap-filler.d.ts +56 -0
  19. package/dist/intelligence/gap-filler.d.ts.map +1 -0
  20. package/dist/intelligence/gap-filler.js +410 -0
  21. package/dist/intelligence/gap-filler.js.map +1 -0
  22. package/dist/intelligence/guidance-generator.d.ts +43 -0
  23. package/dist/intelligence/guidance-generator.d.ts.map +1 -0
  24. package/dist/intelligence/guidance-generator.js +314 -0
  25. package/dist/intelligence/guidance-generator.js.map +1 -0
  26. package/dist/intelligence/index.d.ts +132 -0
  27. package/dist/intelligence/index.d.ts.map +1 -0
  28. package/dist/intelligence/index.js +683 -0
  29. package/dist/intelligence/index.js.map +1 -0
  30. package/dist/server-http.d.ts +9 -0
  31. package/dist/server-http.d.ts.map +1 -0
  32. package/dist/server-http.js +141 -0
  33. package/dist/server-http.js.map +1 -0
  34. package/dist/services/api-key-service.d.ts +68 -0
  35. package/dist/services/api-key-service.d.ts.map +1 -0
  36. package/dist/services/api-key-service.js +298 -0
  37. package/dist/services/api-key-service.js.map +1 -0
  38. package/dist/services/llm-client.d.ts +66 -0
  39. package/dist/services/llm-client.d.ts.map +1 -0
  40. package/dist/services/llm-client.js +141 -0
  41. package/dist/services/llm-client.js.map +1 -0
  42. package/dist/services/model-registry.d.ts +135 -0
  43. package/dist/services/model-registry.d.ts.map +1 -0
  44. package/dist/services/model-registry.js +276 -0
  45. package/dist/services/model-registry.js.map +1 -0
  46. package/dist/services/visualprd-client.d.ts +191 -0
  47. package/dist/services/visualprd-client.d.ts.map +1 -0
  48. package/dist/services/visualprd-client.js +805 -0
  49. package/dist/services/visualprd-client.js.map +1 -0
  50. package/dist/tools/index.d.ts +803 -0
  51. package/dist/tools/index.d.ts.map +1 -0
  52. package/dist/tools/index.js +570 -0
  53. package/dist/tools/index.js.map +1 -0
  54. package/dist/types/index.d.ts +497 -0
  55. package/dist/types/index.d.ts.map +1 -0
  56. package/dist/types/index.js +8 -0
  57. package/dist/types/index.js.map +1 -0
  58. package/package.json +48 -0
package/dist/index.js ADDED
@@ -0,0 +1,243 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * VisualPRD MCP Server
5
+ *
6
+ * Intelligent Model Context Protocol server for autonomous build orchestration
7
+ * between VisualPRD and AI coding agents (Cursor, Claude, etc.)
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.VisualPRDMCPServer = void 0;
11
+ const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
12
+ const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
13
+ const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
14
+ const visualprd_client_js_1 = require("./services/visualprd-client.js");
15
+ const index_js_2 = require("./intelligence/index.js");
16
+ const index_js_3 = require("./tools/index.js");
17
+ class VisualPRDMCPServer {
18
+ server;
19
+ client;
20
+ intelligence;
21
+ toolHandlers;
22
+ config;
23
+ constructor(config) {
24
+ this.config = config;
25
+ // Initialize services
26
+ this.client = new visualprd_client_js_1.VisualPRDClient(config);
27
+ this.intelligence = new index_js_2.IntelligenceLayer(this.client, config);
28
+ this.toolHandlers = new index_js_3.ToolHandlers(this.intelligence);
29
+ // Initialize MCP server
30
+ this.server = new index_js_1.Server({
31
+ name: 'visualprd-mcp',
32
+ version: '1.0.0',
33
+ }, {
34
+ capabilities: {
35
+ tools: {},
36
+ resources: {},
37
+ },
38
+ });
39
+ this.setupHandlers();
40
+ }
41
+ setupHandlers() {
42
+ // List available tools
43
+ this.server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
44
+ return {
45
+ tools: index_js_3.ToolDefinitions,
46
+ };
47
+ });
48
+ // Handle tool calls
49
+ this.server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
50
+ const { name, arguments: args } = request.params;
51
+ try {
52
+ console.error(`[MCP] Tool call: ${name}`);
53
+ const startTime = Date.now();
54
+ const result = await this.toolHandlers.handleToolCall(name, args || {});
55
+ const duration = Date.now() - startTime;
56
+ console.error(`[MCP] Tool ${name} completed in ${duration}ms`);
57
+ return {
58
+ content: [
59
+ {
60
+ type: 'text',
61
+ text: JSON.stringify(result, null, 2),
62
+ },
63
+ ],
64
+ };
65
+ }
66
+ catch (error) {
67
+ console.error(`[MCP] Tool ${name} error:`, error);
68
+ return {
69
+ content: [
70
+ {
71
+ type: 'text',
72
+ text: JSON.stringify({
73
+ error: true,
74
+ message: error.message || 'Unknown error',
75
+ tool: name,
76
+ }),
77
+ },
78
+ ],
79
+ isError: true,
80
+ };
81
+ }
82
+ });
83
+ // List available resources (project data)
84
+ this.server.setRequestHandler(types_js_1.ListResourcesRequestSchema, async () => {
85
+ return {
86
+ resources: [
87
+ {
88
+ uri: `visualprd://project/${this.config.projectId}`,
89
+ name: 'Project Data',
90
+ description: 'Full project data including pages, schemas, endpoints',
91
+ mimeType: 'application/json',
92
+ },
93
+ {
94
+ uri: `visualprd://project/${this.config.projectId}/build-prompts`,
95
+ name: 'Build Prompts',
96
+ description: 'All build prompts with completion status',
97
+ mimeType: 'application/json',
98
+ },
99
+ {
100
+ uri: `visualprd://project/${this.config.projectId}/design-system`,
101
+ name: 'Design System',
102
+ description: 'Design system specifications',
103
+ mimeType: 'application/json',
104
+ },
105
+ ],
106
+ };
107
+ });
108
+ // Read resources
109
+ this.server.setRequestHandler(types_js_1.ReadResourceRequestSchema, async (request) => {
110
+ const { uri } = request.params;
111
+ try {
112
+ const projectData = await this.client.loadProjectData();
113
+ if (uri.endsWith('/build-prompts')) {
114
+ return {
115
+ contents: [
116
+ {
117
+ uri,
118
+ mimeType: 'application/json',
119
+ text: JSON.stringify(projectData.buildPrompts, null, 2),
120
+ },
121
+ ],
122
+ };
123
+ }
124
+ if (uri.endsWith('/design-system')) {
125
+ return {
126
+ contents: [
127
+ {
128
+ uri,
129
+ mimeType: 'application/json',
130
+ text: JSON.stringify(projectData.designSystem || {}, null, 2),
131
+ },
132
+ ],
133
+ };
134
+ }
135
+ // Default: return full project data
136
+ return {
137
+ contents: [
138
+ {
139
+ uri,
140
+ mimeType: 'application/json',
141
+ text: JSON.stringify(projectData, null, 2),
142
+ },
143
+ ],
144
+ };
145
+ }
146
+ catch (error) {
147
+ throw new Error(`Failed to read resource: ${error.message}`);
148
+ }
149
+ });
150
+ }
151
+ async start() {
152
+ console.error('[MCP] Starting VisualPRD MCP Server...');
153
+ console.error(`[MCP] Project ID: ${this.config.projectId}`);
154
+ const transport = new stdio_js_1.StdioServerTransport();
155
+ await this.server.connect(transport);
156
+ console.error('[MCP] Server connected and ready');
157
+ }
158
+ }
159
+ exports.VisualPRDMCPServer = VisualPRDMCPServer;
160
+ // ============================================================================
161
+ // CLI ENTRY POINT
162
+ // ============================================================================
163
+ async function main() {
164
+ // Parse command line arguments
165
+ const args = process.argv.slice(2);
166
+ const config = {};
167
+ for (let i = 0; i < args.length; i++) {
168
+ const arg = args[i];
169
+ const nextArg = args[i + 1];
170
+ if (arg === '--project' || arg === '-p') {
171
+ config.projectId = nextArg;
172
+ i++;
173
+ }
174
+ else if (arg === '--api-key' || arg === '-k') {
175
+ config.apiKey = nextArg;
176
+ i++;
177
+ }
178
+ else if (arg === '--api-url' || arg === '-u') {
179
+ config.apiUrl = nextArg;
180
+ i++;
181
+ }
182
+ else if (arg === '--help' || arg === '-h') {
183
+ printHelp();
184
+ process.exit(0);
185
+ }
186
+ }
187
+ // Also check environment variables
188
+ config.projectId = config.projectId || process.env.VISUALPRD_PROJECT_ID;
189
+ config.apiKey = config.apiKey || process.env.VISUALPRD_API_KEY;
190
+ config.apiUrl = config.apiUrl || process.env.VISUALPRD_API_URL || 'https://api.visualprd.com';
191
+ // Validate required config
192
+ if (!config.projectId) {
193
+ console.error('Error: Project ID is required');
194
+ console.error('Use --project <id> or set VISUALPRD_PROJECT_ID environment variable');
195
+ printHelp();
196
+ process.exit(1);
197
+ }
198
+ // Start the server
199
+ const server = new VisualPRDMCPServer(config);
200
+ try {
201
+ await server.start();
202
+ }
203
+ catch (error) {
204
+ console.error('Failed to start MCP server:', error);
205
+ process.exit(1);
206
+ }
207
+ }
208
+ function printHelp() {
209
+ console.log(`
210
+ VisualPRD MCP Server - Intelligent Build Orchestration
211
+
212
+ Usage:
213
+ visualprd-mcp [options]
214
+
215
+ Options:
216
+ -p, --project <id> Project ID (required)
217
+ -k, --api-key <key> API key for authentication
218
+ -u, --api-url <url> API base URL (default: https://api.visualprd.com)
219
+ -h, --help Show this help message
220
+
221
+ Environment Variables:
222
+ VISUALPRD_PROJECT_ID Project ID
223
+ VISUALPRD_API_KEY API key
224
+ VISUALPRD_API_URL API base URL
225
+
226
+ Firebase credentials (for direct Firestore access):
227
+ FIREBASE_PROJECT_ID Firebase project ID
228
+ FIREBASE_PRIVATE_KEY Firebase service account private key
229
+ FIREBASE_CLIENT_EMAIL Firebase service account email
230
+
231
+ Example:
232
+ visualprd-mcp --project abc123xyz --api-key vprd_sk_xxx
233
+
234
+ Or with environment variables:
235
+ VISUALPRD_PROJECT_ID=abc123xyz visualprd-mcp
236
+ `);
237
+ }
238
+ // Run the server
239
+ main().catch((error) => {
240
+ console.error('Fatal error:', error);
241
+ process.exit(1);
242
+ });
243
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Context Optimizer
3
+ *
4
+ * Intelligently decides what context to provide to the AI agent
5
+ * based on the current task. Goal: Minimize tokens while maximizing usefulness.
6
+ */
7
+ import { BuildPrompt, ProjectData, PageEntity, SchemaEntity, EndpointEntity, TechStackEntity, DesignSystem } from '../types/index.js';
8
+ export interface OptimizedContext {
9
+ pages: PageEntity[];
10
+ schemas: SchemaEntity[];
11
+ endpoints: EndpointEntity[];
12
+ techStack: TechStackEntity[];
13
+ designSystem?: DesignSystem;
14
+ completedDependencies?: BuildPrompt[];
15
+ estimatedTokens: number;
16
+ }
17
+ export interface ContextRules {
18
+ includeDesignSystem: boolean;
19
+ includeFullSchemas: boolean;
20
+ includeFullEndpoints: boolean;
21
+ includeTechStack: boolean;
22
+ includeDependencies: boolean;
23
+ maxEntitiesPerType: number;
24
+ compressLargeEntities: boolean;
25
+ }
26
+ export declare class ContextOptimizer {
27
+ private readonly MAX_CONTEXT_TOKENS;
28
+ private readonly AVERAGE_CHARS_PER_TOKEN;
29
+ /**
30
+ * Optimize context for a specific build prompt
31
+ */
32
+ optimizeContext(prompt: BuildPrompt, projectData: ProjectData): Promise<OptimizedContext>;
33
+ /**
34
+ * Determine context rules based on prompt characteristics
35
+ */
36
+ private determineContextRules;
37
+ /**
38
+ * Include directly referenced entities from prompt
39
+ */
40
+ private includeReferencedEntities;
41
+ /**
42
+ * Include related schemas based on relationships
43
+ */
44
+ private includeRelatedSchemas;
45
+ /**
46
+ * Include related endpoints based on referenced schemas
47
+ */
48
+ private includeRelatedEndpoints;
49
+ /**
50
+ * Include relevant tech stack items
51
+ */
52
+ private includeRelevantTechStack;
53
+ /**
54
+ * Get completed dependency prompts
55
+ */
56
+ private getCompletedDependencies;
57
+ /**
58
+ * Compress context if it exceeds token limit
59
+ */
60
+ private compressIfNeeded;
61
+ /**
62
+ * Truncate long descriptions
63
+ */
64
+ private truncateEntityDescriptions;
65
+ /**
66
+ * Limit number of entities per type
67
+ */
68
+ private limitEntitiesPerType;
69
+ /**
70
+ * Remove non-essential fields from entities
71
+ */
72
+ private removeNonEssentialFields;
73
+ /**
74
+ * Create summaries of entities
75
+ */
76
+ private summarizeEntities;
77
+ /**
78
+ * Estimate token count for context
79
+ */
80
+ private estimateTokens;
81
+ private isUIPrompt;
82
+ private isDatabasePrompt;
83
+ private isIntegrationPrompt;
84
+ private isSetupPrompt;
85
+ private normalize;
86
+ private truncate;
87
+ private extractKeywords;
88
+ private findPage;
89
+ private findSchema;
90
+ private findEndpoint;
91
+ private findTechStack;
92
+ }
93
+ //# sourceMappingURL=context-optimizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-optimizer.d.ts","sourceRoot":"","sources":["../../src/intelligence/context-optimizer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,WAAW,EACX,WAAW,EACX,UAAU,EACV,YAAY,EACZ,cAAc,EACd,eAAe,EACf,YAAY,EAEb,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,qBAAqB,CAAC,EAAE,WAAW,EAAE,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAK;IAE7C;;OAEG;IACG,eAAe,CACnB,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,gBAAgB,CAAC;IAqD5B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAoE7B;;OAEG;YACW,yBAAyB;IA2CvC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA2B7B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA4B/B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAmChC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAahC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA4BxB;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAyBlC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAa5B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAoChC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA4BzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,eAAe;IAmCvB,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,aAAa;CAStB"}