@muggleai/mcp 1.0.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 (94) hide show
  1. package/README.md +160 -0
  2. package/bin/muggle-mcp.js +2 -0
  3. package/dist/chunk-6DQWAMGJ.js +7626 -0
  4. package/dist/chunk-6DQWAMGJ.js.map +1 -0
  5. package/dist/cli/doctor.d.ts +8 -0
  6. package/dist/cli/doctor.d.ts.map +1 -0
  7. package/dist/cli/index.d.ts +9 -0
  8. package/dist/cli/index.d.ts.map +1 -0
  9. package/dist/cli/login.d.ts +26 -0
  10. package/dist/cli/login.d.ts.map +1 -0
  11. package/dist/cli/main.d.ts +6 -0
  12. package/dist/cli/main.d.ts.map +1 -0
  13. package/dist/cli/serve.d.ts +20 -0
  14. package/dist/cli/serve.d.ts.map +1 -0
  15. package/dist/cli/setup.d.ts +16 -0
  16. package/dist/cli/setup.d.ts.map +1 -0
  17. package/dist/cli.js +305 -0
  18. package/dist/cli.js.map +1 -0
  19. package/dist/index.d.ts +35 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +36 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/local-qa/contracts/auth-schemas.d.ts +35 -0
  24. package/dist/local-qa/contracts/auth-schemas.d.ts.map +1 -0
  25. package/dist/local-qa/contracts/index.d.ts +7 -0
  26. package/dist/local-qa/contracts/index.d.ts.map +1 -0
  27. package/dist/local-qa/contracts/project-schemas.d.ts +1141 -0
  28. package/dist/local-qa/contracts/project-schemas.d.ts.map +1 -0
  29. package/dist/local-qa/contracts/session-schemas.d.ts +27 -0
  30. package/dist/local-qa/contracts/session-schemas.d.ts.map +1 -0
  31. package/dist/local-qa/index.d.ts +27 -0
  32. package/dist/local-qa/index.d.ts.map +1 -0
  33. package/dist/local-qa/services/auth-service.d.ts +79 -0
  34. package/dist/local-qa/services/auth-service.d.ts.map +1 -0
  35. package/dist/local-qa/services/execution-service.d.ts +55 -0
  36. package/dist/local-qa/services/execution-service.d.ts.map +1 -0
  37. package/dist/local-qa/services/index.d.ts +8 -0
  38. package/dist/local-qa/services/index.d.ts.map +1 -0
  39. package/dist/local-qa/services/project-storage-service.d.ts +262 -0
  40. package/dist/local-qa/services/project-storage-service.d.ts.map +1 -0
  41. package/dist/local-qa/services/storage-service.d.ts +166 -0
  42. package/dist/local-qa/services/storage-service.d.ts.map +1 -0
  43. package/dist/local-qa/tools/index.d.ts +5 -0
  44. package/dist/local-qa/tools/index.d.ts.map +1 -0
  45. package/dist/local-qa/tools/tool-registry.d.ts +18 -0
  46. package/dist/local-qa/tools/tool-registry.d.ts.map +1 -0
  47. package/dist/local-qa/types/auth-types.d.ts +97 -0
  48. package/dist/local-qa/types/auth-types.d.ts.map +1 -0
  49. package/dist/local-qa/types/config-types.d.ts +28 -0
  50. package/dist/local-qa/types/config-types.d.ts.map +1 -0
  51. package/dist/local-qa/types/enums.d.ts +141 -0
  52. package/dist/local-qa/types/enums.d.ts.map +1 -0
  53. package/dist/local-qa/types/index.d.ts +10 -0
  54. package/dist/local-qa/types/index.d.ts.map +1 -0
  55. package/dist/local-qa/types/project-types.d.ts +339 -0
  56. package/dist/local-qa/types/project-types.d.ts.map +1 -0
  57. package/dist/local-qa/types/storage-params.d.ts +544 -0
  58. package/dist/local-qa/types/storage-params.d.ts.map +1 -0
  59. package/dist/local-qa/types/tool-types.d.ts +38 -0
  60. package/dist/local-qa/types/tool-types.d.ts.map +1 -0
  61. package/dist/qa/contracts/index.d.ts +716 -0
  62. package/dist/qa/contracts/index.d.ts.map +1 -0
  63. package/dist/qa/index.d.ts +15 -0
  64. package/dist/qa/index.d.ts.map +1 -0
  65. package/dist/qa/tools/index.d.ts +5 -0
  66. package/dist/qa/tools/index.d.ts.map +1 -0
  67. package/dist/qa/tools/tool-registry.d.ts +22 -0
  68. package/dist/qa/tools/tool-registry.d.ts.map +1 -0
  69. package/dist/qa/types.d.ts +101 -0
  70. package/dist/qa/types.d.ts.map +1 -0
  71. package/dist/qa/upstream-client.d.ts +60 -0
  72. package/dist/qa/upstream-client.d.ts.map +1 -0
  73. package/dist/server/index.d.ts +6 -0
  74. package/dist/server/index.d.ts.map +1 -0
  75. package/dist/server/mcp-server.d.ts +34 -0
  76. package/dist/server/mcp-server.d.ts.map +1 -0
  77. package/dist/server/stdio-server.d.ts +11 -0
  78. package/dist/server/stdio-server.d.ts.map +1 -0
  79. package/dist/shared/auth.d.ts +75 -0
  80. package/dist/shared/auth.d.ts.map +1 -0
  81. package/dist/shared/config.d.ts +41 -0
  82. package/dist/shared/config.d.ts.map +1 -0
  83. package/dist/shared/credentials.d.ts +48 -0
  84. package/dist/shared/credentials.d.ts.map +1 -0
  85. package/dist/shared/index.d.ts +10 -0
  86. package/dist/shared/index.d.ts.map +1 -0
  87. package/dist/shared/logger.d.ts +21 -0
  88. package/dist/shared/logger.d.ts.map +1 -0
  89. package/dist/shared/open-browser.d.ts +27 -0
  90. package/dist/shared/open-browser.d.ts.map +1 -0
  91. package/dist/shared/types.d.ts +178 -0
  92. package/dist/shared/types.d.ts.map +1 -0
  93. package/package.json +75 -0
  94. package/scripts/postinstall.mjs +153 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/qa/contracts/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * QA Gateway tools module.
3
+ * Cloud-based QA tools that require authentication.
4
+ */
5
+ import type { IMcpTool } from "../shared/types.js";
6
+ export * from "./contracts/index.js";
7
+ export * from "./tools/index.js";
8
+ export * from "./types.js";
9
+ export * from "./upstream-client.js";
10
+ /**
11
+ * Convert QA tool definitions to IMcpTool format.
12
+ * @returns Array of IMcpTool definitions.
13
+ */
14
+ export declare function getQaTools(): IMcpTool[];
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/qa/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAInD,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AAErC;;;GAGG;AACH,wBAAgB,UAAU,IAAI,QAAQ,EAAE,CAUvC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * QA tools module exports.
3
+ */
4
+ export * from "./tool-registry.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/qa/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * QA Tool registry - maps tool names to their implementations.
3
+ */
4
+ import type { IMcpToolResult } from "../../shared/types.js";
5
+ import { IQaToolDefinition } from "../types.js";
6
+ /** All QA tool definitions. */
7
+ export declare const allQaToolDefinitions: IQaToolDefinition[];
8
+ /**
9
+ * Get a QA tool definition by name.
10
+ * @param name - Tool name.
11
+ * @returns Tool definition or undefined.
12
+ */
13
+ export declare function getQaToolByName(name: string): IQaToolDefinition | undefined;
14
+ /**
15
+ * Execute a QA tool.
16
+ * @param toolName - Tool name.
17
+ * @param input - Tool input.
18
+ * @param correlationId - Correlation ID.
19
+ * @returns Tool result.
20
+ */
21
+ export declare function executeQaTool(toolName: string, input: unknown, correlationId: string): Promise<IMcpToolResult>;
22
+ //# sourceMappingURL=tool-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../../../src/qa/tools/tool-registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAgB,iBAAiB,EAAqB,MAAM,aAAa,CAAC;AA0hCjF,+BAA+B;AAC/B,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,EAWnD,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAE3E;AAWD;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,cAAc,CAAC,CAyEzB"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Type definitions for QA Gateway tools.
3
+ */
4
+ import type { ZodSchema } from "zod";
5
+ /**
6
+ * MCP error codes.
7
+ */
8
+ export declare enum McpErrorCode {
9
+ UNAUTHORIZED = "UNAUTHORIZED",
10
+ FORBIDDEN = "FORBIDDEN",
11
+ NOT_FOUND = "NOT_FOUND",
12
+ INVALID_ARGUMENT = "INVALID_ARGUMENT",
13
+ UPSTREAM_ERROR = "UPSTREAM_ERROR",
14
+ INTERNAL_ERROR = "INTERNAL_ERROR"
15
+ }
16
+ /**
17
+ * Gateway error with MCP error code.
18
+ */
19
+ export declare class GatewayError extends Error {
20
+ /** MCP error code. */
21
+ readonly code: McpErrorCode;
22
+ /** HTTP status code (if applicable). */
23
+ readonly statusCode?: number;
24
+ /** Additional error details. */
25
+ readonly details?: Record<string, unknown>;
26
+ constructor(params: {
27
+ code: McpErrorCode;
28
+ message: string;
29
+ statusCode?: number;
30
+ details?: Record<string, unknown>;
31
+ });
32
+ }
33
+ /**
34
+ * Mapped upstream HTTP call specification.
35
+ */
36
+ export interface IUpstreamCall {
37
+ /** HTTP method. */
38
+ method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH";
39
+ /** Path relative to prompt-service base URL. */
40
+ path: string;
41
+ /** Query parameters. */
42
+ queryParams?: Record<string, string | number | boolean | undefined>;
43
+ /** Request body (for POST/PUT/PATCH). */
44
+ body?: unknown;
45
+ /** Optional multipart form-data upload. */
46
+ multipartFormData?: {
47
+ /** Field name for the uploaded file (e.g., "file"). */
48
+ fileFieldName: string;
49
+ /** File name to provide to upstream. */
50
+ fileName: string;
51
+ /** MIME type for the uploaded file. */
52
+ contentType: string;
53
+ /** Base64-encoded file bytes. */
54
+ fileBase64: string;
55
+ };
56
+ /** Timeout in milliseconds (overrides default). */
57
+ timeoutMs?: number;
58
+ }
59
+ /**
60
+ * Upstream response.
61
+ */
62
+ export interface IUpstreamResponse<T = unknown> {
63
+ /** HTTP status code. */
64
+ statusCode: number;
65
+ /** Response data. */
66
+ data: T;
67
+ /** Response headers. */
68
+ headers: Record<string, string>;
69
+ }
70
+ /**
71
+ * Caller credentials for API requests.
72
+ */
73
+ export interface ICallerCredentials {
74
+ /** Bearer token (from device code flow or config). */
75
+ bearerToken?: string;
76
+ /** API key (from device code flow or config). */
77
+ apiKey?: string;
78
+ }
79
+ /**
80
+ * QA tool definition with schema, description, and implementation.
81
+ */
82
+ export interface IQaToolDefinition {
83
+ /** Tool name (used in MCP). */
84
+ name: string;
85
+ /** Tool description (shown to LLM). */
86
+ description: string;
87
+ /** Input schema (Zod). */
88
+ inputSchema: ZodSchema;
89
+ /** Whether this tool requires authentication (default: true). */
90
+ requiresAuth?: boolean;
91
+ /** Map validated input to upstream call. */
92
+ mapToUpstream: (input: unknown) => IUpstreamCall;
93
+ /** Map upstream response to tool output. */
94
+ mapFromUpstream?: (response: IUpstreamResponse, input?: unknown) => unknown;
95
+ /**
96
+ * Local handler for tools that don't make upstream calls.
97
+ * Used for auth tools and recommendation tools.
98
+ */
99
+ localHandler?: (input: unknown) => Promise<unknown>;
100
+ }
101
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/qa/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAErC;;GAEG;AACH,oBAAY,YAAY;IACtB,YAAY,iBAAiB;IAC7B,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,gBAAgB,qBAAqB;IACrC,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;CAClC;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC,sBAAsB;IACtB,SAAgB,IAAI,EAAE,YAAY,CAAC;IAEnC,wCAAwC;IACxC,SAAgB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpC,gCAAgC;IAChC,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAEtC,MAAM,EAAE;QAClB,IAAI,EAAE,YAAY,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC;CAOF;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,mBAAmB;IACnB,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;IAEpD,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IAEb,wBAAwB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IAEpE,yCAAyC;IACzC,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE;QAClB,uDAAuD;QACvD,aAAa,EAAE,MAAM,CAAC;QACtB,wCAAwC;QACxC,QAAQ,EAAE,MAAM,CAAC;QACjB,uCAAuC;QACvC,WAAW,EAAE,MAAM,CAAC;QACpB,iCAAiC;QACjC,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,OAAO;IAC5C,wBAAwB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB;IACrB,IAAI,EAAE,CAAC,CAAC;IACR,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IAEb,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IAEpB,0BAA0B;IAC1B,WAAW,EAAE,SAAS,CAAC;IAEvB,iEAAiE;IACjE,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,4CAA4C;IAC5C,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,aAAa,CAAC;IAEjD,4CAA4C;IAC5C,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC;IAE5E;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACrD"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * HTTP client for forwarding requests to prompt-service.
3
+ */
4
+ import { ICallerCredentials, IUpstreamCall, IUpstreamResponse } from "./types.js";
5
+ /**
6
+ * Client for forwarding requests to prompt-service with auth passthrough.
7
+ */
8
+ export declare class PromptServiceClient {
9
+ private readonly httpClient;
10
+ private readonly baseUrl;
11
+ private readonly requestTimeoutMs;
12
+ constructor();
13
+ /**
14
+ * Validate that the upstream path is within the allowed prefix.
15
+ * @param path - Path to validate.
16
+ * @throws GatewayError if path is not allowed.
17
+ */
18
+ private validatePath;
19
+ /**
20
+ * Build headers for upstream request with credential forwarding.
21
+ * @param credentials - Caller credentials to forward.
22
+ * @param correlationId - Request correlation ID.
23
+ * @returns Headers object.
24
+ */
25
+ private buildHeaders;
26
+ /**
27
+ * Build query string from parameters.
28
+ * @param params - Query parameters.
29
+ * @returns Query string (without leading '?').
30
+ */
31
+ private buildQueryString;
32
+ /**
33
+ * Map HTTP status code to MCP error code.
34
+ * @param statusCode - HTTP status code.
35
+ * @returns MCP error code.
36
+ */
37
+ private mapStatusToErrorCode;
38
+ /**
39
+ * Format upstream error response into a user-friendly message.
40
+ * @param statusCode - HTTP status code.
41
+ * @param data - Response data from upstream.
42
+ * @returns User-friendly error message.
43
+ */
44
+ private formatUpstreamErrorMessage;
45
+ /**
46
+ * Execute an upstream call to prompt-service.
47
+ * @param call - Upstream call specification.
48
+ * @param credentials - Caller credentials to forward.
49
+ * @param correlationId - Request correlation ID.
50
+ * @returns Upstream response.
51
+ * @throws GatewayError on validation or upstream errors.
52
+ */
53
+ execute<T = unknown>(call: IUpstreamCall, credentials: ICallerCredentials, correlationId: string): Promise<IUpstreamResponse<T>>;
54
+ }
55
+ /**
56
+ * Get the PromptServiceClient instance (singleton).
57
+ * @returns PromptServiceClient instance.
58
+ */
59
+ export declare function getPromptServiceClient(): PromptServiceClient;
60
+ //# sourceMappingURL=upstream-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upstream-client.d.ts","sourceRoot":"","sources":["../../src/qa/upstream-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EAEL,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EAElB,MAAM,YAAY,CAAC;AASpB;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;;IAc1C;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAgBpB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAqBpB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;;;;OAKG;IACH,OAAO,CAAC,0BAA0B;IAiDlC;;;;;;;OAOG;IACG,OAAO,CAAC,CAAC,GAAG,OAAO,EACvB,IAAI,EAAE,aAAa,EACnB,WAAW,EAAE,kBAAkB,EAC/B,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;CA4HjC;AAKD;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,mBAAmB,CAK5D"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Server module exports for @muggleai/mcp.
3
+ */
4
+ export * from "./mcp-server.js";
5
+ export * from "./stdio-server.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Unified MCP server implementation for @muggleai/mcp.
3
+ * Combines QA Gateway and Local QA tools into a single server.
4
+ */
5
+ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
6
+ import type { IMcpTool } from "../shared/types.js";
7
+ /** Options for creating the unified MCP server. */
8
+ export interface IUnifiedMcpServerOptions {
9
+ /** Enable Cloud QA tools. */
10
+ enableQaTools: boolean;
11
+ /** Enable Local QA tools. */
12
+ enableLocalTools: boolean;
13
+ }
14
+ /**
15
+ * Register tools with the server.
16
+ * @param tools - Tools to register.
17
+ */
18
+ export declare function registerTools(tools: IMcpTool[]): void;
19
+ /**
20
+ * Get all registered tools.
21
+ * @returns Array of registered tools.
22
+ */
23
+ export declare function getAllTools(): IMcpTool[];
24
+ /**
25
+ * Clear all registered tools (for testing).
26
+ */
27
+ export declare function clearTools(): void;
28
+ /**
29
+ * Create and configure the unified MCP server.
30
+ * @param options - Server options.
31
+ * @returns Configured MCP Server instance.
32
+ */
33
+ export declare function createUnifiedMcpServer(options: IUnifiedMcpServerOptions): Server;
34
+ //# sourceMappingURL=mcp-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../src/server/mcp-server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAanE,OAAO,KAAK,EAAsB,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEvE,mDAAmD;AACnD,MAAM,WAAW,wBAAwB;IACvC,6BAA6B;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,6BAA6B;IAC7B,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAKD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAErD;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,QAAQ,EAAE,CAExC;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AA+KD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM,CAoLhF"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Stdio server implementation for @muggleai/mcp.
3
+ * Runs the MCP server using stdin/stdout transport.
4
+ */
5
+ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
6
+ /**
7
+ * Start the MCP server using stdio transport.
8
+ * @param server - Configured MCP Server instance.
9
+ */
10
+ export declare function startStdioServer(server: Server): Promise<void>;
11
+ //# sourceMappingURL=stdio-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio-server.d.ts","sourceRoot":"","sources":["../../src/server/stdio-server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAOnE;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBpE"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Authentication module for @muggleai/mcp.
3
+ * Implements device code flow for user authentication.
4
+ */
5
+ import type { IAuth0Config, ICallerCredentials, IDeviceCodePollResponse, IDeviceCodeResponse, IStoredCredentials } from "./types.js";
6
+ /**
7
+ * Start the device code authorization flow.
8
+ * Returns a device code and verification URL for the user.
9
+ *
10
+ * @param config - Auth0 configuration.
11
+ * @returns Device code response with URLs and codes.
12
+ * @throws Error if the device code request fails.
13
+ */
14
+ export declare function startDeviceCodeFlow(config: IAuth0Config): Promise<IDeviceCodeResponse>;
15
+ /**
16
+ * Poll for device code authorization completion.
17
+ * Should be called at the interval specified in startDeviceCodeFlow response.
18
+ *
19
+ * @param config - Auth0 configuration.
20
+ * @param deviceCode - The device code from startDeviceCodeFlow.
21
+ * @returns Poll response with status and optionally access token.
22
+ */
23
+ export declare function pollDeviceCode(config: IAuth0Config, deviceCode: string): Promise<IDeviceCodePollResponse>;
24
+ /**
25
+ * Create an API key using an access token.
26
+ * Calls the prompt service API to create a new API key.
27
+ *
28
+ * @param accessToken - Auth0 access token.
29
+ * @param keyName - Optional name for the API key.
30
+ * @param expiry - Expiry option ('30d', '90d', '1y', 'never').
31
+ * @returns Created API key details.
32
+ */
33
+ export declare function createApiKeyWithToken(accessToken: string, keyName: string | undefined, expiry?: "30d" | "90d" | "1y" | "never"): Promise<{
34
+ id: string;
35
+ key: string;
36
+ name: string | null;
37
+ status: string;
38
+ prefix: string;
39
+ lastFour: string;
40
+ createdAt: number;
41
+ expiresAt: number | null;
42
+ }>;
43
+ /**
44
+ * Complete the full device code login flow.
45
+ * Starts the flow, waits for user authorization, and creates credentials.
46
+ *
47
+ * @param keyName - Optional name for the API key.
48
+ * @param keyExpiry - Expiry option for API key.
49
+ * @param timeoutMs - Maximum time to wait for authorization.
50
+ * @returns Result of the login flow.
51
+ */
52
+ export declare function performLogin(keyName?: string, keyExpiry?: "30d" | "90d" | "1y" | "never", timeoutMs?: number): Promise<{
53
+ success: boolean;
54
+ deviceCodeResponse?: IDeviceCodeResponse;
55
+ credentials?: IStoredCredentials;
56
+ error?: string;
57
+ }>;
58
+ /**
59
+ * Perform logout by clearing credentials.
60
+ */
61
+ export declare function performLogout(): void;
62
+ /**
63
+ * Get caller credentials for API requests.
64
+ * Returns credentials from storage if available and valid.
65
+ * @returns Caller credentials or empty object.
66
+ */
67
+ export declare function getCallerCredentials(): ICallerCredentials;
68
+ /**
69
+ * Check if authentication is required for the given tool.
70
+ * Local-only tools don't require auth.
71
+ * @param toolName - Name of the tool.
72
+ * @returns True if tool requires authentication.
73
+ */
74
+ export declare function toolRequiresAuth(toolName: string): boolean;
75
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/shared/auth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAIpB;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAkE5F;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,uBAAuB,CAAC,CA2ElC;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,MAAM,GAAE,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,OAAe,GAC7C,OAAO,CAAC;IACT,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC,CAyCD;AAED;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAChC,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,GAAE,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,OAAe,EACjD,SAAS,GAAE,MAAe,GACzB,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,CAAC,EAAE,mBAAmB,CAAC;IACzC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAiFD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAGpC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,kBAAkB,CAczD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAuD1D"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Configuration management for @muggleai/mcp.
3
+ * Unified configuration for both QA Gateway and Local QA.
4
+ */
5
+ import type { IConfig } from "./types.js";
6
+ /**
7
+ * Get the Muggle AI data directory path.
8
+ * @returns Path to ~/.muggle-ai
9
+ */
10
+ export declare function getDataDir(): string;
11
+ /**
12
+ * Get the unified application configuration.
13
+ * @returns The application configuration.
14
+ */
15
+ export declare function getConfig(): IConfig;
16
+ /**
17
+ * Reset the configuration (for testing).
18
+ */
19
+ export declare function resetConfig(): void;
20
+ /**
21
+ * Get the expected electron-app version from package.json.
22
+ * @returns The electron-app version string.
23
+ */
24
+ export declare function getElectronAppVersion(): string;
25
+ /**
26
+ * Get the download base URL for electron-app binaries.
27
+ * @returns The base URL for downloads.
28
+ */
29
+ export declare function getDownloadBaseUrl(): string;
30
+ /**
31
+ * Check if the electron-app binary is installed for the expected version.
32
+ * @returns True if the binary is installed and accessible.
33
+ */
34
+ export declare function isElectronAppInstalled(): boolean;
35
+ /**
36
+ * Get the electron-app directory path for a specific version.
37
+ * @param version - Version string (defaults to configured version).
38
+ * @returns Path to the electron-app version directory.
39
+ */
40
+ export declare function getElectronAppDir(version?: string): string;
41
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAgB,OAAO,EAA6B,MAAM,YAAY,CAAC;AAyFnF;;;GAGG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAsLD;;;GAGG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAenC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAGlC;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAG1D"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Credentials storage for @muggleai/mcp.
3
+ * Manages persistent storage of authentication credentials.
4
+ */
5
+ import type { IStoredCredentials } from "./types.js";
6
+ /**
7
+ * Get the path to the credentials file.
8
+ * @returns Path to credentials.json
9
+ */
10
+ export declare function getCredentialsFilePath(): string;
11
+ /**
12
+ * Load stored credentials from disk.
13
+ * @returns Stored credentials, or null if not found or invalid.
14
+ */
15
+ export declare function loadCredentials(): IStoredCredentials | null;
16
+ /**
17
+ * Save credentials to disk.
18
+ * @param credentials - Credentials to save.
19
+ */
20
+ export declare function saveCredentials(credentials: IStoredCredentials): void;
21
+ /**
22
+ * Delete stored credentials.
23
+ */
24
+ export declare function deleteCredentials(): void;
25
+ /**
26
+ * Check if credentials are expired.
27
+ * @param credentials - Credentials to check.
28
+ * @returns True if expired.
29
+ */
30
+ export declare function isCredentialsExpired(credentials: IStoredCredentials): boolean;
31
+ /**
32
+ * Get valid credentials if available.
33
+ * Returns null if no credentials or if expired.
34
+ * @returns Valid credentials or null.
35
+ */
36
+ export declare function getValidCredentials(): IStoredCredentials | null;
37
+ /**
38
+ * Get authentication status.
39
+ * @returns Object with authentication status information.
40
+ */
41
+ export declare function getAuthStatus(): {
42
+ authenticated: boolean;
43
+ email?: string;
44
+ userId?: string;
45
+ expiresAt?: string;
46
+ hasApiKey: boolean;
47
+ };
48
+ //# sourceMappingURL=credentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/shared/credentials.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAKrD;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAYD;;;GAGG;AACH,wBAAgB,eAAe,IAAI,kBAAkB,GAAG,IAAI,CA0B3D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAiBrE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAcxC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,kBAAkB,GAAG,OAAO,CAO7E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,kBAAkB,GAAG,IAAI,CAa/D;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB,CAmBA"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Shared module exports for @muggleai/mcp.
3
+ */
4
+ export * from "./auth.js";
5
+ export * from "./config.js";
6
+ export * from "./credentials.js";
7
+ export * from "./logger.js";
8
+ export * from "./open-browser.js";
9
+ export * from "./types.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Logger module for @muggleai/mcp.
3
+ * Provides structured logging using Winston.
4
+ */
5
+ import winston from "winston";
6
+ /**
7
+ * Get the logger instance (singleton).
8
+ * @returns Winston logger.
9
+ */
10
+ export declare function getLogger(): winston.Logger;
11
+ /**
12
+ * Create a child logger with additional context.
13
+ * @param correlationId - Request correlation ID.
14
+ * @returns Child logger with correlation context.
15
+ */
16
+ export declare function createChildLogger(correlationId: string): winston.Logger;
17
+ /**
18
+ * Reset the logger (for testing).
19
+ */
20
+ export declare function resetLogger(): void;
21
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/shared/logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,OAAO,MAAM,SAAS,CAAC;AAoC9B;;;GAGG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAAC,MAAM,CAK1C;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAGvE;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAElC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Browser opening utility for @muggleai/mcp.
3
+ * Opens URLs in the user's default browser.
4
+ */
5
+ /**
6
+ * Result of attempting to open a browser.
7
+ */
8
+ export interface IBrowserOpenResult {
9
+ /** Whether the browser was successfully opened. */
10
+ opened: boolean;
11
+ /** Error message if failed to open. */
12
+ error?: string;
13
+ }
14
+ /**
15
+ * Options for opening a browser.
16
+ */
17
+ export interface IBrowserOpenOptions {
18
+ /** URL to open. */
19
+ url: string;
20
+ }
21
+ /**
22
+ * Open a URL in the user's default browser.
23
+ * @param options - Options containing the URL to open.
24
+ * @returns Result indicating success or failure.
25
+ */
26
+ export declare function openBrowserUrl(options: IBrowserOpenOptions): Promise<IBrowserOpenResult>;
27
+ //# sourceMappingURL=open-browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open-browser.d.ts","sourceRoot":"","sources":["../../src/shared/open-browser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,mDAAmD;IACnD,MAAM,EAAE,OAAO,CAAC;IAChB,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,mBAAmB;IACnB,GAAG,EAAE,MAAM,CAAC;CACb;AAsBD;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAkC9F"}