@scrapi.ai/mcp-server 2.0.5 → 2.0.7
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 +14 -10
- package/dist/http.js +76 -10
- package/dist/http.js.map +1 -1
- package/dist/utils/api.d.ts +1 -0
- package/dist/utils/api.d.ts.map +1 -1
- package/dist/utils/api.js +15 -4
- package/dist/utils/api.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -256,15 +256,19 @@ Edit `~/.claude.json` or project `.mcp.json`:
|
|
|
256
256
|
|
|
257
257
|
Connect via Streamable HTTP — no Node.js installation needed on the client side.
|
|
258
258
|
|
|
259
|
+
Two endpoints are available (both work identically):
|
|
260
|
+
- `https://scrapi.ai/api` — default
|
|
261
|
+
- `https://scrapi.ai/mcp` — standard MCP path
|
|
262
|
+
|
|
259
263
|
**Cursor** (`.cursor/mcp.json`):
|
|
260
264
|
|
|
261
265
|
```json
|
|
262
266
|
{
|
|
263
267
|
"mcpServers": {
|
|
264
268
|
"scrapi": {
|
|
265
|
-
"url": "https://scrapi.ai/
|
|
269
|
+
"url": "https://scrapi.ai/mcp",
|
|
266
270
|
"headers": {
|
|
267
|
-
"
|
|
271
|
+
"Authorization": "Bearer your-api-key"
|
|
268
272
|
}
|
|
269
273
|
}
|
|
270
274
|
}
|
|
@@ -274,8 +278,8 @@ Connect via Streamable HTTP — no Node.js installation needed on the client sid
|
|
|
274
278
|
**Claude Code** (CLI):
|
|
275
279
|
|
|
276
280
|
```bash
|
|
277
|
-
claude mcp add --transport http scrapi https://scrapi.ai/
|
|
278
|
-
--header "
|
|
281
|
+
claude mcp add --transport http scrapi https://scrapi.ai/mcp \
|
|
282
|
+
--header "Authorization: Bearer your-api-key"
|
|
279
283
|
```
|
|
280
284
|
|
|
281
285
|
**Cline** (`cline_mcp_settings.json`):
|
|
@@ -285,9 +289,9 @@ claude mcp add --transport http scrapi https://scrapi.ai/api \
|
|
|
285
289
|
"mcpServers": {
|
|
286
290
|
"scrapi": {
|
|
287
291
|
"type": "streamableHttp",
|
|
288
|
-
"url": "https://scrapi.ai/
|
|
292
|
+
"url": "https://scrapi.ai/mcp",
|
|
289
293
|
"headers": {
|
|
290
|
-
"
|
|
294
|
+
"Authorization": "Bearer your-api-key"
|
|
291
295
|
}
|
|
292
296
|
}
|
|
293
297
|
}
|
|
@@ -303,9 +307,9 @@ claude mcp add --transport http scrapi https://scrapi.ai/api \
|
|
|
303
307
|
"command": "npx",
|
|
304
308
|
"args": [
|
|
305
309
|
"mcp-remote",
|
|
306
|
-
"https://scrapi.ai/
|
|
310
|
+
"https://scrapi.ai/mcp",
|
|
307
311
|
"--header",
|
|
308
|
-
"
|
|
312
|
+
"Authorization: Bearer your-api-key"
|
|
309
313
|
]
|
|
310
314
|
}
|
|
311
315
|
}
|
|
@@ -325,7 +329,7 @@ SCRAPI_API_KEY=your-api-key npx -y -p @scrapi.ai/mcp-server scrapi-http
|
|
|
325
329
|
SCRAPI_API_KEY=your-api-key node dist/http.js
|
|
326
330
|
```
|
|
327
331
|
|
|
328
|
-
The server starts at `http://localhost:3000
|
|
332
|
+
The server starts at `http://localhost:3000` with endpoints at `/api` and `/mcp`. Configure with `PORT` and `HOST` environment variables. Replace the URL in the client configurations above with your self-hosted URL.
|
|
329
333
|
|
|
330
334
|
**Health check:** `GET http://localhost:3000/health`
|
|
331
335
|
|
|
@@ -718,7 +722,7 @@ Update Claude Desktop to the latest version: Claude menu → "Check for Updates.
|
|
|
718
722
|
|
|
719
723
|
## Support
|
|
720
724
|
|
|
721
|
-
- Email:
|
|
725
|
+
- Email: support@scrapi.ai
|
|
722
726
|
- Issues: [GitHub Issues](https://github.com/bamchi/scrapi-mcp-server/issues)
|
|
723
727
|
|
|
724
728
|
---
|
package/dist/http.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
|
|
3
3
|
import { createMcpExpressApp } from "@modelcontextprotocol/sdk/server/express.js";
|
|
4
4
|
import { createMcpServer } from "./server.js";
|
|
5
|
+
import { runWithApiKey } from "./utils/api.js";
|
|
5
6
|
const PORT = parseInt(process.env.PORT || "3000", 10);
|
|
6
7
|
const BIND = process.env.BIND || "127.0.0.1";
|
|
7
8
|
const ALLOWED_HOSTS = process.env.ALLOWED_HOSTS
|
|
@@ -17,8 +18,10 @@ const stats = {
|
|
|
17
18
|
errors: 0,
|
|
18
19
|
lastRequestAt: null,
|
|
19
20
|
};
|
|
21
|
+
// ── MCP endpoint paths ───────────────────────────
|
|
22
|
+
const MCP_PATHS = ["/api", "/mcp"];
|
|
20
23
|
// ── Request logging middleware ──────────────────
|
|
21
|
-
|
|
24
|
+
const loggingMiddleware = (req, _res, next) => {
|
|
22
25
|
if (req.method === "POST") {
|
|
23
26
|
stats.requests++;
|
|
24
27
|
stats.lastRequestAt = new Date();
|
|
@@ -28,6 +31,33 @@ app.use("/api", (req, _res, next) => {
|
|
|
28
31
|
console.error(`[${new Date().toISOString()}] MCP ${method} from ${ip} (total: ${stats.requests})`);
|
|
29
32
|
}
|
|
30
33
|
next();
|
|
34
|
+
};
|
|
35
|
+
MCP_PATHS.forEach((p) => app.use(p, loggingMiddleware));
|
|
36
|
+
// ── MCP Server Card (well-known discovery) ────
|
|
37
|
+
app.get("/.well-known/mcp/server-card.json", (_req, res) => {
|
|
38
|
+
res.json({
|
|
39
|
+
$schema: "https://static.modelcontextprotocol.io/schemas/mcp-server-card/v1.json",
|
|
40
|
+
version: "1.0",
|
|
41
|
+
serverInfo: {
|
|
42
|
+
name: "scrapi",
|
|
43
|
+
title: "Scrapi - Web Scraping for AI Agents",
|
|
44
|
+
version: "2.0.6",
|
|
45
|
+
},
|
|
46
|
+
description: "Web scraping for AI agents. Converts URLs to clean, LLM-ready Markdown with anti-bot bypass. Powered by 8+ years of scraping expertise.",
|
|
47
|
+
transport: {
|
|
48
|
+
type: "streamable-http",
|
|
49
|
+
url: "https://scrapi.ai/mcp",
|
|
50
|
+
},
|
|
51
|
+
capabilities: {
|
|
52
|
+
tools: {},
|
|
53
|
+
},
|
|
54
|
+
authentication: {
|
|
55
|
+
type: "bearer",
|
|
56
|
+
description: "Scrapi API key (get one free at https://scrapi.ai/dashboard)",
|
|
57
|
+
},
|
|
58
|
+
documentationUrl: "https://github.com/bamchi/scrapi-mcp-server",
|
|
59
|
+
iconUrl: "https://scrapi.ai/icon.png",
|
|
60
|
+
});
|
|
31
61
|
});
|
|
32
62
|
// ── Health check ───────────────────────────────
|
|
33
63
|
app.get("/health", (_req, res) => {
|
|
@@ -42,15 +72,45 @@ app.get("/health", (_req, res) => {
|
|
|
42
72
|
lastRequestAt: stats.lastRequestAt?.toISOString() || null,
|
|
43
73
|
});
|
|
44
74
|
});
|
|
45
|
-
// ── MCP Streamable HTTP
|
|
46
|
-
|
|
75
|
+
// ── MCP Streamable HTTP handler ───────────────
|
|
76
|
+
// Read-only MCP methods that don't require authentication (allows Smithery scanning)
|
|
77
|
+
const MCP_PUBLIC_METHODS = new Set([
|
|
78
|
+
"initialize",
|
|
79
|
+
"notifications/initialized",
|
|
80
|
+
"tools/list",
|
|
81
|
+
]);
|
|
82
|
+
const handleMcpPost = async (req, res) => {
|
|
83
|
+
// API 키 추출 (Authorization: Bearer hsmcp_xxx)
|
|
84
|
+
const authHeader = req.headers.authorization;
|
|
85
|
+
const apiKey = authHeader?.startsWith("Bearer ")
|
|
86
|
+
? authHeader.slice(7).trim()
|
|
87
|
+
: undefined;
|
|
88
|
+
const body = req.body;
|
|
89
|
+
const method = body?.method;
|
|
90
|
+
const isPublic = method != null && MCP_PUBLIC_METHODS.has(method);
|
|
91
|
+
if (!apiKey && !isPublic) {
|
|
92
|
+
res.status(401).json({
|
|
93
|
+
jsonrpc: "2.0",
|
|
94
|
+
error: {
|
|
95
|
+
code: -32001,
|
|
96
|
+
message: "Authorization required. Use 'Authorization: Bearer <api-key>' header.",
|
|
97
|
+
},
|
|
98
|
+
id: req.body?.id ?? null,
|
|
99
|
+
});
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
47
102
|
const server = createMcpServer();
|
|
48
103
|
const transport = new StreamableHTTPServerTransport({
|
|
49
104
|
sessionIdGenerator: undefined,
|
|
50
105
|
});
|
|
51
106
|
try {
|
|
52
107
|
await server.connect(transport);
|
|
53
|
-
|
|
108
|
+
if (apiKey) {
|
|
109
|
+
await runWithApiKey(apiKey, () => transport.handleRequest(req, res, req.body));
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
await transport.handleRequest(req, res, req.body);
|
|
113
|
+
}
|
|
54
114
|
res.on("close", () => {
|
|
55
115
|
transport.close();
|
|
56
116
|
server.close();
|
|
@@ -67,9 +127,9 @@ app.post("/api", async (req, res) => {
|
|
|
67
127
|
});
|
|
68
128
|
}
|
|
69
129
|
}
|
|
70
|
-
}
|
|
71
|
-
// GET
|
|
72
|
-
|
|
130
|
+
};
|
|
131
|
+
// GET handler — browser-friendly landing page
|
|
132
|
+
const handleMcpGet = (req, res) => {
|
|
73
133
|
const accept = req.headers.accept || "";
|
|
74
134
|
if (!accept.includes("text/html")) {
|
|
75
135
|
res.status(405).json({
|
|
@@ -117,17 +177,23 @@ app.get("/api", (req, res) => {
|
|
|
117
177
|
</div>
|
|
118
178
|
</body>
|
|
119
179
|
</html>`);
|
|
120
|
-
}
|
|
121
|
-
|
|
180
|
+
};
|
|
181
|
+
const handleMethodNotAllowed = (_req, res) => {
|
|
122
182
|
res.status(405).json({
|
|
123
183
|
jsonrpc: "2.0",
|
|
124
184
|
error: { code: -32000, message: "Method not allowed." },
|
|
125
185
|
id: null,
|
|
126
186
|
});
|
|
187
|
+
};
|
|
188
|
+
// Register handlers for all MCP paths
|
|
189
|
+
MCP_PATHS.forEach((p) => {
|
|
190
|
+
app.post(p, handleMcpPost);
|
|
191
|
+
app.get(p, handleMcpGet);
|
|
192
|
+
app.delete(p, handleMethodNotAllowed);
|
|
127
193
|
});
|
|
128
194
|
// ── Start server ───────────────────────────────
|
|
129
195
|
app.listen(PORT, BIND, () => {
|
|
130
|
-
console.error(`Scrapi MCP server running on http://${BIND}:${PORT}/api`);
|
|
196
|
+
console.error(`Scrapi MCP server running on http://${BIND}:${PORT} (endpoints: /api, /mcp)`);
|
|
131
197
|
});
|
|
132
198
|
process.on("SIGINT", () => {
|
|
133
199
|
console.error("Shutting down...");
|
package/dist/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAElF,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/api.d.ts
CHANGED
package/dist/utils/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/api.js
CHANGED
|
@@ -1,15 +1,26 @@
|
|
|
1
1
|
import axios from "axios";
|
|
2
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
3
|
const API_URL = process.env.SCRAPI_API_URL || process.env.HASHSCRAPER_API_URL || "https://www.hashscraper.com";
|
|
3
4
|
const API_KEY = process.env.SCRAPI_API_KEY || process.env.HASHSCRAPER_API_KEY;
|
|
5
|
+
// 요청별 API 키 컨텍스트 (Streamable HTTP용)
|
|
6
|
+
const apiKeyStore = new AsyncLocalStorage();
|
|
7
|
+
// Streamable HTTP에서 요청별 키를 설정하는 wrapper
|
|
8
|
+
export function runWithApiKey(apiKey, fn) {
|
|
9
|
+
return apiKeyStore.run(apiKey, fn);
|
|
10
|
+
}
|
|
4
11
|
// 디버그용: 현재 사용 중인 API URL 반환
|
|
5
12
|
export function getApiUrl() {
|
|
6
13
|
return API_URL;
|
|
7
14
|
}
|
|
8
15
|
function getApiKey() {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
16
|
+
// 1순위: 요청별 키 (Streamable HTTP)
|
|
17
|
+
const perRequestKey = apiKeyStore.getStore();
|
|
18
|
+
if (perRequestKey)
|
|
19
|
+
return perRequestKey;
|
|
20
|
+
// 2순위: 환경변수 (stdio 모드)
|
|
21
|
+
if (API_KEY)
|
|
22
|
+
return API_KEY;
|
|
23
|
+
throw new Error("SCRAPI_API_KEY environment variable is not set. (HASHSCRAPER_API_KEY also accepted)");
|
|
13
24
|
}
|
|
14
25
|
// MCP 모드 여부 (hsmcp_ 프리픽스)
|
|
15
26
|
export function isMcpMode() {
|
package/dist/utils/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scrapi.ai/mcp-server",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.7",
|
|
4
4
|
"description": "Scrapi MCP Server - Web scraping for AI agents. Bypass anti-bot systems and get clean, LLM-ready content via MCP protocol.",
|
|
5
5
|
"mcpName": "io.github.bamchi/scrapi",
|
|
6
6
|
"type": "module",
|