@rishildi/ldi-process-skills 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/build/server.d.ts +4 -0
- package/build/server.d.ts.map +1 -1
- package/build/server.js +45 -20
- package/build/skills/embedded.d.ts +1 -0
- package/build/skills/embedded.d.ts.map +1 -1
- package/build/skills/embedded.js +81 -69
- package/build/skills/registry.d.ts +11 -2
- package/build/skills/registry.d.ts.map +1 -1
- package/build/skills/registry.js +17 -2
- package/package.json +2 -2
- package/README.md +0 -133
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Skill registry — loads embedded skills and provides
|
|
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;
|
|
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"}
|
package/build/skills/registry.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Skill registry — loads embedded skills and provides
|
|
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.
|
|
3
|
+
"version": "0.1.1",
|
|
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.
|