@bragduck/mcp 1.6.0 → 1.7.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/dist/index.js CHANGED
@@ -12,6 +12,7 @@ import { linkBragToKeyResultTool, handleLinkBragToKeyResult } from './tools/link
12
12
  import { listOrganisationsTool, handleListOrganisations } from './tools/list-organisations.js';
13
13
  import { saveOrgPreferenceTool, handleSaveOrgPreference } from './tools/save-org-preference.js';
14
14
  import { logStoryTool, handleLogStory } from './tools/log-story.js';
15
+ import { listStoriesTool, handleListStories } from './tools/list-stories.js';
15
16
  const server = new Server({
16
17
  name: 'bragduck',
17
18
  version: '1.0.0',
@@ -83,6 +84,8 @@ const server = new Server({
83
84
  'use log_story instead of log_brag. Stories are structured with Situation/Task/Action/Result fields ' +
84
85
  'and competency tags. Follow the same org-selection flow (list_organisations → saved preference or ask). ' +
85
86
  'Preview the story as a markdown table (Field | Value) before calling log_story in the same response.\n' +
87
+ 'Use list_stories to browse existing stories. Supports filters: category, orgId, search, limit. ' +
88
+ 'Stories include AI-generated strength and impact scores.\n' +
86
89
  '\n' +
87
90
  'GENERAL RULES\n' +
88
91
  '- Never fabricate details, metrics, or links. If unsure, ask.\n' +
@@ -91,7 +94,7 @@ const server = new Server({
91
94
  });
92
95
  server.setRequestHandler(ListToolsRequestSchema, async () => {
93
96
  return {
94
- tools: [loginTool, logBragTool, quickBragTool, listBragsTool, listObjectivesTool, linkBragToKeyResultTool, listOrganisationsTool, saveOrgPreferenceTool, logStoryTool],
97
+ tools: [loginTool, logBragTool, quickBragTool, listBragsTool, listObjectivesTool, linkBragToKeyResultTool, listOrganisationsTool, saveOrgPreferenceTool, logStoryTool, listStoriesTool],
95
98
  };
96
99
  });
97
100
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
@@ -117,6 +120,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
117
120
  return handleSaveOrgPreference(args);
118
121
  case 'log_story':
119
122
  return handleLogStory(args);
123
+ case 'list_stories':
124
+ return handleListStories(args);
120
125
  default:
121
126
  throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`);
122
127
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ export declare const listStoriesTool: {
2
+ name: string;
3
+ description: string;
4
+ inputSchema: {
5
+ type: "object";
6
+ properties: {
7
+ limit: {
8
+ type: string;
9
+ minimum: number;
10
+ maximum: number;
11
+ description: string;
12
+ };
13
+ category: {
14
+ type: string;
15
+ description: string;
16
+ };
17
+ orgId: {
18
+ type: string;
19
+ description: string;
20
+ };
21
+ search: {
22
+ type: string;
23
+ description: string;
24
+ };
25
+ };
26
+ };
27
+ };
28
+ interface ListStoriesInput {
29
+ limit?: number;
30
+ category?: string;
31
+ orgId?: string;
32
+ search?: string;
33
+ }
34
+ export declare function handleListStories(input: ListStoriesInput): Promise<{
35
+ content: Array<{
36
+ type: string;
37
+ text: string;
38
+ }>;
39
+ isError?: boolean;
40
+ }>;
41
+ export {};
@@ -0,0 +1,103 @@
1
+ import { apiRequest, requirePaidPlan } from '../api-client.js';
2
+ import { getUserInfo } from '../credentials.js';
3
+ import { STORY_CATEGORY_LABELS } from '@bragduck/types';
4
+ export const listStoriesTool = {
5
+ name: 'list_stories',
6
+ description: 'List STAR interview stories from BragDuck. ' +
7
+ 'Use when the user wants to review their interview stories or search for stories by category.',
8
+ inputSchema: {
9
+ type: 'object',
10
+ properties: {
11
+ limit: {
12
+ type: 'number',
13
+ minimum: 1,
14
+ maximum: 100,
15
+ description: 'Max stories to return (default 10)',
16
+ },
17
+ category: {
18
+ type: 'string',
19
+ description: 'Filter by category (e.g. leadership, technical_excellence, problem_solving)',
20
+ },
21
+ orgId: {
22
+ type: 'string',
23
+ description: 'Filter by organisation ID',
24
+ },
25
+ search: {
26
+ type: 'string',
27
+ description: 'Search stories by keyword',
28
+ },
29
+ },
30
+ },
31
+ };
32
+ export async function handleListStories(input) {
33
+ const planError = await requirePaidPlan();
34
+ if (planError)
35
+ return planError;
36
+ try {
37
+ const userInfo = getUserInfo();
38
+ if (!userInfo) {
39
+ return {
40
+ content: [{
41
+ type: 'text',
42
+ text: 'Not authenticated with BragDuck. Please call the "login" tool first.',
43
+ }],
44
+ isError: true,
45
+ };
46
+ }
47
+ const params = {
48
+ page: '1',
49
+ perPage: String(input.limit || 10),
50
+ };
51
+ if (input.category)
52
+ params.category = input.category;
53
+ if (input.orgId)
54
+ params.orgId = input.orgId;
55
+ if (input.search)
56
+ params.search = input.search;
57
+ const response = await apiRequest(`/v1/users/${userInfo.id}/stories`, { params });
58
+ if (response.items.length === 0) {
59
+ return {
60
+ content: [{ type: 'text', text: 'No stories found.' }],
61
+ };
62
+ }
63
+ const lines = response.items.map((story) => {
64
+ const categoryLabel = story.category
65
+ ? STORY_CATEGORY_LABELS[story.category]
66
+ : null;
67
+ const categoryPart = categoryLabel ? `Category: ${categoryLabel} | ` : '';
68
+ const strengthPart = `Strength: ${story.strengthScore ?? '-'}/10`;
69
+ const impactPart = `Impact: ${story.impactScore ?? '-'}/10`;
70
+ const summary = story.aiSummary || 'No AI summary yet';
71
+ const competencies = story.competencies.length > 0
72
+ ? story.competencies.join(', ')
73
+ : 'None';
74
+ return (`**${story.title}** (ID: ${story.id})\n` +
75
+ `${categoryPart}${strengthPart} | ${impactPart}\n` +
76
+ `${summary}\n` +
77
+ `Competencies: ${competencies}`);
78
+ });
79
+ const summary = `Found ${response.total} stories (showing ${response.items.length}):`;
80
+ return {
81
+ content: [{ type: 'text', text: `${summary}\n\n${lines.join('\n\n')}` }],
82
+ };
83
+ }
84
+ catch (error) {
85
+ if (error instanceof Error && (error.message === 'NOT_AUTHENTICATED' || error.message === 'TOKEN_EXPIRED')) {
86
+ return {
87
+ content: [{
88
+ type: 'text',
89
+ text: 'Not authenticated with BragDuck. Please call the "login" tool first.',
90
+ }],
91
+ isError: true,
92
+ };
93
+ }
94
+ return {
95
+ content: [{
96
+ type: 'text',
97
+ text: `Failed to list stories: ${error instanceof Error ? error.message : String(error)}`,
98
+ }],
99
+ isError: true,
100
+ };
101
+ }
102
+ }
103
+ //# sourceMappingURL=list-stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-stories.js","sourceRoot":"","sources":["../../src/tools/list-stories.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,10 @@ export declare const logStoryTool: {
52
52
  type: string;
53
53
  description: string;
54
54
  };
55
+ category: {
56
+ type: string;
57
+ description: string;
58
+ };
55
59
  };
56
60
  required: string[];
57
61
  };
@@ -65,6 +69,7 @@ interface LogStoryInput {
65
69
  competencies?: string[];
66
70
  bragIds?: string[];
67
71
  orgId?: string;
72
+ category?: string;
68
73
  }
69
74
  export declare function handleLogStory(input: LogStoryInput): Promise<{
70
75
  content: Array<{
@@ -52,6 +52,10 @@ export const logStoryTool = {
52
52
  type: 'string',
53
53
  description: 'Organisation ID to associate the story with',
54
54
  },
55
+ category: {
56
+ type: 'string',
57
+ description: 'Interview category this story demonstrates (e.g. leadership, technical_excellence, problem_solving, innovation, teamwork, communication, project_delivery, customer_impact, mentorship, process_improvement)',
58
+ },
55
59
  },
56
60
  required: ['title', 'situation', 'task', 'action', 'result'],
57
61
  },
@@ -83,6 +87,8 @@ export async function handleLogStory(input) {
83
87
  };
84
88
  if (input.orgId)
85
89
  body.orgId = input.orgId;
90
+ if (input.category)
91
+ body.category = input.category;
86
92
  const story = await apiRequest(`/v1/users/${userInfo.id}/stories`, { method: 'POST', body });
87
93
  const competencyLine = story.competencies.length > 0
88
94
  ? `\nCompetencies: ${story.competencies.join(', ')}`
@@ -1 +1 @@
1
- {"version":3,"file":"log-story.js","sourceRoot":"","sources":["../../src/tools/log-story.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,WAAW;IACjB,WAAW,EACT,qDAAqD;QACrD,kGAAkG;QAClG,8EAA8E;QAC9E,wFAAwF;QACxF,+CAA+C;IACjD,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,CAAC;gBACZ,SAAS,EAAE,GAAG;gBACd,WAAW,EAAE,oEAAoE;aAClF;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,EAAE;gBACb,WAAW,EAAE,2EAA2E;aACzF;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,EAAE;gBACb,WAAW,EAAE,oDAAoD;aAClE;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,EAAE;gBACb,WAAW,EAAE,gDAAgD;aAC9D;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,EAAE;gBACb,WAAW,EAAE,iEAAiE;aAC/E;YACD,YAAY,EAAE;gBACZ,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;gBACtD,QAAQ,EAAE,EAAE;gBACZ,WAAW,EACT,6GAA6G;aAChH;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,QAAQ,EAAE,EAAE;gBACZ,WAAW,EAAE,4CAA4C;aAC1D;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6CAA6C;aAC3D;SACF;QACD,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;KAC7D;CACF,CAAC;AAaF,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,KAAoB;IAEpB,MAAM,SAAS,GAAG,MAAM,eAAe,EAAE,CAAC;IAC1C,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC;IAEhC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,sEAAsE;qBAC7E,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAA4B;YACpC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,EAAE;YACtC,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;YAC5B,MAAM,EAAE,KAAK;SACd,CAAC;QAEF,IAAI,KAAK,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAE1C,MAAM,KAAK,GAAG,MAAM,UAAU,CAC5B,aAAa,QAAQ,CAAC,EAAE,UAAU,EAClC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CACzB,CAAC;QAEF,MAAM,cAAc,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;YAClD,CAAC,CAAC,mBAAmB,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACpD,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,iBAAiB,KAAK,CAAC,KAAK,IAAI,cAAc,EAAE;iBACvD,CAAC;SACH,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,mBAAmB,IAAI,KAAK,CAAC,OAAO,KAAK,eAAe,CAAC,EAAE,CAAC;YAC3G,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,sEAAsE;qBAC7E,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,yBAAyB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;iBACxF,CAAC;YACF,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"log-story.js","sourceRoot":"","sources":["../../src/tools/log-story.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bragduck/mcp",
3
- "version": "1.6.0",
3
+ "version": "1.7.0",
4
4
  "description": "BragDuck MCP server for logging career achievements from AI agents",
5
5
  "type": "module",
6
6
  "bin": {