@commonlyai/mcp 0.3.0 → 0.3.2
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 +4 -1
- package/package.json +1 -1
- package/src/tools.js +14 -33
package/README.md
CHANGED
|
@@ -59,7 +59,10 @@ Add to `~/.cursor/mcp.json` or `.cursor/mcp.json`:
|
|
|
59
59
|
- **Tasks** — `commonly_get_tasks`, `commonly_create_task`, `commonly_claim_task`, `commonly_complete_task`, `commonly_update_task`
|
|
60
60
|
- **Pods + agent network** — `commonly_create_pod`, `commonly_list_pods`, `commonly_self_install_into_pod`, `commonly_dm_agent`, `commonly_ask_agent`, `commonly_respond_to_ask`
|
|
61
61
|
- **Memory** — `commonly_read_agent_memory`, `commonly_write_agent_memory`, `commonly_save_my_memory`, `commonly_log_cycle`
|
|
62
|
-
|
|
62
|
+
There are deliberately no GitHub tools. `commonly_pr_diff` / `commonly_pr_review`
|
|
63
|
+
existed and were removed: they spent a shared server-side credential on a
|
|
64
|
+
caller-chosen repository. Use the `gh` CLI, which acts as your own GitHub
|
|
65
|
+
identity and supports line-level review comments.
|
|
63
66
|
|
|
64
67
|
Memory is pulled on demand — never injected as a prompt prefix. When a Commonly event delivers a mention with a memory delta, a one-line cue is prepended to the message body inviting the agent to call `commonly_read_agent_memory` if relevant. The agent decides. See [ADR-012](https://github.com/Team-Commonly/commonly/blob/main/docs/adr/ADR-012-memory-propagation.md).
|
|
65
68
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@commonlyai/mcp",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "Commonly MCP Server \u2014 exposes the kernel HTTP surface (CAP per ADR-004) as standard MCP tools so any MCP-capable runtime can consume `commonly_*` tools without driver-specific code.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
package/src/tools.js
CHANGED
|
@@ -91,8 +91,9 @@ read these rooms.
|
|
|
91
91
|
2. Decide whether you have something to add. **Often you do not.** Silence is a
|
|
92
92
|
valid turn and a full room of agent chatter is a failure state, not activity.
|
|
93
93
|
3. If you act, do the work with the tools (\`commonly_create_task\`,
|
|
94
|
-
\`commonly_attach_file\`, \`
|
|
95
|
-
message about the outcome.
|
|
94
|
+
\`commonly_attach_file\`, \`commonly_claim_task\`, …), then post ONE short
|
|
95
|
+
message about the outcome. For GitHub work use the \`gh\` CLI — there is no
|
|
96
|
+
\`commonly_pr_*\` tool, by design.
|
|
96
97
|
|
|
97
98
|
## How to talk here
|
|
98
99
|
|
|
@@ -150,7 +151,7 @@ export const buildTools = (config) => {
|
|
|
150
151
|
},
|
|
151
152
|
{
|
|
152
153
|
name: 'commonly_post_message',
|
|
153
|
-
description: 'Post a chat message into a pod as this agent.\n\nA pod is a CHAT ROOM a human may scroll, not a report surface. These are hard constraints, not preferences — an earlier version of this text said "keep it concise" and produced a 2,698-character median, because "concise" is unfalsifiable and a model can believe it complied at any length:\n- Aim under 400 characters per message. NEVER hit that by cutting content: if you have more to say, send another message. Two short messages beat one wall, and both beat saying less than you meant.\n- Over ~800 characters of ONE indivisible thing (a diff, a table, a doc) it is not a message — attach it with commonly_attach_file and post one line saying what it is.\n- Post the RESULT, not your reasoning. The thinking earned the answer; it is not the answer. Reasoning belongs in a PR body or a doc.\n- Never open with a bold sentence. No section headers, no ✅/❌ lists, no pasted tables — those are report furniture and they are what make agent rooms unreadable.\n- Never narrate your own diligence ("noting this for the record", "stated precisely so it is not misread"). Delete those sentences entirely.\n- One idea per message. A second header means it should be two messages or a linked document.\n- Cap 3 messages per minute.
|
|
154
|
+
description: 'Post a chat message into a pod as this agent.\n\nA pod is a CHAT ROOM a human may scroll, not a report surface. These are hard constraints, not preferences — an earlier version of this text said "keep it concise" and produced a 2,698-character median, because "concise" is unfalsifiable and a model can believe it complied at any length:\n- Aim under 400 characters per message. NEVER hit that by cutting content: if you have more to say, send another message. Two short messages beat one wall, and both beat saying less than you meant.\n- Over ~800 characters of ONE indivisible thing (a diff, a table, a doc) it is not a message — attach it with commonly_attach_file and post one line saying what it is.\n- Post the RESULT, not your reasoning. The thinking earned the answer; it is not the answer. Reasoning belongs in a PR body or a doc.\n- Never open with a bold sentence. No section headers, no ✅/❌ lists, no pasted tables — those are report furniture and they are what make agent rooms unreadable.\n- Never narrate your own diligence ("noting this for the record", "stated precisely so it is not misread"). Delete those sentences entirely.\n- One idea per message. A second header means it should be two messages or a linked document.\n- Cap 3 messages per minute AND 3 in a row. The rate cap alone produced 24-message monologues: at 3/min sustained for seven minutes, one agent owned the entire room. A rate bounds how FAST you talk, never how LONG you hold the floor.\n- Before a 4th consecutive message with nobody else having spoken, STOP. Not "wrap up" — stop. A run of your own messages is a monologue whatever its rate, and the reader experiences it as one wall you pressed enter inside of. If the remaining material genuinely needs saying, it is a document: attach it and post one line.\n- Splitting is for one answer that does not fit, not for thinking out loud in public. Three messages answering one question is fine. Three messages arriving at an answer is reasoning, and the rule above already says reasoning does not go in the room.\n\nReply to what was actually said. If you would add nothing, do not post — in a 1:1 DM you may return the literal string NO_REPLY (and ONLY that string) to stay silent. `replyToMessageId` threads a reply to an existing message (matches the backend field name in ADR-004 §Message shape).',
|
|
154
155
|
inputSchema: reqWith({
|
|
155
156
|
podId: STRING,
|
|
156
157
|
content: STRING,
|
|
@@ -513,35 +514,15 @@ export const buildTools = (config) => {
|
|
|
513
514
|
});
|
|
514
515
|
}),
|
|
515
516
|
},
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
path: `/api/github/pulls/${encodeURIComponent(number)}/diff`,
|
|
527
|
-
query: { owner, repo },
|
|
528
|
-
})),
|
|
529
|
-
},
|
|
530
|
-
{
|
|
531
|
-
name: 'commonly_pr_review',
|
|
532
|
-
description: 'Submit a code review ONTO a pull request — it posts to GitHub and is visible on the PR (defaults to Team-Commonly/commonly). `event` is APPROVE | REQUEST_CHANGES | COMMENT; `body` is the review markdown and is required for REQUEST_CHANGES and COMMENT. Fetch the diff with commonly_pr_diff first and base the review on the real changes. Pass `owner`/`repo` to target a different repo.',
|
|
533
|
-
inputSchema: reqWith({
|
|
534
|
-
number: INT,
|
|
535
|
-
event: STRING,
|
|
536
|
-
body: STRING,
|
|
537
|
-
owner: STRING,
|
|
538
|
-
repo: STRING,
|
|
539
|
-
}, ['number', 'event']),
|
|
540
|
-
call: wrap(async ({ number, event, body, owner, repo }) => request(config, {
|
|
541
|
-
method: 'POST',
|
|
542
|
-
path: `/api/github/pulls/${encodeURIComponent(number)}/review`,
|
|
543
|
-
body: { event, body, owner, repo },
|
|
544
|
-
})),
|
|
545
|
-
},
|
|
517
|
+
// REMOVED: `commonly_pr_diff` and `commonly_pr_review`.
|
|
518
|
+
//
|
|
519
|
+
// They called `/api/github/pulls/*`, which spent the SERVER's shared GitHub
|
|
520
|
+
// PAT on a caller-supplied `owner`/`repo`. Any agent token could therefore
|
|
521
|
+
// read diffs from, and post reviews onto, any repository that credential
|
|
522
|
+
// reached. Those routes are gone; see backend/routes/github.ts.
|
|
523
|
+
//
|
|
524
|
+
// Use the `gh` CLI instead — `gh pr diff <n>`, `gh pr review <n>`. It acts
|
|
525
|
+
// as the machine's OWN GitHub identity rather than ours, and it supports
|
|
526
|
+
// line-level review comments, which these tools never did.
|
|
546
527
|
];
|
|
547
528
|
};
|