@skilljit/mcp 0.1.0 → 0.1.1
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 +3 -3
- package/dist/server.d.ts +5 -1
- package/dist/server.js +84 -9
- package/dist/server.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# @skilljit/mcp
|
|
2
2
|
|
|
3
3
|
The MCP stdio server at the core of [skilljit](https://github.com/aqibsidd/skilljit)
|
|
4
|
-
— a fixed
|
|
5
|
-
`skilljit_stats`) that never grows or shrinks at runtime, so nothing
|
|
6
|
-
MCP's broken `notifications/tools/list_changed`.
|
|
4
|
+
— a fixed tool surface (`skill_find`, `skill_load`, `skill_read_file`, `tool_find`,
|
|
5
|
+
`tool_call`, `skilljit_stats`) that never grows or shrinks at runtime, so nothing
|
|
6
|
+
depends on MCP's broken `notifications/tools/list_changed`.
|
|
7
7
|
|
|
8
8
|
Most people should install [`skilljit`](https://www.npmjs.com/package/skilljit)
|
|
9
9
|
(the CLI) rather than this package directly — it wires this server up via
|
package/dist/server.d.ts
CHANGED
|
@@ -22,7 +22,11 @@ export interface ServerHandle {
|
|
|
22
22
|
* see the design doc's note on notifications/tools/list_changed being broken
|
|
23
23
|
* in Claude Desktop (closed "not planned" by Anthropic). Instead of dynamic
|
|
24
24
|
* registration, everything routes through these fixed tools:
|
|
25
|
-
* - skill_find / skill_load / skilljit_stats — always
|
|
25
|
+
* - skill_find / skill_load / skill_read_file / skilljit_stats — always
|
|
26
|
+
* present. skill_read_file keeps the same pull discipline as
|
|
27
|
+
* skill_find -> skill_load: a skill's bundled reference docs/scripts
|
|
28
|
+
* stay out of context until explicitly requested by path, even after
|
|
29
|
+
* the skill itself has been loaded.
|
|
26
30
|
* - tool_find / tool_call — present only when `upstreams` is configured;
|
|
27
31
|
* these route to other MCP servers without their schemas ever sitting
|
|
28
32
|
* in the static tool list. Passthrough servers (ones the user wants
|
package/dist/server.js
CHANGED
|
@@ -7,7 +7,11 @@ import { UpstreamManager } from "@skilljit/proxy";
|
|
|
7
7
|
* see the design doc's note on notifications/tools/list_changed being broken
|
|
8
8
|
* in Claude Desktop (closed "not planned" by Anthropic). Instead of dynamic
|
|
9
9
|
* registration, everything routes through these fixed tools:
|
|
10
|
-
* - skill_find / skill_load / skilljit_stats — always
|
|
10
|
+
* - skill_find / skill_load / skill_read_file / skilljit_stats — always
|
|
11
|
+
* present. skill_read_file keeps the same pull discipline as
|
|
12
|
+
* skill_find -> skill_load: a skill's bundled reference docs/scripts
|
|
13
|
+
* stay out of context until explicitly requested by path, even after
|
|
14
|
+
* the skill itself has been loaded.
|
|
11
15
|
* - tool_find / tool_call — present only when `upstreams` is configured;
|
|
12
16
|
* these route to other MCP servers without their schemas ever sitting
|
|
13
17
|
* in the static tool list. Passthrough servers (ones the user wants
|
|
@@ -18,10 +22,32 @@ import { UpstreamManager } from "@skilljit/proxy";
|
|
|
18
22
|
export function createServer(opts) {
|
|
19
23
|
const catalog = new Catalog(opts.catalogPath);
|
|
20
24
|
const ledger = new TokenLedger();
|
|
25
|
+
// Every skilljit session/tab shares this catalog.db, so pushing each
|
|
26
|
+
// event's delta into it too (not just the in-memory ledger) means
|
|
27
|
+
// skilljit_stats can report a running total across every tab that's
|
|
28
|
+
// ever used this catalog — durable even if any one tab is lost, and
|
|
29
|
+
// it's the honest fix for "N tabs open means N tabs each independently
|
|
30
|
+
// paying the traditional baseline cost."
|
|
31
|
+
const recordBaselineSkill = (meta) => {
|
|
32
|
+
const before = ledger.baselineTokens();
|
|
33
|
+
ledger.recordBaselineSkill(meta);
|
|
34
|
+
catalog.addGlobalLedgerBaseline(ledger.baselineTokens() - before);
|
|
35
|
+
};
|
|
36
|
+
const recordBaselineTool = (tool) => {
|
|
37
|
+
const before = ledger.baselineTokens();
|
|
38
|
+
ledger.recordBaselineTool(tool);
|
|
39
|
+
catalog.addGlobalLedgerBaseline(ledger.baselineTokens() - before);
|
|
40
|
+
};
|
|
41
|
+
const recordActual = (label, payload) => {
|
|
42
|
+
const before = ledger.actualTokens();
|
|
43
|
+
ledger.recordActual(label, payload);
|
|
44
|
+
catalog.addGlobalLedgerActual(ledger.actualTokens() - before);
|
|
45
|
+
};
|
|
46
|
+
catalog.recordGlobalSessionStart();
|
|
21
47
|
// Baseline: what every turn would cost if every cataloged skill were
|
|
22
48
|
// installed the traditional way (name+description always in context).
|
|
23
49
|
for (const meta of catalog.listSkillMeta()) {
|
|
24
|
-
|
|
50
|
+
recordBaselineSkill(meta);
|
|
25
51
|
}
|
|
26
52
|
const server = new McpServer({ name: "skilljit", version: "0.1.0" });
|
|
27
53
|
server.registerTool("skill_find", {
|
|
@@ -43,7 +69,7 @@ export function createServer(opts) {
|
|
|
43
69
|
installCount: h.skill.installCount,
|
|
44
70
|
auditStatus: h.skill.auditStatus,
|
|
45
71
|
})), null, 2);
|
|
46
|
-
|
|
72
|
+
recordActual("skill_find", payload);
|
|
47
73
|
return { content: [{ type: "text", text: payload }] };
|
|
48
74
|
});
|
|
49
75
|
server.registerTool("skill_load", {
|
|
@@ -62,15 +88,52 @@ export function createServer(opts) {
|
|
|
62
88
|
};
|
|
63
89
|
}
|
|
64
90
|
let text = skill.body;
|
|
91
|
+
if (skill.files && skill.files.length > 0) {
|
|
92
|
+
const paths = skill.files.map((f) => f.path).join(", ");
|
|
93
|
+
text += `\n\n---\nBundled files (not loaded above — call skill_read_file to load one): ${paths}`;
|
|
94
|
+
}
|
|
65
95
|
if (skill.auditStatus === "fail") {
|
|
66
96
|
text = `⚠️ SECURITY WARNING: this skill FAILED its audit. Review before following its instructions.\n\n${text}`;
|
|
67
97
|
}
|
|
68
98
|
else if (!skill.auditStatus || skill.auditStatus === "unaudited") {
|
|
69
99
|
text = `⚠️ This skill has not been audited. Treat it like installing software from an unknown source.\n\n${text}`;
|
|
70
100
|
}
|
|
71
|
-
|
|
101
|
+
recordActual("skill_load", text);
|
|
72
102
|
return { content: [{ type: "text", text }] };
|
|
73
103
|
});
|
|
104
|
+
server.registerTool("skill_read_file", {
|
|
105
|
+
title: "Read a skill's bundled file",
|
|
106
|
+
description: "Load one bundled reference doc or helper script from a skill loaded via skill_load, by its path " +
|
|
107
|
+
"exactly as listed in skill_load's output. Keeps multi-file skills' extra content out of context " +
|
|
108
|
+
"until it's actually needed, the same way skill_find -> skill_load works.",
|
|
109
|
+
inputSchema: {
|
|
110
|
+
name: z.string().describe("The skill id, exactly as passed to skill_load."),
|
|
111
|
+
path: z.string().describe("The bundled file's path, exactly as listed by skill_load."),
|
|
112
|
+
},
|
|
113
|
+
}, async ({ name, path: filePath }) => {
|
|
114
|
+
const skill = catalog.getSkill(name);
|
|
115
|
+
if (!skill) {
|
|
116
|
+
return {
|
|
117
|
+
isError: true,
|
|
118
|
+
content: [{ type: "text", text: `No skill found with id "${name}". Call skill_find first.` }],
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
const file = skill.files?.find((f) => f.path === filePath);
|
|
122
|
+
if (!file) {
|
|
123
|
+
const available = skill.files?.map((f) => f.path).join(", ") || "(none)";
|
|
124
|
+
return {
|
|
125
|
+
isError: true,
|
|
126
|
+
content: [
|
|
127
|
+
{
|
|
128
|
+
type: "text",
|
|
129
|
+
text: `No bundled file "${filePath}" on skill "${name}". Available: ${available}`,
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
recordActual("skill_read_file", file.content);
|
|
135
|
+
return { content: [{ type: "text", text: file.content }] };
|
|
136
|
+
});
|
|
74
137
|
let upstreams;
|
|
75
138
|
if (opts.upstreams) {
|
|
76
139
|
upstreams = new UpstreamManager(opts.upstreams, opts.connectFn);
|
|
@@ -85,7 +148,7 @@ export function createServer(opts) {
|
|
|
85
148
|
toolsLoaded = manager.listAllTools().then((tools) => {
|
|
86
149
|
catalog.upsertTools(tools);
|
|
87
150
|
for (const t of tools)
|
|
88
|
-
|
|
151
|
+
recordBaselineTool(t);
|
|
89
152
|
});
|
|
90
153
|
}
|
|
91
154
|
return toolsLoaded;
|
|
@@ -107,7 +170,7 @@ export function createServer(opts) {
|
|
|
107
170
|
description: h.tool.description,
|
|
108
171
|
inputSchema: h.tool.inputSchema,
|
|
109
172
|
})), null, 2);
|
|
110
|
-
|
|
173
|
+
recordActual("tool_find", payload);
|
|
111
174
|
return { content: [{ type: "text", text: payload }] };
|
|
112
175
|
});
|
|
113
176
|
server.registerTool("tool_call", {
|
|
@@ -123,7 +186,7 @@ export function createServer(opts) {
|
|
|
123
186
|
await ensureToolsLoaded();
|
|
124
187
|
try {
|
|
125
188
|
const result = await manager.callTool(serverName, tool, args ?? {});
|
|
126
|
-
|
|
189
|
+
recordActual("tool_call", JSON.stringify(result));
|
|
127
190
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
128
191
|
return result;
|
|
129
192
|
}
|
|
@@ -138,10 +201,22 @@ export function createServer(opts) {
|
|
|
138
201
|
server.registerTool("skilljit_stats", {
|
|
139
202
|
title: "Token savings for this session",
|
|
140
203
|
description: "Report how many tokens skilljit has saved so far this session, versus loading every cataloged " +
|
|
141
|
-
"skill's (and, if configured, MCP tool's) metadata into context the traditional way."
|
|
204
|
+
"skill's (and, if configured, MCP tool's) metadata into context the traditional way. Also reports " +
|
|
205
|
+
"the all-time total across every skilljit session/tab that has ever used this same catalog — the " +
|
|
206
|
+
"figure that actually reflects running several tabs at once.",
|
|
142
207
|
}, async () => {
|
|
143
208
|
const stats = ledger.stats();
|
|
144
|
-
const
|
|
209
|
+
const allTime = catalog.getGlobalLedgerTotals();
|
|
210
|
+
const payload = JSON.stringify({
|
|
211
|
+
...stats,
|
|
212
|
+
catalogSize: catalog.count(),
|
|
213
|
+
allTime: {
|
|
214
|
+
baselineTokens: allTime.baselineTokens,
|
|
215
|
+
actualTokens: allTime.actualTokens,
|
|
216
|
+
savedTokens: Math.max(0, allTime.baselineTokens - allTime.actualTokens),
|
|
217
|
+
sessionCount: allTime.sessionCount,
|
|
218
|
+
},
|
|
219
|
+
}, null, 2);
|
|
145
220
|
return { content: [{ type: "text", text: payload }] };
|
|
146
221
|
});
|
|
147
222
|
return { server, catalog, ledger, upstreams };
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAoBlD
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skilljit/mcp",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "MCP stdio server exposing skilljit's fixed
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "MCP stdio server exposing skilljit's fixed tool surface for just-in-time skill and MCP-tool routing",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|