@lightsage/mcp 0.4.18 → 0.4.20

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 (118) hide show
  1. package/README.md +2 -2
  2. package/api/mcp.js +4 -1
  3. package/bin/mcp-server.js +478 -129
  4. package/bin/mcp-server.js.map +30 -21
  5. package/esm/funcs/agentsList.d.ts +1 -1
  6. package/esm/funcs/agentsList.js +1 -1
  7. package/esm/funcs/promptsList.d.ts +1 -1
  8. package/esm/funcs/promptsList.js +3 -1
  9. package/esm/funcs/promptsList.js.map +1 -1
  10. package/esm/funcs/promptsRun.d.ts +2 -1
  11. package/esm/funcs/promptsRun.d.ts.map +1 -1
  12. package/esm/funcs/promptsRun.js +2 -1
  13. package/esm/funcs/promptsRun.js.map +1 -1
  14. package/esm/funcs/promptsTargetsList.d.ts +16 -0
  15. package/esm/funcs/promptsTargetsList.d.ts.map +1 -0
  16. package/esm/funcs/promptsTargetsList.js +86 -0
  17. package/esm/funcs/promptsTargetsList.js.map +1 -0
  18. package/esm/funcs/promptsTargetsSet.d.ts +16 -0
  19. package/esm/funcs/promptsTargetsSet.d.ts.map +1 -0
  20. package/esm/funcs/promptsTargetsSet.js +83 -0
  21. package/esm/funcs/promptsTargetsSet.js.map +1 -0
  22. package/esm/landing-page.js +1 -1
  23. package/esm/lib/config.d.ts +2 -2
  24. package/esm/lib/config.js +2 -2
  25. package/esm/mcp-server/mcp-server.js +1 -1
  26. package/esm/mcp-server/server.d.ts.map +1 -1
  27. package/esm/mcp-server/server.js +5 -1
  28. package/esm/mcp-server/server.js.map +1 -1
  29. package/esm/mcp-server/tools/agentsList.js +1 -1
  30. package/esm/mcp-server/tools/agentsList.js.map +1 -1
  31. package/esm/mcp-server/tools/promptsList.js +1 -1
  32. package/esm/mcp-server/tools/promptsList.js.map +1 -1
  33. package/esm/mcp-server/tools/promptsRun.d.ts.map +1 -1
  34. package/esm/mcp-server/tools/promptsRun.js +2 -1
  35. package/esm/mcp-server/tools/promptsRun.js.map +1 -1
  36. package/esm/mcp-server/tools/promptsTargetsList.d.ts +7 -0
  37. package/esm/mcp-server/tools/promptsTargetsList.d.ts.map +1 -0
  38. package/esm/mcp-server/tools/promptsTargetsList.js +35 -0
  39. package/esm/mcp-server/tools/promptsTargetsList.js.map +1 -0
  40. package/esm/mcp-server/tools/promptsTargetsSet.d.ts +7 -0
  41. package/esm/mcp-server/tools/promptsTargetsSet.d.ts.map +1 -0
  42. package/esm/mcp-server/tools/promptsTargetsSet.js +35 -0
  43. package/esm/mcp-server/tools/promptsTargetsSet.js.map +1 -0
  44. package/esm/models/createv2promptrunrequest.js +1 -1
  45. package/esm/models/createv2promptrunrequest.js.map +1 -1
  46. package/esm/models/evaltemplateschedule.d.ts +4 -4
  47. package/esm/models/evaltemplateschedule.d.ts.map +1 -1
  48. package/esm/models/evaltemplateschedule.js +4 -3
  49. package/esm/models/evaltemplateschedule.js.map +1 -1
  50. package/esm/models/setv2prompttargetsrequest.d.ts +8 -0
  51. package/esm/models/setv2prompttargetsrequest.d.ts.map +1 -0
  52. package/esm/models/setv2prompttargetsrequest.js +11 -0
  53. package/esm/models/setv2prompttargetsrequest.js.map +1 -0
  54. package/esm/models/setv2prompttargetsresponse.d.ts +9 -0
  55. package/esm/models/setv2prompttargetsresponse.d.ts.map +1 -0
  56. package/esm/models/setv2prompttargetsresponse.js +12 -0
  57. package/esm/models/setv2prompttargetsresponse.js.map +1 -0
  58. package/esm/models/v2listpromptsresponse.d.ts +2 -0
  59. package/esm/models/v2listpromptsresponse.d.ts.map +1 -1
  60. package/esm/models/v2listpromptsresponse.js +3 -1
  61. package/esm/models/v2listpromptsresponse.js.map +1 -1
  62. package/esm/models/v2promptslistop.d.ts +2 -0
  63. package/esm/models/v2promptslistop.d.ts.map +1 -1
  64. package/esm/models/v2promptslistop.js +3 -0
  65. package/esm/models/v2promptslistop.js.map +1 -1
  66. package/esm/models/v2prompttarget.d.ts +44 -0
  67. package/esm/models/v2prompttarget.d.ts.map +1 -0
  68. package/esm/models/v2prompttarget.js +41 -0
  69. package/esm/models/v2prompttarget.js.map +1 -0
  70. package/esm/models/v2prompttargetinput.d.ts +47 -0
  71. package/esm/models/v2prompttargetinput.d.ts.map +1 -0
  72. package/esm/models/v2prompttargetinput.js +45 -0
  73. package/esm/models/v2prompttargetinput.js.map +1 -0
  74. package/esm/models/v2prompttargetslistop.d.ts +10 -0
  75. package/esm/models/v2prompttargetslistop.d.ts.map +1 -0
  76. package/esm/models/v2prompttargetslistop.js +15 -0
  77. package/esm/models/v2prompttargetslistop.js.map +1 -0
  78. package/esm/models/v2prompttargetsresponse.d.ts +8 -0
  79. package/esm/models/v2prompttargetsresponse.d.ts.map +1 -0
  80. package/esm/models/v2prompttargetsresponse.js +11 -0
  81. package/esm/models/v2prompttargetsresponse.js.map +1 -0
  82. package/esm/models/v2prompttargetssetop.d.ts +6 -0
  83. package/esm/models/v2prompttargetssetop.d.ts.map +1 -0
  84. package/esm/models/v2prompttargetssetop.js +12 -0
  85. package/esm/models/v2prompttargetssetop.js.map +1 -0
  86. package/esm/tool-names.d.ts.map +1 -1
  87. package/esm/tool-names.js +11 -3
  88. package/esm/tool-names.js.map +1 -1
  89. package/lib/feedback.js +47 -0
  90. package/lib/tracker.js +4 -2
  91. package/package.json +5 -4
  92. package/src/funcs/agentsList.ts +1 -1
  93. package/src/funcs/promptsList.ts +3 -1
  94. package/src/funcs/promptsRun.ts +2 -1
  95. package/src/funcs/promptsTargetsList.ts +148 -0
  96. package/src/funcs/promptsTargetsSet.ts +145 -0
  97. package/src/landing-page.ts +1 -1
  98. package/src/lib/config.ts +2 -2
  99. package/src/mcp-server/mcp-server.ts +1 -1
  100. package/src/mcp-server/server.ts +5 -1
  101. package/src/mcp-server/tools/agentsList.ts +1 -1
  102. package/src/mcp-server/tools/promptsList.ts +1 -1
  103. package/src/mcp-server/tools/promptsRun.ts +2 -1
  104. package/src/mcp-server/tools/promptsTargetsList.ts +43 -0
  105. package/src/mcp-server/tools/promptsTargetsSet.ts +43 -0
  106. package/src/models/createv2promptrunrequest.ts +1 -1
  107. package/src/models/evaltemplateschedule.ts +8 -7
  108. package/src/models/setv2prompttargetsrequest.ts +26 -0
  109. package/src/models/setv2prompttargetsresponse.ts +23 -0
  110. package/src/models/v2listpromptsresponse.ts +9 -1
  111. package/src/models/v2promptslistop.ts +5 -0
  112. package/src/models/v2prompttarget.ts +79 -0
  113. package/src/models/v2prompttargetinput.ts +72 -0
  114. package/src/models/v2prompttargetslistop.ts +33 -0
  115. package/src/models/v2prompttargetsresponse.ts +19 -0
  116. package/src/models/v2prompttargetssetop.ts +25 -0
  117. package/src/tool-names.ts +11 -3
  118. package/test/tracker.test.js +83 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tool-names.js","sourceRoot":"","sources":["../src/tool-names.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-names.js","sourceRoot":"","sources":["../src/tool-names.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ // Feedback tool: lets an agent pass the user's feedback to the Lightsage team.
2
+ //
3
+ // The tool sends nothing itself. Its input is the feedback, and MCP Analytics
4
+ // records every call's input (lib/tracker.js), so the team reads it in MCP
5
+ // Analytics > Feedback. It is therefore only registered on requests that are
6
+ // recorded; elsewhere the feedback would be lost while the agent reports it
7
+ // as sent.
8
+ //
9
+ // Modelled on the Neon MCP server's send_feedback tool.
10
+ //
11
+ // Hand-written (not Speakeasy-generated) so regeneration does not remove it.
12
+
13
+ import { z } from "zod";
14
+
15
+ export const FEEDBACK_TOOL_NAME = "send_feedback";
16
+
17
+ // MCP Analytics cuts longer strings, so reject them instead.
18
+ export const MAX_FEEDBACK_LENGTH = 10_000;
19
+
20
+ const feedbackInputSchema = z.strictObject({
21
+ feedback: z.string().trim().min(1).max(MAX_FEEDBACK_LENGTH).describe(
22
+ "The feedback to send to Lightsage. Do not include passwords, API keys, or other secrets.",
23
+ ),
24
+ });
25
+
26
+ /** Register the feedback tool on a server whose calls MCP Analytics records. */
27
+ export function registerFeedbackTool(mcpServer) {
28
+ mcpServer.registerTool(
29
+ FEEDBACK_TOOL_NAME,
30
+ {
31
+ title: "Send Feedback",
32
+ description:
33
+ "Send feedback about Lightsage or this MCP server to the Lightsage team. Only call this when the user asks to give feedback. Sends only the feedback text, with no Lightsage data or credentials.",
34
+ inputSchema: feedbackInputSchema,
35
+ annotations: {
36
+ title: "Send Feedback",
37
+ readOnlyHint: false,
38
+ destructiveHint: false,
39
+ idempotentHint: false,
40
+ openWorldHint: true,
41
+ },
42
+ },
43
+ async () => ({
44
+ content: [{ type: "text", text: "Feedback received. Thank you!" }],
45
+ }),
46
+ );
47
+ }
package/lib/tracker.js CHANGED
@@ -11,6 +11,7 @@ import { createHash } from "node:crypto";
11
11
  import { finished } from "node:stream/promises";
12
12
  import { Lightsage } from "@lightsage/mcp-tracker";
13
13
  import { waitUntil } from "@vercel/functions";
14
+ import { FEEDBACK_TOOL_NAME } from "./feedback.js";
14
15
 
15
16
  const apiKey = process.env.LIGHTSAGE_MCP_TRACKER_API_KEY?.trim();
16
17
 
@@ -86,10 +87,11 @@ const CATALOG_TOOLS = new Set(["list_tools", "describe_tool_input"]);
86
87
  * Tool results hold callers' own Lightsage data, so keep only failures, which
87
88
  * are needed to debug errors. Catalog tools return tool names and schemas, not
88
89
  * data, and their results are how MCP Analytics spots a search that found
89
- * nothing.
90
+ * nothing. The feedback tool returns only a confirmation.
90
91
  */
91
92
  export function shouldStoreResponse({ toolName, isError }) {
92
- return isError || CATALOG_TOOLS.has(toolName);
93
+ return isError || CATALOG_TOOLS.has(toolName) ||
94
+ toolName === FEEDBACK_TOOL_NAME;
93
95
  }
94
96
 
95
97
  // One tracker per process; each request's server is instrumented separately.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lightsage/mcp",
3
- "version": "0.4.18",
3
+ "version": "0.4.20",
4
4
  "author": "Speakeasy",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -28,7 +28,7 @@
28
28
  "@stricli/core": "^1.1.2",
29
29
  "@vercel/functions": "3.9.11",
30
30
  "express": "^5.1.0",
31
- "zod": "^4.0.0"
31
+ "zod": "^4.6.6"
32
32
  },
33
33
  "overrides": {
34
34
  "@modelcontextprotocol/sdk": "1.32.1",
@@ -38,12 +38,13 @@
38
38
  "ip-address": ">=10.7.1 <11.0.0",
39
39
  "nanoid@^5.0.0": ">=5.1.16 <6.0.0",
40
40
  "brace-expansion@^2.0.0": ">=2.1.4 <3.0.0",
41
- "body-parser": ">=2.3.0 <3.0.0",
41
+ "body-parser": ">=2.4.0 <3.0.0",
42
42
  "@hono/node-server": ">=1.19.15 <2.0.0",
43
43
  "brace-expansion@^1.1.7": ">=1.1.18 <2.0.0",
44
44
  "brace-expansion@^5.0.0": ">=5.0.9 <6.0.0",
45
45
  "proxy-addr": ">=2.0.8 <3.0.0",
46
- "qs": ">=6.16.0 <7.0.0",
46
+ "qs": ">=6.16.1 <7.0.0",
47
+ "zod": "$zod",
47
48
  "tmp": ">=0.2.6 <0.3.0",
48
49
  "node-forge": "$node-forge"
49
50
  },
@@ -24,7 +24,7 @@ import { Result } from "../types/fp.js";
24
24
  * List Agents
25
25
  *
26
26
  * @remarks
27
- * Returns the coding-agent harness-and-model combinations your plan can run, as single agent IDs. Pass them as `agent` to `POST /v2/prompts/runs` to see how coding agents answer your prompts, with mentions and citations; to `POST /v2/agent-preference/evals` to see whether agents recommend your company over one competitor; or to `POST /v2/evals` and `POST /v2/eval-runs` to measure how well agents complete tasks with your product.
27
+ * Returns the coding-agent harness-and-model combinations your plan can run, as single agent IDs. Pass them as `agent` to `POST /v2/prompts/runs` to see how coding agents answer your prompts, with mentions and citations, or to `PUT /v2/prompts/targets` to run them on a schedule; to `POST /v2/agent-preference/evals` to see whether agents recommend your company over one competitor; or to `POST /v2/evals` and `POST /v2/eval-runs` to measure how well agents complete tasks with your product.
28
28
  */
29
29
  export function agentsList(
30
30
  client$: LightsageMcpCore,
@@ -30,7 +30,7 @@ import { Result } from "../types/fp.js";
30
30
  * List Prompts
31
31
  *
32
32
  * @remarks
33
- * Returns active and inactive prompts by default. Set `include_archived` to include archived prompts.
33
+ * Returns active and inactive prompts by default, newest first. Set `include_archived` to include archived prompts. Without `limit`, every matching prompt is returned in one response. Set `limit` to page through them: `count` is the total across every page, so request the next page with `offset` until `offset + limit` reaches `count`.
34
34
  */
35
35
  export function promptsList(
36
36
  client$: LightsageMcpCore,
@@ -87,6 +87,8 @@ async function $do(
87
87
  const path$ = pathToFunc("/v2/prompts")();
88
88
  const query$ = encodeFormQuery({
89
89
  "include_archived": payload$?.include_archived,
90
+ "limit": payload$?.limit,
91
+ "offset": payload$?.offset,
90
92
  "status": payload$?.status,
91
93
  "topic_id": payload$?.topic_id,
92
94
  });
@@ -33,7 +33,8 @@ import { Result } from "../types/fp.js";
33
33
  * Queue saved prompts on answer engines and coding agents.
34
34
  *
35
35
  * Provide `prompt_ids` to run selected prompts, or omit them to run all active
36
- * prompts. By default the run uses the organization's configured targets.
36
+ * prompts. By default the run uses the organization's configured targets,
37
+ * listed by `GET /v2/prompts/targets`.
37
38
  * Provide `agent` with IDs from `GET /v2/agents` to run the prompts on
38
39
  * specific coding-agent harnesses and models instead, for example to compare
39
40
  * how several coding tools answer the same developer question. Results
@@ -0,0 +1,148 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: 053c9d85cd77
4
+ */
5
+
6
+ import { LightsageMcpCore } from "../core.js";
7
+ import { encodeFormQuery } from "../lib/encodings.js";
8
+ import { compactMap } from "../lib/primitives.js";
9
+ import { safeParse } from "../lib/schemas.js";
10
+ import { RequestOptions } from "../lib/sdks.js";
11
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
12
+ import { pathToFunc } from "../lib/url.js";
13
+ import { APIError } from "../models/errors/apierror.js";
14
+ import {
15
+ ConnectionError,
16
+ InvalidRequestError,
17
+ RequestAbortedError,
18
+ RequestTimeoutError,
19
+ UnexpectedClientError,
20
+ } from "../models/errors/httpclienterrors.js";
21
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
22
+ import {
23
+ V2PromptTargetsListRequest,
24
+ V2PromptTargetsListRequest$zodSchema,
25
+ } from "../models/v2prompttargetslistop.js";
26
+ import { APICall, APIPromise } from "../types/async.js";
27
+ import { Result } from "../types/fp.js";
28
+
29
+ /**
30
+ * List Targets
31
+ *
32
+ * @remarks
33
+ * Returns the answer engines and coding agents that run the organization's prompts on schedule, with each target's topic and frequency. Provide `topic_id` to list one topic's targets.
34
+ */
35
+ export function promptsTargetsList(
36
+ client$: LightsageMcpCore,
37
+ request?: V2PromptTargetsListRequest | undefined,
38
+ options?: RequestOptions,
39
+ ): APIPromise<
40
+ Result<
41
+ Response,
42
+ | APIError
43
+ | SDKValidationError
44
+ | UnexpectedClientError
45
+ | InvalidRequestError
46
+ | RequestAbortedError
47
+ | RequestTimeoutError
48
+ | ConnectionError
49
+ >
50
+ > {
51
+ return new APIPromise($do(
52
+ client$,
53
+ request,
54
+ options,
55
+ ));
56
+ }
57
+
58
+ async function $do(
59
+ client$: LightsageMcpCore,
60
+ request?: V2PromptTargetsListRequest | undefined,
61
+ options?: RequestOptions,
62
+ ): Promise<
63
+ [
64
+ Result<
65
+ Response,
66
+ | APIError
67
+ | SDKValidationError
68
+ | UnexpectedClientError
69
+ | InvalidRequestError
70
+ | RequestAbortedError
71
+ | RequestTimeoutError
72
+ | ConnectionError
73
+ >,
74
+ APICall,
75
+ ]
76
+ > {
77
+ const parsed$ = safeParse(
78
+ request,
79
+ (value$) => V2PromptTargetsListRequest$zodSchema.optional().parse(value$),
80
+ "Input validation failed",
81
+ );
82
+ if (!parsed$.ok) {
83
+ return [parsed$, { status: "invalid" }];
84
+ }
85
+ const payload$ = parsed$.value;
86
+ const body$ = null;
87
+ const path$ = pathToFunc("/v2/prompts/targets")();
88
+ const query$ = encodeFormQuery({
89
+ "topic_id": payload$?.topic_id,
90
+ });
91
+
92
+ const headers$ = new Headers(compactMap({
93
+ Accept: "application/json",
94
+ }));
95
+ const securityInput = await extractSecurity(client$._options.security);
96
+ const requestSecurity = resolveGlobalSecurity(securityInput);
97
+
98
+ const context = {
99
+ options: client$._options,
100
+ baseURL: options?.serverURL ?? client$._baseURL ?? "",
101
+ operationID: "v2_prompt_targets_list",
102
+ oAuth2Scopes: null,
103
+ resolvedSecurity: requestSecurity,
104
+ securitySource: client$._options.security,
105
+ retryConfig: options?.retries
106
+ || client$._options.retryConfig
107
+ || { strategy: "none" },
108
+ retryCodes: options?.retryCodes || [
109
+ "429",
110
+ "500",
111
+ "502",
112
+ "503",
113
+ "504",
114
+ ],
115
+ };
116
+
117
+ const requestRes = client$._createRequest(context, {
118
+ security: requestSecurity,
119
+ method: "GET",
120
+ baseURL: options?.serverURL,
121
+ path: path$,
122
+ headers: headers$,
123
+ query: query$,
124
+ body: body$,
125
+ userAgent: client$._options.userAgent,
126
+ timeoutMs: options?.timeoutMs || client$._options.timeoutMs
127
+ || -1,
128
+ }, options);
129
+ if (!requestRes.ok) {
130
+ return [requestRes, { status: "invalid" }];
131
+ }
132
+ const req$ = requestRes.value;
133
+
134
+ const doResult = await client$._do(req$, {
135
+ context,
136
+ errorCodes: [],
137
+ retryConfig: context.retryConfig,
138
+ retryCodes: context.retryCodes,
139
+ });
140
+ if (!doResult.ok) {
141
+ return [doResult, { status: "request-error", request: req$ }];
142
+ }
143
+ return [doResult, {
144
+ status: "complete",
145
+ "request": req$,
146
+ response: doResult.value,
147
+ }];
148
+ }
@@ -0,0 +1,145 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: 1b39d535380b
4
+ */
5
+
6
+ import { LightsageMcpCore } from "../core.js";
7
+ import { encodeJSON } from "../lib/encodings.js";
8
+ import { compactMap } from "../lib/primitives.js";
9
+ import { safeParse } from "../lib/schemas.js";
10
+ import { RequestOptions } from "../lib/sdks.js";
11
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
12
+ import { pathToFunc } from "../lib/url.js";
13
+ import { APIError } from "../models/errors/apierror.js";
14
+ import {
15
+ ConnectionError,
16
+ InvalidRequestError,
17
+ RequestAbortedError,
18
+ RequestTimeoutError,
19
+ UnexpectedClientError,
20
+ } from "../models/errors/httpclienterrors.js";
21
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
22
+ import {
23
+ SetV2PromptTargetsRequest,
24
+ SetV2PromptTargetsRequest$zodSchema,
25
+ } from "../models/setv2prompttargetsrequest.js";
26
+ import { APICall, APIPromise } from "../types/async.js";
27
+ import { Result } from "../types/fp.js";
28
+
29
+ /**
30
+ * Set Targets
31
+ *
32
+ * @remarks
33
+ * Sets which answer engines and coding agents run a topic's prompts on schedule, the same way the prompt editor does. The list replaces the topic's targets: targets you leave out stop running. Every prompt in the topic is set to exactly these platforms; you can still narrow one prompt afterwards with `platform_ids`. Name coding agents with IDs from `GET /v2/agents`, and list a harness more than once to run it on several models. To pick agents for a single run without changing the schedule, pass `agent` to `POST /v2/prompts/runs` instead.
34
+ */
35
+ export function promptsTargetsSet(
36
+ client$: LightsageMcpCore,
37
+ request: SetV2PromptTargetsRequest,
38
+ options?: RequestOptions,
39
+ ): APIPromise<
40
+ Result<
41
+ Response,
42
+ | APIError
43
+ | SDKValidationError
44
+ | UnexpectedClientError
45
+ | InvalidRequestError
46
+ | RequestAbortedError
47
+ | RequestTimeoutError
48
+ | ConnectionError
49
+ >
50
+ > {
51
+ return new APIPromise($do(
52
+ client$,
53
+ request,
54
+ options,
55
+ ));
56
+ }
57
+
58
+ async function $do(
59
+ client$: LightsageMcpCore,
60
+ request: SetV2PromptTargetsRequest,
61
+ options?: RequestOptions,
62
+ ): Promise<
63
+ [
64
+ Result<
65
+ Response,
66
+ | APIError
67
+ | SDKValidationError
68
+ | UnexpectedClientError
69
+ | InvalidRequestError
70
+ | RequestAbortedError
71
+ | RequestTimeoutError
72
+ | ConnectionError
73
+ >,
74
+ APICall,
75
+ ]
76
+ > {
77
+ const parsed$ = safeParse(
78
+ request,
79
+ (value$) => SetV2PromptTargetsRequest$zodSchema.parse(value$),
80
+ "Input validation failed",
81
+ );
82
+ if (!parsed$.ok) {
83
+ return [parsed$, { status: "invalid" }];
84
+ }
85
+ const payload$ = parsed$.value;
86
+ const body$ = encodeJSON("body", payload$, { explode: true });
87
+ const path$ = pathToFunc("/v2/prompts/targets")();
88
+
89
+ const headers$ = new Headers(compactMap({
90
+ "Content-Type": "application/json",
91
+ Accept: "application/json",
92
+ }));
93
+ const securityInput = await extractSecurity(client$._options.security);
94
+ const requestSecurity = resolveGlobalSecurity(securityInput);
95
+
96
+ const context = {
97
+ options: client$._options,
98
+ baseURL: options?.serverURL ?? client$._baseURL ?? "",
99
+ operationID: "v2_prompt_targets_set",
100
+ oAuth2Scopes: null,
101
+ resolvedSecurity: requestSecurity,
102
+ securitySource: client$._options.security,
103
+ retryConfig: options?.retries
104
+ || client$._options.retryConfig
105
+ || { strategy: "none" },
106
+ retryCodes: options?.retryCodes || [
107
+ "429",
108
+ "500",
109
+ "502",
110
+ "503",
111
+ "504",
112
+ ],
113
+ };
114
+
115
+ const requestRes = client$._createRequest(context, {
116
+ security: requestSecurity,
117
+ method: "PUT",
118
+ baseURL: options?.serverURL,
119
+ path: path$,
120
+ headers: headers$,
121
+ body: body$,
122
+ userAgent: client$._options.userAgent,
123
+ timeoutMs: options?.timeoutMs || client$._options.timeoutMs
124
+ || -1,
125
+ }, options);
126
+ if (!requestRes.ok) {
127
+ return [requestRes, { status: "invalid" }];
128
+ }
129
+ const req$ = requestRes.value;
130
+
131
+ const doResult = await client$._do(req$, {
132
+ context,
133
+ errorCodes: [],
134
+ retryConfig: context.retryConfig,
135
+ retryCodes: context.retryCodes,
136
+ });
137
+ if (!doResult.ok) {
138
+ return [doResult, { status: "request-error", request: req$ }];
139
+ }
140
+ return [doResult, {
141
+ status: "complete",
142
+ "request": req$,
143
+ response: doResult.value,
144
+ }];
145
+ }
@@ -931,7 +931,7 @@ http_headers = { "lightsage-api-key-auth" = "YOUR_LIGHTSAGE_API_KEY_AUTH" }`;
931
931
  <h1>Instructions</h1>
932
932
  <p>One-click installation for Claude Desktop users</p>
933
933
  <div class="instruction-item">
934
- <a href="https://github.com/lightsagehq/mcp/releases/download/v0.4.18/mcp-server.mcpb" download="mcp-server.mcpb" class="action-button header-action" style="display: inline-flex; margin-bottom: 16px;">
934
+ <a href="https://github.com/lightsagehq/mcp/releases/download/v0.4.20/mcp-server.mcpb" download="mcp-server.mcpb" class="action-button header-action" style="display: inline-flex; margin-bottom: 16px;">
935
935
  📥 Download MCP Bundle
936
936
  </a>
937
937
  </div>
package/src/lib/config.ts CHANGED
@@ -66,7 +66,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
66
66
  export const SDK_METADATA = {
67
67
  language: "typescript",
68
68
  openapiDocVersion: "1.0.0",
69
- sdkVersion: "0.4.18",
69
+ sdkVersion: "0.4.20",
70
70
  genVersion: "2.948.4",
71
- userAgent: "speakeasy-sdk/mcp-typescript 0.4.18 2.948.4 1.0.0 @lightsage/mcp",
71
+ userAgent: "speakeasy-sdk/mcp-typescript 0.4.20 2.948.4 1.0.0 @lightsage/mcp",
72
72
  } as const;
@@ -22,7 +22,7 @@ const routes = buildRouteMap({
22
22
  export const app = buildApplication(routes, {
23
23
  name: "mcp",
24
24
  versionInfo: {
25
- currentVersion: "0.4.18",
25
+ currentVersion: "0.4.20",
26
26
  },
27
27
  });
28
28
 
@@ -68,6 +68,8 @@ import { tool$promptsRunCancel } from "./tools/promptsRunCancel.js";
68
68
  import { tool$promptsRunsList } from "./tools/promptsRunsList.js";
69
69
  import { tool$promptsRunsRetrieve } from "./tools/promptsRunsRetrieve.js";
70
70
  import { tool$promptsRunStatus } from "./tools/promptsRunStatus.js";
71
+ import { tool$promptsTargetsList } from "./tools/promptsTargetsList.js";
72
+ import { tool$promptsTargetsSet } from "./tools/promptsTargetsSet.js";
71
73
  import { tool$promptsTopicsCreate } from "./tools/promptsTopicsCreate.js";
72
74
  import { tool$promptsTopicsDelete } from "./tools/promptsTopicsDelete.js";
73
75
  import { tool$promptsTopicsList } from "./tools/promptsTopicsList.js";
@@ -112,7 +114,7 @@ export function createMCPServer(deps: {
112
114
  sizes: ["any"],
113
115
  }],
114
116
  name: "LightsageMcp",
115
- version: "0.4.17",
117
+ version: "0.4.20",
116
118
  });
117
119
 
118
120
  const getClient = deps.getSDK || (() =>
@@ -170,6 +172,8 @@ export function createMCPServer(deps: {
170
172
  tool(tool$promptsTopicsCreate);
171
173
  tool(tool$promptsTopicsUpdate);
172
174
  tool(tool$promptsTopicsDelete);
175
+ tool(tool$promptsTargetsList);
176
+ tool(tool$promptsTargetsSet);
173
177
  tool(tool$promptsRunsList);
174
178
  tool(tool$promptsRunsRetrieve);
175
179
  tool(tool$promptsRetrieve);
@@ -10,7 +10,7 @@ export const tool$agentsList: ToolDefinition = {
10
10
  name: "agents-list",
11
11
  description: `List Agents
12
12
 
13
- Returns the coding-agent harness-and-model combinations your plan can run, as single agent IDs. Pass them as \`agent\` to \`POST /v2/prompts/runs\` to see how coding agents answer your prompts, with mentions and citations; to \`POST /v2/agent-preference/evals\` to see whether agents recommend your company over one competitor; or to \`POST /v2/evals\` and \`POST /v2/eval-runs\` to measure how well agents complete tasks with your product.`,
13
+ Returns the coding-agent harness-and-model combinations your plan can run, as single agent IDs. Pass them as \`agent\` to \`POST /v2/prompts/runs\` to see how coding agents answer your prompts, with mentions and citations, or to \`PUT /v2/prompts/targets\` to run them on a schedule; to \`POST /v2/agent-preference/evals\` to see whether agents recommend your company over one competitor; or to \`POST /v2/evals\` and \`POST /v2/eval-runs\` to measure how well agents complete tasks with your product.`,
14
14
  annotations: {
15
15
  "title": "",
16
16
  "destructiveHint": false,
@@ -15,7 +15,7 @@ export const tool$promptsList: ToolDefinition<typeof args> = {
15
15
  name: "prompts-list",
16
16
  description: `List Prompts
17
17
 
18
- Returns active and inactive prompts by default. Set \`include_archived\` to include archived prompts.`,
18
+ Returns active and inactive prompts by default, newest first. Set \`include_archived\` to include archived prompts. Without \`limit\`, every matching prompt is returned in one response. Set \`limit\` to page through them: \`count\` is the total across every page, so request the next page with \`offset\` until \`offset + limit\` reaches \`count\`.`,
19
19
  annotations: {
20
20
  "title": "",
21
21
  "destructiveHint": false,
@@ -18,7 +18,8 @@ export const tool$promptsRun: ToolDefinition<typeof args> = {
18
18
  Queue saved prompts on answer engines and coding agents.
19
19
 
20
20
  Provide \`prompt_ids\` to run selected prompts, or omit them to run all active
21
- prompts. By default the run uses the organization's configured targets.
21
+ prompts. By default the run uses the organization's configured targets,
22
+ listed by \`GET /v2/prompts/targets\`.
22
23
  Provide \`agent\` with IDs from \`GET /v2/agents\` to run the prompts on
23
24
  specific coding-agent harnesses and models instead, for example to compare
24
25
  how several coding tools answer the same developer question. Results
@@ -0,0 +1,43 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: ea463f944d6c
4
+ */
5
+
6
+ import { promptsTargetsList } from "../../funcs/promptsTargetsList.js";
7
+ import { V2PromptTargetsListRequest$zodSchema } from "../../models/v2prompttargetslistop.js";
8
+ import { formatResult, ToolDefinition } from "../tools.js";
9
+
10
+ const args = {
11
+ request: V2PromptTargetsListRequest$zodSchema.optional(),
12
+ };
13
+
14
+ export const tool$promptsTargetsList: ToolDefinition<typeof args> = {
15
+ name: "prompts-targets-list",
16
+ description: `List Targets
17
+
18
+ Returns the answer engines and coding agents that run the organization's prompts on schedule, with each target's topic and frequency. Provide \`topic_id\` to list one topic's targets.`,
19
+ annotations: {
20
+ "title": "",
21
+ "destructiveHint": false,
22
+ "idempotentHint": false,
23
+ "openWorldHint": false,
24
+ "readOnlyHint": true,
25
+ },
26
+ args,
27
+ tool: async (client, args, ctx) => {
28
+ const [result] = await promptsTargetsList(
29
+ client,
30
+ args.request,
31
+ { fetchOptions: { signal: ctx.signal } },
32
+ ).$inspect();
33
+
34
+ if (!result.ok) {
35
+ return {
36
+ content: [{ type: "text", text: result.error.message }],
37
+ isError: true,
38
+ };
39
+ }
40
+
41
+ return formatResult(result.value);
42
+ },
43
+ };
@@ -0,0 +1,43 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: f1ffd3b02650
4
+ */
5
+
6
+ import { promptsTargetsSet } from "../../funcs/promptsTargetsSet.js";
7
+ import { SetV2PromptTargetsRequest$zodSchema } from "../../models/setv2prompttargetsrequest.js";
8
+ import { formatResult, ToolDefinition } from "../tools.js";
9
+
10
+ const args = {
11
+ request: SetV2PromptTargetsRequest$zodSchema,
12
+ };
13
+
14
+ export const tool$promptsTargetsSet: ToolDefinition<typeof args> = {
15
+ name: "prompts-targets-set",
16
+ description: `Set Targets
17
+
18
+ Sets which answer engines and coding agents run a topic's prompts on schedule, the same way the prompt editor does. The list replaces the topic's targets: targets you leave out stop running. Every prompt in the topic is set to exactly these platforms; you can still narrow one prompt afterwards with \`platform_ids\`. Name coding agents with IDs from \`GET /v2/agents\`, and list a harness more than once to run it on several models. To pick agents for a single run without changing the schedule, pass \`agent\` to \`POST /v2/prompts/runs\` instead.`,
19
+ annotations: {
20
+ "title": "",
21
+ "destructiveHint": false,
22
+ "idempotentHint": false,
23
+ "openWorldHint": false,
24
+ "readOnlyHint": false,
25
+ },
26
+ args,
27
+ tool: async (client, args, ctx) => {
28
+ const [result] = await promptsTargetsSet(
29
+ client,
30
+ args.request,
31
+ { fetchOptions: { signal: ctx.signal } },
32
+ ).$inspect();
33
+
34
+ if (!result.ok) {
35
+ return {
36
+ content: [{ type: "text", text: result.error.message }],
37
+ isError: true,
38
+ };
39
+ }
40
+
41
+ return formatResult(result.value);
42
+ },
43
+ };
@@ -15,7 +15,7 @@ export const CreateV2PromptRunRequest$zodSchema: z.ZodType<
15
15
  CreateV2PromptRunRequest
16
16
  > = z.object({
17
17
  agent: z.array(z.string()).nullable().optional().describe(
18
- "Runnable agents from `GET /v2/agents`, each a coding-agent harness and model such as `claude-code:claude-opus-5-5`. Every selected prompt runs once on each agent, so you can compare how several coding tools and models answer the same question. When set, this run uses only these agents instead of the organization's configured targets, including answer engines. Omit it to use the configured targets. CLI clients expose repeatable `--agent`.",
18
+ "Runnable agents from `GET /v2/agents`, each a coding-agent harness and model such as `claude-code:claude-opus-5-5`. Every selected prompt runs once on each agent, so you can compare how several coding tools and models answer the same question. When set, this run uses only these agents instead of the organization's configured targets, including answer engines, and saves nothing. Omit it to use the configured targets; change those with `PUT /v2/prompts/targets`. CLI clients expose repeatable `--agent`.",
19
19
  ),
20
20
  force: z.boolean().default(false).describe(
21
21
  "Run even when a prompt already ran today on the same platform and model.",