@cyanheads/cyanheads-mcp-server 0.3.2 → 0.4.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 (46) hide show
  1. package/AGENTS.md +30 -26
  2. package/CLAUDE.md +30 -26
  3. package/Dockerfile +16 -7
  4. package/README.md +17 -17
  5. package/changelog/0.3.x/0.3.3.md +24 -0
  6. package/changelog/0.3.x/0.3.4.md +33 -0
  7. package/changelog/0.4.x/0.4.0.md +21 -0
  8. package/changelog/template.md +5 -3
  9. package/dist/config/server-config.d.ts +1 -1
  10. package/dist/config/server-config.d.ts.map +1 -1
  11. package/dist/config/server-config.js +13 -6
  12. package/dist/config/server-config.js.map +1 -1
  13. package/dist/index.js +10 -7
  14. package/dist/index.js.map +1 -1
  15. package/dist/mcp-server/tools/definitions/{describe.tool.d.ts → describe-entry.tool.d.ts} +9 -9
  16. package/dist/mcp-server/tools/definitions/describe-entry.tool.d.ts.map +1 -0
  17. package/dist/mcp-server/tools/definitions/{describe.tool.js → describe-entry.tool.js} +19 -10
  18. package/dist/mcp-server/tools/definitions/describe-entry.tool.js.map +1 -0
  19. package/dist/mcp-server/tools/definitions/{search.tool.d.ts → search-catalog.tool.d.ts} +9 -9
  20. package/dist/mcp-server/tools/definitions/search-catalog.tool.d.ts.map +1 -0
  21. package/dist/mcp-server/tools/definitions/{search.tool.js → search-catalog.tool.js} +17 -8
  22. package/dist/mcp-server/tools/definitions/search-catalog.tool.js.map +1 -0
  23. package/dist/services/catalog/catalog-service.d.ts +14 -3
  24. package/dist/services/catalog/catalog-service.d.ts.map +1 -1
  25. package/dist/services/catalog/catalog-service.js +20 -16
  26. package/dist/services/catalog/catalog-service.js.map +1 -1
  27. package/dist/services/catalog/embeddings-runtime.d.ts.map +1 -1
  28. package/dist/services/catalog/embeddings-runtime.js.map +1 -1
  29. package/dist/services/catalog/remote-catalog-provider.d.ts.map +1 -1
  30. package/dist/services/catalog/self-record.d.ts +26 -0
  31. package/dist/services/catalog/self-record.d.ts.map +1 -0
  32. package/dist/services/catalog/self-record.js +88 -0
  33. package/dist/services/catalog/self-record.js.map +1 -0
  34. package/dist/services/catalog/service-instance.d.ts +17 -0
  35. package/dist/services/catalog/service-instance.d.ts.map +1 -0
  36. package/dist/services/catalog/service-instance.js +28 -0
  37. package/dist/services/catalog/service-instance.js.map +1 -0
  38. package/dist/services/catalog/types.d.ts +2 -0
  39. package/dist/services/catalog/types.d.ts.map +1 -1
  40. package/manifest.json +3 -3
  41. package/package.json +25 -22
  42. package/server.json +7 -7
  43. package/dist/mcp-server/tools/definitions/describe.tool.d.ts.map +0 -1
  44. package/dist/mcp-server/tools/definitions/describe.tool.js.map +0 -1
  45. package/dist/mcp-server/tools/definitions/search.tool.d.ts.map +0 -1
  46. package/dist/mcp-server/tools/definitions/search.tool.js.map +0 -1
@@ -0,0 +1,88 @@
1
+ /**
2
+ * @fileoverview Server-local catalog record for cyanheads-mcp-server itself.
3
+ * The remote fleet.json is generated by the portfolio from live `GET /mcp` +
4
+ * `tools/list` sweeps of the fleet and does not include the discovery front
5
+ * door, so the front door cannot describe itself from the remote catalog alone.
6
+ * This module supplies a static record that CatalogService consults only after
7
+ * a remote-catalog lookup misses.
8
+ * @module services/catalog/self-record
9
+ */
10
+ import { readFileSync } from 'node:fs';
11
+ import { describeEntryTool } from '../../mcp-server/tools/definitions/describe-entry.tool.js';
12
+ import { searchCatalogTool } from '../../mcp-server/tools/definitions/search-catalog.tool.js';
13
+ /** Catalog name this server is addressable by — the repo/package basename. */
14
+ export const SELF_RECORD_NAME = 'cyanheads-mcp-server';
15
+ /** Hosted Streamable HTTP endpoint for the discovery front door. */
16
+ const SELF_RECORD_ENDPOINT = 'https://cyanheads.caseyjhand.com/mcp';
17
+ /**
18
+ * Read `version` and `description` from this package's own package.json rather
19
+ * than restating them, so a release bump can never leave the self-record stale.
20
+ * Resolved relative to this module rather than `process.cwd()` so it holds under
21
+ * `npx`, Docker, and the test runner alike — `src/services/catalog/` and
22
+ * `dist/services/catalog/` sit at the same depth below the package root, and npm
23
+ * ships package.json in every published tarball.
24
+ */
25
+ function readSelfPackage() {
26
+ const raw = readFileSync(new URL('../../../package.json', import.meta.url), 'utf-8');
27
+ const parsed = JSON.parse(raw);
28
+ if (!parsed.version || !parsed.description) {
29
+ throw new Error('package.json is missing "version" or "description" for the self record');
30
+ }
31
+ return { description: parsed.description, version: parsed.version };
32
+ }
33
+ /**
34
+ * Derive the tool list from the registered tool definitions so the self record
35
+ * always names the tools this build actually advertises in `tools/list`.
36
+ *
37
+ * `embedding: []` is deliberate and safe. The vector index is built solely from
38
+ * `FleetPayload.servers` in `CatalogService._buildIndex`, which sizes its packed
39
+ * Float32Arrays from that payload and dimension-checks every vector it packs.
40
+ * This record is never a member of that payload — it is consulted only after an
41
+ * exact-name miss in `getServer()` / `getTool()` — so its embedding is never
42
+ * packed, never dot-producted, and never dimension-checked. The tradeoff is that
43
+ * `cyanheads_search_catalog` will not surface this server as a semantic match;
44
+ * only exact-name resolution reaches it.
45
+ */
46
+ function selfTools() {
47
+ return [searchCatalogTool, describeEntryTool].map((definition) => ({
48
+ name: definition.name,
49
+ description: definition.description,
50
+ embedding: [],
51
+ }));
52
+ }
53
+ let _record;
54
+ /**
55
+ * The static catalog record describing this server. Built on first use and
56
+ * memoized, so the package.json read costs nothing for a process that never
57
+ * resolves this name.
58
+ */
59
+ export function getSelfCatalogRecord() {
60
+ if (_record)
61
+ return _record;
62
+ const pkg = readSelfPackage();
63
+ _record = {
64
+ name: SELF_RECORD_NAME,
65
+ // Display identity across this fleet is the hyphenated repo name, not a Title Case label.
66
+ displayName: SELF_RECORD_NAME,
67
+ description: pkg.description,
68
+ category: 'utility',
69
+ endpoint: SELF_RECORD_ENDPOINT,
70
+ npm: '@cyanheads/cyanheads-mcp-server',
71
+ github: 'https://github.com/cyanheads/cyanheads-mcp-server',
72
+ version: pkg.version,
73
+ auth: 'none',
74
+ embedding: [],
75
+ tools: selfTools(),
76
+ };
77
+ return _record;
78
+ }
79
+ /**
80
+ * Look up one of this server's own tools by name. Returns null for any other
81
+ * name, leaving the caller's not-found path intact.
82
+ */
83
+ export function getSelfCatalogTool(name) {
84
+ const record = getSelfCatalogRecord();
85
+ const tool = record.tools.find((t) => t.name === name);
86
+ return tool ? { ...tool, serverRecord: record } : null;
87
+ }
88
+ //# sourceMappingURL=self-record.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"self-record.js","sourceRoot":"","sources":["../../../src/services/catalog/self-record.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uDAAuD,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,uDAAuD,CAAC;AAG1F,8EAA8E;AAC9E,MAAM,CAAC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAEvD,oEAAoE;AACpE,MAAM,oBAAoB,GAAG,sCAAsC,CAAC;AAOpE;;;;;;;GAOG;AACH,SAAS,eAAe;IACtB,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,GAAG,CAAC,uBAAuB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACrF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA+C,CAAC;IAC7E,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;AACtE,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,SAAS;IAChB,OAAO,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACjE,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,SAAS,EAAE,EAAE;KACd,CAAC,CAAC,CAAC;AACN,CAAC;AAED,IAAI,OAAkC,CAAC;AAEvC;;;;GAIG;AACH,MAAM,UAAU,oBAAoB;IAClC,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAE5B,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;IAC9B,OAAO,GAAG;QACR,IAAI,EAAE,gBAAgB;QACtB,0FAA0F;QAC1F,WAAW,EAAE,gBAAgB;QAC7B,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,oBAAoB;QAC9B,GAAG,EAAE,iCAAiC;QACtC,MAAM,EAAE,mDAAmD;QAC3D,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,EAAE;QACb,KAAK,EAAE,SAAS,EAAE;KACnB,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAY;IAEZ,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACvD,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACzD,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @fileoverview Process-wide CatalogService accessor.
3
+ *
4
+ * Deliberately separate from `catalog-service.ts`: tool definitions need the
5
+ * accessor, and the service needs the self record, which in turn derives its
6
+ * tool list from those same definitions. Keeping the accessor in a leaf module
7
+ * that depends on nothing but the service interface breaks what would otherwise
8
+ * be an import cycle between the tools and the service that serves them.
9
+ * @module services/catalog/service-instance
10
+ */
11
+ import type { ICatalogService } from './types.js';
12
+ /** Install the process-wide instance. Called by `initCatalogService()`. */
13
+ export declare function setCatalogService(service: ICatalogService): void;
14
+ export declare function getCatalogService(): ICatalogService;
15
+ /** Test-only reset. */
16
+ export declare function resetCatalogServiceForTests(): void;
17
+ //# sourceMappingURL=service-instance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-instance.d.ts","sourceRoot":"","sources":["../../../src/services/catalog/service-instance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAEhE;AAED,wBAAgB,iBAAiB,IAAI,eAAe,CAQnD;AAED,uBAAuB;AACvB,wBAAgB,2BAA2B,IAAI,IAAI,CAGlD"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @fileoverview Process-wide CatalogService accessor.
3
+ *
4
+ * Deliberately separate from `catalog-service.ts`: tool definitions need the
5
+ * accessor, and the service needs the self record, which in turn derives its
6
+ * tool list from those same definitions. Keeping the accessor in a leaf module
7
+ * that depends on nothing but the service interface breaks what would otherwise
8
+ * be an import cycle between the tools and the service that serves them.
9
+ * @module services/catalog/service-instance
10
+ */
11
+ import { serviceUnavailable } from '@cyanheads/mcp-ts-core/errors';
12
+ let _service;
13
+ /** Install the process-wide instance. Called by `initCatalogService()`. */
14
+ export function setCatalogService(service) {
15
+ _service = service;
16
+ }
17
+ export function getCatalogService() {
18
+ if (!_service) {
19
+ throw serviceUnavailable('CatalogService not initialized — call initCatalogService() in setup()', { reason: 'catalog_empty' });
20
+ }
21
+ return _service;
22
+ }
23
+ /** Test-only reset. */
24
+ export function resetCatalogServiceForTests() {
25
+ _service?.shutdown();
26
+ _service = undefined;
27
+ }
28
+ //# sourceMappingURL=service-instance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-instance.js","sourceRoot":"","sources":["../../../src/services/catalog/service-instance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGnE,IAAI,QAAqC,CAAC;AAE1C,2EAA2E;AAC3E,MAAM,UAAU,iBAAiB,CAAC,OAAwB;IACxD,QAAQ,GAAG,OAAO,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,kBAAkB,CACtB,uEAAuE,EACvE,EAAE,MAAM,EAAE,eAAe,EAAE,CAC5B,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,uBAAuB;AACvB,MAAM,UAAU,2BAA2B;IACzC,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,QAAQ,GAAG,SAAS,CAAC;AACvB,CAAC"}
@@ -141,6 +141,8 @@ export interface ICatalogService {
141
141
  category?: CatalogCategory;
142
142
  limit?: number;
143
143
  }): Promise<CatalogSearchResult[]>;
144
+ /** Stop the background refresh timer. */
145
+ shutdown(): void;
144
146
  /** Catalog summary for diagnostics. */
145
147
  stats(): {
146
148
  toolCount: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/catalog/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/catalog/types.ts"],"names":[],"mappings":"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"}
package/manifest.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "manifest_version": "0.3",
3
3
  "name": "cyanheads-mcp-server",
4
- "version": "0.3.2",
4
+ "version": "0.4.0",
5
5
  "description": "Fleet discovery for the cyanheads MCP ecosystem — semantic search + install snippets.",
6
6
  "author": { "name": "cyanheads" },
7
7
  "repository": {
@@ -33,14 +33,14 @@
33
33
  "catalog_url": {
34
34
  "type": "string",
35
35
  "title": "Catalog URL",
36
- "description": "Remote fleet.json endpoint (schema v2 with baked embeddings). Defaults to the canonical cyanheads fleet — override to point at your own hosted catalog.",
36
+ "description": "Remote fleet.json endpoint (schema v2 with baked embeddings), as an absolute URL. Defaults to the canonical cyanheads fleet — override to point at your own hosted catalog.",
37
37
  "required": false,
38
38
  "default": "https://caseyjhand.com/fleet.json"
39
39
  },
40
40
  "similarity_floor": {
41
41
  "type": "string",
42
42
  "title": "Similarity Floor",
43
- "description": "Cosine similarity cutoff for cyanheads_search results (0-1). Raise to require closer matches; lower to surface more candidates.",
43
+ "description": "Cosine similarity cutoff for cyanheads_search_catalog results. Must be within [0, 1] — raise to require closer matches; lower to surface more candidates.",
44
44
  "required": false,
45
45
  "default": "0.3"
46
46
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cyanheads/cyanheads-mcp-server",
3
3
  "mcpName": "io.github.cyanheads/cyanheads-mcp-server",
4
- "version": "0.3.2",
4
+ "version": "0.4.0",
5
5
  "description": "Fleet discovery for the cyanheads MCP ecosystem — semantic search + install snippets.",
6
6
  "type": "module",
7
7
  "main": "dist/index.js",
@@ -20,28 +20,28 @@
20
20
  "manifest.json",
21
21
  "server.json"
22
22
  ],
23
- "author": "cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/cyanheads-mcp-server#readme)",
23
+ "author": "Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)",
24
24
  "homepage": "https://github.com/cyanheads/cyanheads-mcp-server#readme",
25
25
  "bugs": {
26
26
  "url": "https://github.com/cyanheads/cyanheads-mcp-server/issues"
27
27
  },
28
28
  "scripts": {
29
- "build": "tsx scripts/build.ts",
30
- "rebuild": "tsx scripts/clean.ts && tsx scripts/build.ts",
31
- "clean": "tsx scripts/clean.ts",
32
- "devcheck": "tsx scripts/devcheck.ts",
29
+ "build": "bun run scripts/build.ts",
30
+ "rebuild": "bun run scripts/clean.ts && bun run scripts/build.ts",
31
+ "clean": "bun run scripts/clean.ts",
32
+ "devcheck": "bun run scripts/devcheck.ts",
33
33
  "audit:refresh": "rm -f bun.lock && bun install && bun audit",
34
- "tree": "tsx scripts/tree.ts",
35
- "list-skills": "tsx scripts/list-skills.ts",
34
+ "tree": "bun run scripts/tree.ts",
35
+ "list-skills": "bun run scripts/list-skills.ts",
36
36
  "format": "biome check --write .",
37
37
  "format:unsafe": "biome check --write --unsafe .",
38
- "lint:mcp": "tsx scripts/lint-mcp.ts",
39
- "lint:packaging": "tsx scripts/lint-packaging.ts",
40
- "bundle": "tsx scripts/build.ts && npx -y @anthropic-ai/mcpb pack . dist/cyanheads-mcp-server.mcpb",
38
+ "lint:mcp": "bun run scripts/lint-mcp.ts",
39
+ "lint:packaging": "bun run scripts/lint-packaging.ts",
40
+ "bundle": "bun run build && npx -y @anthropic-ai/mcpb pack . dist/cyanheads-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/cyanheads-mcp-server.mcpb",
41
41
  "publish-mcp": "mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish",
42
- "changelog:build": "tsx scripts/build-changelog.ts",
43
- "changelog:check": "tsx scripts/build-changelog.ts --check",
44
- "release:github": "tsx scripts/release-github.ts",
42
+ "changelog:build": "bun run scripts/build-changelog.ts",
43
+ "changelog:check": "bun run scripts/build-changelog.ts --check",
44
+ "release:github": "bun run scripts/release-github.ts",
45
45
  "test": "vitest run",
46
46
  "start": "node dist/index.js",
47
47
  "start:stdio": "MCP_TRANSPORT_TYPE=stdio node dist/index.js",
@@ -51,6 +51,8 @@
51
51
  "mcp",
52
52
  "mcp-server",
53
53
  "model-context-protocol",
54
+ "stdio",
55
+ "streamable-http",
54
56
  "mcp-discovery",
55
57
  "mcp-fleet",
56
58
  "semantic-search",
@@ -63,6 +65,7 @@
63
65
  "url": "git+https://github.com/cyanheads/cyanheads-mcp-server.git"
64
66
  },
65
67
  "license": "Apache-2.0",
68
+ "packageManager": "bun@1.3.14",
66
69
  "engines": {
67
70
  "bun": ">=1.3.0",
68
71
  "node": ">=24.0.0"
@@ -71,19 +74,19 @@
71
74
  "access": "public"
72
75
  },
73
76
  "dependencies": {
74
- "@cyanheads/mcp-ts-core": "^0.9.21",
77
+ "@cyanheads/mcp-ts-core": "^0.11.0",
75
78
  "@huggingface/transformers": "4.2.0",
76
79
  "pino-pretty": "^13.1.3",
77
80
  "zod": "^4.4.3"
78
81
  },
79
82
  "devDependencies": {
80
- "@biomejs/biome": "^2.4.16",
81
- "@types/node": "^25.9.1",
83
+ "@biomejs/biome": "^2.5.5",
84
+ "@socketsecurity/bun-security-scanner": "^1.1.2",
85
+ "@types/node": "^26.1.1",
82
86
  "depcheck": "^1.4.7",
83
- "ignore": "^7.0.5",
84
- "tsc-alias": "^1.8.17",
85
- "tsx": "^4.22.4",
86
- "typescript": "^6.0.3",
87
- "vitest": "^4.1.8"
87
+ "ignore": "^7.0.6",
88
+ "tsc-alias": "^1.9.1",
89
+ "typescript": "^7.0.2",
90
+ "vitest": "^4.1.10"
88
91
  }
89
92
  }
package/server.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "url": "https://github.com/cyanheads/cyanheads-mcp-server",
7
7
  "source": "github"
8
8
  },
9
- "version": "0.3.2",
9
+ "version": "0.4.0",
10
10
  "remotes": [
11
11
  {
12
12
  "type": "streamable-http",
@@ -19,7 +19,7 @@
19
19
  "registryBaseUrl": "https://registry.npmjs.org",
20
20
  "identifier": "@cyanheads/cyanheads-mcp-server",
21
21
  "runtimeHint": "node",
22
- "version": "0.3.2",
22
+ "version": "0.4.0",
23
23
  "packageArguments": [
24
24
  { "type": "positional", "value": "run" },
25
25
  { "type": "positional", "value": "start:stdio" }
@@ -41,7 +41,7 @@
41
41
  },
42
42
  {
43
43
  "name": "CATALOG_REFRESH_SECONDS",
44
- "description": "Background poll interval for fleet.json refresh. 0 disables.",
44
+ "description": "Background poll interval for fleet.json refresh. 0 disables; otherwise must be > 0.",
45
45
  "format": "string",
46
46
  "isRequired": false,
47
47
  "default": "3600"
@@ -55,7 +55,7 @@
55
55
  },
56
56
  {
57
57
  "name": "SIMILARITY_FLOOR",
58
- "description": "Cosine similarity cutoff for cyanheads_search results (0-1).",
58
+ "description": "Cosine similarity cutoff for cyanheads_search_catalog results. Must be within [0, 1].",
59
59
  "format": "string",
60
60
  "isRequired": false,
61
61
  "default": "0.3"
@@ -68,7 +68,7 @@
68
68
  "registryBaseUrl": "https://registry.npmjs.org",
69
69
  "identifier": "@cyanheads/cyanheads-mcp-server",
70
70
  "runtimeHint": "node",
71
- "version": "0.3.2",
71
+ "version": "0.4.0",
72
72
  "packageArguments": [
73
73
  { "type": "positional", "value": "run" },
74
74
  { "type": "positional", "value": "start:http" }
@@ -118,7 +118,7 @@
118
118
  },
119
119
  {
120
120
  "name": "CATALOG_REFRESH_SECONDS",
121
- "description": "Background poll interval for fleet.json refresh. 0 disables.",
121
+ "description": "Background poll interval for fleet.json refresh. 0 disables; otherwise must be > 0.",
122
122
  "format": "string",
123
123
  "isRequired": false,
124
124
  "default": "3600"
@@ -132,7 +132,7 @@
132
132
  },
133
133
  {
134
134
  "name": "SIMILARITY_FLOOR",
135
- "description": "Cosine similarity cutoff for cyanheads_search results (0-1).",
135
+ "description": "Cosine similarity cutoff for cyanheads_search_catalog results. Must be within [0, 1].",
136
136
  "format": "string",
137
137
  "isRequired": false,
138
138
  "default": "0.3"
@@ -1 +0,0 @@
1
- {"version":3,"file":"describe.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/describe.tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAIjE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA+RvB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"describe.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/describe.tool.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"search.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search.tool.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyNrB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"search.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search.tool.ts"],"names":[],"mappings":"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"}