@agent-tasks/mcp-server 0.1.0 → 0.3.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 CHANGED
@@ -48,23 +48,61 @@ Drop `--scope user` if you want it project-local instead. See
48
48
 
49
49
  ## Tools
50
50
 
51
- | Tool | Wraps |
52
- | -------------------- | -------------------------------------------- |
53
- | `projects_list` | `GET /api/projects/available` |
54
- | `tasks_list` | `GET /api/tasks/claimable` |
55
- | `tasks_get` | `GET /api/tasks/:id` |
56
- | `tasks_instructions` | `GET /api/tasks/:id/instructions` |
57
- | `tasks_create` | `POST /api/projects/:projectId/tasks` |
58
- | `tasks_claim` | `POST /api/tasks/:id/claim` |
59
- | `tasks_release` | `POST /api/tasks/:id/release` |
60
- | `tasks_transition` | `POST /api/tasks/:id/transition` |
61
- | `tasks_update` | `PATCH /api/tasks/:id` |
62
- | `tasks_comment` | `POST /api/tasks/:id/comments` |
63
- | `signals_poll` | `GET /api/agent/signals` |
64
- | `signals_ack` | `POST /api/agent/signals/:id/ack` |
51
+ | Tool | Wraps |
52
+ | ----------------------- | -------------------------------------------------- |
53
+ | `projects_list` | `GET /api/projects/available` |
54
+ | `projects_get` | `GET /api/projects/:slugOrId` (or `/by-slug/:slug`)|
55
+ | `tasks_list` | `GET /api/tasks/claimable` |
56
+ | `tasks_get` | `GET /api/tasks/:id` |
57
+ | `tasks_instructions` | `GET /api/tasks/:id/instructions` |
58
+ | `tasks_create` | `POST /api/projects/:projectId/tasks` |
59
+ | `tasks_claim` | `POST /api/tasks/:id/claim` |
60
+ | `tasks_release` | `POST /api/tasks/:id/release` |
61
+ | `tasks_transition` | `POST /api/tasks/:id/transition` |
62
+ | `tasks_update` | `PATCH /api/tasks/:id` |
63
+ | `tasks_comment` | `POST /api/tasks/:id/comments` |
64
+ | `review_approve` | `POST /api/tasks/:id/review` (`action: approve`) |
65
+ | `review_request_changes`| `POST /api/tasks/:id/review` (`action: request_changes`) |
66
+ | `review_claim` | `POST /api/tasks/:id/review/claim` |
67
+ | `review_release` | `POST /api/tasks/:id/review/release` |
68
+ | `pull_requests_create` | `POST /api/github/pull-requests` |
69
+ | `pull_requests_merge` | `POST /api/github/pull-requests/:prNumber/merge` |
70
+ | `pull_requests_comment` | `POST /api/github/pull-requests/:prNumber/comments`|
71
+ | `signals_poll` | `GET /api/agent/signals` |
72
+ | `signals_ack` | `POST /api/agent/signals/:id/ack` |
65
73
 
66
74
  All tools return the raw JSON response from the backend as a text block.
67
75
 
76
+ ### GitHub PR tools — delegation required
77
+
78
+ The three `pull_requests_*` tools dispatch through a team member's GitHub
79
+ token (the "delegation user"), not through the agent token itself. Before
80
+ these tools can succeed:
81
+
82
+ 1. A team member must connect their GitHub account (**Settings → GitHub**)
83
+ 2. The same member must enable the relevant consent flag(s) in
84
+ **Settings → Agent Permissions** (`allowAgentPrCreate`,
85
+ `allowAgentPrMerge`, `allowAgentPrComment`)
86
+
87
+ Without consent, the backend returns `403` with a message naming which
88
+ consent flag is missing. All three tools are **agent-only** — human
89
+ sessions cannot call them; use the regular `gh` CLI or the GitHub web UI
90
+ for human-authored PRs.
91
+
92
+ On success, `pull_requests_create` patches the task's `branchName`,
93
+ `prUrl`, and `prNumber` server-side, and `pull_requests_merge` transitions
94
+ the task to `done`. No extra `tasks_update` / `tasks_transition` call
95
+ needed — one tool call drives both the GitHub action and the task-state
96
+ side effect.
97
+
98
+ `pull_requests_merge` also enforces the review gate: the task must be in
99
+ `review` state (or already `done` for an idempotent re-try), otherwise
100
+ the endpoint returns 403. If the project has `requireDistinctReviewer`
101
+ enabled, the merge caller must not be the task's claimant — same rule
102
+ the `/transition` and `/review` endpoints apply. To bypass the gate,
103
+ admins force-transition to `done` via `tasks_transition` with `force=true`
104
+ first, then call this tool (which accepts `done` as a valid entry state).
105
+
68
106
  ## Transport
69
107
 
70
108
  This package ships **stdio** only. It is the recommended path for
@@ -75,7 +113,7 @@ no running server to maintain, no network hop.
75
113
 
76
114
  Remote MCP clients that speak HTTP + JSON-RPC (e.g. Triologue's
77
115
  `mcpBridge.ts`) cannot drive a stdio child process across a network
78
- boundary. For those, the agent-tasks backend exposes the **same 12
116
+ boundary. For those, the agent-tasks backend exposes the **same 20
79
117
  tools** over HTTP at `POST /api/mcp`:
80
118
 
81
119
  ```bash
package/dist/client.d.ts CHANGED
@@ -12,6 +12,7 @@ export declare class AgentTasksClient {
12
12
  constructor(config: ClientConfig);
13
13
  private request;
14
14
  listProjects(): Promise<unknown>;
15
+ getProject(slugOrId: string): Promise<unknown>;
15
16
  listClaimableTasks(params?: {
16
17
  limit?: number;
17
18
  }): Promise<unknown>;
@@ -40,6 +41,35 @@ export declare class AgentTasksClient {
40
41
  result?: string | null;
41
42
  }): Promise<unknown>;
42
43
  addTaskComment(taskId: string, content: string): Promise<unknown>;
44
+ reviewTask(taskId: string, input: {
45
+ action: "approve" | "request_changes";
46
+ comment?: string;
47
+ }): Promise<unknown>;
48
+ claimReview(taskId: string): Promise<unknown>;
49
+ releaseReview(taskId: string): Promise<unknown>;
43
50
  pollSignals(): Promise<unknown>;
44
51
  ackSignal(signalId: string): Promise<unknown>;
52
+ createPullRequest(input: {
53
+ taskId: string;
54
+ owner: string;
55
+ repo: string;
56
+ head: string;
57
+ base?: string;
58
+ title: string;
59
+ body?: string;
60
+ }): Promise<unknown>;
61
+ mergePullRequest(input: {
62
+ taskId: string;
63
+ owner: string;
64
+ repo: string;
65
+ prNumber: number;
66
+ merge_method?: "merge" | "squash" | "rebase";
67
+ }): Promise<unknown>;
68
+ commentOnPullRequest(input: {
69
+ taskId: string;
70
+ owner: string;
71
+ repo: string;
72
+ prNumber: number;
73
+ body: string;
74
+ }): Promise<unknown>;
45
75
  }
package/dist/client.js CHANGED
@@ -48,6 +48,16 @@ export class AgentTasksClient {
48
48
  listProjects() {
49
49
  return this.request("GET", "/api/projects/available");
50
50
  }
51
+ getProject(slugOrId) {
52
+ // Mirror the CLI: UUIDs route to the id endpoint, anything else is
53
+ // treated as a slug. Keeps the MCP tool input permissive (one string)
54
+ // without forcing callers to know which flavor of identifier they hold.
55
+ const isUuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(slugOrId);
56
+ const path = isUuid
57
+ ? `/api/projects/${slugOrId}`
58
+ : `/api/projects/by-slug/${encodeURIComponent(slugOrId)}`;
59
+ return this.request("GET", path);
60
+ }
51
61
  listClaimableTasks(params) {
52
62
  const qs = params?.limit !== undefined ? `?limit=${params.limit}` : "";
53
63
  return this.request("GET", `/api/tasks/claimable${qs}`);
@@ -78,11 +88,37 @@ export class AgentTasksClient {
78
88
  content,
79
89
  });
80
90
  }
91
+ reviewTask(taskId, input) {
92
+ return this.request("POST", `/api/tasks/${taskId}/review`, input);
93
+ }
94
+ claimReview(taskId) {
95
+ return this.request("POST", `/api/tasks/${taskId}/review/claim`);
96
+ }
97
+ releaseReview(taskId) {
98
+ return this.request("POST", `/api/tasks/${taskId}/review/release`);
99
+ }
81
100
  pollSignals() {
82
101
  return this.request("GET", "/api/agent/signals");
83
102
  }
84
103
  ackSignal(signalId) {
85
104
  return this.request("POST", `/api/agent/signals/${signalId}/ack`);
86
105
  }
106
+ // ── GitHub PR delegation ──────────────────────────────────────────────
107
+ //
108
+ // Thin wrappers around the three `/api/github/pull-requests*` endpoints.
109
+ // All three are AGENT-ONLY at the backend (humans get 403) because they
110
+ // depend on the GitHub delegation token of a user who has connected
111
+ // GitHub and opted in to PR actions — see backend/src/routes/github.ts.
112
+ createPullRequest(input) {
113
+ return this.request("POST", "/api/github/pull-requests", input);
114
+ }
115
+ mergePullRequest(input) {
116
+ const { prNumber, ...body } = input;
117
+ return this.request("POST", `/api/github/pull-requests/${prNumber}/merge`, body);
118
+ }
119
+ commentOnPullRequest(input) {
120
+ const { prNumber, ...rest } = input;
121
+ return this.request("POST", `/api/github/pull-requests/${prNumber}/comments`, rest);
122
+ }
87
123
  }
88
124
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/tools.js CHANGED
@@ -33,6 +33,12 @@ export function buildTools(client) {
33
33
  inputShape: {},
34
34
  handler: async () => wrap(() => client.listProjects()),
35
35
  }),
36
+ def({
37
+ name: "projects_get",
38
+ description: "Fetch a single project by slug or id. Accepts either a UUID or a slug — the tool routes to the correct endpoint automatically. Returns the full project record (id, slug, name, GitHub repo, team members, workflow info).",
39
+ inputShape: { slugOrId: z.string().min(1) },
40
+ handler: async ({ slugOrId }) => wrap(() => client.getProject(slugOrId)),
41
+ }),
36
42
  def({
37
43
  name: "tasks_list",
38
44
  description: "List tasks that the authenticated actor may claim (status=open, not blocked, not already claimed). Supports an optional limit.",
@@ -115,6 +121,36 @@ export function buildTools(client) {
115
121
  },
116
122
  handler: async ({ taskId, content }) => wrap(() => client.addTaskComment(taskId, content)),
117
123
  }),
124
+ def({
125
+ name: "review_approve",
126
+ description: "Approve a task in review. The task's claimant must not be the reviewer (distinct-reviewer gate). The backend checks the project's review policy and transitions the task when the policy is satisfied. Optional comment is stored alongside the review event. Requires the task to be in 'review' state and the actor to hold the review lock (acquired via review_claim).",
127
+ inputShape: {
128
+ taskId: uuid(),
129
+ comment: z.string().max(5000).optional(),
130
+ },
131
+ handler: async ({ taskId, comment }) => wrap(() => client.reviewTask(taskId, { action: "approve", comment })),
132
+ }),
133
+ def({
134
+ name: "review_request_changes",
135
+ description: "Request changes on a task in review. Moves the task back to the claimant with the comment attached. The claimant receives a changes_requested signal. Requires the task to be in 'review' state and the actor to hold the review lock.",
136
+ inputShape: {
137
+ taskId: uuid(),
138
+ comment: z.string().max(5000).optional(),
139
+ },
140
+ handler: async ({ taskId, comment }) => wrap(() => client.reviewTask(taskId, { action: "request_changes", comment })),
141
+ }),
142
+ def({
143
+ name: "review_claim",
144
+ description: "Acquire the single-reviewer lock on a task in review. A task can have at most one active reviewer at a time; call review_release or review_approve/review_request_changes to free the lock. Fails if the caller is the task's claimant (no self-review) or if another reviewer already holds the lock.",
145
+ inputShape: { taskId: uuid() },
146
+ handler: async ({ taskId }) => wrap(() => client.claimReview(taskId)),
147
+ }),
148
+ def({
149
+ name: "review_release",
150
+ description: "Release the review lock on a task without approving or requesting changes. Returns the task to the pool so another actor can pick it up for review.",
151
+ inputShape: { taskId: uuid() },
152
+ handler: async ({ taskId }) => wrap(() => client.releaseReview(taskId)),
153
+ }),
118
154
  def({
119
155
  name: "signals_poll",
120
156
  description: "Poll the signal inbox for the authenticated agent. Signals represent state changes the agent should react to (task claimed, review requested, force-transition, …).",
@@ -127,6 +163,51 @@ export function buildTools(client) {
127
163
  inputShape: { signalId: uuid() },
128
164
  handler: async ({ signalId }) => wrap(() => client.ackSignal(signalId)),
129
165
  }),
166
+ def({
167
+ name: "pull_requests_create",
168
+ description: "Create a GitHub pull request bound to a task via delegation. The backend dispatches the create call through a team member who has connected GitHub and enabled 'Allow agents to create PRs'; on success the task's branchName, prUrl, and prNumber are patched server-side. Requires token scope tasks:update. base defaults to 'main' — pass the repo's actual default branch (e.g. 'master') explicitly if it differs.",
169
+ inputShape: {
170
+ taskId: uuid(),
171
+ owner: z.string().min(1),
172
+ repo: z.string().min(1),
173
+ head: z.string().min(1),
174
+ base: z.string().min(1).optional(),
175
+ title: z.string().min(1),
176
+ body: z.string().optional(),
177
+ },
178
+ handler: async (input) => wrap(() => client.createPullRequest(input)),
179
+ }),
180
+ def({
181
+ name: "pull_requests_merge",
182
+ description: "Merge a GitHub pull request via delegation and auto-transition the linked task to 'done'. Dispatched through a team member with 'Allow agents to merge PRs' consent. Idempotent on PRs that are already merged. Requires token scope tasks:transition. mergeMethod defaults to 'squash'. REQUIRES the task to be in 'review' state (or already 'done' for re-entry) — tasks in 'open' / 'in_progress' are rejected with 403. If the project has `requireDistinctReviewer` enabled, the merge caller must not be the task's claimant and must have already taken the review lock via tasks_transition→review plus the review-claim flow. To bypass these gates, a team admin can force-transition the task to 'done' via tasks_transition with force=true first, then call this tool.",
183
+ inputShape: {
184
+ taskId: uuid(),
185
+ owner: z.string().min(1),
186
+ repo: z.string().min(1),
187
+ prNumber: z.number().int().positive(),
188
+ mergeMethod: z.enum(["merge", "squash", "rebase"]).optional(),
189
+ },
190
+ handler: async ({ mergeMethod, ...rest }) => wrap(() => client.mergePullRequest({
191
+ ...rest,
192
+ // The backend schema field is snake_case `merge_method`. The
193
+ // MCP tool surface uses camelCase `mergeMethod` to match the
194
+ // convention of the other MCP tools (branchName, prUrl, etc.)
195
+ // and translates here at the client boundary.
196
+ ...(mergeMethod !== undefined ? { merge_method: mergeMethod } : {}),
197
+ })),
198
+ }),
199
+ def({
200
+ name: "pull_requests_comment",
201
+ description: "Post a comment on a GitHub pull request via delegation. Dispatched through a team member with 'Allow agents to comment on PRs' consent. Requires token scope tasks:comment. Use for CI status notes, review follow-ups, or cross-referencing other tasks — agent-authored comments are audit-logged separately from human comments.",
202
+ inputShape: {
203
+ taskId: uuid(),
204
+ owner: z.string().min(1),
205
+ repo: z.string().min(1),
206
+ prNumber: z.number().int().positive(),
207
+ body: z.string().min(1),
208
+ },
209
+ handler: async (input) => wrap(() => client.commentOnPullRequest(input)),
210
+ }),
130
211
  ];
131
212
  }
132
213
  //# sourceMappingURL=tools.js.map
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-tasks/mcp-server",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "description": "MCP server exposing the agent-tasks API as tools for MCP-capable clients",
5
5
  "homepage": "https://github.com/LanNguyenSi/agent-tasks/tree/master/mcp-server#readme",
6
6
  "repository": {
@@ -47,7 +47,7 @@
47
47
  "@types/node": "^22.0.0",
48
48
  "tsx": "^4.19.0",
49
49
  "typescript": "^5.6.0",
50
- "vitest": "^2.1.0"
50
+ "vitest": "^3.2.4"
51
51
  },
52
52
  "engines": {
53
53
  "node": ">=22"