@hasna/skills 0.1.9 → 0.1.10

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 (3) hide show
  1. package/bin/index.js +52 -1
  2. package/bin/mcp.js +52 -1
  3. package/package.json +1 -1
package/bin/index.js CHANGED
@@ -1878,7 +1878,7 @@ var package_default;
1878
1878
  var init_package = __esm(() => {
1879
1879
  package_default = {
1880
1880
  name: "@hasna/skills",
1881
- version: "0.1.9",
1881
+ version: "0.1.10",
1882
1882
  description: "Skills library for AI coding agents",
1883
1883
  type: "module",
1884
1884
  bin: {
@@ -35143,6 +35143,57 @@ var init_mcp2 = __esm(() => {
35143
35143
  }]
35144
35144
  };
35145
35145
  });
35146
+ server.registerTool("search_tools", {
35147
+ title: "Search Tools",
35148
+ description: "List tool names, optionally filtered by keyword.",
35149
+ inputSchema: { query: exports_external.string().optional().describe("Keyword filter") }
35150
+ }, async ({ query }) => {
35151
+ const all = [
35152
+ "list_skills",
35153
+ "search_skills",
35154
+ "get_skill_info",
35155
+ "get_skill_docs",
35156
+ "install_skill",
35157
+ "install_category",
35158
+ "remove_skill",
35159
+ "list_categories",
35160
+ "list_tags",
35161
+ "get_requirements",
35162
+ "run_skill",
35163
+ "export_skills",
35164
+ "import_skills",
35165
+ "whoami",
35166
+ "search_tools",
35167
+ "describe_tools"
35168
+ ];
35169
+ const matches = query ? all.filter((n) => n.includes(query.toLowerCase())) : all;
35170
+ return { content: [{ type: "text", text: matches.join(", ") }] };
35171
+ });
35172
+ server.registerTool("describe_tools", {
35173
+ title: "Describe Tools",
35174
+ description: "Get descriptions for specific tools by name.",
35175
+ inputSchema: { names: exports_external.array(exports_external.string()).describe("Tool names from search_tools") }
35176
+ }, async ({ names }) => {
35177
+ const descriptions = {
35178
+ list_skills: "List skills {name,category}. Params: category?, detail?",
35179
+ search_skills: "Search skills by name/tags. Params: query, detail?",
35180
+ get_skill_info: "Get skill metadata and env vars. Params: name",
35181
+ get_skill_docs: "Get skill documentation. Params: name",
35182
+ install_skill: "Install a skill for an agent. Params: name, agent?",
35183
+ install_category: "Install all skills in a category. Params: category, agent?",
35184
+ remove_skill: "Remove an installed skill. Params: name, agent?",
35185
+ list_categories: "List skill categories with counts.",
35186
+ list_tags: "List all tags across skills.",
35187
+ get_requirements: "Get skill requirements/dependencies. Params: name",
35188
+ run_skill: "Execute a skill. Params: name, args?",
35189
+ export_skills: "Export skill config. Params: format?",
35190
+ import_skills: "Import skill config. Params: data",
35191
+ whoami: "Show setup: version, installed skills, agent configs."
35192
+ };
35193
+ const result = names.map((n) => `${n}: ${descriptions[n] || "See tool schema"}`).join(`
35194
+ `);
35195
+ return { content: [{ type: "text", text: result }] };
35196
+ });
35146
35197
  main().catch((error48) => {
35147
35198
  console.error("MCP server error:", error48);
35148
35199
  process.exit(1);
package/bin/mcp.js CHANGED
@@ -28604,7 +28604,7 @@ import { homedir as homedir2 } from "os";
28604
28604
  // package.json
28605
28605
  var package_default = {
28606
28606
  name: "@hasna/skills",
28607
- version: "0.1.9",
28607
+ version: "0.1.10",
28608
28608
  description: "Skills library for AI coding agents",
28609
28609
  type: "module",
28610
28610
  bin: {
@@ -30971,6 +30971,57 @@ server.registerResource("Skill Info", new ResourceTemplate("skills://{name}", {
30971
30971
  }]
30972
30972
  };
30973
30973
  });
30974
+ server.registerTool("search_tools", {
30975
+ title: "Search Tools",
30976
+ description: "List tool names, optionally filtered by keyword.",
30977
+ inputSchema: { query: exports_external.string().optional().describe("Keyword filter") }
30978
+ }, async ({ query }) => {
30979
+ const all = [
30980
+ "list_skills",
30981
+ "search_skills",
30982
+ "get_skill_info",
30983
+ "get_skill_docs",
30984
+ "install_skill",
30985
+ "install_category",
30986
+ "remove_skill",
30987
+ "list_categories",
30988
+ "list_tags",
30989
+ "get_requirements",
30990
+ "run_skill",
30991
+ "export_skills",
30992
+ "import_skills",
30993
+ "whoami",
30994
+ "search_tools",
30995
+ "describe_tools"
30996
+ ];
30997
+ const matches = query ? all.filter((n) => n.includes(query.toLowerCase())) : all;
30998
+ return { content: [{ type: "text", text: matches.join(", ") }] };
30999
+ });
31000
+ server.registerTool("describe_tools", {
31001
+ title: "Describe Tools",
31002
+ description: "Get descriptions for specific tools by name.",
31003
+ inputSchema: { names: exports_external.array(exports_external.string()).describe("Tool names from search_tools") }
31004
+ }, async ({ names }) => {
31005
+ const descriptions = {
31006
+ list_skills: "List skills {name,category}. Params: category?, detail?",
31007
+ search_skills: "Search skills by name/tags. Params: query, detail?",
31008
+ get_skill_info: "Get skill metadata and env vars. Params: name",
31009
+ get_skill_docs: "Get skill documentation. Params: name",
31010
+ install_skill: "Install a skill for an agent. Params: name, agent?",
31011
+ install_category: "Install all skills in a category. Params: category, agent?",
31012
+ remove_skill: "Remove an installed skill. Params: name, agent?",
31013
+ list_categories: "List skill categories with counts.",
31014
+ list_tags: "List all tags across skills.",
31015
+ get_requirements: "Get skill requirements/dependencies. Params: name",
31016
+ run_skill: "Execute a skill. Params: name, args?",
31017
+ export_skills: "Export skill config. Params: format?",
31018
+ import_skills: "Import skill config. Params: data",
31019
+ whoami: "Show setup: version, installed skills, agent configs."
31020
+ };
31021
+ const result = names.map((n) => `${n}: ${descriptions[n] || "See tool schema"}`).join(`
31022
+ `);
31023
+ return { content: [{ type: "text", text: result }] };
31024
+ });
30974
31025
  async function main() {
30975
31026
  const transport = new StdioServerTransport;
30976
31027
  await server.connect(transport);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/skills",
3
- "version": "0.1.9",
3
+ "version": "0.1.10",
4
4
  "description": "Skills library for AI coding agents",
5
5
  "type": "module",
6
6
  "bin": {