@agllama/mcp 0.5.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 (107) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +248 -0
  3. package/dist/api-client.d.ts +120 -0
  4. package/dist/api-client.d.ts.map +1 -0
  5. package/dist/api-client.js +421 -0
  6. package/dist/api-client.js.map +1 -0
  7. package/dist/index.d.ts +3 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +18 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/server.d.ts +4 -0
  12. package/dist/server.d.ts.map +1 -0
  13. package/dist/server.js +673 -0
  14. package/dist/server.js.map +1 -0
  15. package/dist/tools/backlog.d.ts +22 -0
  16. package/dist/tools/backlog.d.ts.map +1 -0
  17. package/dist/tools/backlog.js +109 -0
  18. package/dist/tools/backlog.js.map +1 -0
  19. package/dist/tools/boardConfig.d.ts +77 -0
  20. package/dist/tools/boardConfig.d.ts.map +1 -0
  21. package/dist/tools/boardConfig.js +154 -0
  22. package/dist/tools/boardConfig.js.map +1 -0
  23. package/dist/tools/boardTemplates.d.ts +47 -0
  24. package/dist/tools/boardTemplates.d.ts.map +1 -0
  25. package/dist/tools/boardTemplates.js +119 -0
  26. package/dist/tools/boardTemplates.js.map +1 -0
  27. package/dist/tools/boards.d.ts +62 -0
  28. package/dist/tools/boards.d.ts.map +1 -0
  29. package/dist/tools/boards.js +260 -0
  30. package/dist/tools/boards.js.map +1 -0
  31. package/dist/tools/comments.d.ts +82 -0
  32. package/dist/tools/comments.d.ts.map +1 -0
  33. package/dist/tools/comments.js +275 -0
  34. package/dist/tools/comments.js.map +1 -0
  35. package/dist/tools/connect.d.ts +7 -0
  36. package/dist/tools/connect.d.ts.map +1 -0
  37. package/dist/tools/connect.js +50 -0
  38. package/dist/tools/connect.js.map +1 -0
  39. package/dist/tools/context.d.ts +19 -0
  40. package/dist/tools/context.d.ts.map +1 -0
  41. package/dist/tools/context.js +136 -0
  42. package/dist/tools/context.js.map +1 -0
  43. package/dist/tools/documents.d.ts +99 -0
  44. package/dist/tools/documents.d.ts.map +1 -0
  45. package/dist/tools/documents.js +252 -0
  46. package/dist/tools/documents.js.map +1 -0
  47. package/dist/tools/help.d.ts +13 -0
  48. package/dist/tools/help.d.ts.map +1 -0
  49. package/dist/tools/help.js +485 -0
  50. package/dist/tools/help.js.map +1 -0
  51. package/dist/tools/index.d.ts +21 -0
  52. package/dist/tools/index.d.ts.map +1 -0
  53. package/dist/tools/index.js +21 -0
  54. package/dist/tools/index.js.map +1 -0
  55. package/dist/tools/issueLinks.d.ts +45 -0
  56. package/dist/tools/issueLinks.d.ts.map +1 -0
  57. package/dist/tools/issueLinks.js +147 -0
  58. package/dist/tools/issueLinks.js.map +1 -0
  59. package/dist/tools/issues.d.ts +307 -0
  60. package/dist/tools/issues.d.ts.map +1 -0
  61. package/dist/tools/issues.js +715 -0
  62. package/dist/tools/issues.js.map +1 -0
  63. package/dist/tools/labels.d.ts +56 -0
  64. package/dist/tools/labels.d.ts.map +1 -0
  65. package/dist/tools/labels.js +213 -0
  66. package/dist/tools/labels.js.map +1 -0
  67. package/dist/tools/members.d.ts +13 -0
  68. package/dist/tools/members.d.ts.map +1 -0
  69. package/dist/tools/members.js +43 -0
  70. package/dist/tools/members.js.map +1 -0
  71. package/dist/tools/organizations.d.ts +35 -0
  72. package/dist/tools/organizations.d.ts.map +1 -0
  73. package/dist/tools/organizations.js +116 -0
  74. package/dist/tools/organizations.js.map +1 -0
  75. package/dist/tools/projects.d.ts +67 -0
  76. package/dist/tools/projects.d.ts.map +1 -0
  77. package/dist/tools/projects.js +165 -0
  78. package/dist/tools/projects.js.map +1 -0
  79. package/dist/tools/search.d.ts +34 -0
  80. package/dist/tools/search.d.ts.map +1 -0
  81. package/dist/tools/search.js +85 -0
  82. package/dist/tools/search.js.map +1 -0
  83. package/dist/tools/session.d.ts +38 -0
  84. package/dist/tools/session.d.ts.map +1 -0
  85. package/dist/tools/session.js +158 -0
  86. package/dist/tools/session.js.map +1 -0
  87. package/dist/tools/sprints.d.ts +141 -0
  88. package/dist/tools/sprints.d.ts.map +1 -0
  89. package/dist/tools/sprints.js +470 -0
  90. package/dist/tools/sprints.js.map +1 -0
  91. package/dist/tools/status.d.ts +22 -0
  92. package/dist/tools/status.d.ts.map +1 -0
  93. package/dist/tools/status.js +81 -0
  94. package/dist/tools/status.js.map +1 -0
  95. package/dist/tools/workflows.d.ts +137 -0
  96. package/dist/tools/workflows.d.ts.map +1 -0
  97. package/dist/tools/workflows.js +355 -0
  98. package/dist/tools/workflows.js.map +1 -0
  99. package/dist/types.d.ts +434 -0
  100. package/dist/types.d.ts.map +1 -0
  101. package/dist/types.js +5 -0
  102. package/dist/types.js.map +1 -0
  103. package/dist/utils/column-instructions.d.ts +21 -0
  104. package/dist/utils/column-instructions.d.ts.map +1 -0
  105. package/dist/utils/column-instructions.js +54 -0
  106. package/dist/utils/column-instructions.js.map +1 -0
  107. package/package.json +63 -0
@@ -0,0 +1,421 @@
1
+ export class LlamaApiError extends Error {
2
+ statusCode;
3
+ constructor(statusCode, message) {
4
+ super(message);
5
+ this.statusCode = statusCode;
6
+ this.name = 'LlamaApiError';
7
+ }
8
+ }
9
+ export class LlamaApiClient {
10
+ baseUrl;
11
+ apiKey;
12
+ constructor(baseUrl, apiKey) {
13
+ this.baseUrl = baseUrl.replace(/\/$/, ''); // Remove trailing slash
14
+ this.apiKey = apiKey;
15
+ }
16
+ async request(method, path, body) {
17
+ const url = `${this.baseUrl}${path}`;
18
+ const headers = {
19
+ 'X-API-Key': this.apiKey,
20
+ 'Content-Type': 'application/json',
21
+ };
22
+ const response = await fetch(url, {
23
+ method,
24
+ headers,
25
+ body: body ? JSON.stringify(body) : undefined,
26
+ });
27
+ // Handle 204 No Content responses (e.g., DELETE operations)
28
+ if (response.status === 204) {
29
+ return undefined;
30
+ }
31
+ const json = (await response.json());
32
+ if (!response.ok || !json.success) {
33
+ throw new LlamaApiError(response.status, json.error || `Request failed with status ${response.status}`);
34
+ }
35
+ return json.data;
36
+ }
37
+ // ============================================
38
+ // Connection
39
+ // ============================================
40
+ async testConnection() {
41
+ return this.request('GET', '/api/auth/me');
42
+ }
43
+ // ============================================
44
+ // Project Context
45
+ // ============================================
46
+ async getProjectContext(orgSlug, projectKey) {
47
+ return this.request('GET', `/api/organizations/${orgSlug}/projects/${projectKey}/mcp/context`);
48
+ }
49
+ async getProjectContextDoc(orgSlug, projectKey) {
50
+ return this.request('GET', `/api/organizations/${orgSlug}/projects/${projectKey}/mcp/project-context`);
51
+ }
52
+ async updateProjectContextDoc(orgSlug, projectKey, content) {
53
+ return this.request('PUT', `/api/organizations/${orgSlug}/projects/${projectKey}/mcp/project-context`, { content });
54
+ }
55
+ // ============================================
56
+ // Issues
57
+ // ============================================
58
+ async getIssue(orgSlug, projectKey, issueKey) {
59
+ return this.request('GET', `/api/organizations/${orgSlug}/projects/${projectKey}/issues/${issueKey}`);
60
+ }
61
+ async createIssue(orgSlug, projectKey, input) {
62
+ return this.request('POST', `/api/organizations/${orgSlug}/projects/${projectKey}/issues`, input);
63
+ }
64
+ async updateIssue(orgSlug, projectKey, issueKey, input) {
65
+ return this.request('PATCH', `/api/organizations/${orgSlug}/projects/${projectKey}/issues/${issueKey}`, input);
66
+ }
67
+ async deleteIssue(orgSlug, projectKey, issueKey) {
68
+ return this.request('DELETE', `/api/organizations/${orgSlug}/projects/${projectKey}/issues/${issueKey}`);
69
+ }
70
+ // ============================================
71
+ // Batch Operations
72
+ // ============================================
73
+ async batchCreateIssues(orgSlug, projectKey, issues) {
74
+ return this.request('POST', `/api/organizations/${orgSlug}/projects/${projectKey}/issues/batch/create`, { issues });
75
+ }
76
+ async batchUpdateStatus(orgSlug, projectKey, issueKeys, statusId) {
77
+ return this.request('POST', `/api/organizations/${orgSlug}/projects/${projectKey}/issues/batch/status`, { issueKeys, statusId });
78
+ }
79
+ async batchUpdateIssues(orgSlug, projectKey, updates) {
80
+ return this.request('POST', `/api/organizations/${orgSlug}/projects/${projectKey}/issues/batch/update`, { updates });
81
+ }
82
+ // ============================================
83
+ // Sprints
84
+ // ============================================
85
+ async listSprints(orgSlug, projectKey) {
86
+ // Get sprints through the sprint-actions endpoint
87
+ const result = await this.request('GET', `/api/organizations/${orgSlug}/projects/${projectKey}/mcp/context`);
88
+ // The context already includes sprint info, but we may need dedicated sprint list
89
+ // For now, extract from context
90
+ const context = result;
91
+ const sprints = [];
92
+ if (context.activeSprint) {
93
+ sprints.push({
94
+ ...context.activeSprint,
95
+ status: 'ACTIVE',
96
+ issueCount: context.activeSprint.issues.length,
97
+ completedCount: context.activeSprint.issues.filter((i) => i.statusCategory === 'DONE').length,
98
+ });
99
+ }
100
+ for (const pending of context.pendingSprints) {
101
+ sprints.push({
102
+ id: pending.id,
103
+ name: pending.name,
104
+ goal: null,
105
+ startDate: null,
106
+ endDate: null,
107
+ status: 'PLANNED',
108
+ issues: [],
109
+ issueCount: 0,
110
+ completedCount: 0,
111
+ });
112
+ }
113
+ return sprints;
114
+ }
115
+ async createSprint(orgSlug, projectKey, input) {
116
+ return this.request('POST', `/api/organizations/${orgSlug}/projects/${projectKey}/sprints`, input);
117
+ }
118
+ async addIssuesToSprint(orgSlug, projectKey, issueKeys, sprintId) {
119
+ // Update each issue's sprint
120
+ const results = [];
121
+ for (const issueKey of issueKeys) {
122
+ const issue = await this.updateIssue(orgSlug, projectKey, issueKey, {
123
+ sprintId,
124
+ });
125
+ results.push({
126
+ id: issue.id,
127
+ key: issue.key,
128
+ summary: issue.summary,
129
+ type: issue.type,
130
+ status: issue.status,
131
+ statusCategory: issue.statusCategory,
132
+ priority: issue.priority,
133
+ assignee: issue.assignee,
134
+ estimate: issue.estimate,
135
+ });
136
+ }
137
+ return results;
138
+ }
139
+ // ============================================
140
+ // Search
141
+ // ============================================
142
+ async searchIssues(orgSlug, query, filters) {
143
+ const params = new URLSearchParams();
144
+ params.set('q', query);
145
+ if (filters?.type)
146
+ params.set('type', filters.type);
147
+ if (filters?.priority)
148
+ params.set('priority', filters.priority);
149
+ if (filters?.status)
150
+ params.set('status', filters.status);
151
+ if (filters?.assigneeId)
152
+ params.set('assigneeId', filters.assigneeId);
153
+ if (filters?.sprintId)
154
+ params.set('sprintId', filters.sprintId);
155
+ if (filters?.labels?.length)
156
+ params.set('labels', filters.labels.join(','));
157
+ return this.request('GET', `/api/organizations/${orgSlug}/search?${params.toString()}`);
158
+ }
159
+ // ============================================
160
+ // Organizations
161
+ // ============================================
162
+ async listOrganizations() {
163
+ return this.request('GET', '/api/organizations');
164
+ }
165
+ async getOrganization(slug) {
166
+ return this.request('GET', `/api/organizations/${slug}`);
167
+ }
168
+ async createOrganization(input) {
169
+ return this.request('POST', '/api/organizations', input);
170
+ }
171
+ // ============================================
172
+ // Projects
173
+ // ============================================
174
+ async listProjects(orgSlug) {
175
+ return this.request('GET', `/api/organizations/${orgSlug}/projects`);
176
+ }
177
+ async getProject(orgSlug, projectKey) {
178
+ return this.request('GET', `/api/organizations/${orgSlug}/projects/${projectKey}`);
179
+ }
180
+ async createProject(orgSlug, input) {
181
+ return this.request('POST', `/api/organizations/${orgSlug}/projects`, input);
182
+ }
183
+ async updateProject(orgSlug, projectKey, input) {
184
+ return this.request('PATCH', `/api/organizations/${orgSlug}/projects/${projectKey}`, input);
185
+ }
186
+ // ============================================
187
+ // Boards
188
+ // ============================================
189
+ async listBoards(orgSlug, projectKey) {
190
+ return this.request('GET', `/api/organizations/${orgSlug}/projects/${projectKey}/boards`);
191
+ }
192
+ async getBoard(orgSlug, projectKey, boardId) {
193
+ return this.request('GET', `/api/organizations/${orgSlug}/projects/${projectKey}/boards/${boardId}`);
194
+ }
195
+ async moveIssueOnBoard(orgSlug, projectKey, boardId, input) {
196
+ await this.request('POST', `/api/organizations/${orgSlug}/projects/${projectKey}/boards/${boardId}/move-issue`, input);
197
+ }
198
+ // ============================================
199
+ // Backlog
200
+ // ============================================
201
+ async getBacklog(orgSlug, projectKey, limit = 20, offset = 0) {
202
+ // Make raw request to handle paginated response format
203
+ const params = new URLSearchParams();
204
+ params.set('limit', limit.toString());
205
+ params.set('offset', offset.toString());
206
+ const url = `${this.baseUrl}/api/organizations/${orgSlug}/projects/${projectKey}/backlog?${params.toString()}`;
207
+ const headers = {
208
+ 'X-API-Key': this.apiKey,
209
+ 'Content-Type': 'application/json',
210
+ };
211
+ const response = await fetch(url, { method: 'GET', headers });
212
+ const json = (await response.json());
213
+ if (!response.ok || !json.success) {
214
+ throw new LlamaApiError(response.status, json.error || `Request failed with status ${response.status}`);
215
+ }
216
+ // Backend uses sendPaginated which returns { success, data, pagination }
217
+ return {
218
+ issues: json.data ?? [],
219
+ total: json.pagination?.total ?? json.data?.length ?? 0,
220
+ };
221
+ }
222
+ // ============================================
223
+ // Comments
224
+ // ============================================
225
+ async listComments(orgSlug, projectKey, issueKey) {
226
+ return this.request('GET', `/api/organizations/${orgSlug}/projects/${projectKey}/issues/${issueKey}/comments`);
227
+ }
228
+ async createComment(orgSlug, projectKey, issueKey, input) {
229
+ return this.request('POST', `/api/organizations/${orgSlug}/projects/${projectKey}/issues/${issueKey}/comments`, input);
230
+ }
231
+ async updateComment(orgSlug, projectKey, issueKey, commentId, content) {
232
+ return this.request('PATCH', `/api/organizations/${orgSlug}/projects/${projectKey}/issues/${issueKey}/comments/${commentId}`, { content });
233
+ }
234
+ async deleteComment(orgSlug, projectKey, issueKey, commentId) {
235
+ await this.request('DELETE', `/api/organizations/${orgSlug}/projects/${projectKey}/issues/${issueKey}/comments/${commentId}`);
236
+ }
237
+ // ============================================
238
+ // Labels
239
+ // ============================================
240
+ async listLabels(orgSlug, projectKey) {
241
+ return this.request('GET', `/api/organizations/${orgSlug}/projects/${projectKey}/labels`);
242
+ }
243
+ async createLabel(orgSlug, projectKey, input) {
244
+ return this.request('POST', `/api/organizations/${orgSlug}/projects/${projectKey}/labels`, input);
245
+ }
246
+ async deleteLabel(orgSlug, projectKey, labelName) {
247
+ return this.request('DELETE', `/api/organizations/${orgSlug}/projects/${projectKey}/labels/${encodeURIComponent(labelName)}`);
248
+ }
249
+ // ============================================
250
+ // Members
251
+ // ============================================
252
+ async listMembers(orgSlug) {
253
+ return this.request('GET', `/api/organizations/${orgSlug}/members`);
254
+ }
255
+ // ============================================
256
+ // Issue Links
257
+ // ============================================
258
+ async listIssueLinks(orgSlug, projectKey, issueKey) {
259
+ // Links are returned as part of issue details
260
+ const issue = await this.getIssue(orgSlug, projectKey, issueKey);
261
+ return issue.links ?? [];
262
+ }
263
+ async createIssueLink(orgSlug, projectKey, issueKey, input) {
264
+ return this.request('POST', `/api/organizations/${orgSlug}/projects/${projectKey}/issues/${issueKey}/links`, {
265
+ targetIssueKey: input.targetIssueKey,
266
+ linkType: input.type, // Backend expects linkType, not type
267
+ });
268
+ }
269
+ async deleteIssueLink(orgSlug, projectKey, issueKey, linkId) {
270
+ await this.request('DELETE', `/api/organizations/${orgSlug}/projects/${projectKey}/issues/${issueKey}/links/${linkId}`);
271
+ }
272
+ // ============================================
273
+ // Sprint Actions
274
+ // ============================================
275
+ async startSprint(sprintId, input) {
276
+ return this.request('POST', `/api/sprints/${sprintId}/start`, input || {});
277
+ }
278
+ async completeSprint(sprintId, input) {
279
+ return this.request('POST', `/api/sprints/${sprintId}/complete`, input || {});
280
+ }
281
+ async getSprint(sprintId) {
282
+ return this.request('GET', `/api/sprints/${sprintId}`);
283
+ }
284
+ async updateSprint(sprintId, input) {
285
+ return this.request('PATCH', `/api/sprints/${sprintId}`, input);
286
+ }
287
+ async deleteSprint(sprintId) {
288
+ return this.request('DELETE', `/api/sprints/${sprintId}`);
289
+ }
290
+ // ============================================
291
+ // Claude Workflows
292
+ // ============================================
293
+ async listClaudeWorkflows(orgSlug, projectKey) {
294
+ return this.request('GET', `/api/organizations/${orgSlug}/projects/${projectKey}/claude-workflows`);
295
+ }
296
+ async getClaudeWorkflow(orgSlug, projectKey, workflowId) {
297
+ return this.request('GET', `/api/organizations/${orgSlug}/projects/${projectKey}/claude-workflows/${workflowId}`);
298
+ }
299
+ async createClaudeWorkflow(orgSlug, projectKey, input) {
300
+ return this.request('POST', `/api/organizations/${orgSlug}/projects/${projectKey}/claude-workflows`, input);
301
+ }
302
+ async updateClaudeWorkflow(orgSlug, projectKey, workflowId, input) {
303
+ return this.request('PATCH', `/api/organizations/${orgSlug}/projects/${projectKey}/claude-workflows/${workflowId}`, input);
304
+ }
305
+ async deleteClaudeWorkflow(orgSlug, projectKey, workflowId) {
306
+ await this.request('DELETE', `/api/organizations/${orgSlug}/projects/${projectKey}/claude-workflows/${workflowId}`);
307
+ }
308
+ async suggestClaudeWorkflows(orgSlug, projectKey, intent) {
309
+ return this.request('POST', `/api/organizations/${orgSlug}/projects/${projectKey}/claude-workflows/suggest`, { intent });
310
+ }
311
+ async runClaudeWorkflow(orgSlug, projectKey, workflowId, parameters) {
312
+ return this.request('POST', `/api/organizations/${orgSlug}/projects/${projectKey}/claude-workflows/${workflowId}/run`, { parameters });
313
+ }
314
+ // ============================================
315
+ // Documents
316
+ // ============================================
317
+ async listOrgDocuments(orgSlug, filters) {
318
+ const params = new URLSearchParams();
319
+ if (filters?.type)
320
+ params.set('type', filters.type);
321
+ if (filters?.status)
322
+ params.set('status', filters.status);
323
+ if (filters?.search)
324
+ params.set('search', filters.search);
325
+ const queryString = params.toString();
326
+ return this.request('GET', `/api/organizations/${orgSlug}/documents${queryString ? `?${queryString}` : ''}`);
327
+ }
328
+ async listProjectDocuments(orgSlug, projectKey, filters) {
329
+ const params = new URLSearchParams();
330
+ if (filters?.type)
331
+ params.set('type', filters.type);
332
+ if (filters?.status)
333
+ params.set('status', filters.status);
334
+ if (filters?.search)
335
+ params.set('search', filters.search);
336
+ const queryString = params.toString();
337
+ return this.request('GET', `/api/organizations/${orgSlug}/projects/${projectKey}/documents${queryString ? `?${queryString}` : ''}`);
338
+ }
339
+ async getDocument(documentId) {
340
+ return this.request('GET', `/api/documents/${documentId}`);
341
+ }
342
+ async createOrgDocument(orgSlug, input) {
343
+ return this.request('POST', `/api/organizations/${orgSlug}/documents`, input);
344
+ }
345
+ async createProjectDocument(orgSlug, projectKey, input) {
346
+ return this.request('POST', `/api/organizations/${orgSlug}/projects/${projectKey}/documents`, input);
347
+ }
348
+ async updateDocument(documentId, input) {
349
+ return this.request('PATCH', `/api/documents/${documentId}`, input);
350
+ }
351
+ async deleteDocument(documentId) {
352
+ await this.request('DELETE', `/api/documents/${documentId}`);
353
+ }
354
+ // ============================================
355
+ // Board Templates
356
+ // ============================================
357
+ async listBoardTemplates(orgSlug) {
358
+ return this.request('GET', `/api/organizations/${orgSlug}/board-templates`);
359
+ }
360
+ async applyBoardTemplate(orgSlug, templateId, projectKey) {
361
+ return this.request('POST', `/api/organizations/${orgSlug}/board-templates/${templateId}/apply`, { templateId, projectKey });
362
+ }
363
+ async cloneBoardConfiguration(orgSlug, sourceProjectKey, targetProjectKey) {
364
+ return this.request('POST', `/api/organizations/${orgSlug}/projects/${sourceProjectKey}/board/clone`, { targetProjectKey });
365
+ }
366
+ // ============================================
367
+ // Board Configuration
368
+ // ============================================
369
+ async getBoardConfiguration(orgSlug, projectKey) {
370
+ return this.request('GET', `/api/organizations/${orgSlug}/projects/${projectKey}/board/configuration`);
371
+ }
372
+ async updateColumnConfiguration(orgSlug, projectKey, boardId, columnId, input) {
373
+ return this.request('PUT', `/api/organizations/${orgSlug}/projects/${projectKey}/boards/${boardId}/columns/${columnId}/config`, input);
374
+ }
375
+ async getColumnConfiguration(orgSlug, projectKey, boardId, columnId) {
376
+ try {
377
+ return await this.request('GET', `/api/organizations/${orgSlug}/projects/${projectKey}/boards/${boardId}/columns/${columnId}/config`);
378
+ }
379
+ catch (error) {
380
+ // Return null if configuration doesn't exist (404)
381
+ if (error instanceof LlamaApiError && error.statusCode === 404) {
382
+ return null;
383
+ }
384
+ throw error;
385
+ }
386
+ }
387
+ // ============================================
388
+ // MCP Session
389
+ // ============================================
390
+ async getSession() {
391
+ return this.request('GET', '/api/mcp/session');
392
+ }
393
+ async setSession(input) {
394
+ return this.request('POST', '/api/mcp/session', input);
395
+ }
396
+ async clearSession() {
397
+ await this.request('DELETE', '/api/mcp/session');
398
+ }
399
+ async recordToolCall(toolName, params) {
400
+ await this.request('POST', '/api/mcp/session/tool-call', {
401
+ toolName,
402
+ params,
403
+ });
404
+ }
405
+ }
406
+ let clientInstance = null;
407
+ export function getApiClient() {
408
+ if (!clientInstance) {
409
+ const apiUrl = process.env.LLAMA_API_URL;
410
+ const apiKey = process.env.LLAMA_API_KEY;
411
+ if (!apiUrl || !apiKey) {
412
+ throw new Error('LLAMA_API_URL and LLAMA_API_KEY environment variables are required');
413
+ }
414
+ clientInstance = new LlamaApiClient(apiUrl, apiKey);
415
+ }
416
+ return clientInstance;
417
+ }
418
+ export function resetApiClient() {
419
+ clientInstance = null;
420
+ }
421
+ //# sourceMappingURL=api-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env node
2
+ import { runServer } from './server.js';
3
+ // Validate required environment variables
4
+ const requiredEnvVars = ['LLAMA_API_URL', 'LLAMA_API_KEY'];
5
+ const missingVars = requiredEnvVars.filter((v) => !process.env[v]);
6
+ if (missingVars.length > 0) {
7
+ console.error(`Missing required environment variables: ${missingVars.join(', ')}`);
8
+ console.error('');
9
+ console.error('Please set the following environment variables:');
10
+ console.error(' LLAMA_API_URL - URL of the Llama API (e.g., http://localhost:3001)');
11
+ console.error(' LLAMA_API_KEY - Your Llama API key (generate from Settings > API Keys)');
12
+ process.exit(1);
13
+ }
14
+ runServer().catch((error) => {
15
+ console.error('Failed to start Llama MCP server:', error);
16
+ process.exit(1);
17
+ });
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,0CAA0C;AAC1C,MAAM,eAAe,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;AAC3D,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAEnE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IAC3B,OAAO,CAAC,KAAK,CAAC,2CAA2C,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACjE,OAAO,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;IACtF,OAAO,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;IAC1F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAC1B,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;IAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
+ export declare function createServer(): Promise<Server>;
3
+ export declare function runServer(): Promise<void>;
4
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAk6BnE,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CA8DpD;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAQ/C"}