skillpkg-mcp-server 0.1.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.
Files changed (58) hide show
  1. package/README.md +148 -0
  2. package/dist/cli.d.ts +10 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +40 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/index.d.ts +20 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +23 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/server.d.ts +55 -0
  11. package/dist/server.d.ts.map +1 -0
  12. package/dist/server.js +162 -0
  13. package/dist/server.js.map +1 -0
  14. package/dist/tools/index.d.ts +21 -0
  15. package/dist/tools/index.d.ts.map +1 -0
  16. package/dist/tools/index.js +35 -0
  17. package/dist/tools/index.js.map +1 -0
  18. package/dist/tools/install-skill.d.ts +8 -0
  19. package/dist/tools/install-skill.d.ts.map +1 -0
  20. package/dist/tools/install-skill.js +233 -0
  21. package/dist/tools/install-skill.js.map +1 -0
  22. package/dist/tools/list-skills.d.ts +8 -0
  23. package/dist/tools/list-skills.d.ts.map +1 -0
  24. package/dist/tools/list-skills.js +68 -0
  25. package/dist/tools/list-skills.js.map +1 -0
  26. package/dist/tools/load-skill.d.ts +8 -0
  27. package/dist/tools/load-skill.d.ts.map +1 -0
  28. package/dist/tools/load-skill.js +93 -0
  29. package/dist/tools/load-skill.js.map +1 -0
  30. package/dist/tools/recommend-skill.d.ts +8 -0
  31. package/dist/tools/recommend-skill.d.ts.map +1 -0
  32. package/dist/tools/recommend-skill.js +133 -0
  33. package/dist/tools/recommend-skill.js.map +1 -0
  34. package/dist/tools/search-registry.d.ts +8 -0
  35. package/dist/tools/search-registry.d.ts.map +1 -0
  36. package/dist/tools/search-registry.js +72 -0
  37. package/dist/tools/search-registry.js.map +1 -0
  38. package/dist/tools/search-skills.d.ts +8 -0
  39. package/dist/tools/search-skills.d.ts.map +1 -0
  40. package/dist/tools/search-skills.js +159 -0
  41. package/dist/tools/search-skills.js.map +1 -0
  42. package/dist/tools/skill-info.d.ts +8 -0
  43. package/dist/tools/skill-info.d.ts.map +1 -0
  44. package/dist/tools/skill-info.js +83 -0
  45. package/dist/tools/skill-info.js.map +1 -0
  46. package/dist/tools/uninstall-skill.d.ts +8 -0
  47. package/dist/tools/uninstall-skill.d.ts.map +1 -0
  48. package/dist/tools/uninstall-skill.js +60 -0
  49. package/dist/tools/uninstall-skill.js.map +1 -0
  50. package/dist/tools/utils.d.ts +57 -0
  51. package/dist/tools/utils.d.ts.map +1 -0
  52. package/dist/tools/utils.js +151 -0
  53. package/dist/tools/utils.js.map +1 -0
  54. package/dist/types.d.ts +182 -0
  55. package/dist/types.d.ts.map +1 -0
  56. package/dist/types.js +33 -0
  57. package/dist/types.js.map +1 -0
  58. package/package.json +63 -0
package/README.md ADDED
@@ -0,0 +1,148 @@
1
+ # skillpkg-mcp-server
2
+
3
+ MCP Server for skillpkg - Enable AI agents to search, install, and manage skills via Model Context Protocol.
4
+
5
+ ## Features
6
+
7
+ - **7 MCP Tools** for complete skill lifecycle management
8
+ - **Multi-source installation** - Registry, GitHub, Gist, URL, Local
9
+ - **Smart recommendations** with relevance scoring
10
+ - **Graceful degradation** when registry unavailable
11
+
12
+ ## Installation
13
+
14
+ ```bash
15
+ npm install skillpkg-mcp-server
16
+ ```
17
+
18
+ ## Quick Start
19
+
20
+ ### As standalone MCP server
21
+
22
+ ```bash
23
+ npx skillpkg-mcp-server
24
+ ```
25
+
26
+ ### In claude_desktop_config.json
27
+
28
+ ```json
29
+ {
30
+ "mcpServers": {
31
+ "skillpkg": {
32
+ "command": "npx",
33
+ "args": ["skillpkg-mcp-server"]
34
+ }
35
+ }
36
+ }
37
+ ```
38
+
39
+ ### Programmatic usage
40
+
41
+ ```typescript
42
+ import { SkillpkgMcpServer, createAllToolHandlers } from 'skillpkg-mcp-server';
43
+
44
+ const server = new SkillpkgMcpServer({ scope: 'local' });
45
+ server.registerTools(createAllToolHandlers());
46
+ await server.start();
47
+ ```
48
+
49
+ ## Available Tools
50
+
51
+ | Tool | Description |
52
+ |------|-------------|
53
+ | `list_skills` | List all installed skills with metadata |
54
+ | `load_skill` | Load a skill's full content including instructions |
55
+ | `install_skill` | Install a skill from various sources |
56
+ | `uninstall_skill` | Remove an installed skill |
57
+ | `search_skills` | Search skills (source: all/local/registry) |
58
+ | `skill_info` | Get detailed info about a skill |
59
+ | `recommend_skill` | Get AI-powered skill recommendations |
60
+
61
+ ## Tool Details
62
+
63
+ ### list_skills
64
+
65
+ Lists all installed skills from local and/or global scope.
66
+
67
+ ```json
68
+ {
69
+ "scope": "all" // "local" | "global" | "all"
70
+ }
71
+ ```
72
+
73
+ ### load_skill
74
+
75
+ Loads a skill's full instructions. Required for AI to use the skill.
76
+
77
+ ```json
78
+ {
79
+ "id": "local:commit-helper" // or just "commit-helper"
80
+ }
81
+ ```
82
+
83
+ ### install_skill
84
+
85
+ Installs a skill from multiple sources:
86
+
87
+ ```json
88
+ {
89
+ "source": "commit-helper", // Registry
90
+ "source": "github:user/repo", // GitHub repo
91
+ "source": "gist:abc123", // GitHub Gist
92
+ "source": "https://example.com/skill.yaml", // URL
93
+ "source": "./my-skill", // Local path
94
+ "scope": "local" // "local" | "global"
95
+ }
96
+ ```
97
+
98
+ ### recommend_skill
99
+
100
+ Get smart recommendations based on your needs:
101
+
102
+ ```json
103
+ {
104
+ "query": "help me write better commit messages",
105
+ "criteria": "auto" // "auto" | "popular" | "highest_rated" | "newest"
106
+ }
107
+ ```
108
+
109
+ ## Architecture
110
+
111
+ ```
112
+ ┌─────────────────────────────────────────────────┐
113
+ │ AI Agent │
114
+ │ (Claude, etc.) │
115
+ └─────────────────┬───────────────────────────────┘
116
+ │ MCP Protocol (stdio)
117
+ ┌─────────────────▼───────────────────────────────┐
118
+ │ SkillpkgMcpServer │
119
+ ├─────────────────────────────────────────────────┤
120
+ │ ┌──────────────────────────────────────────┐ │
121
+ │ │ Tool Handlers │ │
122
+ │ ├──────────────────────────────────────────┤ │
123
+ │ │ search_skills │ load_skill │ install │ │
124
+ │ │ list_skills │ uninstall │ info │ │
125
+ │ │ search_registry│ recommend │ │ │
126
+ │ └──────────────────────────────────────────┘ │
127
+ ├─────────────────────────────────────────────────┤
128
+ │ skillpkg-core │
129
+ │ (Store, Registry, Parser) │
130
+ └─────────────────────────────────────────────────┘
131
+ ```
132
+
133
+ ## Development
134
+
135
+ ```bash
136
+ # Build
137
+ pnpm build
138
+
139
+ # Type check
140
+ pnpm typecheck
141
+
142
+ # Test
143
+ pnpm test
144
+ ```
145
+
146
+ ## License
147
+
148
+ MIT
package/dist/cli.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * CLI entry point for skillpkg MCP server
4
+ *
5
+ * Usage:
6
+ * npx skillpkg-mcp-server
7
+ * skillpkg serve (via CLI integration)
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;GAMG"}
package/dist/cli.js ADDED
@@ -0,0 +1,40 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * CLI entry point for skillpkg MCP server
4
+ *
5
+ * Usage:
6
+ * npx skillpkg-mcp-server
7
+ * skillpkg serve (via CLI integration)
8
+ */
9
+ import { SkillpkgMcpServer } from './server.js';
10
+ import { createAllToolHandlers } from './tools/index.js';
11
+ async function main() {
12
+ // Create server with default options
13
+ const server = new SkillpkgMcpServer({
14
+ scope: 'local',
15
+ projectPath: process.cwd(),
16
+ });
17
+ // Register all tool handlers
18
+ server.registerTools(createAllToolHandlers());
19
+ // Handle shutdown gracefully
20
+ process.on('SIGINT', async () => {
21
+ console.error('[skillpkg-mcp] Received SIGINT, shutting down...');
22
+ await server.stop();
23
+ process.exit(0);
24
+ });
25
+ process.on('SIGTERM', async () => {
26
+ console.error('[skillpkg-mcp] Received SIGTERM, shutting down...');
27
+ await server.stop();
28
+ process.exit(0);
29
+ });
30
+ // Start the server
31
+ try {
32
+ await server.start();
33
+ }
34
+ catch (error) {
35
+ console.error('[skillpkg-mcp] Failed to start server:', error);
36
+ process.exit(1);
37
+ }
38
+ }
39
+ main();
40
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,KAAK,UAAU,IAAI;IACjB,qCAAqC;IACrC,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC;QACnC,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE;KAC3B,CAAC,CAAC;IAEH,6BAA6B;IAC7B,MAAM,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAE9C,6BAA6B;IAC7B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QAC9B,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAClE,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QAC/B,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACnE,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,mBAAmB;IACnB,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @skillpkg/mcp-server
3
+ *
4
+ * MCP Server for skillpkg - Enable AI agents to search, install,
5
+ * and manage skills via Model Context Protocol.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { SkillpkgMcpServer, createAllToolHandlers } from 'skillpkg-mcp-server';
10
+ *
11
+ * const server = new SkillpkgMcpServer({ scope: 'local' });
12
+ * server.registerTools(createAllToolHandlers());
13
+ * await server.start();
14
+ * ```
15
+ */
16
+ export declare const VERSION = "0.1.0";
17
+ export * from './types.js';
18
+ export { SkillpkgMcpServer } from './server.js';
19
+ export { createAllToolHandlers, createListSkillsHandler, createLoadSkillHandler, createSearchSkillsHandler, createInstallSkillHandler, createUninstallSkillHandler, createSkillInfoHandler, createRecommendSkillHandler, } from './tools/index.js';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,eAAO,MAAM,OAAO,UAAU,CAAC;AAG/B,cAAc,YAAY,CAAC;AAG3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,2BAA2B,EAC3B,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @skillpkg/mcp-server
3
+ *
4
+ * MCP Server for skillpkg - Enable AI agents to search, install,
5
+ * and manage skills via Model Context Protocol.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { SkillpkgMcpServer, createAllToolHandlers } from 'skillpkg-mcp-server';
10
+ *
11
+ * const server = new SkillpkgMcpServer({ scope: 'local' });
12
+ * server.registerTools(createAllToolHandlers());
13
+ * await server.start();
14
+ * ```
15
+ */
16
+ export const VERSION = '0.1.0';
17
+ // Types
18
+ export * from './types.js';
19
+ // Server
20
+ export { SkillpkgMcpServer } from './server.js';
21
+ // Tool handlers
22
+ export { createAllToolHandlers, createListSkillsHandler, createLoadSkillHandler, createSearchSkillsHandler, createInstallSkillHandler, createUninstallSkillHandler, createSkillInfoHandler, createRecommendSkillHandler, } from './tools/index.js';
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,SAAS;AACT,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,gBAAgB;AAChB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,2BAA2B,EAC3B,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * SkillpkgMcpServer - MCP Server implementation
3
+ *
4
+ * Provides MCP tools for AI agents to manage skills.
5
+ */
6
+ import type { ServerOptions, ToolHandler, ToolResult } from './types.js';
7
+ export declare class SkillpkgMcpServer {
8
+ private options;
9
+ private tools;
10
+ private server;
11
+ private transport;
12
+ private running;
13
+ constructor(options?: ServerOptions);
14
+ /**
15
+ * Start the MCP server
16
+ */
17
+ start(): Promise<void>;
18
+ /**
19
+ * Setup MCP request handlers
20
+ */
21
+ private setupRequestHandlers;
22
+ /**
23
+ * Stop the MCP server
24
+ */
25
+ stop(): Promise<void>;
26
+ /**
27
+ * Register a tool handler
28
+ */
29
+ registerTool(handler: ToolHandler): void;
30
+ /**
31
+ * Register multiple tool handlers
32
+ */
33
+ registerTools(handlers: ToolHandler[]): void;
34
+ /**
35
+ * Get registered tools
36
+ */
37
+ getTools(): ToolHandler[];
38
+ /**
39
+ * Check if server is running
40
+ */
41
+ isRunning(): boolean;
42
+ /**
43
+ * Get server options
44
+ */
45
+ getOptions(): ServerOptions;
46
+ /**
47
+ * Create error result
48
+ */
49
+ static createErrorResult(message: string): ToolResult;
50
+ /**
51
+ * Create success result
52
+ */
53
+ static createSuccessResult(data: unknown): ToolResult;
54
+ }
55
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEzE,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,KAAK,CAAuC;IACpD,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,GAAE,aAAkB;IAOvC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgC5B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAoD5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB3B;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAIxC;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI;IAM5C;;OAEG;IACH,QAAQ,IAAI,WAAW,EAAE;IAIzB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,UAAU,IAAI,aAAa;IAI3B;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU;IAOrD;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU;CAMtD"}
package/dist/server.js ADDED
@@ -0,0 +1,162 @@
1
+ /**
2
+ * SkillpkgMcpServer - MCP Server implementation
3
+ *
4
+ * Provides MCP tools for AI agents to manage skills.
5
+ */
6
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
7
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
8
+ import { ListToolsRequestSchema, CallToolRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
9
+ export class SkillpkgMcpServer {
10
+ options;
11
+ tools = new Map();
12
+ server = null;
13
+ transport = null;
14
+ running = false;
15
+ constructor(options = {}) {
16
+ this.options = {
17
+ scope: options.scope || 'local',
18
+ projectPath: options.projectPath || process.cwd(),
19
+ };
20
+ }
21
+ /**
22
+ * Start the MCP server
23
+ */
24
+ async start() {
25
+ if (this.running) {
26
+ return;
27
+ }
28
+ // Log to stderr to avoid MCP protocol interference
29
+ console.error('[skillpkg-mcp] Starting MCP server...');
30
+ // Initialize MCP Server
31
+ this.server = new Server({
32
+ name: 'skillpkg',
33
+ version: '0.1.0',
34
+ }, {
35
+ capabilities: {
36
+ tools: { listChanged: true },
37
+ },
38
+ });
39
+ // Register request handlers
40
+ this.setupRequestHandlers();
41
+ // Start stdio transport
42
+ this.transport = new StdioServerTransport();
43
+ await this.server.connect(this.transport);
44
+ this.running = true;
45
+ console.error('[skillpkg-mcp] Server started');
46
+ }
47
+ /**
48
+ * Setup MCP request handlers
49
+ */
50
+ setupRequestHandlers() {
51
+ if (!this.server)
52
+ return;
53
+ // Handle tool listing
54
+ this.server.setRequestHandler(ListToolsRequestSchema, async () => {
55
+ const tools = Array.from(this.tools.values()).map((handler) => ({
56
+ name: handler.name,
57
+ description: handler.description,
58
+ inputSchema: handler.inputSchema,
59
+ }));
60
+ return { tools };
61
+ });
62
+ // Handle tool calls
63
+ this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
64
+ const { name, arguments: args } = request.params;
65
+ const handler = this.tools.get(name);
66
+ if (!handler) {
67
+ return {
68
+ content: [
69
+ {
70
+ type: 'text',
71
+ text: `Error: Unknown tool "${name}". Available tools: ${Array.from(this.tools.keys()).join(', ')}`,
72
+ },
73
+ ],
74
+ isError: true,
75
+ };
76
+ }
77
+ try {
78
+ const result = await handler.execute(args);
79
+ return result;
80
+ }
81
+ catch (error) {
82
+ const errorMessage = error instanceof Error ? error.message : String(error);
83
+ return {
84
+ content: [
85
+ {
86
+ type: 'text',
87
+ text: `Error: ${errorMessage}`,
88
+ },
89
+ ],
90
+ isError: true,
91
+ };
92
+ }
93
+ });
94
+ }
95
+ /**
96
+ * Stop the MCP server
97
+ */
98
+ async stop() {
99
+ if (!this.running) {
100
+ return;
101
+ }
102
+ console.error('[skillpkg-mcp] Stopping server...');
103
+ if (this.server) {
104
+ await this.server.close();
105
+ this.server = null;
106
+ }
107
+ this.transport = null;
108
+ this.running = false;
109
+ console.error('[skillpkg-mcp] Server stopped');
110
+ }
111
+ /**
112
+ * Register a tool handler
113
+ */
114
+ registerTool(handler) {
115
+ this.tools.set(handler.name, handler);
116
+ }
117
+ /**
118
+ * Register multiple tool handlers
119
+ */
120
+ registerTools(handlers) {
121
+ for (const handler of handlers) {
122
+ this.registerTool(handler);
123
+ }
124
+ }
125
+ /**
126
+ * Get registered tools
127
+ */
128
+ getTools() {
129
+ return Array.from(this.tools.values());
130
+ }
131
+ /**
132
+ * Check if server is running
133
+ */
134
+ isRunning() {
135
+ return this.running;
136
+ }
137
+ /**
138
+ * Get server options
139
+ */
140
+ getOptions() {
141
+ return { ...this.options };
142
+ }
143
+ /**
144
+ * Create error result
145
+ */
146
+ static createErrorResult(message) {
147
+ return {
148
+ content: [{ type: 'text', text: `Error: ${message}` }],
149
+ isError: true,
150
+ };
151
+ }
152
+ /**
153
+ * Create success result
154
+ */
155
+ static createSuccessResult(data) {
156
+ const text = typeof data === 'string' ? data : JSON.stringify(data, null, 2);
157
+ return {
158
+ content: [{ type: 'text', text }],
159
+ };
160
+ }
161
+ }
162
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,sBAAsB,EACtB,qBAAqB,GAEtB,MAAM,oCAAoC,CAAC;AAG5C,MAAM,OAAO,iBAAiB;IACpB,OAAO,CAAgB;IACvB,KAAK,GAA6B,IAAI,GAAG,EAAE,CAAC;IAC5C,MAAM,GAAkB,IAAI,CAAC;IAC7B,SAAS,GAAgC,IAAI,CAAC;IAC9C,OAAO,GAAG,KAAK,CAAC;IAExB,YAAY,UAAyB,EAAE;QACrC,IAAI,CAAC,OAAO,GAAG;YACb,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,OAAO;YAC/B,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE;SAClD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,mDAAmD;QACnD,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAEvD,wBAAwB;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CACtB;YACE,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,OAAO;SACjB,EACD;YACE,YAAY,EAAE;gBACZ,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;aAC7B;SACF,CACF,CAAC;QAEF,4BAA4B;QAC5B,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE5B,wBAAwB;QACxB,IAAI,CAAC,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC5C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE1C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACK,oBAAoB;QAC1B,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAEzB,sBAAsB;QACtB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC9D,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,WAAW,EAAE,OAAO,CAAC,WAAW;aACjC,CAAC,CAAC,CAAC;YAEJ,OAAO,EAAE,KAAK,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,oBAAoB;QACpB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAC3B,qBAAqB,EACrB,KAAK,EAAE,OAAO,EAA2B,EAAE;YACzC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAEjD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,wBAAwB,IAAI,uBAAuB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;yBACpG;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC3C,OAAO,MAAwB,CAAC;YAClC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5E,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,UAAU,YAAY,EAAE;yBAC/B;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAEnD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,OAAoB;QAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,QAAuB;QACnC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,OAAe;QACtC,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE,EAAE,CAAC;YACtD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,IAAa;QACtC,MAAM,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7E,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;SAClC,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Tool Handlers Index
3
+ *
4
+ * Exports all tool handlers for the MCP server.
5
+ * Each tool is designed to be AI-friendly with clear descriptions and structured outputs.
6
+ */
7
+ import type { ToolHandler } from '../types.js';
8
+ import { createListSkillsHandler } from './list-skills.js';
9
+ import { createLoadSkillHandler } from './load-skill.js';
10
+ import { createSearchSkillsHandler } from './search-skills.js';
11
+ import { createInstallSkillHandler } from './install-skill.js';
12
+ import { createUninstallSkillHandler } from './uninstall-skill.js';
13
+ import { createSkillInfoHandler } from './skill-info.js';
14
+ import { createRecommendSkillHandler } from './recommend-skill.js';
15
+ /**
16
+ * Create all tool handlers
17
+ */
18
+ export declare function createAllToolHandlers(): ToolHandler[];
19
+ export { createListSkillsHandler, createLoadSkillHandler, createSearchSkillsHandler, createInstallSkillHandler, createUninstallSkillHandler, createSkillInfoHandler, createRecommendSkillHandler, };
20
+ export * from './utils.js';
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAEnE;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,WAAW,EAAE,CAarD;AAGD,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,2BAA2B,EAC3B,sBAAsB,EACtB,2BAA2B,GAC5B,CAAC;AAGF,cAAc,YAAY,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Tool Handlers Index
3
+ *
4
+ * Exports all tool handlers for the MCP server.
5
+ * Each tool is designed to be AI-friendly with clear descriptions and structured outputs.
6
+ */
7
+ // Import all tool handlers
8
+ import { createListSkillsHandler } from './list-skills.js';
9
+ import { createLoadSkillHandler } from './load-skill.js';
10
+ import { createSearchSkillsHandler } from './search-skills.js';
11
+ import { createInstallSkillHandler } from './install-skill.js';
12
+ import { createUninstallSkillHandler } from './uninstall-skill.js';
13
+ import { createSkillInfoHandler } from './skill-info.js';
14
+ import { createRecommendSkillHandler } from './recommend-skill.js';
15
+ /**
16
+ * Create all tool handlers
17
+ */
18
+ export function createAllToolHandlers() {
19
+ return [
20
+ // Core skill management
21
+ createListSkillsHandler(),
22
+ createLoadSkillHandler(),
23
+ createInstallSkillHandler(),
24
+ createUninstallSkillHandler(),
25
+ // Search & Discovery
26
+ createSearchSkillsHandler(),
27
+ createSkillInfoHandler(),
28
+ createRecommendSkillHandler(),
29
+ ];
30
+ }
31
+ // Export individual handlers for selective use
32
+ export { createListSkillsHandler, createLoadSkillHandler, createSearchSkillsHandler, createInstallSkillHandler, createUninstallSkillHandler, createSkillInfoHandler, createRecommendSkillHandler, };
33
+ // Re-export utilities
34
+ export * from './utils.js';
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,2BAA2B;AAC3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAEnE;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,wBAAwB;QACxB,uBAAuB,EAAE;QACzB,sBAAsB,EAAE;QACxB,yBAAyB,EAAE;QAC3B,2BAA2B,EAAE;QAE7B,qBAAqB;QACrB,yBAAyB,EAAE;QAC3B,sBAAsB,EAAE;QACxB,2BAA2B,EAAE;KAC9B,CAAC;AACJ,CAAC;AAED,+CAA+C;AAC/C,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,2BAA2B,EAC3B,sBAAsB,EACtB,2BAA2B,GAC5B,CAAC;AAEF,sBAAsB;AACtB,cAAc,YAAY,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Tool: install_skill
3
+ *
4
+ * Installs a skill from registry, GitHub, Gist, URL, or local path.
5
+ */
6
+ import type { ToolHandler } from '../types.js';
7
+ export declare function createInstallSkillHandler(): ToolHandler;
8
+ //# sourceMappingURL=install-skill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-skill.d.ts","sourceRoot":"","sources":["../../src/tools/install-skill.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAiE,MAAM,aAAa,CAAC;AA+H9G,wBAAgB,yBAAyB,IAAI,WAAW,CAwIvD"}