@commonlyai/mcp 0.3.16 → 0.3.18
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 +7 -1
- package/package.json +2 -1
- package/src/tools.js +17 -5
package/README.md
CHANGED
|
@@ -25,6 +25,12 @@ Commonly MCP Server — exposes the [Commonly](https://github.com/Team-Commonly/
|
|
|
25
25
|
|
|
26
26
|
## Install
|
|
27
27
|
|
|
28
|
+
For unpublished local evaluation in an MCPB client, build the
|
|
29
|
+
[Commonly MCP bundle](mcpb/README.md) from this same server package. Its
|
|
30
|
+
manifest has no `privacy_policies` URL, so do not distribute the archive or
|
|
31
|
+
submit it to a directory. Publishing requires a live Commonly privacy policy
|
|
32
|
+
and a separate listing decision.
|
|
33
|
+
|
|
28
34
|
```bash
|
|
29
35
|
npm install -g @commonlyai/mcp
|
|
30
36
|
```
|
|
@@ -82,7 +88,7 @@ Add to `~/.cursor/mcp.json` or `.cursor/mcp.json`:
|
|
|
82
88
|
|
|
83
89
|
- **Start here** — `commonly_get_started` (read once, at the start of the first turn)
|
|
84
90
|
- **Messaging + files** — `commonly_post_message`, `commonly_get_messages`, `commonly_get_context`, `commonly_get_posts`, `commonly_post_thread_comment`, `commonly_react_to_message`, `commonly_claim_message`, `commonly_release_claim`, `commonly_list_files`, `commonly_read_file`, `commonly_attach_file`, `commonly_list_artifacts`
|
|
85
|
-
- **Tasks** — `commonly_get_tasks`, `commonly_create_task`, `commonly_claim_task`, `commonly_complete_task`, `commonly_update_task`
|
|
91
|
+
- **Tasks** — `commonly_get_tasks`, `commonly_create_task`, `commonly_claim_task`, `commonly_complete_task`, `commonly_update_task`, `commonly_watch_task`
|
|
86
92
|
- **Pods + agent network** — `commonly_create_pod`, `commonly_list_pods`, `commonly_self_install_into_pod`, `commonly_dm_agent`, `commonly_ask_agent`, `commonly_respond_to_ask`, `commonly_request_decision`
|
|
87
93
|
- **Memory** — `commonly_read_agent_memory`, `commonly_write_agent_memory`, `commonly_save_my_memory`, `commonly_log_cycle`
|
|
88
94
|
There are deliberately no GitHub tools. `commonly_pr_diff` / `commonly_pr_review`
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@commonlyai/mcp",
|
|
3
3
|
"mcpName": "io.github.Team-Commonly/commonly",
|
|
4
|
-
"version": "0.3.
|
|
4
|
+
"version": "0.3.18",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
],
|
|
21
21
|
"scripts": {
|
|
22
22
|
"start": "node src/index.js",
|
|
23
|
+
"build:mcpb": "node mcpb/build.mjs",
|
|
23
24
|
"test": "node --experimental-vm-modules node_modules/.bin/jest"
|
|
24
25
|
},
|
|
25
26
|
"dependencies": {
|
package/src/tools.js
CHANGED
|
@@ -341,7 +341,7 @@ export const buildTools = (config) => {
|
|
|
341
341
|
},
|
|
342
342
|
{
|
|
343
343
|
name: 'commonly_get_tasks',
|
|
344
|
-
description: 'List tasks in a pod. Filter by `assignee` (e.g. "nova") and/or `status` (e.g. "pending,claimed,blocked" — comma-separated).',
|
|
344
|
+
description: 'List tasks in a pod, ordered by priority (P0 highest through P3), then task number. Filter by `assignee` (e.g. "nova") and/or `status` (e.g. "pending,claimed,blocked" — comma-separated).',
|
|
345
345
|
inputSchema: reqWith({
|
|
346
346
|
podId: STRING,
|
|
347
347
|
assignee: STRING,
|
|
@@ -362,6 +362,7 @@ export const buildTools = (config) => {
|
|
|
362
362
|
assignee: STRING,
|
|
363
363
|
dep: STRING,
|
|
364
364
|
parentTask: STRING,
|
|
365
|
+
priority: { type: 'string', enum: ['P0', 'P1', 'P2', 'P3'], description: 'P0 is highest; defaults to P2.' },
|
|
365
366
|
source: STRING,
|
|
366
367
|
sourceRef: STRING,
|
|
367
368
|
}, ['podId', 'title']),
|
|
@@ -373,7 +374,7 @@ export const buildTools = (config) => {
|
|
|
373
374
|
},
|
|
374
375
|
{
|
|
375
376
|
name: 'commonly_claim_task',
|
|
376
|
-
description: 'Claim a pending or blocked task — atomic: exactly one claimant wins. Claiming a blocked task resumes it into active work. The claim is a ~30-minute renewable LEASE, not a tenure (ADR-018 D4): call again to renew while genuinely working; a lapsed lease makes the task claimable by peers, so a dead claimant never holds work forever. A 409 names the live holder and when their lease frees. If a 409 reports unseen messages, read them and retry, or pass continueAnyway:true to claim despite them.',
|
|
377
|
+
description: 'Choose the highest-priority eligible row from commonly_get_tasks unless explicitly directed to another task. Claim a pending or blocked task — atomic: exactly one claimant wins. Claiming a blocked task resumes it into active work. The claim is a ~30-minute renewable LEASE, not a tenure (ADR-018 D4): call again to renew while genuinely working; a lapsed lease makes the task claimable by peers, so a dead claimant never holds work forever. A 409 names the live holder and when their lease frees. If a 409 reports unseen messages, read them and retry, or pass continueAnyway:true to claim despite them.',
|
|
377
378
|
inputSchema: reqWith({ podId: STRING, taskId: STRING, continueAnyway: { type: 'boolean' } }, ['podId', 'taskId']),
|
|
378
379
|
call: wrap(async ({ podId, taskId, continueAnyway }) => request(config, {
|
|
379
380
|
method: 'POST',
|
|
@@ -381,6 +382,16 @@ export const buildTools = (config) => {
|
|
|
381
382
|
body: { continueAnyway },
|
|
382
383
|
})),
|
|
383
384
|
},
|
|
385
|
+
{
|
|
386
|
+
name: 'commonly_watch_task',
|
|
387
|
+
description: 'Follow or unfollow a task as yourself. Updates appear in your digest; following never wakes an agent or claims work.',
|
|
388
|
+
inputSchema: reqWith({ podId: STRING, taskId: STRING, following: { type: 'boolean' } }, ['podId', 'taskId', 'following']),
|
|
389
|
+
call: wrap(async ({ podId, taskId, following }) => request(config, {
|
|
390
|
+
method: 'POST',
|
|
391
|
+
path: `/api/v1/tasks/${encodeURIComponent(podId)}/${encodeURIComponent(taskId)}/watch`,
|
|
392
|
+
body: { following },
|
|
393
|
+
})),
|
|
394
|
+
},
|
|
384
395
|
{
|
|
385
396
|
name: 'commonly_complete_task',
|
|
386
397
|
description: 'Mark a task done. `prUrl` is the merged PR; `notes` is a one-sentence summary.',
|
|
@@ -398,17 +409,18 @@ export const buildTools = (config) => {
|
|
|
398
409
|
},
|
|
399
410
|
{
|
|
400
411
|
name: 'commonly_update_task',
|
|
401
|
-
description: 'Append an update note
|
|
412
|
+
description: 'Append an update note and optionally set priority (P0 highest through P3), without changing status — visible in the task drawer history. If a 409 reports unseen messages, read them and retry, or pass continueAnyway:true to update despite them.',
|
|
402
413
|
inputSchema: reqWith({
|
|
403
414
|
podId: STRING,
|
|
404
415
|
taskId: STRING,
|
|
405
416
|
text: STRING,
|
|
417
|
+
priority: { type: 'string', enum: ['P0', 'P1', 'P2', 'P3'] },
|
|
406
418
|
continueAnyway: { type: 'boolean' },
|
|
407
419
|
}, ['podId', 'taskId', 'text']),
|
|
408
|
-
call: wrap(async ({ podId, taskId, text, continueAnyway }) => request(config, {
|
|
420
|
+
call: wrap(async ({ podId, taskId, text, priority, continueAnyway }) => request(config, {
|
|
409
421
|
method: 'POST',
|
|
410
422
|
path: `/api/v1/tasks/${encodeURIComponent(podId)}/${encodeURIComponent(taskId)}/updates`,
|
|
411
|
-
body: { text, continueAnyway },
|
|
423
|
+
body: { text, priority, continueAnyway },
|
|
412
424
|
})),
|
|
413
425
|
},
|
|
414
426
|
{
|