@agentblueprint/mcp-server 0.1.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 (59) hide show
  1. package/README.md +59 -0
  2. package/dist/__tests__/client.test.d.ts +1 -0
  3. package/dist/__tests__/client.test.js +99 -0
  4. package/dist/__tests__/client.test.js.map +1 -0
  5. package/dist/__tests__/config.test.d.ts +1 -0
  6. package/dist/__tests__/config.test.js +37 -0
  7. package/dist/__tests__/config.test.js.map +1 -0
  8. package/dist/__tests__/tools.test.d.ts +1 -0
  9. package/dist/__tests__/tools.test.js +83 -0
  10. package/dist/__tests__/tools.test.js.map +1 -0
  11. package/dist/client.d.ts +78 -0
  12. package/dist/client.js +48 -0
  13. package/dist/client.js.map +1 -0
  14. package/dist/config.d.ts +5 -0
  15. package/dist/config.js +9 -0
  16. package/dist/config.js.map +1 -0
  17. package/dist/errors.d.ts +5 -0
  18. package/dist/errors.js +18 -0
  19. package/dist/errors.js.map +1 -0
  20. package/dist/index.d.ts +2 -0
  21. package/dist/index.js +26 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/resources/blueprint.d.ts +14 -0
  24. package/dist/resources/blueprint.js +43 -0
  25. package/dist/resources/blueprint.js.map +1 -0
  26. package/dist/resources/blueprints.d.ts +14 -0
  27. package/dist/resources/blueprints.js +33 -0
  28. package/dist/resources/blueprints.js.map +1 -0
  29. package/dist/resources/business-profile.d.ts +14 -0
  30. package/dist/resources/business-profile.js +33 -0
  31. package/dist/resources/business-profile.js.map +1 -0
  32. package/dist/resources/spec.d.ts +14 -0
  33. package/dist/resources/spec.js +33 -0
  34. package/dist/resources/spec.js.map +1 -0
  35. package/dist/server.d.ts +3 -0
  36. package/dist/server.js +44 -0
  37. package/dist/server.js.map +1 -0
  38. package/dist/tools/get-blueprint.d.ts +30 -0
  39. package/dist/tools/get-blueprint.js +35 -0
  40. package/dist/tools/get-blueprint.js.map +1 -0
  41. package/dist/tools/get-business-case.d.ts +30 -0
  42. package/dist/tools/get-business-case.js +35 -0
  43. package/dist/tools/get-business-case.js.map +1 -0
  44. package/dist/tools/get-business-profile.d.ts +14 -0
  45. package/dist/tools/get-business-profile.js +21 -0
  46. package/dist/tools/get-business-profile.js.map +1 -0
  47. package/dist/tools/get-implementation-plan.d.ts +30 -0
  48. package/dist/tools/get-implementation-plan.js +35 -0
  49. package/dist/tools/get-implementation-plan.js.map +1 -0
  50. package/dist/tools/get-implementation-spec.d.ts +30 -0
  51. package/dist/tools/get-implementation-spec.js +35 -0
  52. package/dist/tools/get-implementation-spec.js.map +1 -0
  53. package/dist/tools/get-use-case.d.ts +30 -0
  54. package/dist/tools/get-use-case.js +35 -0
  55. package/dist/tools/get-use-case.js.map +1 -0
  56. package/dist/tools/list-blueprints.d.ts +22 -0
  57. package/dist/tools/list-blueprints.js +29 -0
  58. package/dist/tools/list-blueprints.js.map +1 -0
  59. package/package.json +36 -0
@@ -0,0 +1,33 @@
1
+ import { formatError } from '../errors.js';
2
+ export const blueprintListResource = {
3
+ uri: 'agentblueprint://blueprints',
4
+ name: 'Blueprint List',
5
+ description: 'List of all blueprints in the organization',
6
+ mimeType: 'application/json',
7
+ };
8
+ export async function readBlueprintList(client) {
9
+ try {
10
+ const blueprints = await client.listBlueprints();
11
+ return {
12
+ contents: [
13
+ {
14
+ uri: blueprintListResource.uri,
15
+ mimeType: 'application/json',
16
+ text: JSON.stringify(blueprints, null, 2),
17
+ },
18
+ ],
19
+ };
20
+ }
21
+ catch (err) {
22
+ return {
23
+ contents: [
24
+ {
25
+ uri: blueprintListResource.uri,
26
+ mimeType: 'text/plain',
27
+ text: `Error: ${formatError(err)}`,
28
+ },
29
+ ],
30
+ };
31
+ }
32
+ }
33
+ //# sourceMappingURL=blueprints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blueprints.js","sourceRoot":"","sources":["../../src/resources/blueprints.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,GAAG,EAAE,6BAA6B;IAClC,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,4CAA4C;IACzD,QAAQ,EAAE,kBAAkB;CAC7B,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAA4B;IAClE,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;QACjD,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,qBAAqB,CAAC,GAAG;oBAC9B,QAAQ,EAAE,kBAAkB;oBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;iBAC1C;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,qBAAqB,CAAC,GAAG;oBAC9B,QAAQ,EAAE,YAAY;oBACtB,IAAI,EAAE,UAAU,WAAW,CAAC,GAAG,CAAC,EAAE;iBACnC;aACF;SACF,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { AgentBlueprintClient } from '../client.js';
2
+ export declare const businessProfileResource: {
3
+ uri: string;
4
+ name: string;
5
+ description: string;
6
+ mimeType: string;
7
+ };
8
+ export declare function readBusinessProfile(client: AgentBlueprintClient): Promise<{
9
+ contents: {
10
+ uri: string;
11
+ mimeType: string;
12
+ text: string;
13
+ }[];
14
+ }>;
@@ -0,0 +1,33 @@
1
+ import { formatError } from '../errors.js';
2
+ export const businessProfileResource = {
3
+ uri: 'agentblueprint://business-profile',
4
+ name: 'Business Profile',
5
+ description: 'The organization business profile including company details, strategic initiatives, technology profile, and AI readiness score',
6
+ mimeType: 'application/json',
7
+ };
8
+ export async function readBusinessProfile(client) {
9
+ try {
10
+ const profile = await client.getBusinessProfile();
11
+ return {
12
+ contents: [
13
+ {
14
+ uri: businessProfileResource.uri,
15
+ mimeType: 'application/json',
16
+ text: JSON.stringify(profile, null, 2),
17
+ },
18
+ ],
19
+ };
20
+ }
21
+ catch (err) {
22
+ return {
23
+ contents: [
24
+ {
25
+ uri: businessProfileResource.uri,
26
+ mimeType: 'text/plain',
27
+ text: `Error: ${formatError(err)}`,
28
+ },
29
+ ],
30
+ };
31
+ }
32
+ }
33
+ //# sourceMappingURL=business-profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"business-profile.js","sourceRoot":"","sources":["../../src/resources/business-profile.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,GAAG,EAAE,mCAAmC;IACxC,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,gIAAgI;IAC7I,QAAQ,EAAE,kBAAkB;CAC7B,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAA4B;IACpE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAClD,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,uBAAuB,CAAC,GAAG;oBAChC,QAAQ,EAAE,kBAAkB;oBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;iBACvC;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,uBAAuB,CAAC,GAAG;oBAChC,QAAQ,EAAE,YAAY;oBACtB,IAAI,EAAE,UAAU,WAAW,CAAC,GAAG,CAAC,EAAE;iBACnC;aACF;SACF,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { AgentBlueprintClient } from '../client.js';
2
+ export declare const specResourceTemplate: {
3
+ uriTemplate: string;
4
+ name: string;
5
+ description: string;
6
+ mimeType: string;
7
+ };
8
+ export declare function readSpec(client: AgentBlueprintClient, id: string): Promise<{
9
+ contents: {
10
+ uri: string;
11
+ mimeType: string;
12
+ text: string;
13
+ }[];
14
+ }>;
@@ -0,0 +1,33 @@
1
+ import { formatError } from '../errors.js';
2
+ export const specResourceTemplate = {
3
+ uriTemplate: 'agentblueprint://blueprints/{id}/spec',
4
+ name: 'Implementation Spec',
5
+ description: 'Implementation spec metadata for a blueprint',
6
+ mimeType: 'text/markdown',
7
+ };
8
+ export async function readSpec(client, id) {
9
+ const uri = `agentblueprint://blueprints/${id}/spec`;
10
+ try {
11
+ const spec = await client.getImplementationSpec(id);
12
+ const m = spec.metadata;
13
+ let md = `# Implementation Spec: ${spec.filename}\n\n`;
14
+ md += `**Blueprint ID:** ${spec.blueprintId}\n`;
15
+ md += `**Platform:** ${m.platform}\n`;
16
+ md += `**Agents:** ${m.agentCount}\n`;
17
+ md += `**Total Files:** ${m.totalFileCount}\n\n`;
18
+ md += `## Included Artifacts\n\n`;
19
+ md += `- Business Case: ${m.hasBusinessCase ? 'Yes' : 'No'}\n`;
20
+ md += `- Implementation Plan: ${m.hasImplementationPlan ? 'Yes' : 'No'}\n`;
21
+ md += `- Use Case: ${m.hasUseCase ? 'Yes' : 'No'}\n`;
22
+ md += `- Reference Files: ${m.referenceFileCount}\n`;
23
+ return {
24
+ contents: [{ uri, mimeType: 'text/markdown', text: md }],
25
+ };
26
+ }
27
+ catch (err) {
28
+ return {
29
+ contents: [{ uri, mimeType: 'text/plain', text: `Error: ${formatError(err)}` }],
30
+ };
31
+ }
32
+ }
33
+ //# sourceMappingURL=spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec.js","sourceRoot":"","sources":["../../src/resources/spec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,WAAW,EAAE,uCAAuC;IACpD,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,8CAA8C;IAC3D,QAAQ,EAAE,eAAe;CAC1B,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,MAA4B,EAAE,EAAU;IACrE,MAAM,GAAG,GAAG,+BAA+B,EAAE,OAAO,CAAC;IACrD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;QACpD,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QAExB,IAAI,EAAE,GAAG,0BAA0B,IAAI,CAAC,QAAQ,MAAM,CAAC;QACvD,EAAE,IAAI,qBAAqB,IAAI,CAAC,WAAW,IAAI,CAAC;QAChD,EAAE,IAAI,iBAAiB,CAAC,CAAC,QAAQ,IAAI,CAAC;QACtC,EAAE,IAAI,eAAe,CAAC,CAAC,UAAU,IAAI,CAAC;QACtC,EAAE,IAAI,oBAAoB,CAAC,CAAC,cAAc,MAAM,CAAC;QACjD,EAAE,IAAI,2BAA2B,CAAC;QAClC,EAAE,IAAI,oBAAoB,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QAC/D,EAAE,IAAI,0BAA0B,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QAC3E,EAAE,IAAI,eAAe,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QACrD,EAAE,IAAI,sBAAsB,CAAC,CAAC,kBAAkB,IAAI,CAAC;QAErD,OAAO;YACL,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;SACzD,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;SAChF,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { Config } from './config.js';
3
+ export declare function createServer(config: Config): McpServer;
package/dist/server.js ADDED
@@ -0,0 +1,44 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import { z } from 'zod';
3
+ import { AgentBlueprintClient } from './client.js';
4
+ import { readBlueprint, blueprintResourceTemplate } from './resources/blueprint.js';
5
+ import { readBlueprintList, blueprintListResource } from './resources/blueprints.js';
6
+ import { readBusinessProfile, businessProfileResource } from './resources/business-profile.js';
7
+ import { readSpec, specResourceTemplate } from './resources/spec.js';
8
+ import { handleGetBlueprint } from './tools/get-blueprint.js';
9
+ import { handleGetBusinessCase } from './tools/get-business-case.js';
10
+ import { handleGetBusinessProfile } from './tools/get-business-profile.js';
11
+ import { handleGetImplementationPlan } from './tools/get-implementation-plan.js';
12
+ import { handleGetImplementationSpec } from './tools/get-implementation-spec.js';
13
+ import { handleGetUseCase } from './tools/get-use-case.js';
14
+ import { handleListBlueprints } from './tools/list-blueprints.js';
15
+ export function createServer(config) {
16
+ const client = new AgentBlueprintClient(config);
17
+ const server = new McpServer({
18
+ name: 'agent-blueprint',
19
+ version: '0.1.0',
20
+ });
21
+ // ─── Tools ──────────────────────────────────────────────────────────
22
+ server.tool('get_business_profile', 'Get the business profile for the organization. Returns company details, industry, strategic initiatives, technology profile, and AI readiness score.', {}, async () => handleGetBusinessProfile(client));
23
+ server.tool('list_blueprints', 'List all blueprints for the organization. Returns summaries with id, title, platform, agent count, and lifecycle status.', {}, async () => handleListBlueprints(client));
24
+ server.tool('get_blueprint', 'Get full blueprint data by ID. Returns the complete blueprint including agents, patterns, architecture, and all configuration.', { blueprintId: z.string().describe('The blueprint ID (UUID)') }, async (args) => handleGetBlueprint(client, args));
25
+ server.tool('get_business_case', 'Get the latest business case for a blueprint. Returns financial analysis, ROI projections, cost breakdown, and executive summary.', { blueprintId: z.string().describe('The blueprint ID (UUID)') }, async (args) => handleGetBusinessCase(client, args));
26
+ server.tool('get_implementation_plan', 'Get the latest implementation plan for a blueprint. Returns epics, stories, dependencies, timeline, and resource requirements.', { blueprintId: z.string().describe('The blueprint ID (UUID)') }, async (args) => handleGetImplementationPlan(client, args));
27
+ server.tool('get_use_case', 'Get the use case analysis linked to a blueprint. Returns business challenge, success metrics, ROI estimate, and strategic alignment.', { blueprintId: z.string().describe('The blueprint ID (UUID)') }, async (args) => handleGetUseCase(client, args));
28
+ server.tool('get_implementation_spec', 'Get the compiled implementation spec for a blueprint. Returns metadata about the spec package including agent count, platform, and what artifacts are included.', { blueprintId: z.string().describe('The blueprint ID (UUID)') }, async (args) => handleGetImplementationSpec(client, args));
29
+ // ─── Resources ──────────────────────────────────────────────────────
30
+ server.resource(businessProfileResource.uri, businessProfileResource.uri, async () => readBusinessProfile(client));
31
+ server.resource(blueprintListResource.uri, blueprintListResource.uri, async () => readBlueprintList(client));
32
+ server.resource(blueprintResourceTemplate.uriTemplate, blueprintResourceTemplate.uriTemplate, async (uri) => {
33
+ const match = uri.href.match(/agentblueprint:\/\/blueprints\/([^/]+)$/);
34
+ const id = match?.[1] ?? '';
35
+ return readBlueprint(client, id);
36
+ });
37
+ server.resource(specResourceTemplate.uriTemplate, specResourceTemplate.uriTemplate, async (uri) => {
38
+ const match = uri.href.match(/agentblueprint:\/\/blueprints\/([^/]+)\/spec$/);
39
+ const id = match?.[1] ?? '';
40
+ return readSpec(client, id);
41
+ });
42
+ return server;
43
+ }
44
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { AgentBlueprintClient } from '../client.js';
2
+ export declare const getBlueprintTool: {
3
+ name: string;
4
+ description: string;
5
+ inputSchema: {
6
+ type: "object";
7
+ properties: {
8
+ blueprintId: {
9
+ type: string;
10
+ description: string;
11
+ };
12
+ };
13
+ required: string[];
14
+ };
15
+ };
16
+ export declare function handleGetBlueprint(client: AgentBlueprintClient, args: {
17
+ blueprintId: string;
18
+ }): Promise<{
19
+ content: {
20
+ type: "text";
21
+ text: string;
22
+ }[];
23
+ isError?: undefined;
24
+ } | {
25
+ content: {
26
+ type: "text";
27
+ text: string;
28
+ }[];
29
+ isError: boolean;
30
+ }>;
@@ -0,0 +1,35 @@
1
+ import { formatError } from '../errors.js';
2
+ export const getBlueprintTool = {
3
+ name: 'get_blueprint',
4
+ description: 'Get full blueprint data by ID. Returns the complete blueprint including agents, patterns, architecture, and all configuration.',
5
+ inputSchema: {
6
+ type: 'object',
7
+ properties: {
8
+ blueprintId: {
9
+ type: 'string',
10
+ description: 'The blueprint ID (UUID)',
11
+ },
12
+ },
13
+ required: ['blueprintId'],
14
+ },
15
+ };
16
+ export async function handleGetBlueprint(client, args) {
17
+ try {
18
+ const blueprint = await client.getBlueprint(args.blueprintId);
19
+ return {
20
+ content: [
21
+ {
22
+ type: 'text',
23
+ text: JSON.stringify(blueprint, null, 2),
24
+ },
25
+ ],
26
+ };
27
+ }
28
+ catch (err) {
29
+ return {
30
+ content: [{ type: 'text', text: formatError(err) }],
31
+ isError: true,
32
+ };
33
+ }
34
+ }
35
+ //# sourceMappingURL=get-blueprint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-blueprint.js","sourceRoot":"","sources":["../../src/tools/get-blueprint.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,gIAAgI;IAC7I,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yBAAyB;aACvC;SACF;QACD,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAA4B,EAC5B,IAA6B;IAE7B,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9D,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;iBACzC;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5D,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { AgentBlueprintClient } from '../client.js';
2
+ export declare const getBusinessCaseTool: {
3
+ name: string;
4
+ description: string;
5
+ inputSchema: {
6
+ type: "object";
7
+ properties: {
8
+ blueprintId: {
9
+ type: string;
10
+ description: string;
11
+ };
12
+ };
13
+ required: string[];
14
+ };
15
+ };
16
+ export declare function handleGetBusinessCase(client: AgentBlueprintClient, args: {
17
+ blueprintId: string;
18
+ }): Promise<{
19
+ content: {
20
+ type: "text";
21
+ text: string;
22
+ }[];
23
+ isError?: undefined;
24
+ } | {
25
+ content: {
26
+ type: "text";
27
+ text: string;
28
+ }[];
29
+ isError: boolean;
30
+ }>;
@@ -0,0 +1,35 @@
1
+ import { formatError } from '../errors.js';
2
+ export const getBusinessCaseTool = {
3
+ name: 'get_business_case',
4
+ description: 'Get the latest business case for a blueprint. Returns financial analysis, ROI projections, cost breakdown, and executive summary.',
5
+ inputSchema: {
6
+ type: 'object',
7
+ properties: {
8
+ blueprintId: {
9
+ type: 'string',
10
+ description: 'The blueprint ID (UUID)',
11
+ },
12
+ },
13
+ required: ['blueprintId'],
14
+ },
15
+ };
16
+ export async function handleGetBusinessCase(client, args) {
17
+ try {
18
+ const businessCase = await client.getBusinessCase(args.blueprintId);
19
+ return {
20
+ content: [
21
+ {
22
+ type: 'text',
23
+ text: JSON.stringify(businessCase, null, 2),
24
+ },
25
+ ],
26
+ };
27
+ }
28
+ catch (err) {
29
+ return {
30
+ content: [{ type: 'text', text: formatError(err) }],
31
+ isError: true,
32
+ };
33
+ }
34
+ }
35
+ //# sourceMappingURL=get-business-case.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-business-case.js","sourceRoot":"","sources":["../../src/tools/get-business-case.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE,mIAAmI;IAChJ,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yBAAyB;aACvC;SACF;QACD,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAA4B,EAC5B,IAA6B;IAE7B,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpE,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;iBAC5C;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5D,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { AgentBlueprintClient } from '../client.js';
2
+ export declare function handleGetBusinessProfile(client: AgentBlueprintClient): Promise<{
3
+ content: {
4
+ type: "text";
5
+ text: string;
6
+ }[];
7
+ isError?: undefined;
8
+ } | {
9
+ content: {
10
+ type: "text";
11
+ text: string;
12
+ }[];
13
+ isError: boolean;
14
+ }>;
@@ -0,0 +1,21 @@
1
+ import { formatError } from '../errors.js';
2
+ export async function handleGetBusinessProfile(client) {
3
+ try {
4
+ const profile = await client.getBusinessProfile();
5
+ return {
6
+ content: [
7
+ {
8
+ type: 'text',
9
+ text: JSON.stringify(profile, null, 2),
10
+ },
11
+ ],
12
+ };
13
+ }
14
+ catch (err) {
15
+ return {
16
+ content: [{ type: 'text', text: formatError(err) }],
17
+ isError: true,
18
+ };
19
+ }
20
+ }
21
+ //# sourceMappingURL=get-business-profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-business-profile.js","sourceRoot":"","sources":["../../src/tools/get-business-profile.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,MAA4B;IACzE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAClD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;iBACvC;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5D,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { AgentBlueprintClient } from '../client.js';
2
+ export declare const getImplementationPlanTool: {
3
+ name: string;
4
+ description: string;
5
+ inputSchema: {
6
+ type: "object";
7
+ properties: {
8
+ blueprintId: {
9
+ type: string;
10
+ description: string;
11
+ };
12
+ };
13
+ required: string[];
14
+ };
15
+ };
16
+ export declare function handleGetImplementationPlan(client: AgentBlueprintClient, args: {
17
+ blueprintId: string;
18
+ }): Promise<{
19
+ content: {
20
+ type: "text";
21
+ text: string;
22
+ }[];
23
+ isError?: undefined;
24
+ } | {
25
+ content: {
26
+ type: "text";
27
+ text: string;
28
+ }[];
29
+ isError: boolean;
30
+ }>;
@@ -0,0 +1,35 @@
1
+ import { formatError } from '../errors.js';
2
+ export const getImplementationPlanTool = {
3
+ name: 'get_implementation_plan',
4
+ description: 'Get the latest implementation plan for a blueprint. Returns epics, stories, dependencies, timeline, and resource requirements.',
5
+ inputSchema: {
6
+ type: 'object',
7
+ properties: {
8
+ blueprintId: {
9
+ type: 'string',
10
+ description: 'The blueprint ID (UUID)',
11
+ },
12
+ },
13
+ required: ['blueprintId'],
14
+ },
15
+ };
16
+ export async function handleGetImplementationPlan(client, args) {
17
+ try {
18
+ const plan = await client.getImplementationPlan(args.blueprintId);
19
+ return {
20
+ content: [
21
+ {
22
+ type: 'text',
23
+ text: JSON.stringify(plan, null, 2),
24
+ },
25
+ ],
26
+ };
27
+ }
28
+ catch (err) {
29
+ return {
30
+ content: [{ type: 'text', text: formatError(err) }],
31
+ isError: true,
32
+ };
33
+ }
34
+ }
35
+ //# sourceMappingURL=get-implementation-plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-implementation-plan.js","sourceRoot":"","sources":["../../src/tools/get-implementation-plan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EAAE,gIAAgI;IAC7I,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yBAAyB;aACvC;SACF;QACD,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAA4B,EAC5B,IAA6B;IAE7B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAClE,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;iBACpC;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5D,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { AgentBlueprintClient } from '../client.js';
2
+ export declare const getImplementationSpecTool: {
3
+ name: string;
4
+ description: string;
5
+ inputSchema: {
6
+ type: "object";
7
+ properties: {
8
+ blueprintId: {
9
+ type: string;
10
+ description: string;
11
+ };
12
+ };
13
+ required: string[];
14
+ };
15
+ };
16
+ export declare function handleGetImplementationSpec(client: AgentBlueprintClient, args: {
17
+ blueprintId: string;
18
+ }): Promise<{
19
+ content: {
20
+ type: "text";
21
+ text: string;
22
+ }[];
23
+ isError?: undefined;
24
+ } | {
25
+ content: {
26
+ type: "text";
27
+ text: string;
28
+ }[];
29
+ isError: boolean;
30
+ }>;
@@ -0,0 +1,35 @@
1
+ import { formatError } from '../errors.js';
2
+ export const getImplementationSpecTool = {
3
+ name: 'get_implementation_spec',
4
+ description: 'Get the compiled implementation spec for a blueprint. Returns metadata about the spec package including agent count, platform, and what artifacts are included.',
5
+ inputSchema: {
6
+ type: 'object',
7
+ properties: {
8
+ blueprintId: {
9
+ type: 'string',
10
+ description: 'The blueprint ID (UUID)',
11
+ },
12
+ },
13
+ required: ['blueprintId'],
14
+ },
15
+ };
16
+ export async function handleGetImplementationSpec(client, args) {
17
+ try {
18
+ const spec = await client.getImplementationSpec(args.blueprintId);
19
+ return {
20
+ content: [
21
+ {
22
+ type: 'text',
23
+ text: JSON.stringify(spec, null, 2),
24
+ },
25
+ ],
26
+ };
27
+ }
28
+ catch (err) {
29
+ return {
30
+ content: [{ type: 'text', text: formatError(err) }],
31
+ isError: true,
32
+ };
33
+ }
34
+ }
35
+ //# sourceMappingURL=get-implementation-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-implementation-spec.js","sourceRoot":"","sources":["../../src/tools/get-implementation-spec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EAAE,iKAAiK;IAC9K,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yBAAyB;aACvC;SACF;QACD,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAA4B,EAC5B,IAA6B;IAE7B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAClE,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;iBACpC;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5D,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { AgentBlueprintClient } from '../client.js';
2
+ export declare const getUseCaseTool: {
3
+ name: string;
4
+ description: string;
5
+ inputSchema: {
6
+ type: "object";
7
+ properties: {
8
+ blueprintId: {
9
+ type: string;
10
+ description: string;
11
+ };
12
+ };
13
+ required: string[];
14
+ };
15
+ };
16
+ export declare function handleGetUseCase(client: AgentBlueprintClient, args: {
17
+ blueprintId: string;
18
+ }): Promise<{
19
+ content: {
20
+ type: "text";
21
+ text: string;
22
+ }[];
23
+ isError?: undefined;
24
+ } | {
25
+ content: {
26
+ type: "text";
27
+ text: string;
28
+ }[];
29
+ isError: boolean;
30
+ }>;
@@ -0,0 +1,35 @@
1
+ import { formatError } from '../errors.js';
2
+ export const getUseCaseTool = {
3
+ name: 'get_use_case',
4
+ description: 'Get the use case analysis linked to a blueprint. Returns business challenge, success metrics, ROI estimate, and strategic alignment.',
5
+ inputSchema: {
6
+ type: 'object',
7
+ properties: {
8
+ blueprintId: {
9
+ type: 'string',
10
+ description: 'The blueprint ID (UUID)',
11
+ },
12
+ },
13
+ required: ['blueprintId'],
14
+ },
15
+ };
16
+ export async function handleGetUseCase(client, args) {
17
+ try {
18
+ const useCase = await client.getUseCase(args.blueprintId);
19
+ return {
20
+ content: [
21
+ {
22
+ type: 'text',
23
+ text: JSON.stringify(useCase, null, 2),
24
+ },
25
+ ],
26
+ };
27
+ }
28
+ catch (err) {
29
+ return {
30
+ content: [{ type: 'text', text: formatError(err) }],
31
+ isError: true,
32
+ };
33
+ }
34
+ }
35
+ //# sourceMappingURL=get-use-case.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-use-case.js","sourceRoot":"","sources":["../../src/tools/get-use-case.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,sIAAsI;IACnJ,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yBAAyB;aACvC;SACF;QACD,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAA4B,EAC5B,IAA6B;IAE7B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1D,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;iBACvC;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5D,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { AgentBlueprintClient } from '../client.js';
2
+ export declare const listBlueprintsTool: {
3
+ name: string;
4
+ description: string;
5
+ inputSchema: {
6
+ type: "object";
7
+ properties: {};
8
+ };
9
+ };
10
+ export declare function handleListBlueprints(client: AgentBlueprintClient): Promise<{
11
+ content: {
12
+ type: "text";
13
+ text: string;
14
+ }[];
15
+ isError?: undefined;
16
+ } | {
17
+ content: {
18
+ type: "text";
19
+ text: string;
20
+ }[];
21
+ isError: boolean;
22
+ }>;