@spicyapi/mcp 0.2.2 → 0.3.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.
package/README.md CHANGED
@@ -1,55 +1,223 @@
1
1
  # @spicyapi/mcp
2
2
 
3
- Official standalone local MCP server for SpicyAPI. It exposes `spicyapi-mcp` for stdio and
4
- `spicyapi-mcp-http` for loopback-only Streamable HTTP. It does not include the CLI or Agent Skill.
3
+ The official local MCP server for [SpicyAPI](https://spicyapi.ai). It lets a coding agent — Claude
4
+ Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI or any MCP client browse the live model
5
+ catalog, create generation tasks and collect results, with every billable step confirmed by you.
6
+
7
+ This package installs `spicyapi-mcp` (stdio) and `spicyapi-mcp-http` (loopback-only Streamable
8
+ HTTP). It does **not** contain the CLI or the Agent Skill.
9
+
10
+ ## Get a key first
11
+
12
+ 1. Create an account at [spicyapi.ai/register](https://spicyapi.ai/register) — accounts are opened
13
+ in batches, so you may join the waitlist first.
14
+ 2. Create a key on the [API keys page](https://spicyapi.ai/console/keys). It starts with `sk-spicy-`
15
+ and is shown once.
16
+ 3. Export it in the terminal you will run the setup command from:
17
+
18
+ ```bash
19
+ export SPICY_API_KEY="sk-spicy-..." # paste your own key
20
+ ```
21
+
22
+ ## Add it to your client
23
+
24
+ Every client below runs the same stdio server. Requires Node.js 22.13 or later.
25
+
26
+ You never run this server yourself — your MCP client starts it. Launched by hand it just waits
27
+ silently on stdin, which looks like a hang. And it needs `--package=@spicyapi/mcp` in front of the
28
+ binary name, because this package ships two of them; plain `npx @spicyapi/mcp` fails with
29
+ `could not determine executable to run`.
30
+
31
+ **Claude Code**
32
+
33
+ ```bash
34
+ claude mcp add spicyapi \
35
+ -e SPICY_API_KEY=$SPICY_API_KEY \
36
+ -- npx --yes --package=@spicyapi/mcp spicyapi-mcp
37
+ ```
38
+
39
+ **Codex**
5
40
 
6
41
  ```bash
7
- npx --yes --package=@spicyapi/mcp spicyapi-mcp
42
+ codex mcp add spicyapi \
43
+ --env SPICY_API_KEY=$SPICY_API_KEY \
44
+ -- npx --yes --package=@spicyapi/mcp spicyapi-mcp
8
45
  ```
9
46
 
10
- Set `SPICY_API_KEY` in the MCP process environment. Billable tools use protocol elicitation and
11
- signed request state before creating or retrying a task. `spicyapi_task_quote` returns a read-only
12
- five-minute quote. Task creation fetches and binds the exact quote before asking the user to confirm
13
- its USD estimate and maximum charge; an agent cannot bypass that confirmation. Call creation
14
- directly once the model input is ready; the separate quote tool is for independent price
15
- comparisons, not a prerequisite. Reuse a full model schema already returned by the catalog. Health
16
- and balance checks are optional diagnostics.
17
-
18
- For usage reports, call the read-only `spicyapi_usage_get` tool with optional `from` and `to` dates
19
- in `YYYY-MM-DD` format. It queries only the API key configured for this MCP process; there is no
20
- user, key, or workspace override. The UTC range is `[from,to)`, up to 92 days. By default, `to` is
21
- tomorrow UTC and `from` is seven days before `to`. Task counts are grouped by creation day and
22
- model. `totalSpend` and each `spend` are exact decimal USD strings containing only settled actual
23
- charges; pending holds are excluded. Late settlement can update earlier days. This is a usage
24
- report, not account balance or remaining key budget, and is not required before generation. Observe
25
- `Retry-After` when reporting is rate limited.
26
-
27
- Use `spicyapi_tasks_list` to find current-key tasks after a restart or a missed callback. It returns
28
- one page of metadata, with no inputs, result URLs, or automatic detail requests. Optional filters
29
- are `from`, `to`, `state`, `model`, `limit`, and `cursor`. Keep the same UTC `[from,to)` dates while
30
- paging and pass `nextCursor` unchanged; the default window is seven days ending tomorrow UTC,
31
- maximum 92 days. Page size defaults to 20 and is capped at 100. `cost` is an exact USD string and is
32
- final only when `settled` is true. Hidden tasks are excluded; use `spicyapi_usage_get` for settled
33
- spend. Fetch only selected results with `spicyapi_task_get`. Do not use history for status polling
34
- or as a prerequisite to generation.
35
-
36
- Task retrieval, waiting, and verified v2 webhooks include ready `output.assets[].url` links. Use
37
- those links directly without sending the API key to storage. A complete verified callback needs no
38
- extra task lookup or download ticket; query again for pending assets or expired links. The download
39
- URL tool remains available for legacy integrations and explicit link renewal.
40
-
41
- `spicyapi_task_wait` uses adaptive polling by default, starting at about two seconds and backing off
42
- to at most ten seconds. Set `intervalSeconds` only when you want a fixed interval. Waiting is
43
- bounded to 60 seconds by default and at most 300 seconds per tool call; a local timeout does not
44
- cancel the accepted task.
45
-
46
- The HTTP entrypoint requires a separate `SPICY_MCP_HTTP_TOKEN` of at least 32 bytes and refuses
47
- non-loopback binding.
48
-
49
- Client configuration: <https://spicyapi.ai/en/docs/agents>
50
-
51
- CLI and MCP currently submit and track native tasks; they do not expose live chat token streaming.
52
- Use the OpenAI-compatible SDK path for a token-by-token interface, or native `jobs/stream` when you
53
- need quote confirmation and the platform event envelope.
54
-
55
- [Chat streaming guide](https://spicyapi.ai/en/docs/quotes-and-compatibility)
47
+ That writes `~/.codex/config.toml`, which the Codex CLI, the IDE extension and the ChatGPT desktop
48
+ app all read configure it once and all three pick it up.
49
+
50
+ Both commands copy `SPICY_API_KEY` out of your current shell into that client's local config, so run
51
+ them in a terminal where the key is already exported.
52
+
53
+ **Cursor** (`~/.cursor/mcp.json`), **Windsurf** (`~/.codeium/windsurf/mcp_config.json`) and **Gemini
54
+ CLI** (`~/.gemini/settings.json`) share one shape:
55
+
56
+ ```json
57
+ {
58
+ "mcpServers": {
59
+ "spicyapi": {
60
+ "command": "npx",
61
+ "args": ["--yes", "--package=@spicyapi/mcp", "spicyapi-mcp"],
62
+ "env": { "SPICY_API_KEY": "YOUR_SERVER_SIDE_KEY" }
63
+ }
64
+ }
65
+ }
66
+ ```
67
+
68
+ Those are user-level files outside your repository. Never copy that block, with a real key in it,
69
+ into a project file that gets committed.
70
+
71
+ **VS Code** (`.vscode/mcp.json`) is committed with your repository, so let it prompt instead:
72
+
73
+ ```json
74
+ {
75
+ "inputs": [
76
+ {
77
+ "id": "spicyapi-key",
78
+ "type": "promptString",
79
+ "description": "SpicyAPI key",
80
+ "password": true
81
+ }
82
+ ],
83
+ "servers": {
84
+ "spicyapi": {
85
+ "type": "stdio",
86
+ "command": "npx",
87
+ "args": ["--yes", "--package=@spicyapi/mcp", "spicyapi-mcp"],
88
+ "env": { "SPICY_API_KEY": "${input:spicyapi-key}" }
89
+ }
90
+ }
91
+ }
92
+ ```
93
+
94
+ Each client owns its config location and format, and both change between versions — their own
95
+ documentation is authoritative.
96
+
97
+ ## Then ask for something real
98
+
99
+ > Use SpicyAPI to list the image models I can call, pick an inexpensive one, generate a cinematic
100
+ > night portrait, and give me the result link when it finishes.
101
+
102
+ The agent reads the catalog, fetches the model's schema, obtains an exact quote and stops for your
103
+ confirmation before anything is charged.
104
+
105
+ ## Tools
106
+
107
+ ### Read-only
108
+
109
+ | Tool | Purpose |
110
+ | ------------------------- | ------------------------------------------------- |
111
+ | `spicyapi_models_list` | Enabled models and account-specific prices |
112
+ | `spicyapi_model_get` | One model and its current input schema |
113
+ | `spicyapi_task_get` | Read one task |
114
+ | `spicyapi_task_wait` | Wait briefly for a task to reach a terminal state |
115
+ | `spicyapi_tasks_list` | One page of task metadata for the current key |
116
+ | `spicyapi_task_quote` | Price an exact request without creating anything |
117
+ | `spicyapi_usage_get` | Settled USD usage for the current key |
118
+ | `spicyapi_balance_get` | Available, held and total balance |
119
+ | `spicyapi_service_status` | Public health and readiness |
120
+ | `spicyapi_docs_search` | Search first-party documentation |
121
+
122
+ `spicyapi_generation_workflow` is a **prompt**, not a tool — it is registered with `registerPrompt`
123
+ and does not appear in `SPICYAPI_MCP_TOOLS`. Hosts surface it wherever they list MCP prompts.
124
+
125
+ ### Irreversible — always confirmed
126
+
127
+ | Tool | Purpose |
128
+ | ---------------------- | --------------------------------------------------------- |
129
+ | `spicyapi_task_create` | Create an asynchronous generation task (billable) |
130
+ | `spicyapi_task_retry` | Create a new task from a failed or expired one (billable) |
131
+ | `spicyapi_task_purge` | Destroy one terminal task's stored content |
132
+
133
+ `spicyapi_task_create` accepts an optional `retentionSeconds` that shortens how long that one task's
134
+ outputs and prompt are kept; it can never extend them.
135
+
136
+ `spicyapi_task_purge` is annotated `destructiveHint: true` and removes a terminal task's generated
137
+ media, result payload, prompt and input text. It destroys content, not the record of what it cost —
138
+ the ledger entry, charged amount, model, state, timestamps and request ID all survive — so it is
139
+ never a refund. Its result carries only the task ID, content state and removal metadata: no links,
140
+ tickets or output keys, because leaving a way to fetch the content in the same message that reports
141
+ its destruction would defeat the point.
142
+
143
+ ### Media
144
+
145
+ | Tool | Purpose |
146
+ | ------------------------------ | ---------------------------------------------- |
147
+ | `spicyapi_upload_file` | Upload a local file, return its `spicy://` URI |
148
+ | `spicyapi_upload_commit` | Commit an upload started elsewhere |
149
+ | `spicyapi_download_url_create` | Short-lived URL for a task output |
150
+
151
+ ## How spending is protected
152
+
153
+ Billable tools use protocol elicitation and signed request state. Task creation fetches and binds
154
+ the exact quote, then asks you to confirm its USD estimate and maximum charge. **An agent cannot
155
+ bypass that confirmation.**
156
+
157
+ Call creation directly once the model input is ready. The separate `spicyapi_task_quote` tool is for
158
+ independent price comparisons, not a prerequisite. Health and balance checks are optional
159
+ diagnostics, not a per-task checklist.
160
+
161
+ ## Results
162
+
163
+ `spicyapi_task_get`, `spicyapi_task_wait` and verified v2 webhooks all include ready
164
+ `output.assets[].url` links. Use them directly — never send the API key to storage. A complete
165
+ verified callback needs no extra task lookup and no download ticket. Query again for `pending`
166
+ assets or expired links; `spicyapi_download_url_create` remains available for legacy integrations
167
+ and explicit link renewal.
168
+
169
+ `spicyapi_task_wait` polls adaptively by default, starting at about two seconds and backing off to
170
+ at most ten. Set `intervalSeconds` only for a fixed interval. Waiting is bounded to 60 seconds by
171
+ default and 300 at most per call; a local timeout does not cancel the accepted task.
172
+
173
+ ## Usage reports
174
+
175
+ `spicyapi_usage_get` takes optional `from` and `to` dates in `YYYY-MM-DD`. It queries only the API
176
+ key configured for this MCP process — there is no user, key or workspace override.
177
+
178
+ - UTC range `[from,to)`, up to 92 days. By default `to` is tomorrow UTC and `from` is seven days
179
+ earlier.
180
+ - Task counts are grouped by creation day and model.
181
+ - `totalSpend` and each `spend` are exact decimal USD strings covering settled charges only; pending
182
+ holds are excluded and late settlement can change earlier days.
183
+ - This is a usage report, not account balance or remaining key budget, and is never required before
184
+ generating. Observe `Retry-After` when reporting is rate limited.
185
+
186
+ `spicyapi_tasks_list` finds tasks after a restart or a missed callback. It returns one page of
187
+ metadata with no inputs, no result URLs and no automatic detail requests. Filters: `from`, `to`,
188
+ `state`, `model`, `limit`, `cursor`. Keep the UTC dates fixed while paging and pass `nextCursor`
189
+ unchanged. Default window seven days ending tomorrow UTC, 92 days maximum; page size 20, capped
190
+ at 100. `cost` is final only when `settled` is true. Do not use history for status polling or as a
191
+ prerequisite to generation.
192
+
193
+ ## Local files
194
+
195
+ `spicyapi_upload_file` takes the absolute path the user gave, uploads the bytes from this machine,
196
+ and returns the committed `spicy://` URI to put in a model input field. Images up to 10 MiB; MP4 /
197
+ WebM video and MP3 / WAV audio up to 90 MiB. Content type is inferred from the extension.
198
+
199
+ The server reads only under the user's home directory. Set `SPICY_MCP_UPLOAD_ROOTS` (colon-separated
200
+ absolute paths) to narrow or widen that. Symlinks are resolved before the check, so a link pointing
201
+ out of an allowed root is refused. The guard exists for prompt injection — a path that arrives
202
+ inside an email, a web page or a task description is data, not an instruction — not to restrict the
203
+ person running the server, who can already read their own files.
204
+
205
+ ## HTTP entrypoint
206
+
207
+ `spicyapi-mcp-http` serves Streamable HTTP on loopback only. It requires a separate
208
+ `SPICY_MCP_HTTP_TOKEN` of at least 32 bytes and refuses non-loopback binding. Most users want the
209
+ stdio entrypoint above instead.
210
+
211
+ ## What this server does not do
212
+
213
+ It submits and tracks native asynchronous tasks; it does not stream chat tokens. Use the
214
+ OpenAI-compatible SDK path for a token-by-token interface, or native `jobs/stream` when you need
215
+ quote confirmation and the platform event envelope — see the
216
+ [chat streaming guide](https://spicyapi.ai/docs/quotes-and-compatibility).
217
+
218
+ ## More
219
+
220
+ - [Client setup on the developer hub](https://spicyapi.ai/developers#agents)
221
+ - [Agent integration guide](https://spicyapi.ai/docs/agents)
222
+ - Want the agent to also know the _correct workflow_? Add
223
+ [`@spicyapi/skill`](https://www.npmjs.com/package/@spicyapi/skill).
@@ -1,2 +1,2 @@
1
- export declare const MCP_VERSION = "0.2.2";
1
+ export declare const MCP_VERSION = "0.3.0";
2
2
  //# sourceMappingURL=package-version.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // 构建时由 package.json 生成,不手动维护或提交。
2
- export const MCP_VERSION = "0.2.2";
2
+ export const MCP_VERSION = "0.3.0";
3
3
  //# sourceMappingURL=package-version.js.map
@@ -1,6 +1,6 @@
1
1
  import { McpServer, type McpServerFactory } from "@modelcontextprotocol/server";
2
2
  import { SpicyClient, type SpicyClientOptions } from "@spicyapi/sdk";
3
- export declare const SPICYAPI_MCP_TOOLS: readonly ["spicyapi_service_status", "spicyapi_docs_search", "spicyapi_models_list", "spicyapi_model_get", "spicyapi_balance_get", "spicyapi_usage_get", "spicyapi_tasks_list", "spicyapi_task_get", "spicyapi_task_wait", "spicyapi_upload_prepare", "spicyapi_upload_commit", "spicyapi_download_url_create", "spicyapi_task_quote", "spicyapi_task_create", "spicyapi_task_retry"];
3
+ export declare const SPICYAPI_MCP_TOOLS: readonly ["spicyapi_service_status", "spicyapi_docs_search", "spicyapi_models_list", "spicyapi_model_get", "spicyapi_balance_get", "spicyapi_usage_get", "spicyapi_tasks_list", "spicyapi_task_get", "spicyapi_task_wait", "spicyapi_upload_file", "spicyapi_upload_commit", "spicyapi_download_url_create", "spicyapi_task_quote", "spicyapi_task_create", "spicyapi_task_retry", "spicyapi_task_purge"];
4
4
  export interface SpicyMcpFactoryOptions {
5
5
  client?: SpicyClient;
6
6
  clientOptions?: SpicyClientOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/mcp/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,SAAS,EAGT,KAAK,gBAAgB,EAEtB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAKL,WAAW,EACX,KAAK,kBAAkB,EACxB,MAAM,eAAe,CAAC;AA4MvB,eAAO,MAAM,kBAAkB,uXAgBrB,CAAC;AAEX,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AA+FD,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,sBAA2B,GAAG,gBAAgB,CAokB5F;AAED,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,sBAA2B,GAAG,SAAS,CAEpF"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/mcp/server.ts"],"names":[],"mappings":"AAKA,OAAO,EAKL,SAAS,EAGT,KAAK,gBAAgB,EAEtB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAKL,WAAW,EACX,KAAK,kBAAkB,EACxB,MAAM,eAAe,CAAC;AAmOvB,eAAO,MAAM,kBAAkB,2YAiBrB,CAAC;AAEX,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AA8KD,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,sBAA2B,GAAG,gBAAgB,CA2pB5F;AAED,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,sBAA2B,GAAG,SAAS,CAEpF"}
@@ -1,5 +1,8 @@
1
1
  import { MCP_VERSION } from "../generated/package-version.js";
2
2
  import { createHash, randomBytes, randomUUID } from "node:crypto";
3
+ import { realpath } from "node:fs/promises";
4
+ import { homedir } from "node:os";
5
+ import { isAbsolute, resolve, sep } from "node:path";
3
6
  import { acceptedContent, createRequestStateCodec, inputRequired, inputResponse, McpServer, } from "@modelcontextprotocol/server";
4
7
  import { z } from "zod";
5
8
  import { DOCUMENTATION, readOpenApiContract, searchDocumentation, SpicyApiError, SpicyClient, } from "@spicyapi/sdk";
@@ -126,6 +129,32 @@ const usageReportSchema = z
126
129
  models: z.array(usageCountsSchema.extend({ model: z.string() }).passthrough()),
127
130
  })
128
131
  .passthrough();
132
+ const taskContentStateSchema = z
133
+ .enum(["present", "expired", "purged"])
134
+ .describe("Whether the stored content is still there, and if not, who removed it: `expired` means the retention rules ran, `purged` means the account destroyed it on purpose.");
135
+ const taskRetentionSchema = z
136
+ .object({
137
+ outputsExpireAt: z.string().optional(),
138
+ promptsExpireAt: z.string().optional(),
139
+ source: z.enum(["header", "account", "platform"]).optional(),
140
+ purgedAt: z.string().optional(),
141
+ contentRemovedBy: z.enum(["user", "system"]).optional(),
142
+ })
143
+ .passthrough();
144
+ /* 销毁结果只留这四个字段,而且**不 passthrough**。
145
+ 工具返回值会整份进模型上下文、会话记录与任何一份对话导出,而这个动作发生的
146
+ 时刻恰恰是产物正在被删——把票据、签名地址或 output key 顺手带出来,等于在
147
+ 「已销毁」的同一条消息里留下一份还能取回内容的线索。所以这里按白名单投影,
148
+ 服务端将来多回什么字段都不会自动流出去。 */
149
+ const purgeTaskResultSchema = z
150
+ .object({
151
+ taskId: z.string(),
152
+ contentState: taskContentStateSchema,
153
+ purgedAt: z.string().optional(),
154
+ contentRemovedBy: z.enum(["user", "system"]).optional(),
155
+ billingRetained: z.literal(true),
156
+ })
157
+ .strict();
129
158
  const taskRecordSchema = z
130
159
  .object({
131
160
  taskId: z.string(),
@@ -140,19 +169,13 @@ const taskRecordSchema = z
140
169
  settled: z.boolean(),
141
170
  createdAt: z.string(),
142
171
  completedAt: z.string().optional(),
172
+ contentState: taskContentStateSchema.optional(),
173
+ retention: taskRetentionSchema.optional(),
143
174
  })
144
175
  .passthrough();
145
- const uploadTicketSchema = z
146
- .object({
147
- fileId: z.string(),
148
- key: z.string(),
149
- uploadUrl: z.string(),
150
- method: z.literal("PUT"),
151
- headers: z.record(z.string(), z.string()),
152
- expiresAt: z.string(),
153
- maxBytes: z.number().int().positive(),
154
- })
155
- .passthrough();
176
+ /* `uploadTicketSchema` 2026-09-12 删除:预签名票据不再经过 MCP 的返回值。
177
+ 唯一用过它的 `spicyapi_upload_prepare` 已换成 `spicyapi_upload_file`,
178
+ 理由写在那个工具的注册处。 */
156
179
  const uploadedFileSchema = z
157
180
  .object({
158
181
  fileId: z.string(),
@@ -192,7 +215,7 @@ const taskQuoteSchema = z.object({
192
215
  expiresAt: z.string(),
193
216
  });
194
217
  const billableStateSchema = z.object({
195
- action: z.enum(["create_task", "retry_task"]),
218
+ action: z.enum(["create_task", "retry_task", "purge_task"]),
196
219
  fingerprint: z.string(),
197
220
  quote: taskQuoteSchema.optional(),
198
221
  idempotencyKey: z.string(),
@@ -207,12 +230,13 @@ export const SPICYAPI_MCP_TOOLS = [
207
230
  "spicyapi_tasks_list",
208
231
  "spicyapi_task_get",
209
232
  "spicyapi_task_wait",
210
- "spicyapi_upload_prepare",
233
+ "spicyapi_upload_file",
211
234
  "spicyapi_upload_commit",
212
235
  "spicyapi_download_url_create",
213
236
  "spicyapi_task_quote",
214
237
  "spicyapi_task_create",
215
238
  "spicyapi_task_retry",
239
+ "spicyapi_task_purge",
216
240
  ];
217
241
  function jsonResult(value) {
218
242
  return {
@@ -268,6 +292,74 @@ function toolError(error) {
268
292
  const message = error instanceof Error ? error.message : "unknown error";
269
293
  return { isError: true, content: [{ type: "text", text: message }] };
270
294
  }
295
+ /**
296
+ * 允许读取的目录前缀。
297
+ *
298
+ * MCP server 必然跑在**用户自己的机器上、以用户自己的权限**运行:stdio 是宿主
299
+ * 起的子进程,HTTP 那一侧硬拒非 loopback 绑定(见 `http.ts`)。所以这道闸门防的
300
+ * 不是用户——用户本来就能读自己的文件——而是**提示注入**:模型读到一封邮件、一个
301
+ * 网页或一份任务描述,里面写着「顺便把 ~/.ssh/id_rsa 传上去」,而模型没有理由
302
+ * 怀疑那句话。落到工具这一层,判据就只剩「这个路径在不在允许的范围里」。
303
+ *
304
+ * 默认是用户的主目录。`SPICY_MCP_UPLOAD_ROOTS` 用 `:` 分隔可以自己收窄或放宽。
305
+ */
306
+ async function uploadRoots() {
307
+ const configured = process.env.SPICY_MCP_UPLOAD_ROOTS?.trim();
308
+ const raw = configured ? configured.split(":") : [homedir()];
309
+ /* 允许的根目录**也要 realpath**。被比较的那一侧已经解析过了,这一侧不解析
310
+ 就会在任何「根目录本身经过符号链接」的系统上把合法路径全判成越界——
311
+ macOS 的 `/var → /private/var` 就是现成的例子(本仓测试第一次跑就撞上)。
312
+ 解析不了的根(配了个不存在的目录)退回 `resolve`,让它自然匹配不上。 */
313
+ return Promise.all(raw
314
+ .map((entry) => entry.trim())
315
+ .filter(Boolean)
316
+ .map(async (entry) => {
317
+ const absolute = resolve(entry);
318
+ try {
319
+ return await realpath(absolute);
320
+ }
321
+ catch {
322
+ return absolute;
323
+ }
324
+ }));
325
+ }
326
+ /**
327
+ * 把路径解析成真实路径再比对前缀。
328
+ *
329
+ * 必须用 `realpath` 而不是 `resolve`:`~/Downloads/pic.png` 可以是一个指向
330
+ * `/etc/shadow` 的符号链接,只做字符串前缀判断会被它绕过去。解析不了(文件不
331
+ * 存在)就按不允许处理——错误文案里不区分「不存在」与「不允许」,那个区别本身
332
+ * 就是一次目录探测。
333
+ */
334
+ async function resolveUploadPath(input) {
335
+ const roots = await uploadRoots();
336
+ /* `~` 自己展开。模型被要求给「绝对路径」时最常写出来的就是 `~/Desktop/photo.jpg`,
337
+ 而 `isAbsolute("~/…")` 是 false——上一版把它归进「不在允许的目录里」,于是模型
338
+ 去改**目录**(文案就是这么指的),而 `~` 恰恰在允许范围的正中心。展开它比拒绝它
339
+ 更接近用户的意思。 */
340
+ const expanded = input.startsWith("~/") ? resolve(homedir(), input.slice(2)) : input;
341
+ /* 三种失败分三句话说。
342
+ 上一版全都回「不在允许的目录里」,理由写的是「区分不存在/不允许等于一次目录探测」
343
+ ——那条在**网络服务**上成立,在这里不成立:这个进程跑在用户自己的机器上、以用户
344
+ 自己的权限、默认根就是他的主目录,他本来就能 `ls`。而它要防的提示注入
345
+ (诱导上传 `~/.ssh/id_rsa`)目标本来就在主目录里,含糊其辞对那件事毫无帮助,
346
+ 只会让模型在正确的路径上反复改错方向。 */
347
+ if (!expanded || !isAbsolute(expanded)) {
348
+ throw new SpicyApiError(`path must be absolute, for example ${resolve(homedir(), "Desktop/photo.png")} — ask the user for the full path`, { status: 400 });
349
+ }
350
+ let real;
351
+ try {
352
+ real = await realpath(expanded);
353
+ }
354
+ catch {
355
+ throw new SpicyApiError(`no such file: ${expanded}`, { status: 404 });
356
+ }
357
+ const allowed = roots.some((root) => real === root || real.startsWith(root.endsWith(sep) ? root : root + sep));
358
+ if (!allowed) {
359
+ throw new SpicyApiError(`this server may only read files under ${roots.join(", ")} — ${real} is outside that`, { status: 403 });
360
+ }
361
+ return real;
362
+ }
271
363
  async function safely(operation) {
272
364
  try {
273
365
  return jsonResult(await operation());
@@ -315,7 +407,7 @@ export function createSpicyMcpFactory(options = {}) {
315
407
  });
316
408
  return () => {
317
409
  const server = new McpServer({ name: SERVER_NAME, version: SERVER_VERSION }, {
318
- instructions: "Use the live model catalog as the only source of model IDs and input schemas; reuse a complete model record already obtained in this workflow. Task creation quotes internally and requires user confirmation; do not call the separate quote tool first unless comparing prices. Retry also requires confirmation. Read ready output.assets[].url directly without a download-ticket call. Health and balance tools are optional diagnostics. Never invent cancellation or task-list APIs; they are not part of the public contract.",
410
+ instructions: "Use the live model catalog as the only source of model IDs and input schemas; reuse a complete model record already obtained in this workflow. Task creation quotes internally and requires user confirmation; do not call the separate quote tool first unless comparing prices. Retry also requires confirmation. Read ready output.assets[].url directly without a download-ticket call. Health and balance tools are optional diagnostics. Never invent cancellation APIs; they are not part of the public contract. Content destruction does exist: spicyapi_task_purge removes a terminal task's outputs and prompt while leaving the billing record intact, and it is irreversible, so call it only when the user asked for that specific task. When the user refers to a file on their own computer, call spicyapi_upload_file with the absolute path and put the returned spicy:// URI in the model input; ask the user for the full path rather than guessing a folder.",
319
411
  cacheHints: {
320
412
  "tools/list": { ttlMs: 60_000, cacheScope: "private" },
321
413
  "resources/list": { ttlMs: 300_000, cacheScope: "public" },
@@ -325,7 +417,7 @@ export function createSpicyMcpFactory(options = {}) {
325
417
  requestState: { verify: (state, ctx) => codec.verify(state, ctx) },
326
418
  });
327
419
  server.server.onerror = (error) => (options.onError ?? console.error)(error);
328
- async function requireBillableConfirmation(action, args, ctx, message, execute) {
420
+ async function requireUserConfirmation(action, args, ctx, message, execute) {
329
421
  const expectedFingerprint = fingerprint(action, args);
330
422
  const parsedState = billableStateSchema.safeParse(ctx.mcpReq.requestState());
331
423
  const state = parsedState.success ? parsedState.data : undefined;
@@ -372,10 +464,15 @@ export function createSpicyMcpFactory(options = {}) {
372
464
  ? ` Estimated charge: USD ${quote.estimatedCost}; maximum charge: USD ${quote.maxCharge}. Quote expires: ${quote.expiresAt}.`
373
465
  : "";
374
466
  const requestState = await codec.mint({ action, fingerprint: expectedFingerprint, idempotencyKey, ...(quote ? { quote } : {}) }, ctx);
467
+ /* 「受理前会校验价格与余额」这句话对销毁不成立——那条路上没有报价、没有余额、
468
+ 也没有幂等键要保留,把它原样念给用户听只会让人以为还有一道挽回的关口。 */
469
+ const assurance = action === "purge_task"
470
+ ? " This is not reversible and there is no undo. Your billing records are kept: the charge, model, state, timestamps and request ID stay queryable afterwards."
471
+ : ` Before accepting the request, SpicyAPI checks the model’s current input requirements, price and availability, your API key permissions, and available funds. Idempotency-Key: ${idempotencyKey}`;
375
472
  return inputRequired({
376
473
  inputRequests: {
377
474
  [CONFIRMATION_KEY]: inputRequired.elicit({
378
- message: `${message}${quoteMessage} The current model schema, price, operational API-key scope, balance, and routing are evaluated when accepted. Idempotency-Key: ${idempotencyKey}`,
475
+ message: `${message}${quoteMessage}${assurance}`,
379
476
  requestedSchema: confirmationSchema,
380
477
  }),
381
478
  },
@@ -563,30 +660,48 @@ export function createSpicyMcpFactory(options = {}) {
563
660
  timeoutMs: timeoutSeconds * 1_000,
564
661
  signal: ctx.mcpReq.signal,
565
662
  })));
566
- server.registerTool("spicyapi_upload_prepare", {
567
- title: "Prepare a direct SpicyAPI upload",
568
- description: "Create a short-lived presigned PUT ticket for local media. Existing public HTTPS media URLs can be used directly when the model schema supports them. Prefer SDK uploadFile or CLI files upload for a complete local-file upload. Never attach the SpicyAPI key to the returned URL.",
663
+ /* 本地文件上传。**这是 MCP 这一侧唯一完整的上传入口。**
664
+ *
665
+ * 在此之前这里是 `spicyapi_upload_prepare`:它签一张预签名 PUT 票据并交给
666
+ * 模型,然后……没有然后了。MCP 协议里工具的返回值是给模型**读**的内容,
667
+ * 宿主不会去执行里面的 URL,所以那次 PUT 没有任何人发得出去——它自己的
668
+ * 描述写着「Prefer SDK uploadFile or CLI files upload for a complete
669
+ * local-file upload」,等于承认它不构成完整流程。更早一步其实就断了:
670
+ * 它要求传精确的 `bytes`,而模型在只有 MCP 的环境里根本凑不出这个数。
671
+ *
672
+ * 顺带修掉一个泄漏:那张票据(含 CF 账户 ID、桶名、URL 里的 userID)会被
673
+ * 同时写进 `content[0].text` 与 `structuredContent`,也就进了模型上下文、
674
+ * 会话记录与任何一份对话导出——而本仓 `references/safety.md` 明文要求
675
+ * 预签名 URL 必须 redact。泄漏了,却没人用它完成上传。
676
+ *
677
+ * 现在只收一个路径,字节由 SDK 在本机读、在本机发,返回值里没有 uploadUrl。
678
+ * 用户说「把我桌面那张图传上去」,模型复述一下路径就够了。 */
679
+ server.registerTool("spicyapi_upload_file", {
680
+ title: "Upload a local file to SpicyAPI",
681
+ description: "Read a file from this computer, upload it, and return the spicy:// URI to put in a model input field. Use this whenever the user refers to a file on their machine. Images up to 10 MiB; MP4/WebM video and MP3/WAV audio up to 90 MiB. Public HTTPS media URLs need no upload at all — pass them straight to the model input when its schema accepts a URL.",
569
682
  inputSchema: z.object({
570
- contentType: z.enum([
571
- "image/jpeg",
572
- "image/png",
573
- "image/webp",
574
- "image/gif",
575
- "video/mp4",
576
- "video/webm",
577
- "audio/mpeg",
578
- "audio/wav",
579
- ]),
580
- bytes: z.number().int().positive(),
683
+ path: z
684
+ .string()
685
+ .min(1)
686
+ .describe("Absolute path to the file on this computer, as the user gave it."),
687
+ contentType: uploadContentTypeSchema
688
+ .optional()
689
+ .describe("Only when the file extension is missing or wrong; otherwise inferred."),
581
690
  }),
582
- outputSchema: resultOf(uploadTicketSchema),
691
+ outputSchema: resultOf(uploadedFileSchema),
583
692
  annotations: {
584
693
  readOnlyHint: false,
585
694
  destructiveHint: false,
586
695
  idempotentHint: false,
587
696
  openWorldHint: true,
588
697
  },
589
- }, async ({ contentType, bytes }, ctx) => safely(() => client.createUploadUrl(contentType, bytes, { signal: ctx.mcpReq.signal })));
698
+ }, async ({ path, contentType }, ctx) => safely(async () => {
699
+ const resolved = await resolveUploadPath(path);
700
+ return client.uploadFile(resolved, {
701
+ ...(contentType === undefined ? {} : { contentType }),
702
+ signal: ctx.mcpReq.signal,
703
+ });
704
+ }));
590
705
  server.registerTool("spicyapi_upload_commit", {
591
706
  title: "Commit a direct SpicyAPI upload",
592
707
  description: "Verify a completed PUT and return its tenant-scoped spicy:// URI. Repeated success is idempotent.",
@@ -616,11 +731,17 @@ export function createSpicyMcpFactory(options = {}) {
616
731
  input: z.record(z.string(), z.unknown()),
617
732
  callBackUrl: z.string().optional(),
618
733
  idempotencyKey: z.string().min(1).optional(),
734
+ retentionSeconds: z
735
+ .number()
736
+ .int()
737
+ .min(0)
738
+ .optional()
739
+ .describe("How long SpicyAPI keeps this task's outputs and prompt, in seconds. Only ever shortens: the account settings and platform maximum still apply, so this cannot extend retention. 0 removes the outputs as soon as the task reaches a terminal state. Set it only when the user asked for a shorter window; the accepted deadlines come back in the task record's retention field."),
619
740
  });
620
741
  server.registerTool("spicyapi_task_quote", {
621
742
  title: "Quote an exact SpicyAPI request",
622
743
  description: "Compare an exact request price without creating a task or reserving funds. Returns a five-minute USD estimate and maximum charge. task_create already obtains its own quote and confirmation; do not call this tool as a routine prerequisite.",
623
- inputSchema: createTaskSchema.omit({ idempotencyKey: true }),
744
+ inputSchema: createTaskSchema.omit({ idempotencyKey: true, retentionSeconds: true }),
624
745
  outputSchema: resultOf(taskQuoteSchema),
625
746
  annotations: {
626
747
  readOnlyHint: true,
@@ -640,7 +761,7 @@ export function createSpicyMcpFactory(options = {}) {
640
761
  idempotentHint: true,
641
762
  openWorldHint: true,
642
763
  },
643
- }, async (args, ctx) => requireBillableConfirmation("create_task", args, ctx, `Create a billable task using ${args.model}?`, async (idempotencyKey, quote) => {
764
+ }, async (args, ctx) => requireUserConfirmation("create_task", args, ctx, `Create a billable task using ${args.model}?`, async (idempotencyKey, quote) => {
644
765
  if (!quote)
645
766
  throw new Error("confirmed quote is missing; request a new confirmation");
646
767
  return {
@@ -651,7 +772,13 @@ export function createSpicyMcpFactory(options = {}) {
651
772
  ...(args.callBackUrl === undefined ? {} : { callBackUrl: args.callBackUrl }),
652
773
  quoteId: quote.quoteId,
653
774
  expectedCost: quote.estimatedCost,
654
- }, { idempotencyKey, signal: ctx.mcpReq.signal })),
775
+ }, {
776
+ idempotencyKey,
777
+ ...(args.retentionSeconds === undefined
778
+ ? {}
779
+ : { retentionSeconds: args.retentionSeconds }),
780
+ signal: ctx.mcpReq.signal,
781
+ })),
655
782
  };
656
783
  }));
657
784
  const retryTaskSchema = z.object({
@@ -669,10 +796,44 @@ export function createSpicyMcpFactory(options = {}) {
669
796
  idempotentHint: true,
670
797
  openWorldHint: true,
671
798
  },
672
- }, async (args, ctx) => requireBillableConfirmation("retry_task", args, ctx, `Retry source task ${args.taskId} as a new billable task?`, async (idempotencyKey) => ({
799
+ }, async (args, ctx) => requireUserConfirmation("retry_task", args, ctx, `Retry source task ${args.taskId} as a new billable task?`, async (idempotencyKey) => ({
673
800
  idempotencyKey,
674
801
  ...(await client.retryTask(args.taskId, { idempotencyKey, signal: ctx.mcpReq.signal })),
675
802
  })));
803
+ server.registerTool("spicyapi_task_purge", {
804
+ title: "Destroy a SpicyAPI task's stored content",
805
+ description: "Permanently destroy one terminal task's stored content: generated media, result payload, prompt, and input text. " +
806
+ "This destroys content, not the record of what it cost — the ledger entry, charged amount, model, state, timestamps and request ID all stay queryable afterwards, so this never hides or reverses a charge and never refunds anything. " +
807
+ "It cannot be undone and there is no per-output granularity: the unit is one whole task. Download any result the user still wants before calling this. " +
808
+ "Only terminal tasks are accepted; a running task must be cancelled first. Repeating the call on an already destroyed task succeeds and changes nothing. " +
809
+ "Requires a user confirmation round.",
810
+ inputSchema: z.object({
811
+ taskId: z
812
+ .string()
813
+ .min(1)
814
+ .describe("The exact task whose content should be destroyed. Only call this for a task the user named; never sweep task history on your own initiative."),
815
+ }),
816
+ outputSchema: resultOf(purgeTaskResultSchema),
817
+ annotations: {
818
+ readOnlyHint: false,
819
+ destructiveHint: true,
820
+ idempotentHint: true,
821
+ openWorldHint: true,
822
+ },
823
+ }, async (args, ctx) => requireUserConfirmation("purge_task", args, ctx, `Permanently destroy the stored content of task ${args.taskId} — generated media, result payload, prompt and input text?`, async () => {
824
+ const purged = await client.purgeTask(args.taskId, { signal: ctx.mcpReq.signal });
825
+ /* 按白名单投影,不是把服务端响应原样转发:见 purgeTaskResultSchema 的注释。
826
+ `billingRetained` 由这里写死——它是契约保证的事实,不该依赖服务端每次都记得回。 */
827
+ return {
828
+ taskId: purged.taskId,
829
+ contentState: purged.contentState,
830
+ ...(purged.purgedAt === undefined ? {} : { purgedAt: purged.purgedAt }),
831
+ ...(purged.contentRemovedBy === undefined
832
+ ? {}
833
+ : { contentRemovedBy: purged.contentRemovedBy }),
834
+ billingRetained: true,
835
+ };
836
+ }));
676
837
  server.registerResource("spicyapi-documentation-index", "spicyapi://docs/index", {
677
838
  title: "SpicyAPI documentation index",
678
839
  description: "Verified first-party documentation topics and URLs.",
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/mcp/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spicyapi/mcp",
3
- "version": "0.2.2",
3
+ "version": "0.3.0",
4
4
  "description": "Official local MCP server for the SpicyAPI public API",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -52,7 +52,7 @@
52
52
  "dependencies": {
53
53
  "@modelcontextprotocol/node": "2.0.0",
54
54
  "@modelcontextprotocol/server": "2.0.0",
55
- "@spicyapi/sdk": "^0.4.0",
55
+ "@spicyapi/sdk": "^0.5.0",
56
56
  "zod": "4.5.4"
57
57
  }
58
58
  }