@telos.ready/mcp 1.1.0 → 1.2.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.
- package/build/index.js +74 -4
- package/package.json +1 -1
package/build/index.js
CHANGED
|
@@ -93,7 +93,7 @@ const telosClient = new TelosClient({
|
|
|
93
93
|
server.tool("ask-question", "Asks a question about an application and gets an answer with supporting context. This tool uses the agent service to provide comprehensive answers with relevant documentation. Provide both an application slug and a specific question.", {
|
|
94
94
|
applicationSlug: z
|
|
95
95
|
.string()
|
|
96
|
-
.describe('The application slug for the application you want to ask a question about, which is a unique identifier string used to reference specific applications.'),
|
|
96
|
+
.describe('The application slug for the application you want to ask a question about, which is a unique identifier string used to reference specific applications. The application slug is the ticket prefix, such as "TEL" or "XXX".'),
|
|
97
97
|
question: z
|
|
98
98
|
.string()
|
|
99
99
|
.describe("The question you want to ask about the application."),
|
|
@@ -129,7 +129,7 @@ server.tool("ask-question", "Asks a question about an application and gets an an
|
|
|
129
129
|
server.tool("search-documentation", "Searches documentation for an application to get relevant context. Documentation includes information about application resources, concepts, stories and known solutions. Provide both an application slug and a specific query.", {
|
|
130
130
|
applicationSlug: z
|
|
131
131
|
.string()
|
|
132
|
-
.describe('The application slug for the application you want to search documentation for, which is a unique identifier string used to reference specific applications.'),
|
|
132
|
+
.describe('The application slug for the application you want to search documentation for, which is a unique identifier string used to reference specific applications. The application slug is the ticket prefix, such as "TEL" or "XXX".'),
|
|
133
133
|
query: z
|
|
134
134
|
.string()
|
|
135
135
|
.describe("The query to search for in the documentation."),
|
|
@@ -211,7 +211,7 @@ server.tool("add-documentation", "Creates a new knowledge ticket with documentat
|
|
|
211
211
|
title: z.string().optional().describe("Title for the knowledge ticket."),
|
|
212
212
|
applicationSlug: z
|
|
213
213
|
.string()
|
|
214
|
-
.describe("The slug of the application that the documentation relates to."),
|
|
214
|
+
.describe("The slug of the application that the documentation relates to. The application slug is the ticket prefix, such as 'TEL' or 'XXX'."),
|
|
215
215
|
}, async ({ content, title, applicationSlug }) => {
|
|
216
216
|
try {
|
|
217
217
|
const result = await telosClient.post("/mcp/add-documentation", {
|
|
@@ -413,6 +413,76 @@ server.tool("update-action-item", "Updates the status of an action item in a tic
|
|
|
413
413
|
};
|
|
414
414
|
}
|
|
415
415
|
});
|
|
416
|
+
// Tool 10: Get Resource List
|
|
417
|
+
server.tool("get-resource-list", "Gets a list of resources for an application. Resources include system dependencies, infrastructure, documentation and policies.", {
|
|
418
|
+
applicationSlug: z
|
|
419
|
+
.string()
|
|
420
|
+
.describe('The application slug for the application you want to get resources for, which is a unique identifier string used to reference specific applications. The application slug is the ticket prefix, such as "TEL" or "XXX".'),
|
|
421
|
+
}, async ({ applicationSlug }) => {
|
|
422
|
+
try {
|
|
423
|
+
const result = await telosClient.post("/mcp/get-resource-list", {
|
|
424
|
+
applicationSlug,
|
|
425
|
+
});
|
|
426
|
+
if (result.success) {
|
|
427
|
+
return {
|
|
428
|
+
content: [{ type: "text", text: result.result }],
|
|
429
|
+
};
|
|
430
|
+
}
|
|
431
|
+
else {
|
|
432
|
+
return {
|
|
433
|
+
content: [{ type: "text", text: `Error: ${result.error}` }],
|
|
434
|
+
};
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
catch (error) {
|
|
438
|
+
return {
|
|
439
|
+
content: [
|
|
440
|
+
{
|
|
441
|
+
type: "text",
|
|
442
|
+
text: `Error getting resource list for application ${applicationSlug}: ${error.message}`,
|
|
443
|
+
},
|
|
444
|
+
],
|
|
445
|
+
};
|
|
446
|
+
}
|
|
447
|
+
});
|
|
448
|
+
// Tool 11: Get Resource Details
|
|
449
|
+
server.tool("get-resource-details", "Gets detailed information about a specific resource by name and group. Resource names can be identified by using get-resource-list. Special resources include: Application Map, Style Guide, Tech Patterns, Database Schema", {
|
|
450
|
+
applicationSlug: z
|
|
451
|
+
.string()
|
|
452
|
+
.describe('The application slug for the application you want to get resource details for, which is a unique identifier string used to reference specific applications. The application slug is the ticket prefix, such as "TEL" or "XXX".'),
|
|
453
|
+
resourceName: z
|
|
454
|
+
.string()
|
|
455
|
+
.describe("The name of the resource to get details for."),
|
|
456
|
+
groupName: z.string().describe("The group name of the resource (optional)."),
|
|
457
|
+
}, async ({ applicationSlug, resourceName, groupName }) => {
|
|
458
|
+
try {
|
|
459
|
+
const result = await telosClient.post("/mcp/get-resource-details", {
|
|
460
|
+
applicationSlug,
|
|
461
|
+
resourceName,
|
|
462
|
+
groupName,
|
|
463
|
+
});
|
|
464
|
+
if (result.success) {
|
|
465
|
+
return {
|
|
466
|
+
content: [{ type: "text", text: result.result }],
|
|
467
|
+
};
|
|
468
|
+
}
|
|
469
|
+
else {
|
|
470
|
+
return {
|
|
471
|
+
content: [{ type: "text", text: `Error: ${result.error}` }],
|
|
472
|
+
};
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
catch (error) {
|
|
476
|
+
return {
|
|
477
|
+
content: [
|
|
478
|
+
{
|
|
479
|
+
type: "text",
|
|
480
|
+
text: `Error getting resource details for ${resourceName} in ${groupName} for application ${applicationSlug}: ${error.message}`,
|
|
481
|
+
},
|
|
482
|
+
],
|
|
483
|
+
};
|
|
484
|
+
}
|
|
485
|
+
});
|
|
416
486
|
async function main() {
|
|
417
487
|
try {
|
|
418
488
|
// Initialize transport first
|
|
@@ -425,7 +495,7 @@ async function main() {
|
|
|
425
495
|
await server.connect(transport);
|
|
426
496
|
// Log success message
|
|
427
497
|
console.error("✅ Telos MCP Server running on stdio");
|
|
428
|
-
console.error("Available tools: ask-question, search-documentation, add-ticket-comment, add-documentation, get-ticket-details, get-next-task, get-git-branch-for-ticket, mark-ticket-as-blocked, update-action-item");
|
|
498
|
+
console.error("Available tools: ask-question, search-documentation, add-ticket-comment, add-documentation, get-ticket-details, get-next-task, get-git-branch-for-ticket, mark-ticket-as-blocked, update-action-item, get-resource-list, get-resource-details");
|
|
429
499
|
// Test connection in background without blocking or exiting
|
|
430
500
|
// This is non-critical and should not cause the server to exit
|
|
431
501
|
setImmediate(async () => {
|