@telos.ready/mcp 1.1.0 → 1.3.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 (2) hide show
  1. package/build/index.js +114 -4
  2. 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,116 @@ 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
+ });
486
+ // Tool 12: Answer Question
487
+ server.tool("answer-question", "Answers a question that was previously asked with a TECHNICAL or BUSINESS question type. Questions are identified by their six-character reference code. ", {
488
+ ticketReference: z
489
+ .string()
490
+ .describe('The ticket reference for the ticket containing the question, which is an uppercase alphabetical code followed by a number, such as "TEL037".'),
491
+ questionReference: z
492
+ .string()
493
+ .describe("The six-character alphanumeric reference code for the question (e.g., ABC123)."),
494
+ answer: z
495
+ .string()
496
+ .describe("The answer text content to provide for the question. Maximum 5000 characters."),
497
+ }, async ({ ticketReference, questionReference, answer }) => {
498
+ try {
499
+ const result = await telosClient.post("/mcp/answer-question", {
500
+ ticketReference,
501
+ questionReference,
502
+ answer,
503
+ });
504
+ if (result.success) {
505
+ return {
506
+ content: [{ type: "text", text: result.result }],
507
+ };
508
+ }
509
+ else {
510
+ return {
511
+ content: [{ type: "text", text: `Error: ${result.error}` }],
512
+ };
513
+ }
514
+ }
515
+ catch (error) {
516
+ return {
517
+ content: [
518
+ {
519
+ type: "text",
520
+ text: `Error answering question ${questionReference} on ticket ${ticketReference}: ${error.message}`,
521
+ },
522
+ ],
523
+ };
524
+ }
525
+ });
416
526
  async function main() {
417
527
  try {
418
528
  // Initialize transport first
@@ -425,7 +535,7 @@ async function main() {
425
535
  await server.connect(transport);
426
536
  // Log success message
427
537
  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");
538
+ 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, answer-question");
429
539
  // Test connection in background without blocking or exiting
430
540
  // This is non-critical and should not cause the server to exit
431
541
  setImmediate(async () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telos.ready/mcp",
3
- "version": "1.1.0",
3
+ "version": "1.3.0",
4
4
  "description": "Telos MCP server for managing tickets and project tasks",
5
5
  "main": "build/index.js",
6
6
  "type": "module",