matimo 0.1.0-alpha.9 → 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.
Files changed (168) hide show
  1. package/package.json +10 -8
  2. package/packages/cli/dist/bin.d.ts +3 -0
  3. package/packages/cli/dist/bin.d.ts.map +1 -0
  4. package/packages/cli/dist/bin.js +50 -0
  5. package/packages/cli/dist/bin.js.map +1 -0
  6. package/packages/cli/dist/cli.d.ts.map +1 -1
  7. package/packages/cli/dist/cli.js +64 -2
  8. package/packages/cli/dist/cli.js.map +1 -1
  9. package/packages/cli/dist/commands/doctor.d.ts +2 -0
  10. package/packages/cli/dist/commands/doctor.d.ts.map +1 -0
  11. package/packages/cli/dist/commands/doctor.js +174 -0
  12. package/packages/cli/dist/commands/doctor.js.map +1 -0
  13. package/packages/cli/dist/commands/mcp-setup.d.ts +9 -0
  14. package/packages/cli/dist/commands/mcp-setup.d.ts.map +1 -0
  15. package/packages/cli/dist/commands/mcp-setup.js +106 -0
  16. package/packages/cli/dist/commands/mcp-setup.js.map +1 -0
  17. package/packages/cli/dist/commands/mcp.d.ts +17 -0
  18. package/packages/cli/dist/commands/mcp.d.ts.map +1 -0
  19. package/packages/cli/dist/commands/mcp.js +228 -0
  20. package/packages/cli/dist/commands/mcp.js.map +1 -0
  21. package/packages/cli/dist/commands/review.d.ts +10 -0
  22. package/packages/cli/dist/commands/review.d.ts.map +1 -0
  23. package/packages/cli/dist/commands/review.js +176 -0
  24. package/packages/cli/dist/commands/review.js.map +1 -0
  25. package/packages/core/dist/approval/approval-handler.d.ts +5 -1
  26. package/packages/core/dist/approval/approval-handler.d.ts.map +1 -1
  27. package/packages/core/dist/approval/approval-handler.js +6 -0
  28. package/packages/core/dist/approval/approval-handler.js.map +1 -1
  29. package/packages/core/dist/core/schema.d.ts +41 -10
  30. package/packages/core/dist/core/schema.d.ts.map +1 -1
  31. package/packages/core/dist/core/schema.js +40 -4
  32. package/packages/core/dist/core/schema.js.map +1 -1
  33. package/packages/core/dist/core/skill-content-parser.d.ts +91 -0
  34. package/packages/core/dist/core/skill-content-parser.d.ts.map +1 -0
  35. package/packages/core/dist/core/skill-content-parser.js +248 -0
  36. package/packages/core/dist/core/skill-content-parser.js.map +1 -0
  37. package/packages/core/dist/core/skill-loader.d.ts +46 -0
  38. package/packages/core/dist/core/skill-loader.d.ts.map +1 -0
  39. package/packages/core/dist/core/skill-loader.js +310 -0
  40. package/packages/core/dist/core/skill-loader.js.map +1 -0
  41. package/packages/core/dist/core/skill-registry.d.ts +131 -0
  42. package/packages/core/dist/core/skill-registry.d.ts.map +1 -0
  43. package/packages/core/dist/core/skill-registry.js +316 -0
  44. package/packages/core/dist/core/skill-registry.js.map +1 -0
  45. package/packages/core/dist/core/tfidf-embedding.d.ts +45 -0
  46. package/packages/core/dist/core/tfidf-embedding.d.ts.map +1 -0
  47. package/packages/core/dist/core/tfidf-embedding.js +199 -0
  48. package/packages/core/dist/core/tfidf-embedding.js.map +1 -0
  49. package/packages/core/dist/core/tool-loader.d.ts +3 -1
  50. package/packages/core/dist/core/tool-loader.d.ts.map +1 -1
  51. package/packages/core/dist/core/tool-loader.js +33 -10
  52. package/packages/core/dist/core/tool-loader.js.map +1 -1
  53. package/packages/core/dist/core/types.d.ts +203 -6
  54. package/packages/core/dist/core/types.d.ts.map +1 -1
  55. package/packages/core/dist/encodings/parameter-encoding.d.ts +1 -1
  56. package/packages/core/dist/encodings/parameter-encoding.d.ts.map +1 -1
  57. package/packages/core/dist/encodings/parameter-encoding.js +9 -4
  58. package/packages/core/dist/encodings/parameter-encoding.js.map +1 -1
  59. package/packages/core/dist/errors/matimo-error.d.ts +11 -2
  60. package/packages/core/dist/errors/matimo-error.d.ts.map +1 -1
  61. package/packages/core/dist/errors/matimo-error.js +25 -1
  62. package/packages/core/dist/errors/matimo-error.js.map +1 -1
  63. package/packages/core/dist/executors/command-executor.d.ts +9 -2
  64. package/packages/core/dist/executors/command-executor.d.ts.map +1 -1
  65. package/packages/core/dist/executors/command-executor.js +29 -5
  66. package/packages/core/dist/executors/command-executor.js.map +1 -1
  67. package/packages/core/dist/executors/function-executor.d.ts +10 -3
  68. package/packages/core/dist/executors/function-executor.d.ts.map +1 -1
  69. package/packages/core/dist/executors/function-executor.js +44 -24
  70. package/packages/core/dist/executors/function-executor.js.map +1 -1
  71. package/packages/core/dist/executors/http-executor.d.ts +79 -4
  72. package/packages/core/dist/executors/http-executor.d.ts.map +1 -1
  73. package/packages/core/dist/executors/http-executor.js +232 -28
  74. package/packages/core/dist/executors/http-executor.js.map +1 -1
  75. package/packages/core/dist/index.d.ts +25 -3
  76. package/packages/core/dist/index.d.ts.map +1 -1
  77. package/packages/core/dist/index.js +19 -1
  78. package/packages/core/dist/index.js.map +1 -1
  79. package/packages/core/dist/integrations/langchain.d.ts +55 -0
  80. package/packages/core/dist/integrations/langchain.d.ts.map +1 -1
  81. package/packages/core/dist/integrations/langchain.js +71 -4
  82. package/packages/core/dist/integrations/langchain.js.map +1 -1
  83. package/packages/core/dist/logging/winston-logger.d.ts.map +1 -1
  84. package/packages/core/dist/logging/winston-logger.js +9 -1
  85. package/packages/core/dist/logging/winston-logger.js.map +1 -1
  86. package/packages/core/dist/matimo-instance.d.ts +230 -18
  87. package/packages/core/dist/matimo-instance.d.ts.map +1 -1
  88. package/packages/core/dist/matimo-instance.js +739 -40
  89. package/packages/core/dist/matimo-instance.js.map +1 -1
  90. package/packages/core/dist/mcp/index.d.ts +18 -0
  91. package/packages/core/dist/mcp/index.d.ts.map +1 -0
  92. package/packages/core/dist/mcp/index.js +24 -0
  93. package/packages/core/dist/mcp/index.js.map +1 -0
  94. package/packages/core/dist/mcp/mcp-server.d.ts +141 -0
  95. package/packages/core/dist/mcp/mcp-server.d.ts.map +1 -0
  96. package/packages/core/dist/mcp/mcp-server.js +754 -0
  97. package/packages/core/dist/mcp/mcp-server.js.map +1 -0
  98. package/packages/core/dist/mcp/secrets/aws-resolver.d.ts +41 -0
  99. package/packages/core/dist/mcp/secrets/aws-resolver.d.ts.map +1 -0
  100. package/packages/core/dist/mcp/secrets/aws-resolver.js +141 -0
  101. package/packages/core/dist/mcp/secrets/aws-resolver.js.map +1 -0
  102. package/packages/core/dist/mcp/secrets/dotenv-resolver.d.ts +23 -0
  103. package/packages/core/dist/mcp/secrets/dotenv-resolver.d.ts.map +1 -0
  104. package/packages/core/dist/mcp/secrets/dotenv-resolver.js +94 -0
  105. package/packages/core/dist/mcp/secrets/dotenv-resolver.js.map +1 -0
  106. package/packages/core/dist/mcp/secrets/env-resolver.d.ts +14 -0
  107. package/packages/core/dist/mcp/secrets/env-resolver.d.ts.map +1 -0
  108. package/packages/core/dist/mcp/secrets/env-resolver.js +27 -0
  109. package/packages/core/dist/mcp/secrets/env-resolver.js.map +1 -0
  110. package/packages/core/dist/mcp/secrets/index.d.ts +14 -0
  111. package/packages/core/dist/mcp/secrets/index.d.ts.map +1 -0
  112. package/packages/core/dist/mcp/secrets/index.js +13 -0
  113. package/packages/core/dist/mcp/secrets/index.js.map +1 -0
  114. package/packages/core/dist/mcp/secrets/resolver-chain.d.ts +34 -0
  115. package/packages/core/dist/mcp/secrets/resolver-chain.d.ts.map +1 -0
  116. package/packages/core/dist/mcp/secrets/resolver-chain.js +141 -0
  117. package/packages/core/dist/mcp/secrets/resolver-chain.js.map +1 -0
  118. package/packages/core/dist/mcp/secrets/types.d.ts +73 -0
  119. package/packages/core/dist/mcp/secrets/types.d.ts.map +1 -0
  120. package/packages/core/dist/mcp/secrets/types.js +8 -0
  121. package/packages/core/dist/mcp/secrets/types.js.map +1 -0
  122. package/packages/core/dist/mcp/secrets/vault-resolver.d.ts +43 -0
  123. package/packages/core/dist/mcp/secrets/vault-resolver.d.ts.map +1 -0
  124. package/packages/core/dist/mcp/secrets/vault-resolver.js +127 -0
  125. package/packages/core/dist/mcp/secrets/vault-resolver.js.map +1 -0
  126. package/packages/core/dist/mcp/tool-converter.d.ts +40 -0
  127. package/packages/core/dist/mcp/tool-converter.d.ts.map +1 -0
  128. package/packages/core/dist/mcp/tool-converter.js +185 -0
  129. package/packages/core/dist/mcp/tool-converter.js.map +1 -0
  130. package/packages/core/dist/policy/approval-manifest.d.ts +76 -0
  131. package/packages/core/dist/policy/approval-manifest.d.ts.map +1 -0
  132. package/packages/core/dist/policy/approval-manifest.js +197 -0
  133. package/packages/core/dist/policy/approval-manifest.js.map +1 -0
  134. package/packages/core/dist/policy/content-validator.d.ts +19 -0
  135. package/packages/core/dist/policy/content-validator.d.ts.map +1 -0
  136. package/packages/core/dist/policy/content-validator.js +196 -0
  137. package/packages/core/dist/policy/content-validator.js.map +1 -0
  138. package/packages/core/dist/policy/default-policy.d.ts +46 -0
  139. package/packages/core/dist/policy/default-policy.d.ts.map +1 -0
  140. package/packages/core/dist/policy/default-policy.js +241 -0
  141. package/packages/core/dist/policy/default-policy.js.map +1 -0
  142. package/packages/core/dist/policy/events.d.ts +71 -0
  143. package/packages/core/dist/policy/events.d.ts.map +1 -0
  144. package/packages/core/dist/policy/events.js +8 -0
  145. package/packages/core/dist/policy/events.js.map +1 -0
  146. package/packages/core/dist/policy/index.d.ts +13 -0
  147. package/packages/core/dist/policy/index.d.ts.map +1 -0
  148. package/packages/core/dist/policy/index.js +9 -0
  149. package/packages/core/dist/policy/index.js.map +1 -0
  150. package/packages/core/dist/policy/integrity-tracker.d.ts +62 -0
  151. package/packages/core/dist/policy/integrity-tracker.d.ts.map +1 -0
  152. package/packages/core/dist/policy/integrity-tracker.js +79 -0
  153. package/packages/core/dist/policy/integrity-tracker.js.map +1 -0
  154. package/packages/core/dist/policy/policy-loader.d.ts +58 -0
  155. package/packages/core/dist/policy/policy-loader.d.ts.map +1 -0
  156. package/packages/core/dist/policy/policy-loader.js +156 -0
  157. package/packages/core/dist/policy/policy-loader.js.map +1 -0
  158. package/packages/core/dist/policy/risk-classifier.d.ts +18 -0
  159. package/packages/core/dist/policy/risk-classifier.d.ts.map +1 -0
  160. package/packages/core/dist/policy/risk-classifier.js +47 -0
  161. package/packages/core/dist/policy/risk-classifier.js.map +1 -0
  162. package/packages/core/dist/policy/types.d.ts +131 -0
  163. package/packages/core/dist/policy/types.d.ts.map +1 -0
  164. package/packages/core/dist/policy/types.js +8 -0
  165. package/packages/core/dist/policy/types.js.map +1 -0
  166. package/LICENSE +0 -21
  167. package/README.md +0 -243
  168. package/packages/cli/bin/matimo.cjs +0 -26
package/package.json CHANGED
@@ -1,9 +1,12 @@
1
1
  {
2
2
  "name": "matimo",
3
- "version": "0.1.0-alpha.9",
4
- "description": "Universal tool provider SDK: Framework-agnostic YAML-driven tool ecosystem for AI agents. Execute a library of pre-built tools (Slack, Gmail, GitHub, AWS, etc.) or define your own in YAML.",
3
+ "version": "0.1.1",
4
+ "description": "A framework-agnostic SDK with pre-built providers, a skills knowledge layer, MCP out of the box, and agents that autonomously build new capabilities — governed by a policy engine you control.",
5
5
  "main": "packages/core/dist/index.js",
6
6
  "types": "packages/core/dist/index.d.ts",
7
+ "bin": {
8
+ "matimo": "packages/cli/dist/bin.js"
9
+ },
7
10
  "type": "module",
8
11
  "packageManager": "pnpm@8.15.0",
9
12
  "private": false,
@@ -47,7 +50,6 @@
47
50
  "files": [
48
51
  "packages/core/dist",
49
52
  "packages/cli/dist",
50
- "packages/cli/bin",
51
53
  "README.md",
52
54
  "LICENSE"
53
55
  ],
@@ -55,8 +57,8 @@
55
57
  "access": "public"
56
58
  },
57
59
  "dependencies": {
58
- "@matimo/cli": "0.1.0-alpha.9",
59
- "@matimo/core": "0.1.0-alpha.9"
60
+ "@matimo/cli": "0.1.0",
61
+ "@matimo/core": "0.1.0"
60
62
  },
61
63
  "devDependencies": {
62
64
  "@commitlint/cli": "^20.3.1",
@@ -65,14 +67,14 @@
65
67
  "@types/jest": "^30.0.0",
66
68
  "@types/js-yaml": "^4.0.9",
67
69
  "@types/node": "^25.1.0",
68
- "@typescript-eslint/eslint-plugin": "^8.54.0",
69
- "@typescript-eslint/parser": "^8.54.0",
70
+ "@typescript-eslint/eslint-plugin": "^8.58.0",
71
+ "@typescript-eslint/parser": "^8.58.0",
70
72
  "eslint": "^9.39.2",
71
73
  "husky": "^9.1.7",
72
74
  "jest": "^30.2.0",
73
75
  "langchain": "^1.2.18",
74
76
  "prettier": "^3.8.1",
75
- "ts-jest": "^29.4.6",
77
+ "ts-jest": "^29.4.9",
76
78
  "ts-node": "^10.9.2",
77
79
  "tsx": "^4.21.0",
78
80
  "typescript": "^5.9.3"
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=bin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":""}
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Matimo CLI entry point
4
+ *
5
+ * This is the npm bin target — compiled to dist/bin.js.
6
+ * All command routing (install, list, search, mcp, etc.) is handled by cli.ts.
7
+ *
8
+ * Uses tsx to register ESM hooks so extensionless imports in @matimo/core work
9
+ * correctly. This is required because @matimo/core compiles TypeScript with
10
+ * "moduleResolution": "bundler" which omits .js extensions in the output.
11
+ *
12
+ * Tool discovery works automatically via ToolLoader.getNodeModulesPath():
13
+ * 1. Walks up from process.cwd() to find node_modules/@matimo/*
14
+ * 2. Falls back to __dirname-based discovery (for Claude Desktop where cwd='/')
15
+ *
16
+ * Users run:
17
+ * npx matimo mcp # stdio mode
18
+ * npx matimo mcp --transport http # http mode
19
+ * npx matimo install slack gmail # install providers
20
+ * npx matimo list # list installed tools
21
+ */
22
+ import { spawn } from 'child_process';
23
+ import { dirname, join } from 'path';
24
+ import { fileURLToPath } from 'url';
25
+ import { createRequire } from 'module';
26
+ const __filename = fileURLToPath(import.meta.url);
27
+ const __dirname = dirname(__filename);
28
+ // Resolve tsx from this package's dependencies
29
+ const require = createRequire(import.meta.url);
30
+ let tsxBin;
31
+ try {
32
+ const tsxPkgPath = require.resolve('tsx/package.json');
33
+ tsxBin = join(dirname(tsxPkgPath), 'dist', 'cli.mjs');
34
+ }
35
+ catch {
36
+ tsxBin = 'tsx';
37
+ }
38
+ const cliScript = join(__dirname, 'cli.js');
39
+ const child = spawn(process.execPath, [tsxBin, cliScript, ...process.argv.slice(2)], {
40
+ stdio: 'inherit',
41
+ env: process.env,
42
+ });
43
+ child.on('error', (error) => {
44
+ console.error('āŒ Failed to start Matimo CLI. Make sure tsx is installed.');
45
+ console.error(' Run: npm install tsx');
46
+ console.error(' Error:', error.message);
47
+ process.exit(1);
48
+ });
49
+ child.on('exit', (code) => process.exit(code || 0));
50
+ //# sourceMappingURL=bin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,+CAA+C;AAC/C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,IAAI,MAAc,CAAC;AACnB,IAAI,CAAC;IACH,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACvD,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AACxD,CAAC;AAAC,MAAM,CAAC;IACP,MAAM,GAAG,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;IACnF,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE,OAAO,CAAC,GAAG;CACjB,CAAC,CAAC;AAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;IACjC,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC3E,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACzC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAmB,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAgBA,wBAAgB,QAAQ,IAAI,IAAI,CAmC/B;AAED;;GAEG;AACH,wBAAsB,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwC5D"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAmBA,wBAAgB,QAAQ,IAAI,IAAI,CAmE/B;AAED;;GAEG;AACH,wBAAsB,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiD5D"}
@@ -1,8 +1,11 @@
1
1
  import { readFileSync } from 'fs';
2
- import { join } from 'path';
2
+ import { join, basename } from 'path';
3
3
  import { installCommand } from './commands/install.js';
4
4
  import { listCommand } from './commands/list.js';
5
5
  import { searchCommand } from './commands/search.js';
6
+ import { mcpCommand } from './commands/mcp.js';
7
+ import { doctorCommand } from './commands/doctor.js';
8
+ import { reviewCommand } from './commands/review.js';
6
9
  function getPackageVersion() {
7
10
  try {
8
11
  const pkgPath = join(process.cwd(), 'package.json');
@@ -29,10 +32,34 @@ Commands:
29
32
  search <query> Search for available tools
30
33
  Example: matimo search slack
31
34
 
35
+ mcp Start MCP server (Model Context Protocol)
36
+ Example: matimo mcp
37
+ Example: matimo mcp --transport http --port 3000
38
+
39
+ mcp setup Generate config for Claude Desktop / Cursor
40
+ Example: matimo mcp setup
41
+
42
+ doctor Diagnose your Matimo setup (env vars, YAML validity, Node version)
43
+ Example: matimo doctor
44
+
45
+ review Review agent-created tools awaiting human approval
46
+ Example: matimo review list
47
+ Example: matimo review approve my_tool
48
+ Example: matimo review reject my_tool
49
+
32
50
  help Show this help message
33
51
 
34
52
  version Show version information
35
53
 
54
+ MCP Options:
55
+ --transport <type> Transport mode: stdio (default) or http
56
+ --port <number> HTTP port (default: 3000)
57
+ --tools <list> Comma-separated tool allowlist
58
+ --exclude <list> Comma-separated tool denylist
59
+ --secrets <list> Secret resolvers: env,dotenv,vault,aws
60
+ --token <string> Bearer token for HTTP mode
61
+ --env-file <path> Path to .env file
62
+
36
63
  Examples:
37
64
  # Install new tools
38
65
  $ matimo install slack
@@ -43,7 +70,15 @@ Examples:
43
70
 
44
71
  # Search for tools
45
72
  $ matimo search email
46
- $ matimo search database
73
+
74
+ # Start MCP server for Claude Desktop
75
+ $ matimo mcp
76
+
77
+ # Start MCP HTTP server with auth
78
+ $ MATIMO_MCP_TOKEN=secret matimo mcp --transport http
79
+
80
+ # Generate Claude Desktop config
81
+ $ matimo mcp setup
47
82
 
48
83
  Documentation: https://github.com/tallclub/matimo#readme
49
84
  Issues: https://github.com/tallclub/matimo/issues
@@ -71,6 +106,15 @@ export async function main(cliArgs) {
71
106
  case 'search':
72
107
  await searchCommand(params[0] || '');
73
108
  break;
109
+ case 'mcp':
110
+ await mcpCommand(params);
111
+ break;
112
+ case 'doctor':
113
+ await doctorCommand();
114
+ break;
115
+ case 'review':
116
+ await reviewCommand(params);
117
+ break;
74
118
  case 'help':
75
119
  case '-h':
76
120
  case '--help':
@@ -92,4 +136,22 @@ export async function main(cliArgs) {
92
136
  process.exit(1);
93
137
  }
94
138
  }
139
+ // Auto-execute when run directly (e.g., via tsx src/cli.ts or through bin.ts).
140
+ // bin.ts spawns: node <tsx-cli.mjs> <cli.js> ...args
141
+ // - When tsx shifts its own entry out of argv: process.argv[1] == cli.js
142
+ // - When tsx does NOT shift argv: process.argv[2] == cli.js
143
+ // Checking both slots handles either tsx version. When imported as a module
144
+ // (tests, bin.ts import) neither slot contains 'cli.js'.
145
+ // Use basename() to normalise path separators (POSIX / and Windows \).
146
+ /* istanbul ignore next */
147
+ const toCliJs = (s) => basename(s).replace(/\.ts$/, '.js');
148
+ /* istanbul ignore next */
149
+ const isRunDirectly = toCliJs(process.argv[1] ?? '') === 'cli.js' || toCliJs(process.argv[2] ?? '') === 'cli.js';
150
+ /* istanbul ignore next */
151
+ if (isRunDirectly) {
152
+ main().catch((error) => {
153
+ console.error('āŒ Fatal error:', error);
154
+ process.exit(1);
155
+ });
156
+ }
95
157
  //# sourceMappingURL=cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,SAAS,iBAAiB;IACxB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QACtD,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCd,CAAC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAkB;IAC3C,MAAM,IAAI,GAAG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,QAAQ,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,QAAQ,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;YAC9B,KAAK,SAAS;gBACZ,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;gBAC7B,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,WAAW,EAAE,CAAC;gBACpB,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBACrC,MAAM;YACR,KAAK,MAAM,CAAC;YACZ,KAAK,IAAI,CAAC;YACV,KAAK,QAAQ;gBACX,QAAQ,EAAE,CAAC;gBACX,MAAM;YACR,KAAK,SAAS,CAAC;YACf,KAAK,IAAI,CAAC;YACV,KAAK,WAAW;gBACd,OAAO,CAAC,IAAI,CAAC,eAAe,iBAAiB,EAAE,EAAE,CAAC,CAAC;gBACnD,MAAM;YACR;gBACE,OAAO,CAAC,KAAK,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;gBAC/C,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;gBAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function doctorCommand(): Promise<void>;
2
+ //# sourceMappingURL=doctor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAmDA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CA8JnD"}
@@ -0,0 +1,174 @@
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+ const issues = [];
4
+ function check(label, pass, message, severity = 'error') {
5
+ const icon = pass ? 'āœ…' : severity === 'error' ? 'āŒ' : 'āš ļø ';
6
+ console.info(` ${icon} ${label}`);
7
+ if (!pass) {
8
+ issues.push({ severity, message });
9
+ console.info(` ${message}`);
10
+ }
11
+ }
12
+ function findNodeModules() {
13
+ let dir = process.cwd();
14
+ for (let i = 0; i < 10; i++) {
15
+ const candidate = path.join(dir, 'node_modules');
16
+ if (fs.existsSync(candidate))
17
+ return candidate;
18
+ const parent = path.dirname(dir);
19
+ if (parent === dir)
20
+ break;
21
+ dir = parent;
22
+ }
23
+ return null;
24
+ }
25
+ async function loadMatimoCoreExport(exportName) {
26
+ try {
27
+ // Dynamic import works in both ESM (built CLI) and CJS (ts-jest test transform)
28
+ const core = (await import('@matimo/core'));
29
+ return core[exportName] ?? null;
30
+ }
31
+ catch {
32
+ return null;
33
+ }
34
+ }
35
+ export async function doctorCommand() {
36
+ // Ensure issues do not accumulate across multiple invocations
37
+ issues.length = 0;
38
+ console.info('\n🩺 Matimo Doctor — Checking your setup...\n');
39
+ // ─── 1. Node.js version ────────────────────────────────────────────────
40
+ console.info('Node.js:');
41
+ const nodeVersion = process.versions.node;
42
+ const [major] = nodeVersion.split('.').map(Number);
43
+ check(`Node.js v${nodeVersion}`, major >= 18, `Node.js 18+ required. You are running ${nodeVersion}. Upgrade: https://nodejs.org`);
44
+ console.info('');
45
+ // ─── 2. @matimo/* packages ─────────────────────────────────────────────
46
+ const nodeModulesPath = findNodeModules();
47
+ console.info('@matimo/* packages:');
48
+ if (!nodeModulesPath) {
49
+ check('node_modules', false, 'node_modules not found. Run "pnpm install" or "npm install".');
50
+ console.info('');
51
+ }
52
+ else {
53
+ const matimoScope = path.join(nodeModulesPath, '@matimo');
54
+ const hasScope = fs.existsSync(matimoScope);
55
+ if (!hasScope) {
56
+ check('@matimo scope', false, 'No @matimo/* packages installed. Run "matimo install slack" to get started.', 'warn');
57
+ }
58
+ else {
59
+ const packages = fs.readdirSync(matimoScope).filter((d) => !d.startsWith('.'));
60
+ if (packages.length === 0) {
61
+ check('@matimo scope', false, 'No @matimo/* packages installed. Run "matimo install slack" to get started.', 'warn');
62
+ }
63
+ else {
64
+ for (const pkg of packages) {
65
+ const pkgDir = path.join(matimoScope, pkg);
66
+ const pkgJsonPath = path.join(pkgDir, 'package.json');
67
+ if (!fs.existsSync(pkgJsonPath))
68
+ continue;
69
+ console.info(` šŸ“¦ @matimo/${pkg}`);
70
+ // Check env vars for auth placeholders
71
+ const toolsDir = path.join(pkgDir, 'tools');
72
+ if (fs.existsSync(toolsDir)) {
73
+ const toolDirs = fs.readdirSync(toolsDir).filter((d) => {
74
+ return fs.existsSync(path.join(toolsDir, d, 'definition.yaml'));
75
+ });
76
+ const missingEnv = [];
77
+ const seenVars = new Set();
78
+ for (const toolName of toolDirs) {
79
+ const yamlPath = path.join(toolsDir, toolName, 'definition.yaml');
80
+ const content = fs.readFileSync(yamlPath, 'utf-8');
81
+ // Scan for {ENV_VAR_NAME} placeholders in headers/URLs
82
+ const placeholderRegex = /\{(\w+)\}/g;
83
+ let match;
84
+ while ((match = placeholderRegex.exec(content)) !== null) {
85
+ const name = match[1];
86
+ if (isAuthVar(name) && !seenVars.has(name)) {
87
+ seenVars.add(name);
88
+ if (!process.env[name]) {
89
+ missingEnv.push(name);
90
+ }
91
+ }
92
+ }
93
+ }
94
+ if (missingEnv.length > 0) {
95
+ issues.push({
96
+ severity: 'error',
97
+ message: `@matimo/${pkg}: missing env vars: ${missingEnv.join(', ')}`,
98
+ });
99
+ for (const v of missingEnv) {
100
+ console.info(` āŒ Missing env var: ${v}`);
101
+ }
102
+ }
103
+ else {
104
+ console.info(` āœ… All required env vars are set`);
105
+ }
106
+ // Validate YAML schemas
107
+ let yamlErrors = 0;
108
+ const validateToolDefinition = await loadMatimoCoreExport('validateToolDefinition');
109
+ if (validateToolDefinition) {
110
+ const yaml = await import('js-yaml');
111
+ for (const toolName of toolDirs) {
112
+ const yamlPath = path.join(toolsDir, toolName, 'definition.yaml');
113
+ try {
114
+ const parsed = yaml.load(fs.readFileSync(yamlPath, 'utf-8'));
115
+ validateToolDefinition(parsed);
116
+ }
117
+ catch (err) {
118
+ yamlErrors++;
119
+ issues.push({
120
+ severity: 'error',
121
+ message: `@matimo/${pkg}/${toolName}: YAML invalid — ${err.message}`,
122
+ });
123
+ console.info(` āŒ ${toolName}: invalid YAML`);
124
+ console.info(` ${err.message.split('\n')[0]}`);
125
+ }
126
+ }
127
+ if (yamlErrors === 0 && toolDirs.length > 0) {
128
+ console.info(` āœ… ${toolDirs.length} tool YAML(s) valid`);
129
+ }
130
+ }
131
+ }
132
+ console.info('');
133
+ }
134
+ }
135
+ }
136
+ }
137
+ // ─── 3. MATIMO_APPROVAL_SECRET ─────────────────────────────────────────
138
+ console.info('Policy / Approval:');
139
+ const hasApprovalSecret = !!process.env.MATIMO_APPROVAL_SECRET;
140
+ check('MATIMO_APPROVAL_SECRET', hasApprovalSecret, 'MATIMO_APPROVAL_SECRET is not set. Agent-created tool approvals will use a random secret (not persistent across restarts). Set it in your .env file.', 'warn');
141
+ console.info('');
142
+ // ─── 4. Summary ────────────────────────────────────────────────────────
143
+ const errors = issues.filter((i) => i.severity === 'error');
144
+ const warnings = issues.filter((i) => i.severity === 'warn');
145
+ console.info('─'.repeat(60));
146
+ if (errors.length === 0 && warnings.length === 0) {
147
+ console.info('\nāœ… Matimo is ready! No issues found.\n');
148
+ }
149
+ else {
150
+ if (errors.length > 0) {
151
+ console.info(`\nāŒ ${errors.length} error(s) found — fix before using Matimo:\n`);
152
+ errors.forEach((e, i) => console.info(` ${i + 1}. ${e.message}`));
153
+ console.info('');
154
+ }
155
+ if (warnings.length > 0) {
156
+ console.info(`āš ļø ${warnings.length} warning(s):\n`);
157
+ warnings.forEach((w, i) => console.info(` ${i + 1}. ${w.message}`));
158
+ console.info('');
159
+ }
160
+ }
161
+ if (errors.length > 0)
162
+ process.exit(1);
163
+ }
164
+ /** Heuristic: is this placeholder likely an auth/secret env var? */
165
+ function isAuthVar(name) {
166
+ const upper = name.toUpperCase();
167
+ return (upper.includes('TOKEN') ||
168
+ upper.includes('SECRET') ||
169
+ upper.includes('KEY') ||
170
+ upper.includes('PASSWORD') ||
171
+ upper.includes('CREDENTIAL') ||
172
+ upper.includes('AUTH'));
173
+ }
174
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * CLI command: matimo mcp setup
3
+ *
4
+ * Interactive config generator for MCP server.
5
+ * Detects installed tools, scans for required auth env vars,
6
+ * and outputs a ready-to-paste Claude Desktop / Cursor config.
7
+ */
8
+ export declare function mcpSetupCommand(): Promise<void>;
9
+ //# sourceMappingURL=mcp-setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-setup.d.ts","sourceRoot":"","sources":["../../src/commands/mcp-setup.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAiHrD"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * CLI command: matimo mcp setup
3
+ *
4
+ * Interactive config generator for MCP server.
5
+ * Detects installed tools, scans for required auth env vars,
6
+ * and outputs a ready-to-paste Claude Desktop / Cursor config.
7
+ */
8
+ export async function mcpSetupCommand() {
9
+ console.info('\nšŸ”Ø Matimo MCP Setup\n');
10
+ console.info('Scanning for installed tool packages...\n');
11
+ try {
12
+ // @ts-ignore - dynamic import of package resolved at runtime
13
+ const { ToolLoader, extractAuthPlaceholders } = await import('@matimo/core');
14
+ const loader = new ToolLoader();
15
+ // Auto-discover installed packages
16
+ const toolPaths = loader.autoDiscoverPackages();
17
+ if (toolPaths.length === 0) {
18
+ console.info('No @matimo/* tool packages found.');
19
+ console.info('Install tools first: matimo install slack github\n');
20
+ return;
21
+ }
22
+ // Load all tools
23
+ const tools = loader.loadToolsFromMultiplePaths(toolPaths);
24
+ console.info(`Found ${tools.size} tools across ${toolPaths.length} package(s):\n`);
25
+ // Group tools by provider (extract from tool name prefix)
26
+ const providers = new Map();
27
+ const authVars = new Set();
28
+ for (const [name, tool] of tools) {
29
+ // Extract provider from tool name (e.g., "slack_send" → "slack")
30
+ const provider = name.includes('_')
31
+ ? name.split('_')[0]
32
+ : name.includes('-')
33
+ ? name.split('-')[0]
34
+ : 'core';
35
+ if (!providers.has(provider)) {
36
+ providers.set(provider, []);
37
+ }
38
+ providers.get(provider).push(name);
39
+ // Extract auth placeholders
40
+ const placeholders = extractAuthPlaceholders(tool);
41
+ for (const p of placeholders) {
42
+ authVars.add(p);
43
+ }
44
+ }
45
+ // Display providers and tools
46
+ for (const [provider, toolNames] of providers) {
47
+ console.info(` šŸ“¦ ${provider} (${toolNames.length} tools)`);
48
+ for (const name of toolNames.slice(0, 5)) {
49
+ console.info(` • ${name}`);
50
+ }
51
+ if (toolNames.length > 5) {
52
+ console.info(` ... and ${toolNames.length - 5} more`);
53
+ }
54
+ }
55
+ console.info('');
56
+ // Display required env vars
57
+ if (authVars.size > 0) {
58
+ console.info('šŸ” Required environment variables:\n');
59
+ for (const v of authVars) {
60
+ const value = process.env[v] || process.env[`MATIMO_${v}`];
61
+ const status = value ? 'āœ…' : 'āŒ';
62
+ console.info(` ${status} ${v}`);
63
+ }
64
+ console.info('');
65
+ }
66
+ // Generate Claude Desktop config
67
+ const envBlock = {};
68
+ for (const v of authVars) {
69
+ envBlock[v] = process.env[v] || process.env[`MATIMO_${v}`] || '<your-token>';
70
+ }
71
+ const claudeConfig = {
72
+ mcpServers: {
73
+ matimo: {
74
+ command: 'npx',
75
+ args: ['matimo', 'mcp'],
76
+ env: envBlock,
77
+ },
78
+ },
79
+ };
80
+ console.info('šŸ“‹ Claude Desktop config (paste into Settings → Developer → MCP Servers):\n');
81
+ console.info(JSON.stringify(claudeConfig, null, 2));
82
+ // Generate Cursor config
83
+ console.info('\nšŸ“‹ Cursor config (paste into .cursor/mcp.json):\n');
84
+ const cursorConfig = {
85
+ mcpServers: {
86
+ matimo: {
87
+ command: 'npx',
88
+ args: ['matimo', 'mcp'],
89
+ env: envBlock,
90
+ },
91
+ },
92
+ };
93
+ console.info(JSON.stringify(cursorConfig, null, 2));
94
+ // HTTP mode example
95
+ console.info('\nšŸ“‹ HTTP mode (for remote hosting / Docker):\n');
96
+ const envExport = [...authVars].map((v) => ` ${v}=<your-token>`).join(' \\\n');
97
+ console.info(` ${envExport} \\`);
98
+ console.info(` MATIMO_MCP_TOKEN=<your-server-secret> \\`);
99
+ console.info(` npx matimo mcp --transport http --port 3000\n`);
100
+ }
101
+ catch (error) {
102
+ console.error('āŒ Setup failed:', error instanceof Error ? error.message : String(error));
103
+ process.exit(1);
104
+ }
105
+ }
106
+ //# sourceMappingURL=mcp-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-setup.js","sourceRoot":"","sources":["../../src/commands/mcp-setup.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACxC,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IAE1D,IAAI,CAAC;QACH,6DAA6D;QAC7D,MAAM,EAAE,UAAU,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QAC7E,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAEhC,mCAAmC;QACnC,MAAM,SAAS,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAC;QAEhD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;YACnE,OAAO;QACT,CAAC;QAED,iBAAiB;QACjB,MAAM,KAAK,GAAG,MAAM,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;QAE3D,OAAO,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,iBAAiB,SAAS,CAAC,MAAM,gBAAgB,CAAC,CAAC;QAEnF,0DAA0D;QAC1D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QAEnC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;YACjC,iEAAiE;YACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACjC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACpB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAClB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACpB,CAAC,CAAC,MAAM,CAAC;YAEb,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC9B,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEpC,4BAA4B;YAC5B,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;YACnD,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;gBAC7B,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,8BAA8B;QAC9B,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,SAAS,EAAE,CAAC;YAC9C,OAAO,CAAC,IAAI,CAAC,QAAQ,QAAQ,KAAK,SAAS,CAAC,MAAM,SAAS,CAAC,CAAC;YAC7D,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACzC,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;YACjC,CAAC;YACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC,gBAAgB,SAAS,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEjB,4BAA4B;QAC5B,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;YACrD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;YACnC,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,CAAC;QAED,iCAAiC;QACjC,MAAM,QAAQ,GAA2B,EAAE,CAAC;QAC5C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,cAAc,CAAC;QAC/E,CAAC;QAED,MAAM,YAAY,GAAG;YACnB,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,OAAO,EAAE,KAAK;oBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;oBACvB,GAAG,EAAE,QAAQ;iBACd;aACF;SACF,CAAC;QAEF,OAAO,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC;QAC5F,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAEpD,yBAAyB;QACzB,OAAO,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACpE,MAAM,YAAY,GAAG;YACnB,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,OAAO,EAAE,KAAK;oBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;oBACvB,GAAG,EAAE,QAAQ;iBACd;aACF;SACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAEpD,oBAAoB;QACpB,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChF,OAAO,CAAC,IAAI,CAAC,KAAK,SAAS,KAAK,CAAC,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAClE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACzF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * CLI command: matimo mcp
3
+ *
4
+ * Starts the Matimo MCP server with configurable transport and options.
5
+ *
6
+ * Usage:
7
+ * matimo mcp # stdio mode (default)
8
+ * matimo mcp --transport http --port 3000 # HTTP mode
9
+ * matimo mcp --tools slack,github # only these tools
10
+ * matimo mcp --exclude postgres # exclude these tools
11
+ * matimo mcp --secrets env,vault # secret resolver chain
12
+ * matimo mcp --token my-secret # HTTP bearer token
13
+ * matimo mcp --tool-paths /path/to/tools # custom tool paths
14
+ * matimo mcp --skill-paths /path/to/skills # custom skill paths
15
+ */
16
+ export declare function mcpCommand(params: string[]): Promise<void>;
17
+ //# sourceMappingURL=mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA8KH,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA8FhE"}