@ezmodo/mcp-server 0.13.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/README.md +305 -0
- package/config/development.js +20 -0
- package/config/endpoint-map.js +351 -0
- package/config/index.js +34 -0
- package/config/production.js +18 -0
- package/config/staging.js +18 -0
- package/handlers/access.js +141 -0
- package/handlers/activity.js +112 -0
- package/handlers/agents.js +95 -0
- package/handlers/ai-intelligence.js +55 -0
- package/handlers/attachments.js +30 -0
- package/handlers/catalogs.js +169 -0
- package/handlers/components.js +282 -0
- package/handlers/context-manifest.js +1150 -0
- package/handlers/decisions.js +114 -0
- package/handlers/designs.js +118 -0
- package/handlers/documents.js +227 -0
- package/handlers/entities.js +95 -0
- package/handlers/epics.js +190 -0
- package/handlers/facts.js +62 -0
- package/handlers/feature-flags.js +142 -0
- package/handlers/features.js +137 -0
- package/handlers/folders.js +127 -0
- package/handlers/git-context.js +917 -0
- package/handlers/github.js +72 -0
- package/handlers/graph.js +23 -0
- package/handlers/index.js +205 -0
- package/handlers/links.js +156 -0
- package/handlers/milestones.js +131 -0
- package/handlers/organizations.js +14 -0
- package/handlers/projects.js +122 -0
- package/handlers/recurring-tasks.js +33 -0
- package/handlers/tags.js +124 -0
- package/handlers/tasks.js +561 -0
- package/handlers/testing.js +116 -0
- package/handlers/todos.js +43 -0
- package/handlers/watchers.js +54 -0
- package/handlers/work-templates.js +32 -0
- package/index.js +175 -0
- package/lib/active-session.js +86 -0
- package/lib/auto-assign.js +93 -0
- package/lib/autolink.js +176 -0
- package/lib/changed-files.js +22 -0
- package/lib/env.js +45 -0
- package/lib/git-helpers.js +553 -0
- package/lib/git-utils.js +73 -0
- package/lib/http-client.js +164 -0
- package/lib/links-at-create.js +94 -0
- package/lib/local-cache.js +140 -0
- package/lib/logger.js +109 -0
- package/lib/manifest-loader.js +182 -0
- package/lib/manifest-query.js +686 -0
- package/lib/repo-config-dir.js +118 -0
- package/lib/version.js +10 -0
- package/lib/web-url.js +69 -0
- package/lib/worktree-tools.js +950 -0
- package/package.json +62 -0
- package/prompts/ai-workflow-automation.js +96 -0
- package/prompts/index.js +39 -0
- package/prompts/zephly-usage-guide-content.txt +631 -0
- package/prompts/zephly-usage-guide.js +119 -0
- package/tools/access-entity-types.js +28 -0
- package/tools/access.js +152 -0
- package/tools/activity.js +38 -0
- package/tools/agents.js +208 -0
- package/tools/ai-intelligence.js +111 -0
- package/tools/attachments.js +92 -0
- package/tools/catalogs.js +341 -0
- package/tools/components.js +249 -0
- package/tools/context-manifest.js +236 -0
- package/tools/decisions.js +168 -0
- package/tools/designs.js +222 -0
- package/tools/documents.js +287 -0
- package/tools/entities.js +223 -0
- package/tools/epics.js +267 -0
- package/tools/facts.js +70 -0
- package/tools/feature-flags.js +300 -0
- package/tools/features.js +246 -0
- package/tools/folders.js +122 -0
- package/tools/git-context.js +109 -0
- package/tools/github.js +172 -0
- package/tools/graph.js +70 -0
- package/tools/index.js +77 -0
- package/tools/link-params.js +93 -0
- package/tools/linkable-types.js +36 -0
- package/tools/links.js +199 -0
- package/tools/milestones.js +176 -0
- package/tools/organizations.js +23 -0
- package/tools/projects.js +172 -0
- package/tools/recurring-tasks.js +115 -0
- package/tools/tags.js +219 -0
- package/tools/task-item-schema.js +57 -0
- package/tools/task-type.js +33 -0
- package/tools/tasks.js +680 -0
- package/tools/testing.js +344 -0
- package/tools/todos.js +69 -0
- package/tools/watchers.js +81 -0
- package/tools/work-templates.js +96 -0
package/package.json
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ezmodo/mcp-server",
|
|
3
|
+
"version": "0.13.0",
|
|
4
|
+
"description": "MCP server for ezmodo - AI-first project management",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"bin": {
|
|
8
|
+
"ezmodo-mcp-server": "./index.js",
|
|
9
|
+
"zephly-mcp-server": "./index.js"
|
|
10
|
+
},
|
|
11
|
+
"scripts": {
|
|
12
|
+
"dev": "BUILD_ENV=development node index.js",
|
|
13
|
+
"start": "node index.js",
|
|
14
|
+
"build:production": "BUILD_ENV=production node --input-type=module -e 'console.log(\"Production build configured\")'",
|
|
15
|
+
"build:staging": "BUILD_ENV=staging node --input-type=module -e 'console.log(\"Staging build configured\")'",
|
|
16
|
+
"build:development": "BUILD_ENV=development node --input-type=module -e 'console.log(\"Development build configured\")'",
|
|
17
|
+
"test": "BUILD_ENV=development NODE_OPTIONS=--experimental-vm-modules jest",
|
|
18
|
+
"test:watch": "BUILD_ENV=development NODE_OPTIONS=--experimental-vm-modules jest --watch",
|
|
19
|
+
"test:coverage": "BUILD_ENV=development NODE_OPTIONS=--experimental-vm-modules jest --coverage",
|
|
20
|
+
"test:smoke": "BUILD_ENV=development node test.js",
|
|
21
|
+
"lint": "eslint . --fix"
|
|
22
|
+
},
|
|
23
|
+
"keywords": [
|
|
24
|
+
"mcp",
|
|
25
|
+
"model-context-protocol",
|
|
26
|
+
"ezmodo",
|
|
27
|
+
"ai",
|
|
28
|
+
"project-management"
|
|
29
|
+
],
|
|
30
|
+
"author": "ezmodo Team",
|
|
31
|
+
"license": "MIT",
|
|
32
|
+
"publishConfig": {
|
|
33
|
+
"access": "public"
|
|
34
|
+
},
|
|
35
|
+
"files": [
|
|
36
|
+
"index.js",
|
|
37
|
+
"config/",
|
|
38
|
+
"handlers/",
|
|
39
|
+
"lib/",
|
|
40
|
+
"prompts/",
|
|
41
|
+
"tools/",
|
|
42
|
+
"README.md"
|
|
43
|
+
],
|
|
44
|
+
"repository": {
|
|
45
|
+
"type": "git",
|
|
46
|
+
"url": "https://github.com/EasyModeOnly/ezmodo.git",
|
|
47
|
+
"directory": "mcp-server"
|
|
48
|
+
},
|
|
49
|
+
"dependencies": {
|
|
50
|
+
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
51
|
+
"node-fetch": "^3.3.2"
|
|
52
|
+
},
|
|
53
|
+
"devDependencies": {
|
|
54
|
+
"@eslint/js": "^10.0.1",
|
|
55
|
+
"@jest/globals": "^30.3.0",
|
|
56
|
+
"eslint": "^10.8.0",
|
|
57
|
+
"jest": "^30.5.1"
|
|
58
|
+
},
|
|
59
|
+
"engines": {
|
|
60
|
+
"node": ">=18.0.0"
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI Workflow Automation Prompt
|
|
3
|
+
* Guidelines for AI agents to automatically track their work in Zephly
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
export const AI_WORKFLOW_AUTOMATION = `# AI Workflow Automation Guide
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
When you (as an AI agent) are implementing features or working on
|
|
11
|
+
complex tasks, **automatically track your work in Zephly in real-time**.
|
|
12
|
+
Don't wait for users to ask you to update documentation or check off tasks.
|
|
13
|
+
|
|
14
|
+
## When to Use Workflow Automation
|
|
15
|
+
|
|
16
|
+
- User asks you to implement a feature (not just explain or plan)
|
|
17
|
+
- Task involves multiple implementation steps (>3 steps)
|
|
18
|
+
- Work needs team visibility or historical tracking
|
|
19
|
+
|
|
20
|
+
## Session Setup
|
|
21
|
+
|
|
22
|
+
First, discover the user's context:
|
|
23
|
+
|
|
24
|
+
\`\`\`javascript
|
|
25
|
+
// 1. Get organization
|
|
26
|
+
const orgs = await list_organizations();
|
|
27
|
+
const orgId = orgs.organizations[0].id;
|
|
28
|
+
|
|
29
|
+
// 2. Get projects
|
|
30
|
+
const projects = await list_projects({ organizationId: orgId });
|
|
31
|
+
const projectId = projects.projects[0].id;
|
|
32
|
+
\`\`\`
|
|
33
|
+
|
|
34
|
+
## Workflow Steps
|
|
35
|
+
|
|
36
|
+
1. **Create or Select Project** - Use existing project or create new one with \`create_project\`
|
|
37
|
+
2. **Create Epic** (optional) - Use \`create_epic\` to group related tasks under a milestone
|
|
38
|
+
3. **Break Down Tasks** - Create 3-7 tasks with \`create_task\`, each with implementation steps
|
|
39
|
+
4. **Track Progress** - Update steps with \`update_task\` (toggle, add, modify) as you work
|
|
40
|
+
5. **Update Status** - Move tasks through workflow: backlog → todo → in_progress → in_review → completed
|
|
41
|
+
6. **Document** - Use \`create_document\` to create setup guides, API docs, or troubleshooting guides
|
|
42
|
+
7. **Complete** - Use \`complete_task\` when done, update epic status if applicable
|
|
43
|
+
|
|
44
|
+
## Example Workflow
|
|
45
|
+
|
|
46
|
+
\`\`\`javascript
|
|
47
|
+
// 1. Get context
|
|
48
|
+
const orgs = await list_organizations();
|
|
49
|
+
const orgId = orgs.organizations[0].id;
|
|
50
|
+
const projects = await list_projects({ organizationId: orgId });
|
|
51
|
+
const projectId = projects.projects[0].id;
|
|
52
|
+
|
|
53
|
+
// 2. Create epic (milestone)
|
|
54
|
+
const epic = await create_epic({
|
|
55
|
+
projectId,
|
|
56
|
+
title: "User Authentication System",
|
|
57
|
+
description: "Complete auth implementation with OAuth2"
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
// 3. Create tasks with steps
|
|
61
|
+
await create_task({
|
|
62
|
+
projectId,
|
|
63
|
+
epicId: epic.id,
|
|
64
|
+
title: "Implement OAuth2 backend",
|
|
65
|
+
description: "Set up OAuth2 authentication flow",
|
|
66
|
+
steps: ["Set up OAuth2 config", "JWT generation", "Validation middleware", "Tests"],
|
|
67
|
+
assigneeType: "ai",
|
|
68
|
+
assigneeId: "claude",
|
|
69
|
+
assigneeName: "Claude"
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
// 4. Track progress as you work
|
|
73
|
+
await update_task({ taskId: "task1", status: "in_progress" });
|
|
74
|
+
await update_task({ taskId: "task1", toggleStep: { stepId: "step_0", completed: true } });
|
|
75
|
+
|
|
76
|
+
// 5. Document what you built
|
|
77
|
+
await create_document({
|
|
78
|
+
projectId,
|
|
79
|
+
title: "Authentication Setup Guide",
|
|
80
|
+
content: "# How to configure OAuth2...",
|
|
81
|
+
type: "setup"
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
// 6. Complete task
|
|
85
|
+
await complete_task({ taskId: "task1", completionNotes: "OAuth2 implementation complete" });
|
|
86
|
+
|
|
87
|
+
// 7. Update epic when all tasks done
|
|
88
|
+
await update_epic({ epicId: epic.id, status: "completed" });
|
|
89
|
+
\`\`\`
|
|
90
|
+
|
|
91
|
+
## Benefits
|
|
92
|
+
|
|
93
|
+
- Real-time visibility for users (no "black box" AI work)
|
|
94
|
+
- Historical record of decisions and implementation details
|
|
95
|
+
- Documentation created alongside code
|
|
96
|
+
- The only PM tool where AI agents manage their own project tracking`;
|
package/prompts/index.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Prompts
|
|
3
|
+
* Prompt definitions and content for the Zephly MCP server
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
// Import prompt content from separate files (to be created)
|
|
7
|
+
import { ZEPHLY_USAGE_GUIDE } from './zephly-usage-guide.js';
|
|
8
|
+
import { AI_WORKFLOW_AUTOMATION } from './ai-workflow-automation.js';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* List of available prompts
|
|
12
|
+
*/
|
|
13
|
+
export const PROMPTS = [
|
|
14
|
+
{
|
|
15
|
+
name: 'zephly-usage-guide',
|
|
16
|
+
description: 'Guidelines for using Zephly MCP tools effectively in project management workflows',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
name: 'ai-workflow-automation',
|
|
20
|
+
description: 'Guidelines for AI agents to automatically track '
|
|
21
|
+
+ 'their work in Zephly (create epics, tasks, steps, and documentation)',
|
|
22
|
+
},
|
|
23
|
+
];
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Get prompt content by name
|
|
27
|
+
* @param {string} name - Prompt name
|
|
28
|
+
* @returns {string|null} - Prompt content or null if not found
|
|
29
|
+
*/
|
|
30
|
+
export function getPromptContent(name) {
|
|
31
|
+
switch (name) {
|
|
32
|
+
case 'zephly-usage-guide':
|
|
33
|
+
return ZEPHLY_USAGE_GUIDE;
|
|
34
|
+
case 'ai-workflow-automation':
|
|
35
|
+
return AI_WORKFLOW_AUTOMATION;
|
|
36
|
+
default:
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
}
|