@spicyapi/mcp 0.2.3 → 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 +217 -49
- package/dist/src/generated/package-version.d.ts +1 -1
- package/dist/src/generated/package-version.js +1 -1
- package/dist/src/mcp/server.d.ts +1 -1
- package/dist/src/mcp/server.d.ts.map +1 -1
- package/dist/src/mcp/server.js +197 -36
- package/dist/src/mcp/server.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,55 +1,223 @@
|
|
|
1
1
|
# @spicyapi/mcp
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
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
|
-
|
|
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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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.
|
|
1
|
+
export declare const MCP_VERSION = "0.3.0";
|
|
2
2
|
//# sourceMappingURL=package-version.d.ts.map
|
package/dist/src/mcp/server.d.ts
CHANGED
|
@@ -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", "
|
|
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":"
|
|
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"}
|
package/dist/src/mcp/server.js
CHANGED
|
@@ -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
|
-
|
|
146
|
-
|
|
147
|
-
|
|
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
|
-
"
|
|
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
|
|
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
|
|
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}
|
|
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
|
-
|
|
567
|
-
|
|
568
|
-
|
|
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
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
"
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
"
|
|
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(
|
|
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 ({
|
|
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) =>
|
|
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
|
-
}, {
|
|
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) =>
|
|
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.
|
|
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.
|
|
55
|
+
"@spicyapi/sdk": "^0.5.0",
|
|
56
56
|
"zod": "4.5.4"
|
|
57
57
|
}
|
|
58
58
|
}
|