@lovie-ai/formation-mcp-server 1.0.18 → 1.0.20

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 (43) hide show
  1. package/dist/mcp/middleware/session.d.ts.map +1 -1
  2. package/dist/mcp/middleware/session.js +7 -1
  3. package/dist/mcp/middleware/session.js.map +1 -1
  4. package/dist/mcp/resources/index.d.ts.map +1 -1
  5. package/dist/mcp/resources/index.js +95 -0
  6. package/dist/mcp/resources/index.js.map +1 -1
  7. package/dist/mcp/state/FormationSessionStore.d.ts +1 -1
  8. package/dist/mcp/state/FormationSessionStore.d.ts.map +1 -1
  9. package/dist/mcp/state/FormationSessionStore.js +2 -1
  10. package/dist/mcp/state/FormationSessionStore.js.map +1 -1
  11. package/dist/mcp/state/types.d.ts +43 -4
  12. package/dist/mcp/state/types.d.ts.map +1 -1
  13. package/dist/mcp/state/types.js +26 -4
  14. package/dist/mcp/state/types.js.map +1 -1
  15. package/dist/mcp/tools/auth.d.ts +1 -0
  16. package/dist/mcp/tools/auth.d.ts.map +1 -1
  17. package/dist/mcp/tools/auth.js +26 -11
  18. package/dist/mcp/tools/auth.js.map +1 -1
  19. package/dist/mcp/tools/certificate.d.ts.map +1 -1
  20. package/dist/mcp/tools/certificate.js +7 -14
  21. package/dist/mcp/tools/certificate.js.map +1 -1
  22. package/dist/mcp/tools/company.d.ts +1 -0
  23. package/dist/mcp/tools/company.d.ts.map +1 -1
  24. package/dist/mcp/tools/company.js +231 -19
  25. package/dist/mcp/tools/company.js.map +1 -1
  26. package/dist/mcp/tools/index.d.ts.map +1 -1
  27. package/dist/mcp/tools/index.js +2 -0
  28. package/dist/mcp/tools/index.js.map +1 -1
  29. package/dist/mcp/tools/info.d.ts.map +1 -1
  30. package/dist/mcp/tools/info.js +3 -2
  31. package/dist/mcp/tools/info.js.map +1 -1
  32. package/dist/mcp/tools/session.d.ts +1 -0
  33. package/dist/mcp/tools/session.d.ts.map +1 -1
  34. package/dist/mcp/tools/session.js +102 -8
  35. package/dist/mcp/tools/session.js.map +1 -1
  36. package/dist/mcp/tools/stakeholders.d.ts.map +1 -1
  37. package/dist/mcp/tools/stakeholders.js +57 -16
  38. package/dist/mcp/tools/stakeholders.js.map +1 -1
  39. package/dist/mcp/tools/submission.d.ts +5 -0
  40. package/dist/mcp/tools/submission.d.ts.map +1 -0
  41. package/dist/mcp/tools/submission.js +276 -0
  42. package/dist/mcp/tools/submission.js.map +1 -0
  43. package/package.json +1 -1
@@ -0,0 +1,276 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formationCheckSubmissionStatusTool = exports.formationSubmitTool = void 0;
4
+ exports.registerSubmissionTools = registerSubmissionTools;
5
+ const index_1 = require("./index");
6
+ const types_1 = require("../state/types");
7
+ const session_1 = require("../middleware/session");
8
+ const errors_1 = require("../errors");
9
+ // Backend API base URL
10
+ const API_BASE_URL = 'https://lovie-formation-agent-api-production.up.railway.app';
11
+ // formation_submit tool
12
+ exports.formationSubmitTool = {
13
+ name: 'formation_submit',
14
+ description: 'Submit the completed formation request to the backend for processing. This sends all collected data to the Lovie Formation API. Call this after all information has been collected and the certificate has been approved.',
15
+ inputSchema: {
16
+ type: 'object',
17
+ properties: {
18
+ sessionId: { type: 'string', description: 'Session ID from formation_start' },
19
+ },
20
+ required: ['sessionId'],
21
+ },
22
+ };
23
+ const handleFormationSubmit = async (args, store) => {
24
+ const sessionId = args.sessionId;
25
+ const session = await (0, session_1.loadSession)(sessionId, store);
26
+ // Validate session has all required data
27
+ if (!session.userId) {
28
+ throw (0, errors_1.validationError)('userId', 'User must be authenticated before submitting');
29
+ }
30
+ if (!session.companyDetails?.fullName) {
31
+ throw (0, errors_1.validationError)('companyDetails.name', 'Company name is required');
32
+ }
33
+ if (!session.companyDetails?.state) {
34
+ throw (0, errors_1.validationError)('companyDetails.state', 'State is required');
35
+ }
36
+ if (!session.companyDetails?.companyType) {
37
+ throw (0, errors_1.validationError)('companyDetails.entityType', 'Company type is required');
38
+ }
39
+ if (!session.companyDetails?.companyAddress) {
40
+ throw (0, errors_1.validationError)('companyDetails.companyAddress', 'Company address is required');
41
+ }
42
+ if (!session.shareholders || session.shareholders.length === 0) {
43
+ throw (0, errors_1.validationError)('shareholders', 'At least one shareholder/member is required');
44
+ }
45
+ if (!session.registeredAgent) {
46
+ throw (0, errors_1.validationError)('registeredAgent', 'Registered agent is required');
47
+ }
48
+ if (!session.authorizedParty) {
49
+ throw (0, errors_1.validationError)('authorizedParty', 'Authorized party is required');
50
+ }
51
+ // Validate ownership percentages sum to 100
52
+ const totalOwnership = session.shareholders.reduce((sum, s) => sum + s.ownershipPercentage, 0);
53
+ if (Math.abs(totalOwnership - 100) > 0.01) {
54
+ throw (0, errors_1.validationError)('shareholders', `Shareholder ownership must sum to 100% (currently ${totalOwnership}%)`);
55
+ }
56
+ // Build the submission payload matching the API spec
57
+ const payload = {
58
+ sessionId: session.sessionId,
59
+ userId: session.userId,
60
+ companyDetails: {
61
+ businessDescription: session.companyDetails.businessDescription,
62
+ name: session.companyDetails.fullName,
63
+ state: session.companyDetails.state,
64
+ entityType: session.companyDetails.companyType,
65
+ purpose: session.companyDetails.purpose || 'Any lawful purpose',
66
+ effectiveDate: session.companyDetails.effectiveDate,
67
+ companyAddress: session.companyDetails.companyAddress,
68
+ },
69
+ // Include incorporator for Delaware formations
70
+ incorporator: session.incorporator ? {
71
+ name: session.incorporator.name,
72
+ address: session.incorporator.address,
73
+ } : undefined,
74
+ shareStructure: session.companyDetails.companyType === 'C-Corp' && session.shareStructure
75
+ ? {
76
+ authorizedShares: session.shareStructure.authorizedShares,
77
+ parValuePerShare: session.shareStructure.parValuePerShare,
78
+ isDefault: session.shareStructure.isDefault,
79
+ }
80
+ : undefined,
81
+ shareholders: session.shareholders.map(s => ({
82
+ firstName: s.firstName,
83
+ lastName: s.lastName,
84
+ email: s.email,
85
+ phone: s.phone,
86
+ ownershipPercentage: s.ownershipPercentage,
87
+ role: s.role,
88
+ address: s.address,
89
+ })),
90
+ registeredAgent: {
91
+ name: session.registeredAgent.name,
92
+ email: session.registeredAgent.email,
93
+ phone: session.registeredAgent.phone,
94
+ isDefault: session.registeredAgent.isDefault,
95
+ address: session.registeredAgent.address,
96
+ },
97
+ authorizedParty: session.authorizedParty,
98
+ };
99
+ try {
100
+ const response = await fetch(`${API_BASE_URL}/api/submissions/formation`, {
101
+ method: 'POST',
102
+ headers: {
103
+ 'Content-Type': 'application/json',
104
+ },
105
+ body: JSON.stringify(payload),
106
+ });
107
+ const result = await response.json();
108
+ if (!response.ok) {
109
+ // Handle API errors
110
+ if (response.status === 409) {
111
+ return {
112
+ success: false,
113
+ error: 'ALREADY_SUBMITTED',
114
+ message: result.message || 'Formation request already submitted',
115
+ sessionId,
116
+ };
117
+ }
118
+ if (response.status === 400 || response.status === 422) {
119
+ return {
120
+ success: false,
121
+ error: 'VALIDATION_ERROR',
122
+ message: result.message || 'Validation failed',
123
+ details: result.details,
124
+ };
125
+ }
126
+ throw new Error(result.message || 'Failed to submit formation request');
127
+ }
128
+ if (!result.data) {
129
+ throw new Error('Invalid response from server');
130
+ }
131
+ // Store submission result in session
132
+ const submissionResult = {
133
+ id: result.data.id,
134
+ sessionId: result.data.sessionId,
135
+ userId: result.data.userId,
136
+ status: result.data.status,
137
+ companyName: result.data.companyName,
138
+ entityType: result.data.entityType,
139
+ stateOfFormation: result.data.state,
140
+ submittedAt: result.data.createdAt,
141
+ };
142
+ session.submissionResult = submissionResult;
143
+ session.currentStep = types_1.FormationStep.COMPLETED;
144
+ await store.save(session);
145
+ return {
146
+ success: true,
147
+ message: 'Formation request submitted successfully! Our team will review and process your request.',
148
+ submission: submissionResult,
149
+ nextSteps: [
150
+ 'Your formation request is now in the queue for review',
151
+ 'You can check the status anytime using formation_check_submission_status',
152
+ 'Once filed, you will receive your confirmation number and certificate URL',
153
+ ],
154
+ };
155
+ }
156
+ catch (error) {
157
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
158
+ return {
159
+ success: false,
160
+ error: 'SUBMISSION_FAILED',
161
+ message: `Failed to submit formation request: ${errorMessage}`,
162
+ canRetry: true,
163
+ };
164
+ }
165
+ };
166
+ // formation_check_status tool (for checking submission status with backend)
167
+ exports.formationCheckSubmissionStatusTool = {
168
+ name: 'formation_check_submission_status',
169
+ description: 'Check the status of a submitted formation request with the backend. Returns the current status, confirmation number (if filed), and certificate URL (if available).',
170
+ inputSchema: {
171
+ type: 'object',
172
+ properties: {
173
+ sessionId: { type: 'string', description: 'Session ID from formation_start' },
174
+ },
175
+ required: ['sessionId'],
176
+ },
177
+ };
178
+ const handleFormationCheckSubmissionStatus = async (args, store) => {
179
+ const sessionId = args.sessionId;
180
+ try {
181
+ const response = await fetch(`${API_BASE_URL}/api/submissions/status/${sessionId}`, {
182
+ method: 'GET',
183
+ headers: {
184
+ 'Content-Type': 'application/json',
185
+ },
186
+ });
187
+ const result = await response.json();
188
+ if (!response.ok) {
189
+ if (response.status === 404) {
190
+ return {
191
+ success: false,
192
+ error: 'NOT_FOUND',
193
+ message: 'Formation request not found. It may not have been submitted yet.',
194
+ sessionId,
195
+ };
196
+ }
197
+ throw new Error(result.message || 'Failed to check status');
198
+ }
199
+ if (!result.data) {
200
+ throw new Error('Invalid response from server');
201
+ }
202
+ const data = result.data;
203
+ // Update session with latest status if we have it
204
+ try {
205
+ const session = await store.get(sessionId);
206
+ if (session) {
207
+ session.submissionResult = {
208
+ id: data.id,
209
+ sessionId: data.sessionId,
210
+ userId: session.userId || '',
211
+ status: data.status,
212
+ companyName: data.companyName,
213
+ entityType: data.entityType,
214
+ stateOfFormation: data.stateOfFormation,
215
+ confirmationNumber: data.confirmationNumber,
216
+ certificateUrl: data.certificateUrl,
217
+ filingError: data.filingError,
218
+ submittedAt: data.createdAt,
219
+ filedAt: data.filedAt,
220
+ };
221
+ await store.save(session);
222
+ }
223
+ }
224
+ catch {
225
+ // Session may not exist locally, that's okay
226
+ }
227
+ // Build user-friendly status message
228
+ let statusMessage;
229
+ switch (data.status) {
230
+ case 'PENDING_REVIEW':
231
+ statusMessage = 'Your formation request is in the queue waiting for review.';
232
+ break;
233
+ case 'IN_REVIEW':
234
+ statusMessage = 'Your formation request is currently being reviewed by our team.';
235
+ break;
236
+ case 'FILING':
237
+ statusMessage = 'Your formation is being filed with the state. This typically takes a few minutes.';
238
+ break;
239
+ case 'COMPLETED':
240
+ statusMessage = 'Your company has been successfully formed!';
241
+ break;
242
+ case 'ERROR':
243
+ statusMessage = `There was an issue with your formation: ${data.filingError || 'Unknown error'}`;
244
+ break;
245
+ default:
246
+ statusMessage = `Current status: ${data.status}`;
247
+ }
248
+ return {
249
+ success: true,
250
+ status: data.status,
251
+ statusMessage,
252
+ companyName: data.companyName,
253
+ entityType: data.entityType,
254
+ state: data.stateOfFormation,
255
+ confirmationNumber: data.confirmationNumber,
256
+ certificateUrl: data.certificateUrl,
257
+ filingError: data.filingError,
258
+ submittedAt: data.createdAt,
259
+ filedAt: data.filedAt,
260
+ };
261
+ }
262
+ catch (error) {
263
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
264
+ return {
265
+ success: false,
266
+ error: 'CHECK_STATUS_FAILED',
267
+ message: `Failed to check status: ${errorMessage}`,
268
+ };
269
+ }
270
+ };
271
+ // Register tools
272
+ function registerSubmissionTools() {
273
+ (0, index_1.registerTool)(exports.formationSubmitTool, handleFormationSubmit);
274
+ (0, index_1.registerTool)(exports.formationCheckSubmissionStatusTool, handleFormationCheckSubmissionStatus);
275
+ }
276
+ //# sourceMappingURL=submission.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submission.js","sourceRoot":"","sources":["../../../src/mcp/tools/submission.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lovie-ai/formation-mcp-server",
3
- "version": "1.0.18",
3
+ "version": "1.0.20",
4
4
  "description": "MCP server for company formation - Form your US company via Claude",
5
5
  "main": "dist/mcp/index.js",
6
6
  "bin": {