@theyahia/megaplan-mcp 3.0.0 → 4.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 (64) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +119 -157
  3. package/dist/client.d.ts +3 -13
  4. package/dist/client.js +224 -82
  5. package/dist/client.js.map +1 -1
  6. package/dist/format.d.ts +12 -0
  7. package/dist/format.js +148 -0
  8. package/dist/format.js.map +1 -0
  9. package/dist/http.d.ts +3 -0
  10. package/dist/http.js +152 -0
  11. package/dist/http.js.map +1 -0
  12. package/dist/index.d.ts +2 -13
  13. package/dist/index.js +97 -23
  14. package/dist/index.js.map +1 -1
  15. package/dist/meta.d.ts +2 -0
  16. package/dist/meta.js +5 -0
  17. package/dist/meta.js.map +1 -0
  18. package/dist/prompts.d.ts +7 -0
  19. package/dist/prompts.js +22 -0
  20. package/dist/prompts.js.map +1 -0
  21. package/dist/query.d.ts +32 -0
  22. package/dist/query.js +61 -0
  23. package/dist/query.js.map +1 -0
  24. package/dist/tools/comments.d.ts +9 -7
  25. package/dist/tools/comments.js +18 -21
  26. package/dist/tools/comments.js.map +1 -1
  27. package/dist/tools/contractors.d.ts +35 -0
  28. package/dist/tools/contractors.js +39 -0
  29. package/dist/tools/contractors.js.map +1 -0
  30. package/dist/tools/deals.d.ts +53 -8
  31. package/dist/tools/deals.js +71 -23
  32. package/dist/tools/deals.js.map +1 -1
  33. package/dist/tools/employees.d.ts +7 -5
  34. package/dist/tools/employees.js +16 -12
  35. package/dist/tools/employees.js.map +1 -1
  36. package/dist/tools/me.d.ts +9 -0
  37. package/dist/tools/me.js +26 -0
  38. package/dist/tools/me.js.map +1 -0
  39. package/dist/tools/programs.d.ts +26 -0
  40. package/dist/tools/programs.js +25 -0
  41. package/dist/tools/programs.js.map +1 -0
  42. package/dist/tools/projects.d.ts +21 -8
  43. package/dist/tools/projects.js +26 -13
  44. package/dist/tools/projects.js.map +1 -1
  45. package/dist/tools/tasks.d.ts +49 -10
  46. package/dist/tools/tasks.js +62 -20
  47. package/dist/tools/tasks.js.map +1 -1
  48. package/dist/types.d.ts +44 -53
  49. package/dist/types.js +4 -0
  50. package/dist/types.js.map +1 -1
  51. package/package.json +69 -63
  52. package/dist/client.d.ts.map +0 -1
  53. package/dist/index.d.ts.map +0 -1
  54. package/dist/server.d.ts +0 -9
  55. package/dist/server.d.ts.map +0 -1
  56. package/dist/server.js +0 -73
  57. package/dist/server.js.map +0 -1
  58. package/dist/tools/comments.d.ts.map +0 -1
  59. package/dist/tools/deals.d.ts.map +0 -1
  60. package/dist/tools/employees.d.ts.map +0 -1
  61. package/dist/tools/projects.d.ts.map +0 -1
  62. package/dist/tools/tasks.d.ts.map +0 -1
  63. package/dist/types.d.ts.map +0 -1
  64. package/smithery.yaml +0 -33
@@ -1,42 +1,81 @@
1
1
  import { z } from "zod";
2
2
  export declare const getTasksSchema: z.ZodObject<{
3
- filter_status: z.ZodOptional<z.ZodString>;
3
+ filter_status: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
4
4
  filter_responsible_id: z.ZodOptional<z.ZodString>;
5
5
  search: z.ZodOptional<z.ZodString>;
6
6
  limit: z.ZodDefault<z.ZodNumber>;
7
- offset: z.ZodDefault<z.ZodNumber>;
7
+ page_after: z.ZodOptional<z.ZodString>;
8
+ raw: z.ZodOptional<z.ZodBoolean>;
8
9
  }, "strip", z.ZodTypeAny, {
9
10
  limit: number;
10
- offset: number;
11
- filter_status?: string | undefined;
11
+ filter_status?: string | string[] | undefined;
12
12
  filter_responsible_id?: string | undefined;
13
13
  search?: string | undefined;
14
+ page_after?: string | undefined;
15
+ raw?: boolean | undefined;
14
16
  }, {
15
- filter_status?: string | undefined;
17
+ limit?: number | undefined;
18
+ filter_status?: string | string[] | undefined;
16
19
  filter_responsible_id?: string | undefined;
17
20
  search?: string | undefined;
18
- limit?: number | undefined;
19
- offset?: number | undefined;
21
+ page_after?: string | undefined;
22
+ raw?: boolean | undefined;
20
23
  }>;
21
24
  export declare function handleGetTasks(params: z.infer<typeof getTasksSchema>): Promise<string>;
25
+ export declare const getTaskSchema: z.ZodObject<{
26
+ id: z.ZodString;
27
+ raw: z.ZodOptional<z.ZodBoolean>;
28
+ }, "strip", z.ZodTypeAny, {
29
+ id: string;
30
+ raw?: boolean | undefined;
31
+ }, {
32
+ id: string;
33
+ raw?: boolean | undefined;
34
+ }>;
35
+ export declare function handleGetTask(params: z.infer<typeof getTaskSchema>): Promise<string>;
22
36
  export declare const createTaskSchema: z.ZodObject<{
23
37
  name: z.ZodString;
24
38
  description: z.ZodOptional<z.ZodString>;
25
39
  responsible_id: z.ZodString;
26
40
  deadline: z.ZodOptional<z.ZodString>;
27
41
  parent_id: z.ZodOptional<z.ZodString>;
42
+ parent_type: z.ZodDefault<z.ZodEnum<["Task", "Project"]>>;
28
43
  }, "strip", z.ZodTypeAny, {
29
44
  name: string;
30
45
  responsible_id: string;
31
- description?: string | undefined;
46
+ parent_type: "Task" | "Project";
32
47
  deadline?: string | undefined;
48
+ description?: string | undefined;
33
49
  parent_id?: string | undefined;
34
50
  }, {
35
51
  name: string;
36
52
  responsible_id: string;
37
- description?: string | undefined;
38
53
  deadline?: string | undefined;
54
+ description?: string | undefined;
39
55
  parent_id?: string | undefined;
56
+ parent_type?: "Task" | "Project" | undefined;
40
57
  }>;
41
58
  export declare function handleCreateTask(params: z.infer<typeof createTaskSchema>): Promise<string>;
42
- //# sourceMappingURL=tasks.d.ts.map
59
+ export declare const updateTaskSchema: z.ZodObject<{
60
+ id: z.ZodString;
61
+ name: z.ZodOptional<z.ZodString>;
62
+ description: z.ZodOptional<z.ZodString>;
63
+ responsible_id: z.ZodOptional<z.ZodString>;
64
+ deadline: z.ZodOptional<z.ZodString>;
65
+ status: z.ZodOptional<z.ZodString>;
66
+ }, "strip", z.ZodTypeAny, {
67
+ id: string;
68
+ name?: string | undefined;
69
+ status?: string | undefined;
70
+ deadline?: string | undefined;
71
+ description?: string | undefined;
72
+ responsible_id?: string | undefined;
73
+ }, {
74
+ id: string;
75
+ name?: string | undefined;
76
+ status?: string | undefined;
77
+ deadline?: string | undefined;
78
+ description?: string | undefined;
79
+ responsible_id?: string | undefined;
80
+ }>;
81
+ export declare function handleUpdateTask(params: z.infer<typeof updateTaskSchema>): Promise<string>;
@@ -1,32 +1,48 @@
1
1
  import { z } from "zod";
2
2
  import { megaplanGet, megaplanPost } from "../client.js";
3
+ import { buildListQuery, toDateTime, idSchema } from "../query.js";
4
+ import { formatList, formatEntity, formatTask } from "../format.js";
5
+ const statusFilter = z
6
+ .union([z.string(), z.array(z.string())])
7
+ .optional()
8
+ .describe('Filter by status code(s), e.g. ["filter_any"]. Codes are account-specific.');
3
9
  export const getTasksSchema = z.object({
4
- filter_status: z.string().optional().describe("Filter by status (e.g. active, completed, delayed)"),
10
+ filter_status: statusFilter,
5
11
  filter_responsible_id: z.string().optional().describe("Filter by responsible employee ID"),
6
- search: z.string().optional().describe("Search by task name"),
7
- limit: z.number().int().min(1).max(100).default(25).describe("Results per page"),
8
- offset: z.number().int().default(0).describe("Offset for pagination"),
12
+ search: z.string().optional().describe("Free-text search by task name"),
13
+ limit: z.number().int().min(1).max(100).default(25).describe("Results per page (max 100)"),
14
+ page_after: z.string().optional().describe("Cursor: id of the last task from the previous page"),
15
+ raw: z.boolean().optional().describe("Return raw API JSON instead of a compact summary"),
9
16
  });
10
17
  export async function handleGetTasks(params) {
11
- const query = {
12
- limit: String(params.limit),
13
- offset: String(params.offset),
14
- };
15
- if (params.filter_status)
16
- query["filter[status]"] = params.filter_status;
17
- if (params.filter_responsible_id)
18
- query["filter[responsible]"] = params.filter_responsible_id;
19
- if (params.search)
20
- query["search"] = params.search;
18
+ const query = buildListQuery({
19
+ entity: "Task",
20
+ limit: params.limit,
21
+ pageAfter: params.page_after,
22
+ status: params.filter_status,
23
+ refs: params.filter_responsible_id
24
+ ? [{ field: "responsible", contentType: "Employee", id: params.filter_responsible_id }]
25
+ : [],
26
+ search: params.search,
27
+ });
21
28
  const result = await megaplanGet("/task", query);
22
- return JSON.stringify(result, null, 2);
29
+ return formatList(result, formatTask, params.raw);
30
+ }
31
+ export const getTaskSchema = z.object({
32
+ id: idSchema.describe("Task ID"),
33
+ raw: z.boolean().optional().describe("Return raw API JSON instead of a compact summary"),
34
+ });
35
+ export async function handleGetTask(params) {
36
+ const result = await megaplanGet(`/task/${params.id}`);
37
+ return formatEntity(result, formatTask, params.raw);
23
38
  }
24
39
  export const createTaskSchema = z.object({
25
40
  name: z.string().describe("Task name/title"),
26
41
  description: z.string().optional().describe("Task description"),
27
42
  responsible_id: z.string().describe("Responsible employee ID"),
28
- deadline: z.string().optional().describe("Deadline in ISO format (e.g. 2025-12-31T23:59:59+03:00)"),
29
- parent_id: z.string().optional().describe("Parent task ID (for subtasks)"),
43
+ deadline: z.string().optional().describe("Deadline as ISO 8601, e.g. 2025-12-31T23:59:59+03:00"),
44
+ parent_id: z.string().optional().describe("Parent ID (for a subtask or a project task)"),
45
+ parent_type: z.enum(["Task", "Project"]).default("Task").describe("Parent entity type"),
30
46
  });
31
47
  export async function handleCreateTask(params) {
32
48
  const body = {
@@ -34,13 +50,39 @@ export async function handleCreateTask(params) {
34
50
  name: params.name,
35
51
  responsible: { id: params.responsible_id, contentType: "Employee" },
36
52
  };
53
+ // TODO(live-verify): the task body field may be "statement"/"subject" rather than "description".
37
54
  if (params.description)
38
55
  body.description = params.description;
39
56
  if (params.deadline)
40
- body.deadline = params.deadline;
57
+ body.deadline = toDateTime(params.deadline);
41
58
  if (params.parent_id)
42
- body.parent = { id: params.parent_id, contentType: "Task" };
59
+ body.parent = { id: params.parent_id, contentType: params.parent_type };
43
60
  const result = await megaplanPost("/task", body);
44
- return JSON.stringify(result, null, 2);
61
+ return formatEntity(result, formatTask);
62
+ }
63
+ export const updateTaskSchema = z.object({
64
+ id: idSchema.describe("Task ID to update"),
65
+ name: z.string().optional().describe("New name/title"),
66
+ description: z.string().optional().describe("New description"),
67
+ responsible_id: z.string().optional().describe("New responsible employee ID"),
68
+ deadline: z.string().optional().describe("New deadline as ISO 8601"),
69
+ status: z.string().optional().describe("New status code (experimental — field shape unverified)"),
70
+ });
71
+ export async function handleUpdateTask(params) {
72
+ const body = { contentType: "Task" };
73
+ if (params.name !== undefined)
74
+ body.name = params.name;
75
+ if (params.description !== undefined)
76
+ body.description = params.description;
77
+ if (params.responsible_id)
78
+ body.responsible = { id: params.responsible_id, contentType: "Employee" };
79
+ if (params.deadline)
80
+ body.deadline = toDateTime(params.deadline);
81
+ // TODO(live-verify): status may need a link-entity rather than a bare code.
82
+ if (params.status !== undefined)
83
+ body.status = params.status;
84
+ // v3 updates are POST to /{entity}/{id} (not PATCH).
85
+ const result = await megaplanPost(`/task/${params.id}`, body);
86
+ return formatEntity(result, formatTask);
45
87
  }
46
88
  //# sourceMappingURL=tasks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/tools/tasks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/tools/tasks.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,69 +1,60 @@
1
1
  export interface MegaplanTask {
2
2
  id: string;
3
- name: string;
4
- description?: string;
5
- status: string;
6
- responsible?: {
7
- id: string;
8
- name: string;
9
- };
10
- deadline?: string;
11
- priority?: string;
12
- created: string;
13
- modified: string;
3
+ name?: string;
4
+ status?: string | null;
5
+ responsible?: string | null;
6
+ deadline?: string | null;
7
+ priority?: string | null;
8
+ created?: string | null;
9
+ modified?: string | null;
14
10
  }
15
11
  export interface MegaplanDeal {
16
12
  id: string;
17
- name: string;
18
- status: string;
19
- amount?: number;
20
- responsible?: {
21
- id: string;
22
- name: string;
23
- };
24
- contact?: {
25
- id: string;
26
- name: string;
27
- };
28
- created: string;
29
- modified: string;
13
+ name?: string;
14
+ status?: string | null;
15
+ price?: string | null;
16
+ cost?: string | null;
17
+ responsible?: string | null;
18
+ contact?: string | null;
19
+ contractor?: string | null;
20
+ created?: string | null;
21
+ modified?: string | null;
30
22
  }
31
23
  export interface MegaplanProject {
32
24
  id: string;
33
- name: string;
34
- status: string;
35
- responsible?: {
36
- id: string;
37
- name: string;
38
- };
39
- created: string;
40
- modified: string;
25
+ name?: string;
26
+ status?: string | null;
27
+ responsible?: string | null;
28
+ created?: string | null;
29
+ modified?: string | null;
41
30
  }
42
31
  export interface MegaplanEmployee {
43
32
  id: string;
44
- name: string;
45
- email?: string;
46
- department?: {
47
- id: string;
48
- name: string;
49
- };
50
- position?: string;
33
+ name?: string;
34
+ email?: string | null;
35
+ department?: string | null;
36
+ position?: string | null;
51
37
  }
52
38
  export interface MegaplanComment {
53
39
  id: string;
54
- text: string;
55
- author?: {
56
- id: string;
57
- name: string;
58
- };
59
- created: string;
40
+ content?: string | null;
41
+ author?: string | null;
42
+ created?: string | null;
60
43
  }
61
- export interface MegaplanListResult<T> {
62
- meta: {
63
- totalCount: number;
64
- limit: number;
65
- offset: number;
66
- };
67
- data: T[];
44
+ export interface MegaplanProgram {
45
+ id: string;
46
+ name?: string;
47
+ }
48
+ export interface MegaplanClient {
49
+ id: string;
50
+ name?: string;
51
+ email?: string | null;
52
+ phone?: string | null;
53
+ type?: string | null;
54
+ }
55
+ export interface MegaplanListSummary<T> {
56
+ total: number;
57
+ count: number;
58
+ items: T[];
59
+ nextPageAfter: string | null;
68
60
  }
69
- //# sourceMappingURL=types.d.ts.map
package/dist/types.js CHANGED
@@ -1,2 +1,6 @@
1
+ // Compact, LLM-friendly shapes produced by src/format.ts.
2
+ // These intentionally describe our *formatted* output (not the raw, verbose
3
+ // Megaplan v3 entities), so most fields are optional/nullable: the v3 API
4
+ // returns nested ref objects and the exact field set varies by account.
1
5
  export {};
2
6
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,4EAA4E;AAC5E,0EAA0E;AAC1E,wEAAwE"}
package/package.json CHANGED
@@ -1,63 +1,69 @@
1
- {
2
- "name": "@theyahia/megaplan-mcp",
3
- "version": "3.0.0",
4
- "description": "MCP server for Megaplan project management 8 tools for tasks, deals, projects, employees, comments + 2 MCP prompts.",
5
- "type": "module",
6
- "main": "dist/index.js",
7
- "bin": {
8
- "megaplan-mcp": "dist/index.js"
9
- },
10
- "files": [
11
- "dist",
12
- "smithery.yaml"
13
- ],
14
- "engines": {
15
- "node": ">=18.0.0"
16
- },
17
- "dependencies": {
18
- "@modelcontextprotocol/sdk": "^1.12.1",
19
- "express": "^5.2.1",
20
- "zod": "^3.24.4",
21
- "@theyahia/mcp-core": "1.0.0"
22
- },
23
- "devDependencies": {
24
- "@types/node": "^22.15.3",
25
- "tsx": "^4.19.0",
26
- "typescript": "^5.8.3",
27
- "vitest": "^4.1.2"
28
- },
29
- "publishConfig": {
30
- "access": "public"
31
- },
32
- "mcpName": "io.github.theYahia/megaplan-mcp",
33
- "keywords": [
34
- "mcp",
35
- "mcp-server",
36
- "model-context-protocol",
37
- "claude",
38
- "ai",
39
- "russian-api",
40
- "megaplan",
41
- "crm",
42
- "project-management",
43
- "tasks",
44
- "deals"
45
- ],
46
- "license": "MIT",
47
- "repository": {
48
- "type": "git",
49
- "url": "https://github.com/theYahia/mcp-servers.git",
50
- "directory": "servers/megaplan"
51
- },
52
- "homepage": "https://github.com/theYahia/mcp-servers/tree/main/servers/megaplan",
53
- "author": "theYahia (https://github.com/theYahia)",
54
- "scripts": {
55
- "build": "tsc",
56
- "dev": "tsx src/index.ts",
57
- "start": "node dist/index.js",
58
- "test": "vitest run",
59
- "test:watch": "vitest",
60
- "clean": "rm -rf dist",
61
- "typecheck": "tsc --noEmit"
62
- }
63
- }
1
+ {
2
+ "name": "@theyahia/megaplan-mcp",
3
+ "version": "4.0.0",
4
+ "description": "MCP server for Megaplan — tasks, deals, project management (Russia)",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": {
8
+ "megaplan-mcp": "dist/index.js"
9
+ },
10
+ "files": [
11
+ "dist"
12
+ ],
13
+ "engines": {
14
+ "node": ">=18.0.0"
15
+ },
16
+ "scripts": {
17
+ "build": "tsc",
18
+ "dev": "tsx src/index.ts",
19
+ "start": "node dist/index.js",
20
+ "prepublishOnly": "npm run build",
21
+ "typecheck": "tsc --noEmit -p tsconfig.typecheck.json",
22
+ "lint": "eslint .",
23
+ "test": "vitest run",
24
+ "test:watch": "vitest",
25
+ "start:http": "node dist/index.js --http"
26
+ },
27
+ "dependencies": {
28
+ "@modelcontextprotocol/sdk": "^1.12.0",
29
+ "express": "^5.2.1",
30
+ "zod": "^3.24.0"
31
+ },
32
+ "devDependencies": {
33
+ "@types/express": "^5.0.6",
34
+ "@types/node": "^22.0.0",
35
+ "@types/supertest": "^6.0.2",
36
+ "eslint": "^9.17.0",
37
+ "supertest": "^7.0.0",
38
+ "tsx": "^4.19.0",
39
+ "typescript": "^5.7.0",
40
+ "typescript-eslint": "^8.18.0",
41
+ "vitest": "^4.1.2"
42
+ },
43
+ "publishConfig": {
44
+ "access": "public"
45
+ },
46
+ "mcpName": "io.github.theYahia/megaplan-mcp",
47
+ "keywords": [
48
+ "mcp",
49
+ "mcp-server",
50
+ "model-context-protocol",
51
+ "claude",
52
+ "ai",
53
+ "russian-api",
54
+ "megaplan",
55
+ "tasks",
56
+ "deals",
57
+ "project-management",
58
+ "api",
59
+ "typescript",
60
+ "crm"
61
+ ],
62
+ "license": "MIT",
63
+ "repository": {
64
+ "type": "git",
65
+ "url": "https://github.com/theYahia/megaplan-mcp.git"
66
+ },
67
+ "homepage": "https://github.com/theYahia/megaplan-mcp#readme",
68
+ "author": "Yahia"
69
+ }
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA0GH,wBAAgB,WAAW,IAAI,IAAI,CAGlC;AAED,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,OAAO,CAAC,CAElB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAEhF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;GAUG"}
package/dist/server.d.ts DELETED
@@ -1,9 +0,0 @@
1
- /**
2
- * Megaplan MCP server factory.
3
- * Split from index.ts so tests can import without triggering runServer.
4
- */
5
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
- export declare const logger: import("@theyahia/mcp-core").Logger;
7
- export declare const TOOL_COUNT = 8;
8
- export declare function createServer(): McpServer;
9
- //# sourceMappingURL=server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQpE,eAAO,MAAM,MAAM,qCAA+B,CAAC;AAEnD,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B,wBAAgB,YAAY,IAAI,SAAS,CAuHxC"}
package/dist/server.js DELETED
@@ -1,73 +0,0 @@
1
- /**
2
- * Megaplan MCP server factory.
3
- * Split from index.ts so tests can import without triggering runServer.
4
- */
5
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
- import { createLogger, withErrorHandling } from "@theyahia/mcp-core";
7
- import { getTasksSchema, handleGetTasks, createTaskSchema, handleCreateTask } from "./tools/tasks.js";
8
- import { getDealsSchema, handleGetDeals, createDealSchema, handleCreateDeal } from "./tools/deals.js";
9
- import { getProjectsSchema, handleGetProjects } from "./tools/projects.js";
10
- import { getEmployeesSchema, handleGetEmployees } from "./tools/employees.js";
11
- import { getCommentsSchema, handleGetComments, createCommentSchema, handleCreateComment } from "./tools/comments.js";
12
- export const logger = createLogger("megaplan-mcp");
13
- export const TOOL_COUNT = 8;
14
- export function createServer() {
15
- const server = new McpServer({
16
- name: "megaplan-mcp",
17
- version: "2.0.0",
18
- });
19
- // ── Tasks ──
20
- server.tool("get_tasks", "List Megaplan tasks with filters by status (active/completed/delayed), responsible user, or search term.", getTasksSchema.shape, withErrorHandling(async (params) => ({
21
- content: [{ type: "text", text: await handleGetTasks(params) }],
22
- })));
23
- server.tool("create_task", "Create a new Megaplan task — name, description, responsible user, deadline.", createTaskSchema.shape, withErrorHandling(async (params) => ({
24
- content: [{ type: "text", text: await handleCreateTask(params) }],
25
- })));
26
- // ── Deals ──
27
- server.tool("get_deals", "List Megaplan deals with filters by status, responsible user, or search.", getDealsSchema.shape, withErrorHandling(async (params) => ({
28
- content: [{ type: "text", text: await handleGetDeals(params) }],
29
- })));
30
- server.tool("create_deal", "Create a new Megaplan deal — name, pipeline (program), responsible user, amount.", createDealSchema.shape, withErrorHandling(async (params) => ({
31
- content: [{ type: "text", text: await handleCreateDeal(params) }],
32
- })));
33
- // ── Projects ──
34
- server.tool("get_projects", "List Megaplan projects with filters by status and search.", getProjectsSchema.shape, withErrorHandling(async (params) => ({
35
- content: [{ type: "text", text: await handleGetProjects(params) }],
36
- })));
37
- // ── Employees ──
38
- server.tool("get_employees", "List Megaplan employees with search and department filter.", getEmployeesSchema.shape, withErrorHandling(async (params) => ({
39
- content: [{ type: "text", text: await handleGetEmployees(params) }],
40
- })));
41
- // ── Comments ──
42
- server.tool("get_comments", "List comments for a task, deal, or project in Megaplan.", getCommentsSchema.shape, withErrorHandling(async (params) => ({
43
- content: [{ type: "text", text: await handleGetComments(params) }],
44
- })));
45
- server.tool("create_comment", "Add a comment to a task, deal, or project in Megaplan.", createCommentSchema.shape, withErrorHandling(async (params) => ({
46
- content: [{ type: "text", text: await handleCreateComment(params) }],
47
- })));
48
- // ── Skills (MCP prompts) — preserved from v1 ──
49
- server.prompt("my-tasks-today", "Мои задачи на сегодня — shows your tasks due today or overdue", {}, async () => ({
50
- messages: [
51
- {
52
- role: "user",
53
- content: {
54
- type: "text",
55
- text: "Используй get_tasks с filter_status='active' чтобы получить мои активные задачи. Покажи список задач с дедлайнами, отсортируй по срочности. Если задача просрочена — отметь. Формат: компактная таблица с колонками: Задача, Дедлайн, Статус, Приоритет.",
56
- },
57
- },
58
- ],
59
- }));
60
- server.prompt("create-deal-wizard", "Создай сделку — guided deal creation wizard", {}, async () => ({
61
- messages: [
62
- {
63
- role: "user",
64
- content: {
65
- type: "text",
66
- text: "Помоги создать новую сделку в Мегаплане. Спроси у меня: 1) Название сделки, 2) ID программы (pipeline), 3) Ответственный (опционально), 4) Сумма (опционально), 5) Описание (опционально). После сбора данных вызови create_deal.",
67
- },
68
- },
69
- ],
70
- }));
71
- return server;
72
- }
73
- //# sourceMappingURL=server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../../src/tools/comments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAK5B,CAAC;AAEH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAOlG;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;EAI9B,CAAC;AAEH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAWtG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"deals.d.ts","sourceRoot":"","sources":["../../src/tools/deals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;EAMzB,CAAC;AAEH,wBAAsB,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAW5F;AAED,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;EAO3B,CAAC;AAEH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAahG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"employees.d.ts","sourceRoot":"","sources":["../../src/tools/employees.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;EAK7B,CAAC;AAEH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAUpG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAK5B,CAAC;AAEH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAUlG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/tools/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;EAMzB,CAAC;AAEH,wBAAsB,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAW5F;AAED,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;EAM3B,CAAC;AAEH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAYhG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,OAAO,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,IAAI,EAAE,CAAC,EAAE,CAAC;CACX"}