@spicrawl/mcp 0.1.6 → 0.1.8
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/CHANGELOG.md +15 -0
- package/README.md +78 -17
- package/dist/card.d.ts +2 -1
- package/dist/card.js +2 -1
- package/dist/card.js.map +1 -1
- package/dist/http.d.ts +4 -0
- package/dist/http.js +87 -5
- package/dist/http.js.map +1 -1
- package/dist/httputil.d.ts +8 -2
- package/dist/httputil.js +12 -3
- package/dist/httputil.js.map +1 -1
- package/dist/tools/actions.d.ts +12 -12
- package/dist/tools/batch.js +116 -1
- package/dist/tools/batch.js.map +1 -1
- package/dist/tools/browser.js +8 -1
- package/dist/tools/browser.js.map +1 -1
- package/dist/tools/common.d.ts +20 -8
- package/dist/tools/common.js +28 -3
- package/dist/tools/common.js.map +1 -1
- package/dist/tools/docs.js +78 -15
- package/dist/tools/docs.js.map +1 -1
- package/dist/tools/requests.js +70 -1
- package/dist/tools/requests.js.map +1 -1
- package/dist/tools/scrape.js +41 -1
- package/dist/tools/scrape.js.map +1 -1
- package/dist/tools/sessions.js +87 -1
- package/dist/tools/sessions.js.map +1 -1
- package/dist/tools/usage.js +105 -1
- package/dist/tools/usage.js.map +1 -1
- package/package.json +8 -13
package/dist/tools/usage.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { run } from "./common.js";
|
|
2
|
+
import { loose, run } from "./common.js";
|
|
3
3
|
// Usage analytics: /v1/usage, /v1/usage/summary, /v1/usage/reconciliation.
|
|
4
4
|
// All three require the API key to carry the `read` scope (not in the default
|
|
5
5
|
// key scopes {scrape, batch, sessions}); without it the API answers 403.
|
|
@@ -35,6 +35,107 @@ const METRICS = [
|
|
|
35
35
|
"client_other",
|
|
36
36
|
];
|
|
37
37
|
const DATE = z.string().regex(/^\d{4}-\d{2}-\d{2}$/, "YYYY-MM-DD");
|
|
38
|
+
// What the three endpoints answer (openapi.yaml: UsageBreakdown, UsageByKey,
|
|
39
|
+
// UsageSummary, UsageReconciliation). Metric names are open-ended ("new metrics
|
|
40
|
+
// may appear as map keys"), so a metric map is a record, not a fixed list.
|
|
41
|
+
const METRIC_MAP = z
|
|
42
|
+
.record(z.string(), z.number())
|
|
43
|
+
.nullish()
|
|
44
|
+
.describe("Metric name -> quantity. credits are micro-credits (1 credit = 1000000), engine_ms milliseconds, bytes_* bytes, the rest counts.");
|
|
45
|
+
const PERIOD = loose({
|
|
46
|
+
start: z.string().optional().describe("First UTC day, inclusive (YYYY-MM-DD)."),
|
|
47
|
+
end: z.string().optional().describe("End UTC day, EXCLUSIVE (YYYY-MM-DD)."),
|
|
48
|
+
days: z.number().optional(),
|
|
49
|
+
bounds: z.string().optional().describe("Always '[start, end)'."),
|
|
50
|
+
}).optional().describe("The window, as a half-open range of UTC days.");
|
|
51
|
+
const USAGE_AS_OF = z.string().nullish().describe("When the newest rollup row in the window was written; null when the window is empty.");
|
|
52
|
+
const STALE_SECONDS = z.number().nullish().describe("Age of usage_as_of in seconds; null when the window is empty. A large value means the rollup is behind.");
|
|
53
|
+
const WARNINGS = z.array(z.string()).optional().describe("Caveats the numbers would otherwise hide.");
|
|
54
|
+
const USAGE_OUTPUT = loose({
|
|
55
|
+
period: PERIOD,
|
|
56
|
+
group_by: z.string().optional().describe("The dimension used: day, project, engine, feature or key."),
|
|
57
|
+
groups: z
|
|
58
|
+
.array(loose({
|
|
59
|
+
key: z.string().describe("The bucket: a YYYY-MM-DD day, a project id, an engine tier (fetch, js or browser) or a feature (extract, ai_extract, proxy_datacenter, proxy_residential, batch)."),
|
|
60
|
+
label: z.string().optional().describe("Human label for an engine tier."),
|
|
61
|
+
metrics: METRIC_MAP,
|
|
62
|
+
}))
|
|
63
|
+
.nullish()
|
|
64
|
+
.describe("The buckets, sorted by key. Empty (or missing for group_by=key) does not mean no usage: read totals."),
|
|
65
|
+
totals: METRIC_MAP.optional().describe("Billed quantities for the whole window. Authoritative; use these, not the sum of groups."),
|
|
66
|
+
unattributed: METRIC_MAP.optional().describe("The part of each total the groups do not explain."),
|
|
67
|
+
keys: z
|
|
68
|
+
.array(loose({
|
|
69
|
+
key_id: z.string(),
|
|
70
|
+
name: z.string().optional(),
|
|
71
|
+
prefix: z.string().optional().describe("Display prefix of the API key, never the secret."),
|
|
72
|
+
project_id: z.string().optional(),
|
|
73
|
+
revoked: z.boolean().optional(),
|
|
74
|
+
days: z.array(loose({ day: z.string(), metrics: METRIC_MAP })).nullish(),
|
|
75
|
+
totals: METRIC_MAP.optional(),
|
|
76
|
+
}))
|
|
77
|
+
.nullish()
|
|
78
|
+
.describe("group_by=key only: one entry per API key, with its counters per UTC day."),
|
|
79
|
+
usage_as_of: USAGE_AS_OF,
|
|
80
|
+
stale_seconds: STALE_SECONDS,
|
|
81
|
+
warnings: WARNINGS,
|
|
82
|
+
});
|
|
83
|
+
const SUMMARY_OUTPUT = loose({
|
|
84
|
+
period: PERIOD,
|
|
85
|
+
period_elapsed_days: z.number().optional().describe("Whole days of the period elapsed; use it to pace consumption."),
|
|
86
|
+
plan: loose({
|
|
87
|
+
code: z.string().optional(),
|
|
88
|
+
name: z.string().optional(),
|
|
89
|
+
version: z.number().optional(),
|
|
90
|
+
subscription_status: z.string().optional().describe("'none' when no subscription covers now (the free plan)."),
|
|
91
|
+
period_source: z.string().optional().describe("'subscription' (billing period) or 'allowance_month'."),
|
|
92
|
+
}).optional(),
|
|
93
|
+
credits: loose({
|
|
94
|
+
included_micro: z.number().optional(),
|
|
95
|
+
used_micro: z.number().optional().describe("Credits spent so far, from the usage rollup; excludes credits held for in-flight work."),
|
|
96
|
+
remaining_micro: z.number().optional(),
|
|
97
|
+
overage_micro: z.number().optional(),
|
|
98
|
+
overage_micro_cents_per_credit: z.number().optional(),
|
|
99
|
+
used_basis_points: z.number().nullish().describe("Used / included in basis points (10000 = 100%); null when nothing is included."),
|
|
100
|
+
})
|
|
101
|
+
.nullish()
|
|
102
|
+
.describe("Metered usage against the plan's included credits. Micro-credits: 1 credit = 1000000."),
|
|
103
|
+
allowance: loose({
|
|
104
|
+
limit_micro: z.number().optional(),
|
|
105
|
+
limit_credits: z.number().optional(),
|
|
106
|
+
limit_source: z.string().optional().describe("'default' or 'override'."),
|
|
107
|
+
unlimited: z.boolean().optional(),
|
|
108
|
+
used_micro: z.number().optional().describe("Spent plus credits held for in-flight work."),
|
|
109
|
+
remaining_micro: z.number().optional().describe("Credits left under the monthly limit: the number to show."),
|
|
110
|
+
window_start: z.string().optional(),
|
|
111
|
+
resets_at: z.string().optional().describe("When the allowance is restored in full."),
|
|
112
|
+
})
|
|
113
|
+
.optional()
|
|
114
|
+
.describe("The monthly allowance the API enforces. Omitted when it cannot be read (warnings says so)."),
|
|
115
|
+
metrics: METRIC_MAP.optional().describe("Every billed metric for the period."),
|
|
116
|
+
unattributed: METRIC_MAP.optional(),
|
|
117
|
+
usage_as_of: USAGE_AS_OF,
|
|
118
|
+
stale_seconds: STALE_SECONDS,
|
|
119
|
+
warnings: WARNINGS,
|
|
120
|
+
});
|
|
121
|
+
const RECONCILIATION_OUTPUT = loose({
|
|
122
|
+
day: z.string().optional().describe("The UTC day reconciled."),
|
|
123
|
+
drift: z
|
|
124
|
+
.array(loose({
|
|
125
|
+
project_id: z.string().optional(),
|
|
126
|
+
metric: z.string().optional(),
|
|
127
|
+
stored_qty: z.number().optional().describe("The billed quantity."),
|
|
128
|
+
observed_qty: z.number().optional().describe("The quantity re-derived from the request log."),
|
|
129
|
+
delta: z.number().optional(),
|
|
130
|
+
action: z.string().optional().describe("The verdict: missing_in_usage_daily, absent_from_request_log, undercounted or overcounted."),
|
|
131
|
+
}))
|
|
132
|
+
.nullish()
|
|
133
|
+
.describe("Disagreements; empty means no drift."),
|
|
134
|
+
request_log_rows: z.number().optional().describe("Rows in the request log for the day; 0 means there was nothing to compare against."),
|
|
135
|
+
interpretation: z.string().optional().describe("What the drift can and cannot prove. Read it before acting on drift."),
|
|
136
|
+
repairable: z.boolean().optional().describe("Always false; nothing is repaired."),
|
|
137
|
+
warnings: WARNINGS,
|
|
138
|
+
});
|
|
38
139
|
export const registerUsageTools = (server, client) => {
|
|
39
140
|
server.registerTool("spicrawl_usage", {
|
|
40
141
|
title: "Usage breakdown",
|
|
@@ -56,6 +157,7 @@ export const registerUsageTools = (server, client) => {
|
|
|
56
157
|
.optional()
|
|
57
158
|
.describe("Metrics to return. Omit for all of them."),
|
|
58
159
|
},
|
|
160
|
+
outputSchema: USAGE_OUTPUT,
|
|
59
161
|
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
60
162
|
}, async (args) => run(() => {
|
|
61
163
|
const qs = new URLSearchParams();
|
|
@@ -77,6 +179,7 @@ export const registerUsageTools = (server, client) => {
|
|
|
77
179
|
description: "A compact current-period summary of your org's usage (totals as of now, from the daily rollup). No parameters. " +
|
|
78
180
|
"Use for a quick 'how much have I used so far'; use spicrawl_usage for a windowed breakdown. Requires the `read` scope.",
|
|
79
181
|
inputSchema: {},
|
|
182
|
+
outputSchema: SUMMARY_OUTPUT,
|
|
80
183
|
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
81
184
|
}, async () => run(() => client.request("GET", "/v1/usage/summary")));
|
|
82
185
|
server.registerTool("spicrawl_usage_reconciliation", {
|
|
@@ -87,6 +190,7 @@ export const registerUsageTools = (server, client) => {
|
|
|
87
190
|
inputSchema: {
|
|
88
191
|
day: DATE.optional().describe("The UTC day to reconcile, YYYY-MM-DD. Default: yesterday."),
|
|
89
192
|
},
|
|
193
|
+
outputSchema: RECONCILIATION_OUTPUT,
|
|
90
194
|
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
91
195
|
}, async ({ day }) => run(() => client.request("GET", `/v1/usage/reconciliation${day ? `?day=${encodeURIComponent(day)}` : ""}`)));
|
|
92
196
|
};
|
package/dist/tools/usage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/tools/usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAsB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/tools/usage.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spicrawl/mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.8",
|
|
4
4
|
"mcpName": "io.github.OfficialSpicrawl/mcp",
|
|
5
|
-
"description": "
|
|
5
|
+
"description": "MCP server for web scraping: scrape any URL to Markdown or JSON for Claude, Cursor and AI agents, with JavaScript rendering, batch scraping and data extraction",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"author": "Spicrawl",
|
|
8
8
|
"homepage": "https://docs.spicrawl.com/agents/mcp",
|
|
@@ -20,25 +20,20 @@
|
|
|
20
20
|
"model-context-protocol",
|
|
21
21
|
"web-scraping",
|
|
22
22
|
"web-scraper",
|
|
23
|
-
"
|
|
24
|
-
"
|
|
23
|
+
"scraper",
|
|
24
|
+
"batch-scraping",
|
|
25
25
|
"markdown",
|
|
26
|
+
"html-to-markdown",
|
|
26
27
|
"data-extraction",
|
|
27
28
|
"structured-data",
|
|
28
|
-
"screenshot",
|
|
29
29
|
"javascript-rendering",
|
|
30
|
-
"
|
|
30
|
+
"browser-automation",
|
|
31
31
|
"llm",
|
|
32
|
-
"ai-agents",
|
|
33
32
|
"rag",
|
|
33
|
+
"ai-agents",
|
|
34
34
|
"claude",
|
|
35
35
|
"claude-code",
|
|
36
|
-
"
|
|
37
|
-
"cursor",
|
|
38
|
-
"vscode",
|
|
39
|
-
"codex",
|
|
40
|
-
"gemini-cli",
|
|
41
|
-
"windsurf"
|
|
36
|
+
"cursor"
|
|
42
37
|
],
|
|
43
38
|
"type": "module",
|
|
44
39
|
"bin": {
|