@xferops/forge-mcp 2.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.
package/package.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "@xferops/forge-mcp",
3
+ "version": "2.0.0",
4
+ "description": "MCP server for Forge (XferOps project management) - works with Claude Code, Codex, OpenClaw, and any MCP consumer",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": {
8
+ "forge-mcp": "dist/index.js"
9
+ },
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "dev": "tsx src/index.ts",
13
+ "start": "node dist/index.js"
14
+ },
15
+ "keywords": [
16
+ "mcp",
17
+ "forge",
18
+ "kanban",
19
+ "project-management",
20
+ "claude",
21
+ "codex",
22
+ "openclaw",
23
+ "xferops"
24
+ ],
25
+ "author": "XferOps <support@xferops.com>",
26
+ "license": "MIT",
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "https://github.com/XferOps/forge-mcp.git"
30
+ },
31
+ "homepage": "https://forge.xferops.dev/docs",
32
+ "dependencies": {
33
+ "@modelcontextprotocol/sdk": "^1.0.0"
34
+ },
35
+ "devDependencies": {
36
+ "@types/node": "^22.0.0",
37
+ "tsx": "^4.0.0",
38
+ "typescript": "^5.0.0"
39
+ }
40
+ }
package/skill/SKILL.md ADDED
@@ -0,0 +1,13 @@
1
+ # Forge Skills
2
+
3
+ The Forge MCP skill has been split into three focused skills. Use the one that matches your intent:
4
+
5
+ | Skill | When to use |
6
+ |-------|-------------|
7
+ | [`forge-dev-workflow`](./forge-dev-workflow/SKILL.md) | Picking up tickets, moving them through columns, linking PRs, commenting — the daily dev loop |
8
+ | [`forge-board-admin`](./forge-board-admin/SKILL.md) | Managing projects, columns, and team membership |
9
+ | [`forge-setup`](./forge-setup/SKILL.md) | First-time install and configuration, or when health check fails |
10
+
11
+ ## Why three skills?
12
+
13
+ Loading 26 tools + docs for every ticket comment is wasteful. Each skill now covers only the tools and workflow guidance relevant to a specific intent, keeping context lean and guidance actionable.
@@ -0,0 +1,99 @@
1
+ ---
2
+ name: forge-board-admin
3
+ description: Manage Forge projects, columns, and team membership. Use when creating or updating boards, reordering or adding columns, or managing team members. NOT for day-to-day ticket work (use forge-dev-workflow for that).
4
+ ---
5
+
6
+ # Forge — Board Administration
7
+
8
+ For setting up and maintaining boards, columns, and team membership. This is Parker/Adam territory — dev agents rarely need this.
9
+
10
+ ## Prerequisite
11
+
12
+ Forge MCP must be configured. If `forge_health_check` fails, run the `forge-setup` skill first.
13
+
14
+ ## Projects
15
+
16
+ ### Create a project
17
+ ```
18
+ forge_create_project teamId=<id> name="Project Name" prefix="PRJ"
19
+ ```
20
+ `prefix` sets the ticket ID prefix (e.g. `PRJ-1`, `PRJ-2`). Choose something short and unique.
21
+
22
+ ### Update a project
23
+ ```
24
+ forge_update_project projectId=<id> name="New Name"
25
+ ```
26
+
27
+ ### Delete a project
28
+ ```
29
+ forge_delete_project projectId=<id>
30
+ ```
31
+ ⚠️ Irreversible. All tasks and history are gone.
32
+
33
+ ### List all projects in a team
34
+ ```
35
+ forge_list_projects teamId=<id>
36
+ ```
37
+
38
+ ### Get a project (with columns + tasks)
39
+ ```
40
+ forge_get_project projectId=<id>
41
+ ```
42
+ Use this to retrieve column IDs before creating tasks or building automations.
43
+
44
+ ## Columns
45
+
46
+ Standard XferOps column order:
47
+ **Backlog → Blocked → To Do → In Progress → Code Review → Staging → Ready for Prod → Done**
48
+
49
+ ### Create a column
50
+ ```
51
+ forge_create_column projectId=<id> name="Column Name"
52
+ ```
53
+
54
+ ### Rename a column
55
+ ```
56
+ forge_update_column columnId=<id> name="New Name"
57
+ ```
58
+
59
+ ### Reorder columns
60
+ ```
61
+ forge_reorder_columns projectId=<id> columnIds=["<id1>","<id2>","<id3>"]
62
+ ```
63
+ Pass the full ordered list of column IDs.
64
+
65
+ ### Delete a column
66
+ ```
67
+ forge_delete_column columnId=<id>
68
+ ```
69
+ ⚠️ Move all tasks out first — tasks in a deleted column may be lost.
70
+
71
+ ## Team Members
72
+
73
+ ### List team members
74
+ ```
75
+ forge_list_team_members teamId=<id>
76
+ ```
77
+
78
+ ### Add a member
79
+ ```
80
+ forge_add_team_member teamId=<id> email="user@example.com"
81
+ ```
82
+
83
+ ## Tools used by this skill
84
+
85
+ | Tool | When |
86
+ |------|------|
87
+ | `forge_list_teams` | List all teams in the org |
88
+ | `forge_list_projects` | List projects in a team |
89
+ | `forge_get_project` | Get project details, column IDs, task list |
90
+ | `forge_create_project` | Create a new board |
91
+ | `forge_update_project` | Rename a project |
92
+ | `forge_delete_project` | Delete a project (irreversible) |
93
+ | `forge_create_column` | Add a column to a board |
94
+ | `forge_update_column` | Rename a column |
95
+ | `forge_delete_column` | Remove a column (move tasks first) |
96
+ | `forge_reorder_columns` | Change column order |
97
+ | `forge_list_team_members` | See who's on the team |
98
+ | `forge_add_team_member` | Add a user by email |
99
+ | `forge_health_check` | Verify API connectivity |
@@ -0,0 +1,120 @@
1
+ ---
2
+ name: forge-dev-workflow
3
+ description: Pick up, work, move, and comment on Forge tasks during the dev loop. Use when claiming a ticket, moving it through columns, linking a PR, or adding status comments. NOT for managing projects, columns, or team membership (use forge-board-admin for that).
4
+ ---
5
+
6
+ # Forge — Dev Workflow
7
+
8
+ The standard loop for development work: find a ticket → claim it → ship code → move it through review → done.
9
+
10
+ ## Prerequisite
11
+
12
+ Forge MCP must be configured. If `forge_health_check` fails, run the `forge-setup` skill first.
13
+
14
+ ## The Dev Loop
15
+
16
+ ### 1. Find your next ticket
17
+
18
+ ```
19
+ forge_search_tasks query="ADM-12" # look up a specific ticket
20
+ forge_list_tasks projectId=<id> # browse a board
21
+ ```
22
+
23
+ Use `forge_get_task` to read full details, description, and existing comments before starting.
24
+
25
+ ### 2. Claim it — move to In Progress
26
+
27
+ ```
28
+ forge_move_task taskId=<id> columnId=<in-progress-col-id>
29
+ ```
30
+
31
+ Always comment when you start:
32
+ ```
33
+ forge_create_comment taskId=<id> content="Picking this up now."
34
+ ```
35
+
36
+ ### 3. During work — comment on blockers or context
37
+
38
+ If you hit a blocker, comment immediately and move to Blocked:
39
+ ```
40
+ forge_create_comment taskId=<id> content="Blocked: <reason>. Needs input from <person>."
41
+ forge_move_task taskId=<id> columnId=<blocked-col-id>
42
+ ```
43
+
44
+ ### 4. PR ready — move to Code Review
45
+
46
+ ```
47
+ forge_move_task taskId=<id> columnId=<code-review-col-id>
48
+ forge_create_comment taskId=<id> content="PR open: <url>. Ready for review."
49
+ ```
50
+
51
+ ### 5. Feedback addressed — re-request review
52
+
53
+ Push fixes, then comment:
54
+ ```
55
+ forge_create_comment taskId=<id> content="Addressed review feedback (see PR). Re-requesting review."
56
+ ```
57
+
58
+ ### 6. Merged → Staging
59
+
60
+ After merge and successful staging deploy:
61
+ ```
62
+ forge_move_task taskId=<id> columnId=<staging-col-id>
63
+ forge_create_comment taskId=<id> content="Merged and deployed to staging. Test at <url>."
64
+ ```
65
+
66
+ ### 7. Staging verified → Ready for Prod
67
+
68
+ ```
69
+ forge_move_task taskId=<id> columnId=<ready-for-prod-col-id>
70
+ ```
71
+
72
+ ### 8. Released → Done
73
+
74
+ ```
75
+ forge_move_task taskId=<id> columnId=<done-col-id>
76
+ ```
77
+
78
+ ## Column IDs
79
+
80
+ Column IDs vary by project. Get them with:
81
+ ```
82
+ forge_get_project projectId=<id> # returns columns[] with id + name
83
+ ```
84
+
85
+ Common column names (in order): **Backlog → Blocked → To Do → In Progress → Code Review → Staging → Ready for Prod → Done**
86
+
87
+ ## Assigning tasks
88
+
89
+ ```
90
+ forge_update_task taskId=<id> assigneeId=<userId>
91
+ ```
92
+
93
+ - Assign to yourself when starting
94
+ - Assign to `quinn-xferops-ai` when moving to Staging (QA ownership)
95
+ - Assign to `adam-xferops-ai` when you need a senior unblock
96
+ - Leave unassigned when parking in Backlog
97
+
98
+ ## Task types
99
+
100
+ - `TASK` — discrete work item
101
+ - `BUG` — something broken
102
+ - `STORY` — larger initiative
103
+
104
+ ## Priority order
105
+
106
+ Always work: **Critical → High → Medium → Low**
107
+
108
+ ## Tools used by this skill
109
+
110
+ | Tool | When |
111
+ |------|------|
112
+ | `forge_search_tasks` | Find tickets by title, description, or ID (e.g. "ADM-5") |
113
+ | `forge_list_tasks` | Browse all tasks in a project |
114
+ | `forge_get_task` | Read full task details before starting |
115
+ | `forge_create_task` | Create a ticket for work that doesn't have one |
116
+ | `forge_update_task` | Update fields, assignee, priority, type |
117
+ | `forge_move_task` | Move between columns |
118
+ | `forge_create_comment` | Leave status updates, PR links, blocker notes |
119
+ | `forge_list_comments` | Read existing comments for context |
120
+ | `forge_health_check` | Verify API connectivity |
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: forge-setup
3
+ description: Install and configure the Forge MCP server for the first time, or verify an existing setup. Use when forge_health_check fails or when setting up a new agent environment.
4
+ ---
5
+
6
+ # Forge — Setup
7
+
8
+ One-time installation and configuration of the Forge MCP server.
9
+
10
+ ## Install
11
+
12
+ ```bash
13
+ npx -y @xferops/forge-mcp
14
+ ```
15
+
16
+ ## Configure
17
+
18
+ Add to your MCP client config (e.g. `~/.mcporter/mcporter.json`):
19
+
20
+ ```json
21
+ {
22
+ "mcpServers": {
23
+ "forge": {
24
+ "command": "npx",
25
+ "args": ["-y", "@xferops/forge-mcp"],
26
+ "env": {
27
+ "FORGE_URL": "https://forge.xferops.dev",
28
+ "FORGE_TOKEN": "your-api-token"
29
+ }
30
+ }
31
+ }
32
+ }
33
+ ```
34
+
35
+ Get your API token: **Forge → Settings → API Tokens**
36
+
37
+ ## Verify
38
+
39
+ ```
40
+ forge_health_check
41
+ ```
42
+
43
+ A `200 OK` response means you're connected and authenticated. Any other result:
44
+ - **401** — token is wrong or expired; generate a new one in Forge settings
45
+ - **Connection refused / timeout** — `FORGE_URL` is wrong, or the service is down
46
+
47
+ ## Legacy env vars
48
+
49
+ If migrating from the old Flower app, `FLOWER_URL` and `FLOWER_TOKEN` are accepted as fallbacks but deprecated. Update to `FORGE_URL` / `FORGE_TOKEN`.
50
+
51
+ ## Tools used by this skill
52
+
53
+ | Tool | When |
54
+ |------|------|
55
+ | `forge_health_check` | Verify the MCP server can reach the Forge API |