@rishildi/ldi-process-skills 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.
@@ -1,11 +1,13 @@
1
1
  /**
2
- * Skill registry — loads embedded skills and provides lookup methods
3
- * for the MCP server to resolve tool calls into skill instructions.
2
+ * Skill registry — loads embedded skills (organised by category) and provides
3
+ * lookup methods for the MCP server to resolve tool calls into skill instructions.
4
4
  */
5
5
  import { type SkillFile } from "./embedded.js";
6
6
  export interface SkillDefinition {
7
7
  /** Skill name (directory name, e.g. "create-fabric-lakehouse") */
8
8
  name: string;
9
+ /** Category the skill belongs to (e.g. "fabric", "powerbi") */
10
+ category: string;
9
11
  /** Parsed title from the SKILL.md frontmatter */
10
12
  title: string;
11
13
  /** Parsed description from the SKILL.md frontmatter */
@@ -21,6 +23,13 @@ declare class SkillRegistry {
21
23
  private loadAll;
22
24
  /** Get all registered skills */
23
25
  getAll(): SkillDefinition[];
26
+ /** Get all skills in a given category */
27
+ getByCategory(category: string): SkillDefinition[];
28
+ /** List all distinct categories */
29
+ listCategories(): Array<{
30
+ category: string;
31
+ skillCount: number;
32
+ }>;
24
33
  /** Look up a skill by its tool name */
25
34
  get(toolName: string): SkillDefinition | undefined;
26
35
  /** Get a specific file from a skill (e.g. "assets/notebook-template.py") */
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/skills/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAuC,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAEpF,MAAM,WAAW,eAAe;IAC9B,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,KAAK,EAAE,SAAS,EAAE,CAAC;CACpB;AA0CD,cAAM,aAAa;IACjB,OAAO,CAAC,MAAM,CAA2C;;IAMzD,OAAO,CAAC,OAAO;IAoBf,gCAAgC;IAChC,MAAM,IAAI,eAAe,EAAE;IAI3B,uCAAuC;IACvC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAIlD,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAMnE,2DAA2D;IAC3D,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE;IAM/D,0BAA0B;IAC1B,aAAa,IAAI,MAAM,EAAE;CAG1B;AAED,eAAO,MAAM,QAAQ,eAAsB,CAAC"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/skills/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAuC,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAEpF,MAAM,WAAW,eAAe;IAC9B,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,KAAK,EAAE,SAAS,EAAE,CAAC;CACpB;AA0CD,cAAM,aAAa;IACjB,OAAO,CAAC,MAAM,CAA2C;;IAMzD,OAAO,CAAC,OAAO;IAqBf,gCAAgC;IAChC,MAAM,IAAI,eAAe,EAAE;IAI3B,yCAAyC;IACzC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,EAAE;IAIlD,mCAAmC;IACnC,cAAc,IAAI,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAUjE,uCAAuC;IACvC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAIlD,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAMnE,2DAA2D;IAC3D,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE;IAM/D,0BAA0B;IAC1B,aAAa,IAAI,MAAM,EAAE;CAG1B;AAED,eAAO,MAAM,QAAQ,eAAsB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
- * Skill registry — loads embedded skills and provides lookup methods
3
- * for the MCP server to resolve tool calls into skill instructions.
2
+ * Skill registry — loads embedded skills (organised by category) and provides
3
+ * lookup methods for the MCP server to resolve tool calls into skill instructions.
4
4
  */
5
5
  import { EMBEDDED_SKILLS } from "./embedded.js";
6
6
  /**
@@ -53,6 +53,7 @@ class SkillRegistry {
53
53
  const toolName = toToolName(embedded.name);
54
54
  this.skills.set(toolName, {
55
55
  name: embedded.name,
56
+ category: embedded.category,
56
57
  title: toTitle(embedded.name),
57
58
  description: frontmatter.description || `Skill: ${embedded.name}`,
58
59
  skillMd: skillMdFile.content,
@@ -64,6 +65,20 @@ class SkillRegistry {
64
65
  getAll() {
65
66
  return Array.from(this.skills.values());
66
67
  }
68
+ /** Get all skills in a given category */
69
+ getByCategory(category) {
70
+ return this.getAll().filter((s) => s.category === category);
71
+ }
72
+ /** List all distinct categories */
73
+ listCategories() {
74
+ const counts = new Map();
75
+ for (const skill of this.getAll()) {
76
+ counts.set(skill.category, (counts.get(skill.category) ?? 0) + 1);
77
+ }
78
+ return Array.from(counts.entries())
79
+ .sort(([a], [b]) => a.localeCompare(b))
80
+ .map(([category, skillCount]) => ({ category, skillCount }));
81
+ }
67
82
  /** Look up a skill by its tool name */
68
83
  get(toolName) {
69
84
  return this.skills.get(toolName);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rishildi/ldi-process-skills",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "LDI Process Skills MCP Server — brings curated, step-by-step process skills to your AI agents.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -13,7 +13,6 @@
13
13
  "embed": "npx tsx scripts/embed-skills.ts",
14
14
  "prebuild": "npm run embed",
15
15
  "build": "tsc && chmod 755 build/index.js",
16
- "build:compile": "npm run embed && bun build src/index.ts --compile --outfile dist/ldi-process-skills",
17
16
  "dev": "tsc --watch",
18
17
  "inspect": "npx @modelcontextprotocol/inspector node build/index.js",
19
18
  "start": "node build/index.js",
@@ -25,6 +24,7 @@
25
24
  },
26
25
  "devDependencies": {
27
26
  "@types/node": "^22.0.0",
27
+ "tsx": "^4.21.0",
28
28
  "typescript": "^5.8.0"
29
29
  },
30
30
  "engines": {
package/README.md DELETED
@@ -1,133 +0,0 @@
1
- # LDI Process Skills MCP Server
2
-
3
- Brings curated, step-by-step process skills to your AI agents through a local MCP server.
4
-
5
- Built by [Learn Data Insights](https://learndatainsights.com).
6
-
7
- ## What it does
8
-
9
- This MCP server exposes a set of curated process skills as tools that your AI agent
10
- can call. The agent receives step-by-step instructions for data platform tasks —
11
- then executes them interactively with you.
12
-
13
- ## Quick start
14
-
15
- ### VS Code (with GitHub Copilot or Claude extension)
16
-
17
- Add to your MCP settings (`.vscode/mcp.json` or user settings):
18
-
19
- ```json
20
- {
21
- "servers": {
22
- "ldi-process-skills": {
23
- "type": "stdio",
24
- "command": "npx",
25
- "args": ["-y", "@rishildi/ldi-process-skills"]
26
- }
27
- }
28
- }
29
- ```
30
-
31
- ### Claude Desktop
32
-
33
- Add to `claude_desktop_config.json`:
34
-
35
- ```json
36
- {
37
- "mcpServers": {
38
- "ldi-process-skills": {
39
- "command": "npx",
40
- "args": ["-y", "@rishildi/ldi-process-skills"]
41
- }
42
- }
43
- }
44
- ```
45
-
46
- ### Verify
47
-
48
- Once connected, ask your AI agent:
49
-
50
- > "What skills are available?"
51
-
52
- It will call `list_skills` and show you the catalogue.
53
-
54
- ## Prerequisites
55
-
56
- - **Node.js 18+** (for running the MCP server)
57
- - Additional prerequisites depend on the specific skills (e.g. Fabric CLI for Fabric skills)
58
-
59
- ## Available tools
60
-
61
- | Tool | Description |
62
- |------|-------------|
63
- | `list_skills` | Lists all available skills with descriptions |
64
- | `<skill_name>` | Loads a specific skill's instructions (one tool per skill) |
65
- | `get_skill_file` | Fetch a specific template or reference from a skill |
66
- | `list_skill_files` | List all files available in a skill package |
67
-
68
- *(Tools are auto-generated from embedded skills. Each skill you add becomes a tool automatically.)*
69
-
70
- ## How it works
71
-
72
- 1. You ask your AI agent to perform a task
73
- 2. The agent calls the appropriate skill tool on this MCP server
74
- 3. The server returns detailed step-by-step instructions to the agent
75
- 4. The agent follows the instructions, interacting with you along the way
76
- 5. You see all the outputs — the skill instructions themselves stay inside the server
77
-
78
- ## Licence
79
-
80
- This software is proprietary to Learn Data Insights Ltd.
81
- Unauthorised redistribution is not permitted.
82
-
83
- ---
84
-
85
- ## Development guide (maintainers only)
86
-
87
- ### Adding a new skill
88
-
89
- 1. Create a directory under `src/skills/<skill-name>/` with a `SKILL.md` and
90
- optional `assets/` and `references/` subdirectories
91
- 2. Run `npm run embed` to regenerate the embedded skills module
92
- 3. Run `npm run build` to compile
93
- 4. Test with `npm run inspect`
94
-
95
- ### Build pipeline
96
-
97
- ```
98
- src/skills/<skill-name>/ ──┐
99
- SKILL.md │ embed-skills.ts
100
- assets/ ├──────────────────> src/skills/embedded.ts
101
- references/ │
102
- src/skills/<other-skill>/ ──┘
103
-
104
- ▼ tsc
105
- build/index.js
106
-
107
- ▼ npm publish
108
- npm package (JS only)
109
-
110
- OR
111
-
112
- ▼ bun build --compile
113
- dist/ldi-process-skills (binary)
114
- ```
115
-
116
- ### Scripts
117
-
118
- | Command | Description |
119
- |---------|-------------|
120
- | `npm run embed` | Regenerate embedded.ts from skill files |
121
- | `npm run build` | Embed + compile TypeScript |
122
- | `npm run build:compile` | Embed + compile to native binary (requires Bun) |
123
- | `npm run inspect` | Open MCP Inspector for testing |
124
- | `npm run start` | Run the server directly |
125
-
126
- ### Testing with MCP Inspector
127
-
128
- ```bash
129
- npm run build
130
- npm run inspect
131
- ```
132
-
133
- This opens a web UI where you can call tools and verify responses.