@skyelight/mcp 0.7.2 → 0.8.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/CHANGELOG.md +17 -0
- package/README.md +10 -1
- package/package.json +1 -1
- package/src/tools.js +10 -0
- package/src/version.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -11,6 +11,23 @@ keeps working. A **patch** is a fix or a wording change. A **major** would be
|
|
|
11
11
|
removing a tool or an argument, or changing what an existing field means, and
|
|
12
12
|
there has not been one.
|
|
13
13
|
|
|
14
|
+
## 0.8.0 — 2026-10-08
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- **`list_items` filters by hand-off.** A new `task` argument (`investigate`,
|
|
19
|
+
`plan`, `fix`, or `none`) returns only the items a person handed to an agent
|
|
20
|
+
with that task in the app, or only those with none. Each row in the list now
|
|
21
|
+
names its hand-off, so an agent can choose its work without fetching every
|
|
22
|
+
item.
|
|
23
|
+
|
|
24
|
+
## 0.7.3 — 2026-10-08
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
|
|
28
|
+
- **Docs.** The README opens with a picture of Skyelight. No change to the
|
|
29
|
+
tools.
|
|
30
|
+
|
|
14
31
|
## 0.7.2 — 2026-10-08
|
|
15
32
|
|
|
16
33
|
### Changed
|
package/README.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# @skyelight/mcp
|
|
2
2
|
|
|
3
|
+
<!-- A full URL, not a relative path, so the npm page shows it too. The
|
|
4
|
+
image lives in the public repo (assets/), not in the npm package. -->
|
|
5
|
+

|
|
6
|
+
|
|
3
7
|
[npm](https://www.npmjs.com/package/@skyelight/mcp) ·
|
|
4
8
|
[source](https://github.com/plastrlab/skyelight-mcp) ·
|
|
5
9
|
[docs](https://skyelight.ai/docs/mcp)
|
|
@@ -111,7 +115,7 @@ agent calls `list_projects` first rather than guess.
|
|
|
111
115
|
| --------------------- | ------------------------------------------------------------------------------------ |
|
|
112
116
|
| `list_workspaces` | Which workspaces this credential can reach, and who you are. |
|
|
113
117
|
| `list_projects` | The projects inside them, with the ids the other tools take. |
|
|
114
|
-
| `list_items` | What is outstanding. Filter by page, type, status, assignee.
|
|
118
|
+
| `list_items` | What is outstanding. Filter by page, type, status, assignee, hand-off. |
|
|
115
119
|
| `search_items` | Find items whose thread mentions some text, replies included. |
|
|
116
120
|
| `get_item` | Everything needed to work one item: thread, page, anchor, code, images. |
|
|
117
121
|
| `post_update` | Report back on the thread the feedback came from. |
|
|
@@ -151,6 +155,11 @@ stubs; `get_item` is where the thread and the anchor live.
|
|
|
151
155
|
`list_items` takes `assignee: "me"`, so the most ordinary question anyone asks
|
|
152
156
|
an agent needs no id looked up by hand.
|
|
153
157
|
|
|
158
|
+
**"What was I asked to fix."** A person can hand a thread to an agent in the
|
|
159
|
+
app (Hand off: Investigate, Plan or Fix). `list_items` takes `task` with one of
|
|
160
|
+
those, or `"none"`, and each row names its hand-off. With `assignee: "me"` it
|
|
161
|
+
is your own queue of fixes.
|
|
162
|
+
|
|
154
163
|
**Merged duplicates do not appear twice.** When somebody merges five reports of
|
|
155
164
|
one problem in the web app, the duplicates leave the list and the item they were
|
|
156
165
|
merged into says `5 reports`. A list that shows all five reads as five bugs.
|
package/package.json
CHANGED
package/src/tools.js
CHANGED
|
@@ -100,6 +100,13 @@ export function toolDefinitions(opts = {}) {
|
|
|
100
100
|
'A user id, "me" for whoever this connection belongs to, or ' +
|
|
101
101
|
'"none" for unassigned items.',
|
|
102
102
|
},
|
|
103
|
+
task: {
|
|
104
|
+
type: "string",
|
|
105
|
+
enum: ["investigate", "plan", "fix", "none"],
|
|
106
|
+
description:
|
|
107
|
+
"Only items a person handed to an agent with this task (Hand off in the app), " +
|
|
108
|
+
'or "none" for items with no hand-off. Combine with assignee to find your own.',
|
|
109
|
+
},
|
|
103
110
|
limit: { type: "number", description: "Max items (default 50)." },
|
|
104
111
|
},
|
|
105
112
|
},
|
|
@@ -551,6 +558,8 @@ export function renderList(result, { searched } = {}) {
|
|
|
551
558
|
const bits = [i.type ?? "unsorted", i.status, i.page];
|
|
552
559
|
if (i.assignee) bits.push(`assigned to ${i.assignee}`);
|
|
553
560
|
else bits.push("unassigned");
|
|
561
|
+
// The standing ask, so an agent can pick its work from the list.
|
|
562
|
+
if (i.agentTask) bits.push(`hand-off: ${i.agentTask}`);
|
|
554
563
|
if (i.replyCount > 0) bits.push(plural(i.replyCount, "reply", "replies"));
|
|
555
564
|
// How many people hit this, once merging has told us they are the same
|
|
556
565
|
// thing. Silent at 1, which is almost every row — a list where every line
|
|
@@ -886,6 +895,7 @@ export async function callTool(name, args, { client, config }) {
|
|
|
886
895
|
type: args.type,
|
|
887
896
|
status: args.status,
|
|
888
897
|
assignee: args.assignee,
|
|
898
|
+
task: args.task,
|
|
889
899
|
limit: args.limit,
|
|
890
900
|
});
|
|
891
901
|
return { text: renderList(result), data: result };
|
package/src/version.js
CHANGED