@skilljit/mcp 0.1.0 → 0.1.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 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-tool surface (`skill_find`, `skill_load`, `tool_find`, `tool_call`,
5
- `skilljit_stats`) that never grows or shrinks at runtime, so nothing depends on
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 present.
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
@@ -1,13 +1,24 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { fileURLToPath } from "node:url";
3
+ import path from "node:path";
1
4
  import { z } from "zod";
2
5
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
6
  import { Catalog, TokenLedger } from "@skilljit/core";
4
7
  import { UpstreamManager } from "@skilljit/proxy";
8
+ // Read the real version from this package's own package.json rather than
9
+ // hardcoding a string here that silently drifts from every release.
10
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
11
+ const { version: packageVersion } = JSON.parse(readFileSync(path.join(__dirname, "..", "package.json"), "utf8"));
5
12
  /**
6
13
  * skilljit's fixed MCP tool surface. It never grows or shrinks at runtime —
7
14
  * see the design doc's note on notifications/tools/list_changed being broken
8
15
  * in Claude Desktop (closed "not planned" by Anthropic). Instead of dynamic
9
16
  * registration, everything routes through these fixed tools:
10
- * - skill_find / skill_load / skilljit_stats — always present.
17
+ * - skill_find / skill_load / skill_read_file / skilljit_stats — always
18
+ * present. skill_read_file keeps the same pull discipline as
19
+ * skill_find -> skill_load: a skill's bundled reference docs/scripts
20
+ * stay out of context until explicitly requested by path, even after
21
+ * the skill itself has been loaded.
11
22
  * - tool_find / tool_call — present only when `upstreams` is configured;
12
23
  * these route to other MCP servers without their schemas ever sitting
13
24
  * in the static tool list. Passthrough servers (ones the user wants
@@ -18,12 +29,34 @@ import { UpstreamManager } from "@skilljit/proxy";
18
29
  export function createServer(opts) {
19
30
  const catalog = new Catalog(opts.catalogPath);
20
31
  const ledger = new TokenLedger();
32
+ // Every skilljit session/tab shares this catalog.db, so pushing each
33
+ // event's delta into it too (not just the in-memory ledger) means
34
+ // skilljit_stats can report a running total across every tab that's
35
+ // ever used this catalog — durable even if any one tab is lost, and
36
+ // it's the honest fix for "N tabs open means N tabs each independently
37
+ // paying the traditional baseline cost."
38
+ const recordBaselineSkill = (meta) => {
39
+ const before = ledger.baselineTokens();
40
+ ledger.recordBaselineSkill(meta);
41
+ catalog.addGlobalLedgerBaseline(ledger.baselineTokens() - before);
42
+ };
43
+ const recordBaselineTool = (tool) => {
44
+ const before = ledger.baselineTokens();
45
+ ledger.recordBaselineTool(tool);
46
+ catalog.addGlobalLedgerBaseline(ledger.baselineTokens() - before);
47
+ };
48
+ const recordActual = (label, payload) => {
49
+ const before = ledger.actualTokens();
50
+ ledger.recordActual(label, payload);
51
+ catalog.addGlobalLedgerActual(ledger.actualTokens() - before);
52
+ };
53
+ catalog.recordGlobalSessionStart();
21
54
  // Baseline: what every turn would cost if every cataloged skill were
22
55
  // installed the traditional way (name+description always in context).
23
56
  for (const meta of catalog.listSkillMeta()) {
24
- ledger.recordBaselineSkill(meta);
57
+ recordBaselineSkill(meta);
25
58
  }
26
- const server = new McpServer({ name: "skilljit", version: "0.1.0" });
59
+ const server = new McpServer({ name: "skilljit", version: packageVersion });
27
60
  server.registerTool("skill_find", {
28
61
  title: "Find skills",
29
62
  description: "Search the local skilljit catalog for skills matching a task, without loading their full instructions. " +
@@ -43,7 +76,7 @@ export function createServer(opts) {
43
76
  installCount: h.skill.installCount,
44
77
  auditStatus: h.skill.auditStatus,
45
78
  })), null, 2);
46
- ledger.recordActual("skill_find", payload);
79
+ recordActual("skill_find", payload);
47
80
  return { content: [{ type: "text", text: payload }] };
48
81
  });
49
82
  server.registerTool("skill_load", {
@@ -62,15 +95,52 @@ export function createServer(opts) {
62
95
  };
63
96
  }
64
97
  let text = skill.body;
98
+ if (skill.files && skill.files.length > 0) {
99
+ const paths = skill.files.map((f) => f.path).join(", ");
100
+ text += `\n\n---\nBundled files (not loaded above — call skill_read_file to load one): ${paths}`;
101
+ }
65
102
  if (skill.auditStatus === "fail") {
66
103
  text = `⚠️ SECURITY WARNING: this skill FAILED its audit. Review before following its instructions.\n\n${text}`;
67
104
  }
68
105
  else if (!skill.auditStatus || skill.auditStatus === "unaudited") {
69
106
  text = `⚠️ This skill has not been audited. Treat it like installing software from an unknown source.\n\n${text}`;
70
107
  }
71
- ledger.recordActual("skill_load", text);
108
+ recordActual("skill_load", text);
72
109
  return { content: [{ type: "text", text }] };
73
110
  });
111
+ server.registerTool("skill_read_file", {
112
+ title: "Read a skill's bundled file",
113
+ description: "Load one bundled reference doc or helper script from a skill loaded via skill_load, by its path " +
114
+ "exactly as listed in skill_load's output. Keeps multi-file skills' extra content out of context " +
115
+ "until it's actually needed, the same way skill_find -> skill_load works.",
116
+ inputSchema: {
117
+ name: z.string().describe("The skill id, exactly as passed to skill_load."),
118
+ path: z.string().describe("The bundled file's path, exactly as listed by skill_load."),
119
+ },
120
+ }, async ({ name, path: filePath }) => {
121
+ const skill = catalog.getSkill(name);
122
+ if (!skill) {
123
+ return {
124
+ isError: true,
125
+ content: [{ type: "text", text: `No skill found with id "${name}". Call skill_find first.` }],
126
+ };
127
+ }
128
+ const file = skill.files?.find((f) => f.path === filePath);
129
+ if (!file) {
130
+ const available = skill.files?.map((f) => f.path).join(", ") || "(none)";
131
+ return {
132
+ isError: true,
133
+ content: [
134
+ {
135
+ type: "text",
136
+ text: `No bundled file "${filePath}" on skill "${name}". Available: ${available}`,
137
+ },
138
+ ],
139
+ };
140
+ }
141
+ recordActual("skill_read_file", file.content);
142
+ return { content: [{ type: "text", text: file.content }] };
143
+ });
74
144
  let upstreams;
75
145
  if (opts.upstreams) {
76
146
  upstreams = new UpstreamManager(opts.upstreams, opts.connectFn);
@@ -85,7 +155,7 @@ export function createServer(opts) {
85
155
  toolsLoaded = manager.listAllTools().then((tools) => {
86
156
  catalog.upsertTools(tools);
87
157
  for (const t of tools)
88
- ledger.recordBaselineTool(t);
158
+ recordBaselineTool(t);
89
159
  });
90
160
  }
91
161
  return toolsLoaded;
@@ -107,7 +177,7 @@ export function createServer(opts) {
107
177
  description: h.tool.description,
108
178
  inputSchema: h.tool.inputSchema,
109
179
  })), null, 2);
110
- ledger.recordActual("tool_find", payload);
180
+ recordActual("tool_find", payload);
111
181
  return { content: [{ type: "text", text: payload }] };
112
182
  });
113
183
  server.registerTool("tool_call", {
@@ -123,7 +193,7 @@ export function createServer(opts) {
123
193
  await ensureToolsLoaded();
124
194
  try {
125
195
  const result = await manager.callTool(serverName, tool, args ?? {});
126
- ledger.recordActual("tool_call", JSON.stringify(result));
196
+ recordActual("tool_call", JSON.stringify(result));
127
197
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
128
198
  return result;
129
199
  }
@@ -138,10 +208,22 @@ export function createServer(opts) {
138
208
  server.registerTool("skilljit_stats", {
139
209
  title: "Token savings for this session",
140
210
  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.",
211
+ "skill's (and, if configured, MCP tool's) metadata into context the traditional way. Also reports " +
212
+ "the all-time total across every skilljit session/tab that has ever used this same catalog — the " +
213
+ "figure that actually reflects running several tabs at once.",
142
214
  }, async () => {
143
215
  const stats = ledger.stats();
144
- const payload = JSON.stringify({ ...stats, catalogSize: catalog.count() }, null, 2);
216
+ const allTime = catalog.getGlobalLedgerTotals();
217
+ const payload = JSON.stringify({
218
+ ...stats,
219
+ catalogSize: catalog.count(),
220
+ allTime: {
221
+ baselineTokens: allTime.baselineTokens,
222
+ actualTokens: allTime.actualTokens,
223
+ savedTokens: Math.max(0, allTime.baselineTokens - allTime.actualTokens),
224
+ sessionCount: allTime.sessionCount,
225
+ },
226
+ }, null, 2);
145
227
  return { content: [{ type: "text", text: payload }] };
146
228
  });
147
229
  return { server, catalog, ledger, upstreams };
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
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.0",
4
- "description": "MCP stdio server exposing skilljit's fixed 5-tool surface for just-in-time skill and MCP-tool routing",
3
+ "version": "0.1.2",
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": {