@spicrawl/mcp 0.1.0 → 0.1.2
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 +14 -0
- package/README.md +335 -135
- package/dist/chatgpt/http.d.ts +22 -0
- package/dist/chatgpt/http.js +127 -0
- package/dist/chatgpt/http.js.map +1 -0
- package/dist/chatgpt/oauth.d.ts +100 -0
- package/dist/chatgpt/oauth.js +199 -0
- package/dist/chatgpt/oauth.js.map +1 -0
- package/dist/chatgpt/tools.d.ts +33 -0
- package/dist/chatgpt/tools.js +309 -0
- package/dist/chatgpt/tools.js.map +1 -0
- package/dist/client.d.ts +6 -1
- package/dist/client.js +3 -2
- package/dist/client.js.map +1 -1
- package/dist/http.d.ts +7 -0
- package/dist/http.js +38 -26
- package/dist/http.js.map +1 -1
- package/dist/httputil.d.ts +11 -0
- package/dist/httputil.js +33 -0
- package/dist/httputil.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts +48 -2
- package/dist/server.js +20 -7
- package/dist/server.js.map +1 -1
- package/dist/tools/batch.d.ts +11 -0
- package/dist/tools/batch.js +44 -38
- package/dist/tools/batch.js.map +1 -1
- package/dist/tools/browser.js +7 -2
- package/dist/tools/browser.js.map +1 -1
- package/dist/tools/common.d.ts +21 -2
- package/dist/tools/common.js +14 -0
- package/dist/tools/common.js.map +1 -1
- package/dist/tools/docs.js +5 -5
- package/dist/tools/docs.js.map +1 -1
- package/dist/tools/scrape.js +23 -8
- package/dist/tools/scrape.js.map +1 -1
- package/dist/tools/sessions.js +13 -11
- package/dist/tools/sessions.js.map +1 -1
- package/package.json +17 -9
package/dist/tools/scrape.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { COMING_SOON, run } from "./common.js";
|
|
2
|
+
import { COMING_SOON, availableOnly, run } from "./common.js";
|
|
3
3
|
import { attachScreenshots } from "./screenshots.js";
|
|
4
4
|
import { attachPdf } from "./pdf.js";
|
|
5
5
|
import { ActionsSchema, toApiActions } from "./actions.js";
|
|
6
|
-
export const registerScrapeTools = (server, client) => {
|
|
6
|
+
export const registerScrapeTools = (server, client, { hideUnavailable }) => {
|
|
7
7
|
// ---------------------------------------------------------------------------
|
|
8
8
|
// spicrawl_scrape — retrieve, render, and extract one URL
|
|
9
9
|
// ---------------------------------------------------------------------------
|
|
@@ -21,7 +21,7 @@ export const registerScrapeTools = (server, client) => {
|
|
|
21
21
|
main_content_only: z
|
|
22
22
|
.boolean()
|
|
23
23
|
.optional()
|
|
24
|
-
.describe("Strip the page to its main article, dropping nav/footer/aside
|
|
24
|
+
.describe("Strip the page to its main article, dropping nav/footer/aside. Defaults on for markdown."),
|
|
25
25
|
include_tags: z
|
|
26
26
|
.array(z.string())
|
|
27
27
|
.optional()
|
|
@@ -89,7 +89,10 @@ export const registerScrapeTools = (server, client) => {
|
|
|
89
89
|
mode: z.enum(["auto"]).optional().describe("Routing mode. `auto` lets the platform escalate fetch -> browser as needed, billing only the rung that worked."),
|
|
90
90
|
stealth: z.boolean().optional().describe(COMING_SOON + "Stealth mode: render in the hardened Camoufox browser. Default false."),
|
|
91
91
|
headless: z.boolean().optional().describe("false runs Chromium on a real display (1920x1080 screen). chromium engine only."),
|
|
92
|
-
method: z
|
|
92
|
+
method: z
|
|
93
|
+
.string()
|
|
94
|
+
.optional()
|
|
95
|
+
.describe("HTTP method sent to the target (default GET; no request body can be sent). Anything but GET, HEAD or OPTIONS can change state on the target site: use it only when the user asks."),
|
|
93
96
|
custom_headers: z.record(z.string()).optional().describe("Extra request headers sent to the target, e.g. {\"Accept-Language\":\"de\"}."),
|
|
94
97
|
session_id: z
|
|
95
98
|
.string()
|
|
@@ -145,19 +148,31 @@ export const registerScrapeTools = (server, client) => {
|
|
|
145
148
|
"screenshot_selector", "screenshot_format", "screenshot_quality", "autoparse", "extract_preset",
|
|
146
149
|
"network_capture", "parse_pdf", "max_cost", "original_status", "allowed_status_codes",
|
|
147
150
|
];
|
|
151
|
+
// What the description says about the one argument that only exists while it is not hidden.
|
|
152
|
+
const aiExtractNote = hideUnavailable ? "" : " (a natural-language `ai_extract` is coming soon)";
|
|
153
|
+
const aiExtractKey = hideUnavailable ? "" : "`ai_extract`, ";
|
|
148
154
|
server.registerTool("spicrawl_scrape", {
|
|
149
155
|
title: "Scrape a URL",
|
|
150
156
|
description: "Retrieve a web page and return its content as markdown (default), text, HTML, a JSON envelope, or a printed PDF. " +
|
|
151
157
|
"Handles the fetch vs. browser decision, charset decoding, and PDF-to-text for you. " +
|
|
152
|
-
|
|
158
|
+
`Optionally extract structured data with CSS selectors (\`extract\`) or \`autoparse\`${aiExtractNote}, ` +
|
|
153
159
|
"return discovered `links`, take a `screenshot`, or scope the DOM with `include_tags`/`exclude_tags`. " +
|
|
160
|
+
"Each successful call is billed in credits (a failure costs 0). " +
|
|
154
161
|
"Results are cached by default, and a cache hit is billed like the fetch that stored it (the cache saves time, not credits); set `cache=false` for time-sensitive pages. " +
|
|
155
|
-
"
|
|
162
|
+
"With the defaults it only reads the page. A `method` other than GET, HEAD or OPTIONS, and the `actions` that click, fill or run scripts on the page, " +
|
|
163
|
+
"can change state on the target site: set them only when the user asks for that. " +
|
|
164
|
+
"For markdown, text and HTML it returns `{ content }`. With `format: \"json\"`, or when " +
|
|
165
|
+
`\`extract\`, ${aiExtractKey}\`autoparse\`, \`links\`, \`screenshot\` or \`network_capture\` is set, it returns the JSON envelope: ` +
|
|
166
|
+
"`content`, the site's `status`, `credits`, `engine`, `warnings` and `data` for extraction. " +
|
|
156
167
|
"Screenshots come back as image content blocks; each `screenshots` entry in the JSON keeps its metadata and says which block holds it. " +
|
|
157
168
|
"A PDF comes back as a resource content block, with its size and the engine and credits in the JSON.",
|
|
158
|
-
inputSchema: ScrapeInput,
|
|
169
|
+
inputSchema: availableOnly(ScrapeInput, hideUnavailable),
|
|
170
|
+
// Not read-only, whatever the default call does: `method` accepts POST/PUT/PATCH/DELETE
|
|
171
|
+
// and `actions` can click, fill and run scripts on the target page, so a call can submit
|
|
172
|
+
// a form or write to a third-party site (a write-style outbound action). Not marked
|
|
173
|
+
// destructive: a plain call is additive. Open-world: any public URL.
|
|
159
174
|
annotations: {
|
|
160
|
-
readOnlyHint:
|
|
175
|
+
readOnlyHint: false,
|
|
161
176
|
destructiveHint: false,
|
|
162
177
|
idempotentHint: false,
|
|
163
178
|
openWorldHint: true,
|
package/dist/tools/scrape.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrape.js","sourceRoot":"","sources":["../../src/tools/scrape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,GAAG,EAAsB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"scrape.js","sourceRoot":"","sources":["../../src/tools/scrape.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/sessions.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { COMING_SOON, run } from "./common.js";
|
|
2
|
+
import { COMING_SOON, availableOnly, run } from "./common.js";
|
|
3
3
|
const sessionPath = (id) => `/v1/sessions/${encodeURIComponent(id)}`;
|
|
4
4
|
function withQuery(path, q) {
|
|
5
5
|
const params = new URLSearchParams();
|
|
@@ -16,7 +16,7 @@ const force = z
|
|
|
16
16
|
.describe("Break an active lease (a scrape currently using the session). Only set when you know it is safe.");
|
|
17
17
|
const engines = ["fetch", "obscura", "chromium", "camoufox"];
|
|
18
18
|
// Sessions: /v1/sessions.
|
|
19
|
-
export const registerSessionsTools = (server, client) => {
|
|
19
|
+
export const registerSessionsTools = (server, client, { hideUnavailable }) => {
|
|
20
20
|
// -------------------------------------------------------------------------
|
|
21
21
|
// spicrawl_session_create — POST /v1/sessions
|
|
22
22
|
// -------------------------------------------------------------------------
|
|
@@ -28,7 +28,7 @@ export const registerSessionsTools = (server, client) => {
|
|
|
28
28
|
"state. The engine is pinned for the session's lifetime. Without `engine`, the server picks one this deployment " +
|
|
29
29
|
"runs: `obscura`, else `chromium`, else `fetch`. Release the session with `spicrawl_session_release` when done. " +
|
|
30
30
|
"Returns the session object (id, engine, status, sticky_key, proxy, expires_at).",
|
|
31
|
-
inputSchema: {
|
|
31
|
+
inputSchema: availableOnly({
|
|
32
32
|
engine: z
|
|
33
33
|
.enum(engines)
|
|
34
34
|
.optional()
|
|
@@ -71,8 +71,9 @@ export const registerSessionsTools = (server, client) => {
|
|
|
71
71
|
.record(z.unknown())
|
|
72
72
|
.optional()
|
|
73
73
|
.describe("Seed the session's state (cookies, storage) — e.g. the `session_context` object from spicrawl_session_context, to clone a session."),
|
|
74
|
-
},
|
|
75
|
-
|
|
74
|
+
}, hideUnavailable),
|
|
75
|
+
// Creates a persistent record in the user's own account; nothing outside it is contacted.
|
|
76
|
+
annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false },
|
|
76
77
|
}, async (input) => {
|
|
77
78
|
const body = {};
|
|
78
79
|
for (const [k, v] of Object.entries(input))
|
|
@@ -93,7 +94,7 @@ export const registerSessionsTools = (server, client) => {
|
|
|
93
94
|
limit: z.number().int().min(1).max(200).optional().describe("Page size (default 50, max 200)."),
|
|
94
95
|
cursor: z.string().optional().describe("`next_cursor` from a previous page, verbatim."),
|
|
95
96
|
},
|
|
96
|
-
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint:
|
|
97
|
+
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
97
98
|
}, async ({ status, engine, limit, cursor }) => run(() => client.request("GET", withQuery("/v1/sessions", { status, engine, limit, cursor }))));
|
|
98
99
|
// -------------------------------------------------------------------------
|
|
99
100
|
// spicrawl_session_get — GET /v1/sessions/{id}
|
|
@@ -103,7 +104,7 @@ export const registerSessionsTools = (server, client) => {
|
|
|
103
104
|
description: "Return one session's metadata: status, engine, proxy/exit, usage count, expiry, lease holder, and a summary " +
|
|
104
105
|
"of its stored context. Never returns the credentials themselves (use spicrawl_session_context for that).",
|
|
105
106
|
inputSchema: { session_id: sessionId },
|
|
106
|
-
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint:
|
|
107
|
+
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
107
108
|
}, async ({ session_id }) => run(() => client.request("GET", sessionPath(session_id))));
|
|
108
109
|
// -------------------------------------------------------------------------
|
|
109
110
|
// spicrawl_session_context — GET /v1/sessions/{id}/context
|
|
@@ -114,7 +115,7 @@ export const registerSessionsTools = (server, client) => {
|
|
|
114
115
|
"fingerprint and domain scores. The `session_context` object can be passed to spicrawl_session_create to clone " +
|
|
115
116
|
"the session. The result contains secrets (login cookies): do not echo it to the user or logs unless asked.",
|
|
116
117
|
inputSchema: { session_id: sessionId },
|
|
117
|
-
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint:
|
|
118
|
+
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
118
119
|
}, async ({ session_id }) => run(() => client.request("GET", `${sessionPath(session_id)}/context`)));
|
|
119
120
|
// -------------------------------------------------------------------------
|
|
120
121
|
// spicrawl_session_release — POST /v1/sessions/{id}/release
|
|
@@ -122,10 +123,11 @@ export const registerSessionsTools = (server, client) => {
|
|
|
122
123
|
server.registerTool("spicrawl_session_release", {
|
|
123
124
|
title: "Release a session",
|
|
124
125
|
description: "End a session when you are done with it: frees its exit IP and browser state; it can no longer be used with " +
|
|
125
|
-
"spicrawl_scrape.
|
|
126
|
+
"spicrawl_scrape. Its stored cookies and storage are purged and cannot be recovered; start a new session and log in again to continue. " +
|
|
127
|
+
"The record stays visible (status `released`) so its history can still be inspected. " +
|
|
126
128
|
"Refused while a scrape holds the session's lease unless `force` is true. Returns the session object.",
|
|
127
129
|
inputSchema: { session_id: sessionId, force },
|
|
128
|
-
annotations: { readOnlyHint: false, destructiveHint:
|
|
130
|
+
annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false },
|
|
129
131
|
}, async ({ session_id, force }) => run(() => client.request("POST", withQuery(`${sessionPath(session_id)}/release`, { force }))));
|
|
130
132
|
// -------------------------------------------------------------------------
|
|
131
133
|
// spicrawl_session_delete — DELETE /v1/sessions/{id}
|
|
@@ -136,7 +138,7 @@ export const registerSessionsTools = (server, client) => {
|
|
|
136
138
|
"if you only want to stop using it). Idempotent: deleting an already-deleted session succeeds. Refused while a " +
|
|
137
139
|
"scrape holds the session's lease unless `force` is true.",
|
|
138
140
|
inputSchema: { session_id: sessionId, force },
|
|
139
|
-
annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint:
|
|
141
|
+
annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false },
|
|
140
142
|
}, async ({ session_id, force }) => run(async () => {
|
|
141
143
|
await client.request("DELETE", withQuery(sessionPath(session_id), { force }));
|
|
142
144
|
return { deleted: true, session_id };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/tools/sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,GAAG,EAAsB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/tools/sessions.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spicrawl/mcp",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"mcpName": "io.github.Spicrawl/mcp",
|
|
5
|
+
"description": "The Spicrawl MCP server is a Model Context Protocol server that gives AI agents in Claude Code, Claude Desktop, Cursor, VS Code, Windsurf, Gemini CLI and Codex web scraping to Markdown, structured data extraction, screenshots, browser sessions and batch scraping as 25 native tools.",
|
|
5
6
|
"license": "Apache-2.0",
|
|
6
7
|
"author": "Spicrawl",
|
|
7
|
-
"homepage": "https://docs.spicrawl.com/
|
|
8
|
+
"homepage": "https://docs.spicrawl.com/agents/mcp",
|
|
8
9
|
"repository": {
|
|
9
10
|
"type": "git",
|
|
10
11
|
"url": "git+https://github.com/Spicrawl/mcp.git"
|
|
@@ -18,19 +19,26 @@
|
|
|
18
19
|
"mcp-server",
|
|
19
20
|
"model-context-protocol",
|
|
20
21
|
"web-scraping",
|
|
21
|
-
"web-
|
|
22
|
-
"
|
|
23
|
-
"crawler",
|
|
22
|
+
"web-scraper",
|
|
23
|
+
"web-crawler",
|
|
24
24
|
"html-to-markdown",
|
|
25
25
|
"markdown",
|
|
26
|
+
"data-extraction",
|
|
27
|
+
"structured-data",
|
|
28
|
+
"screenshot",
|
|
29
|
+
"headless-browser",
|
|
30
|
+
"batch-scraping",
|
|
26
31
|
"llm",
|
|
27
32
|
"ai-agents",
|
|
33
|
+
"rag",
|
|
28
34
|
"claude",
|
|
29
35
|
"claude-code",
|
|
36
|
+
"claude-desktop",
|
|
30
37
|
"cursor",
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
38
|
+
"vscode",
|
|
39
|
+
"codex",
|
|
40
|
+
"gemini-cli",
|
|
41
|
+
"windsurf"
|
|
34
42
|
],
|
|
35
43
|
"type": "module",
|
|
36
44
|
"bin": {
|