@orchestrator-claude/mcp-server 1.4.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/.mcp.json.example +11 -0
- package/README.md +180 -0
- package/dist/client/OrchestratorApiClient.d.ts +35 -0
- package/dist/client/OrchestratorApiClient.d.ts.map +1 -0
- package/dist/client/OrchestratorApiClient.js +121 -0
- package/dist/client/OrchestratorApiClient.js.map +1 -0
- package/dist/client/index.d.ts +8 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +7 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/types.d.ts +26 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +7 -0
- package/dist/client/types.js.map +1 -0
- package/dist/config.d.ts +12 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +17 -0
- package/dist/config.js.map +1 -0
- package/dist/errors/McpApiError.d.ts +23 -0
- package/dist/errors/McpApiError.d.ts.map +1 -0
- package/dist/errors/McpApiError.js +27 -0
- package/dist/errors/McpApiError.js.map +1 -0
- package/dist/handlers/context-handlers.d.ts +64 -0
- package/dist/handlers/context-handlers.d.ts.map +1 -0
- package/dist/handlers/context-handlers.js +67 -0
- package/dist/handlers/context-handlers.js.map +1 -0
- package/dist/handlers/gate-handlers.d.ts +63 -0
- package/dist/handlers/gate-handlers.d.ts.map +1 -0
- package/dist/handlers/gate-handlers.js +67 -0
- package/dist/handlers/gate-handlers.js.map +1 -0
- package/dist/handlers/index.d.ts +15 -0
- package/dist/handlers/index.d.ts.map +1 -0
- package/dist/handlers/index.js +241 -0
- package/dist/handlers/index.js.map +1 -0
- package/dist/handlers/metrics-handlers.d.ts +84 -0
- package/dist/handlers/metrics-handlers.d.ts.map +1 -0
- package/dist/handlers/metrics-handlers.js +87 -0
- package/dist/handlers/metrics-handlers.js.map +1 -0
- package/dist/handlers/pending-action-handlers.d.ts +81 -0
- package/dist/handlers/pending-action-handlers.d.ts.map +1 -0
- package/dist/handlers/pending-action-handlers.js +87 -0
- package/dist/handlers/pending-action-handlers.js.map +1 -0
- package/dist/handlers/workflow-handlers.d.ts +80 -0
- package/dist/handlers/workflow-handlers.d.ts.map +1 -0
- package/dist/handlers/workflow-handlers.js +87 -0
- package/dist/handlers/workflow-handlers.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- package/dist/server.d.ts +24 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +51 -0
- package/dist/server.js.map +1 -0
- package/package.json +55 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pending Action Handlers
|
|
3
|
+
*
|
|
4
|
+
* MCP tool handlers for pending action management:
|
|
5
|
+
* - getNextAction
|
|
6
|
+
* - setPendingAction
|
|
7
|
+
* - clearPendingAction
|
|
8
|
+
* - approveAction
|
|
9
|
+
*/
|
|
10
|
+
import type { IOrchestratorApiClient } from '../client/types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Handler for getNextAction tool
|
|
13
|
+
*/
|
|
14
|
+
export declare function createGetNextActionHandler(client: IOrchestratorApiClient): (params: {
|
|
15
|
+
workflowId?: string;
|
|
16
|
+
}) => Promise<{
|
|
17
|
+
content: Array<{
|
|
18
|
+
type: string;
|
|
19
|
+
text: string;
|
|
20
|
+
}>;
|
|
21
|
+
isError: true;
|
|
22
|
+
} | {
|
|
23
|
+
content: {
|
|
24
|
+
type: string;
|
|
25
|
+
text: string;
|
|
26
|
+
}[];
|
|
27
|
+
}>;
|
|
28
|
+
/**
|
|
29
|
+
* Handler for setPendingAction tool
|
|
30
|
+
*/
|
|
31
|
+
export declare function createSetPendingActionHandler(client: IOrchestratorApiClient): (params: {
|
|
32
|
+
workflowId: string;
|
|
33
|
+
action: unknown;
|
|
34
|
+
}) => Promise<{
|
|
35
|
+
content: Array<{
|
|
36
|
+
type: string;
|
|
37
|
+
text: string;
|
|
38
|
+
}>;
|
|
39
|
+
isError: true;
|
|
40
|
+
} | {
|
|
41
|
+
content: {
|
|
42
|
+
type: string;
|
|
43
|
+
text: string;
|
|
44
|
+
}[];
|
|
45
|
+
}>;
|
|
46
|
+
/**
|
|
47
|
+
* Handler for clearPendingAction tool
|
|
48
|
+
*/
|
|
49
|
+
export declare function createClearPendingActionHandler(client: IOrchestratorApiClient): (params: {
|
|
50
|
+
workflowId: string;
|
|
51
|
+
result?: unknown;
|
|
52
|
+
}) => Promise<{
|
|
53
|
+
content: Array<{
|
|
54
|
+
type: string;
|
|
55
|
+
text: string;
|
|
56
|
+
}>;
|
|
57
|
+
isError: true;
|
|
58
|
+
} | {
|
|
59
|
+
content: {
|
|
60
|
+
type: string;
|
|
61
|
+
text: string;
|
|
62
|
+
}[];
|
|
63
|
+
}>;
|
|
64
|
+
/**
|
|
65
|
+
* Handler for approveAction tool
|
|
66
|
+
*/
|
|
67
|
+
export declare function createApproveActionHandler(client: IOrchestratorApiClient): (params: {
|
|
68
|
+
workflowId: string;
|
|
69
|
+
}) => Promise<{
|
|
70
|
+
content: Array<{
|
|
71
|
+
type: string;
|
|
72
|
+
text: string;
|
|
73
|
+
}>;
|
|
74
|
+
isError: true;
|
|
75
|
+
} | {
|
|
76
|
+
content: {
|
|
77
|
+
type: string;
|
|
78
|
+
text: string;
|
|
79
|
+
}[];
|
|
80
|
+
}>;
|
|
81
|
+
//# sourceMappingURL=pending-action-handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pending-action-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/pending-action-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAGjE;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,sBAAsB,IACzD,QAAQ;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;GAa9C;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,sBAAsB,IAC5D,QAAQ;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE;;;;;;;;;;;GAa9D;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,sBAAsB,IAC9D,QAAQ;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE;;;;;;;;;;;GAa/D;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,sBAAsB,IACzD,QAAQ;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;GAa7C"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pending Action Handlers
|
|
3
|
+
*
|
|
4
|
+
* MCP tool handlers for pending action management:
|
|
5
|
+
* - getNextAction
|
|
6
|
+
* - setPendingAction
|
|
7
|
+
* - clearPendingAction
|
|
8
|
+
* - approveAction
|
|
9
|
+
*/
|
|
10
|
+
import { McpApiError } from '../errors/McpApiError.js';
|
|
11
|
+
/**
|
|
12
|
+
* Handler for getNextAction tool
|
|
13
|
+
*/
|
|
14
|
+
export function createGetNextActionHandler(client) {
|
|
15
|
+
return async (params) => {
|
|
16
|
+
try {
|
|
17
|
+
const response = await client.getNextAction(params.workflowId);
|
|
18
|
+
return {
|
|
19
|
+
content: [{ type: 'text', text: JSON.stringify(response, null, 2) }],
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
if (error instanceof McpApiError) {
|
|
24
|
+
return error.toMcpError();
|
|
25
|
+
}
|
|
26
|
+
throw error;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Handler for setPendingAction tool
|
|
32
|
+
*/
|
|
33
|
+
export function createSetPendingActionHandler(client) {
|
|
34
|
+
return async (params) => {
|
|
35
|
+
try {
|
|
36
|
+
const response = await client.setPendingAction(params.workflowId, params.action);
|
|
37
|
+
return {
|
|
38
|
+
content: [{ type: 'text', text: JSON.stringify(response, null, 2) }],
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
if (error instanceof McpApiError) {
|
|
43
|
+
return error.toMcpError();
|
|
44
|
+
}
|
|
45
|
+
throw error;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Handler for clearPendingAction tool
|
|
51
|
+
*/
|
|
52
|
+
export function createClearPendingActionHandler(client) {
|
|
53
|
+
return async (params) => {
|
|
54
|
+
try {
|
|
55
|
+
const response = await client.clearPendingAction(params.workflowId, params.result);
|
|
56
|
+
return {
|
|
57
|
+
content: [{ type: 'text', text: JSON.stringify(response, null, 2) }],
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
if (error instanceof McpApiError) {
|
|
62
|
+
return error.toMcpError();
|
|
63
|
+
}
|
|
64
|
+
throw error;
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Handler for approveAction tool
|
|
70
|
+
*/
|
|
71
|
+
export function createApproveActionHandler(client) {
|
|
72
|
+
return async (params) => {
|
|
73
|
+
try {
|
|
74
|
+
const response = await client.approveAction(params.workflowId);
|
|
75
|
+
return {
|
|
76
|
+
content: [{ type: 'text', text: JSON.stringify(response, null, 2) }],
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
if (error instanceof McpApiError) {
|
|
81
|
+
return error.toMcpError();
|
|
82
|
+
}
|
|
83
|
+
throw error;
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=pending-action-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pending-action-handlers.js","sourceRoot":"","sources":["../../src/handlers/pending-action-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow Handlers
|
|
3
|
+
*
|
|
4
|
+
* MCP tool handlers for workflow management:
|
|
5
|
+
* - detectWorkflow
|
|
6
|
+
* - startWorkflow
|
|
7
|
+
* - advancePhase
|
|
8
|
+
* - getStatus
|
|
9
|
+
*/
|
|
10
|
+
import type { IOrchestratorApiClient } from '../client/types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Handler for detectWorkflow tool
|
|
13
|
+
*/
|
|
14
|
+
export declare function createDetectWorkflowHandler(client: IOrchestratorApiClient): (params: {
|
|
15
|
+
prompt: string;
|
|
16
|
+
}) => Promise<{
|
|
17
|
+
content: Array<{
|
|
18
|
+
type: string;
|
|
19
|
+
text: string;
|
|
20
|
+
}>;
|
|
21
|
+
isError: true;
|
|
22
|
+
} | {
|
|
23
|
+
content: {
|
|
24
|
+
type: string;
|
|
25
|
+
text: string;
|
|
26
|
+
}[];
|
|
27
|
+
}>;
|
|
28
|
+
/**
|
|
29
|
+
* Handler for startWorkflow tool
|
|
30
|
+
*/
|
|
31
|
+
export declare function createStartWorkflowHandler(client: IOrchestratorApiClient): (params: {
|
|
32
|
+
type: string;
|
|
33
|
+
prompt: string;
|
|
34
|
+
}) => Promise<{
|
|
35
|
+
content: Array<{
|
|
36
|
+
type: string;
|
|
37
|
+
text: string;
|
|
38
|
+
}>;
|
|
39
|
+
isError: true;
|
|
40
|
+
} | {
|
|
41
|
+
content: {
|
|
42
|
+
type: string;
|
|
43
|
+
text: string;
|
|
44
|
+
}[];
|
|
45
|
+
}>;
|
|
46
|
+
/**
|
|
47
|
+
* Handler for advancePhase tool
|
|
48
|
+
*/
|
|
49
|
+
export declare function createAdvancePhaseHandler(client: IOrchestratorApiClient): (params: {
|
|
50
|
+
workflowId: string;
|
|
51
|
+
}) => Promise<{
|
|
52
|
+
content: Array<{
|
|
53
|
+
type: string;
|
|
54
|
+
text: string;
|
|
55
|
+
}>;
|
|
56
|
+
isError: true;
|
|
57
|
+
} | {
|
|
58
|
+
content: {
|
|
59
|
+
type: string;
|
|
60
|
+
text: string;
|
|
61
|
+
}[];
|
|
62
|
+
}>;
|
|
63
|
+
/**
|
|
64
|
+
* Handler for getStatus tool
|
|
65
|
+
*/
|
|
66
|
+
export declare function createGetStatusHandler(client: IOrchestratorApiClient): (params: {
|
|
67
|
+
workflowId?: string;
|
|
68
|
+
}) => Promise<{
|
|
69
|
+
content: Array<{
|
|
70
|
+
type: string;
|
|
71
|
+
text: string;
|
|
72
|
+
}>;
|
|
73
|
+
isError: true;
|
|
74
|
+
} | {
|
|
75
|
+
content: {
|
|
76
|
+
type: string;
|
|
77
|
+
text: string;
|
|
78
|
+
}[];
|
|
79
|
+
}>;
|
|
80
|
+
//# sourceMappingURL=workflow-handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/workflow-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAGjE;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,sBAAsB,IAC1D,QAAQ;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;GAazC;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,sBAAsB,IACzD,QAAQ;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;GAavD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,sBAAsB,IACxD,QAAQ;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;GAa7C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,sBAAsB,IACrD,QAAQ;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;GAa9C"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow Handlers
|
|
3
|
+
*
|
|
4
|
+
* MCP tool handlers for workflow management:
|
|
5
|
+
* - detectWorkflow
|
|
6
|
+
* - startWorkflow
|
|
7
|
+
* - advancePhase
|
|
8
|
+
* - getStatus
|
|
9
|
+
*/
|
|
10
|
+
import { McpApiError } from '../errors/McpApiError.js';
|
|
11
|
+
/**
|
|
12
|
+
* Handler for detectWorkflow tool
|
|
13
|
+
*/
|
|
14
|
+
export function createDetectWorkflowHandler(client) {
|
|
15
|
+
return async (params) => {
|
|
16
|
+
try {
|
|
17
|
+
const response = await client.detectWorkflow(params.prompt);
|
|
18
|
+
return {
|
|
19
|
+
content: [{ type: 'text', text: JSON.stringify(response, null, 2) }],
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
if (error instanceof McpApiError) {
|
|
24
|
+
return error.toMcpError();
|
|
25
|
+
}
|
|
26
|
+
throw error;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Handler for startWorkflow tool
|
|
32
|
+
*/
|
|
33
|
+
export function createStartWorkflowHandler(client) {
|
|
34
|
+
return async (params) => {
|
|
35
|
+
try {
|
|
36
|
+
const response = await client.startWorkflow(params.type, params.prompt);
|
|
37
|
+
return {
|
|
38
|
+
content: [{ type: 'text', text: JSON.stringify(response, null, 2) }],
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
if (error instanceof McpApiError) {
|
|
43
|
+
return error.toMcpError();
|
|
44
|
+
}
|
|
45
|
+
throw error;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Handler for advancePhase tool
|
|
51
|
+
*/
|
|
52
|
+
export function createAdvancePhaseHandler(client) {
|
|
53
|
+
return async (params) => {
|
|
54
|
+
try {
|
|
55
|
+
const response = await client.advancePhase(params.workflowId);
|
|
56
|
+
return {
|
|
57
|
+
content: [{ type: 'text', text: JSON.stringify(response, null, 2) }],
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
if (error instanceof McpApiError) {
|
|
62
|
+
return error.toMcpError();
|
|
63
|
+
}
|
|
64
|
+
throw error;
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Handler for getStatus tool
|
|
70
|
+
*/
|
|
71
|
+
export function createGetStatusHandler(client) {
|
|
72
|
+
return async (params) => {
|
|
73
|
+
try {
|
|
74
|
+
const response = await client.getStatus(params.workflowId);
|
|
75
|
+
return {
|
|
76
|
+
content: [{ type: 'text', text: JSON.stringify(response, null, 2) }],
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
if (error instanceof McpApiError) {
|
|
81
|
+
return error.toMcpError();
|
|
82
|
+
}
|
|
83
|
+
throw error;
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=workflow-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-handlers.js","sourceRoot":"","sources":["../../src/handlers/workflow-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD;;GAEG;AACH,MAAM,UAAU,2BAA2B,CAAC,MAA8B;IACxE,OAAO,KAAK,EAAE,MAA0B,EAAE,EAAE;QAC1C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5D,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACrE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;gBACjC,OAAO,KAAK,CAAC,UAAU,EAAE,CAAC;YAC5B,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAA8B;IACvE,OAAO,KAAK,EAAE,MAAwC,EAAE,EAAE;QACxD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACxE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACrE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;gBACjC,OAAO,KAAK,CAAC,UAAU,EAAE,CAAC;YAC5B,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAA8B;IACtE,OAAO,KAAK,EAAE,MAA8B,EAAE,EAAE;QAC9C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC9D,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACrE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;gBACjC,OAAO,KAAK,CAAC,UAAU,EAAE,CAAC;YAC5B,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAA8B;IACnE,OAAO,KAAK,EAAE,MAA+B,EAAE,EAAE;QAC/C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC3D,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACrE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;gBACjC,OAAO,KAAK,CAAC,UAAU,EAAE,CAAC;YAC5B,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* MCP Thin Client Entry Point
|
|
4
|
+
*
|
|
5
|
+
* This is a thin client that delegates all operations to the Orchestrator REST API.
|
|
6
|
+
* It implements the Model Context Protocol (MCP) server interface.
|
|
7
|
+
*/
|
|
8
|
+
export { OrchestratorMcpServer } from './server.js';
|
|
9
|
+
export { OrchestratorApiClient } from './client/OrchestratorApiClient.js';
|
|
10
|
+
export { loadConfig } from './config.js';
|
|
11
|
+
export type { Config } from './config.js';
|
|
12
|
+
export type { IOrchestratorApiClient } from './client/types.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AA8BH,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* MCP Thin Client Entry Point
|
|
4
|
+
*
|
|
5
|
+
* This is a thin client that delegates all operations to the Orchestrator REST API.
|
|
6
|
+
* It implements the Model Context Protocol (MCP) server interface.
|
|
7
|
+
*/
|
|
8
|
+
import { OrchestratorMcpServer } from './server.js';
|
|
9
|
+
import { loadConfig } from './config.js';
|
|
10
|
+
/**
|
|
11
|
+
* Main entry point for CLI execution
|
|
12
|
+
*/
|
|
13
|
+
async function main() {
|
|
14
|
+
try {
|
|
15
|
+
const config = loadConfig();
|
|
16
|
+
const server = new OrchestratorMcpServer(config);
|
|
17
|
+
console.error('Starting Orchestrator MCP Server...');
|
|
18
|
+
console.error(`API URL: ${config.apiUrl}`);
|
|
19
|
+
console.error(`API Key: ${config.apiKey ? 'configured' : 'not configured'}`);
|
|
20
|
+
await server.start();
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
console.error('Failed to start MCP server:', error);
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
// Execute main only if this is the entry point
|
|
28
|
+
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
29
|
+
main();
|
|
30
|
+
}
|
|
31
|
+
// Re-export for library usage
|
|
32
|
+
export { OrchestratorMcpServer } from './server.js';
|
|
33
|
+
export { OrchestratorApiClient } from './client/OrchestratorApiClient.js';
|
|
34
|
+
export { loadConfig } from './config.js';
|
|
35
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAEjD,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACrD,OAAO,CAAC,KAAK,CAAC,YAAY,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,YAAY,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAE7E,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,+CAA+C;AAC/C,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACpD,IAAI,EAAE,CAAC;AACT,CAAC;AAED,8BAA8B;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OrchestratorMcpServer
|
|
3
|
+
*
|
|
4
|
+
* Main MCP server class that:
|
|
5
|
+
* 1. Creates MCP Server instance
|
|
6
|
+
* 2. Initializes API client
|
|
7
|
+
* 3. Registers all tools
|
|
8
|
+
* 4. Manages server lifecycle
|
|
9
|
+
*/
|
|
10
|
+
import type { Config } from './config.js';
|
|
11
|
+
export declare class OrchestratorMcpServer {
|
|
12
|
+
private server;
|
|
13
|
+
private client;
|
|
14
|
+
constructor(config: Config);
|
|
15
|
+
/**
|
|
16
|
+
* Start the MCP server with stdio transport
|
|
17
|
+
*/
|
|
18
|
+
start(): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Close the server gracefully
|
|
21
|
+
*/
|
|
22
|
+
close(): Promise<void>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,MAAM,CAAwB;gBAE1B,MAAM,EAAE,MAAM;IAqB1B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAW5B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
|
package/dist/server.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OrchestratorMcpServer
|
|
3
|
+
*
|
|
4
|
+
* Main MCP server class that:
|
|
5
|
+
* 1. Creates MCP Server instance
|
|
6
|
+
* 2. Initializes API client
|
|
7
|
+
* 3. Registers all tools
|
|
8
|
+
* 4. Manages server lifecycle
|
|
9
|
+
*/
|
|
10
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
11
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
12
|
+
import { OrchestratorApiClient } from './client/OrchestratorApiClient.js';
|
|
13
|
+
import { registerTools } from './handlers/index.js';
|
|
14
|
+
export class OrchestratorMcpServer {
|
|
15
|
+
server;
|
|
16
|
+
client;
|
|
17
|
+
constructor(config) {
|
|
18
|
+
// Initialize API client
|
|
19
|
+
this.client = new OrchestratorApiClient(config);
|
|
20
|
+
// Create MCP server
|
|
21
|
+
this.server = new McpServer({
|
|
22
|
+
name: 'orchestrator-tools',
|
|
23
|
+
version: '1.0.0',
|
|
24
|
+
}, {
|
|
25
|
+
capabilities: {
|
|
26
|
+
tools: {},
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
// Register all tools
|
|
30
|
+
registerTools(this.server, this.client);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Start the MCP server with stdio transport
|
|
34
|
+
*/
|
|
35
|
+
async start() {
|
|
36
|
+
const transport = new StdioServerTransport();
|
|
37
|
+
await this.server.connect(transport);
|
|
38
|
+
// Setup graceful shutdown on SIGINT (Ctrl+C)
|
|
39
|
+
process.on('SIGINT', async () => {
|
|
40
|
+
await this.server.close();
|
|
41
|
+
process.exit(0);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Close the server gracefully
|
|
46
|
+
*/
|
|
47
|
+
async close() {
|
|
48
|
+
await this.server.close();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,MAAM,OAAO,qBAAqB;IACxB,MAAM,CAAY;IAClB,MAAM,CAAwB;IAEtC,YAAY,MAAc;QACxB,wBAAwB;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAEhD,oBAAoB;QACpB,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CACzB;YACE,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,OAAO;SACjB,EACD;YACE,YAAY,EAAE;gBACZ,KAAK,EAAE,EAAE;aACV;SACF,CACF,CAAC;QAEF,qBAAqB;QACrB,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAErC,6CAA6C;QAC7C,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;CACF"}
|
package/package.json
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@orchestrator-claude/mcp-server",
|
|
3
|
+
"version": "1.4.0",
|
|
4
|
+
"description": "MCP Thin Client for Orchestrator - delegates to REST API",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"bin": {
|
|
9
|
+
"orchestrator-mcp": "dist/index.js"
|
|
10
|
+
},
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "tsc",
|
|
13
|
+
"test": "vitest run",
|
|
14
|
+
"test:watch": "vitest",
|
|
15
|
+
"test:coverage": "vitest run --coverage",
|
|
16
|
+
"start": "node dist/index.js",
|
|
17
|
+
"dev": "tsc --watch",
|
|
18
|
+
"clean": "rm -rf dist",
|
|
19
|
+
"prepublishOnly": "npm run build"
|
|
20
|
+
},
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
23
|
+
"axios": "^1.6.0",
|
|
24
|
+
"dotenv": "^16.3.1"
|
|
25
|
+
},
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"@types/node": "^20.0.0",
|
|
28
|
+
"typescript": "^5.3.0",
|
|
29
|
+
"vitest": "^1.0.0",
|
|
30
|
+
"msw": "^2.0.0",
|
|
31
|
+
"@vitest/coverage-v8": "^1.0.0"
|
|
32
|
+
},
|
|
33
|
+
"engines": {
|
|
34
|
+
"node": ">=18.0.0"
|
|
35
|
+
},
|
|
36
|
+
"keywords": [
|
|
37
|
+
"mcp",
|
|
38
|
+
"orchestrator",
|
|
39
|
+
"cli",
|
|
40
|
+
"anthropic",
|
|
41
|
+
"model-context-protocol"
|
|
42
|
+
],
|
|
43
|
+
"author": "Orchestrator Team",
|
|
44
|
+
"license": "MIT",
|
|
45
|
+
"repository": {
|
|
46
|
+
"type": "git",
|
|
47
|
+
"url": "https://github.com/orchestratorAII/orchestrator_claude.git",
|
|
48
|
+
"directory": "packages/mcp-server"
|
|
49
|
+
},
|
|
50
|
+
"files": [
|
|
51
|
+
"dist/**/*",
|
|
52
|
+
"README.md",
|
|
53
|
+
".mcp.json.example"
|
|
54
|
+
]
|
|
55
|
+
}
|