@paretools/http 0.8.5 → 0.10.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/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/curl-runner.js +1 -1
- package/dist/lib/formatters.d.ts +5 -1
- package/dist/lib/formatters.d.ts.map +1 -1
- package/dist/lib/formatters.js +96 -7
- package/dist/lib/formatters.js.map +1 -1
- package/dist/lib/parsers.d.ts +3 -1
- package/dist/lib/parsers.d.ts.map +1 -1
- package/dist/lib/parsers.js +111 -10
- package/dist/lib/parsers.js.map +1 -1
- package/dist/schemas/index.d.ts +80 -1
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +52 -1
- package/dist/schemas/index.js.map +1 -1
- package/dist/tools/get.d.ts.map +1 -1
- package/dist/tools/get.js +70 -10
- package/dist/tools/get.js.map +1 -1
- package/dist/tools/head.d.ts.map +1 -1
- package/dist/tools/head.js +50 -8
- package/dist/tools/head.js.map +1 -1
- package/dist/tools/post.d.ts.map +1 -1
- package/dist/tools/post.js +88 -16
- package/dist/tools/post.js.map +1 -1
- package/dist/tools/request.d.ts +26 -4
- package/dist/tools/request.d.ts.map +1 -1
- package/dist/tools/request.js +166 -16
- package/dist/tools/request.js.map +1 -1
- package/package.json +2 -2
package/dist/tools/request.js
CHANGED
|
@@ -6,11 +6,12 @@ import { formatHttpResponse, compactResponseMap, formatResponseCompact, } from "
|
|
|
6
6
|
import { HttpResponseSchema } from "../schemas/index.js";
|
|
7
7
|
import { assertSafeUrl, assertSafeHeader } from "../lib/url-validation.js";
|
|
8
8
|
const METHODS = ["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"];
|
|
9
|
+
const HTTP_VERSIONS = ["1.0", "1.1", "2"];
|
|
9
10
|
/** Registers the `request` tool on the given MCP server. */
|
|
10
11
|
export function registerRequestTool(server) {
|
|
11
12
|
server.registerTool("request", {
|
|
12
13
|
title: "HTTP Request",
|
|
13
|
-
description: "Makes an HTTP request via curl and returns structured response data (status, headers, body, timing).
|
|
14
|
+
description: "Makes an HTTP request via curl and returns structured response data (status, headers, body, timing).",
|
|
14
15
|
inputSchema: {
|
|
15
16
|
url: z
|
|
16
17
|
.string()
|
|
@@ -26,6 +27,10 @@ export function registerRequestTool(server) {
|
|
|
26
27
|
.max(INPUT_LIMITS.STRING_MAX)
|
|
27
28
|
.optional()
|
|
28
29
|
.describe("Request body (for POST, PUT, PATCH)"),
|
|
30
|
+
form: z
|
|
31
|
+
.record(z.string().max(INPUT_LIMITS.SHORT_STRING_MAX), z.string().max(INPUT_LIMITS.STRING_MAX))
|
|
32
|
+
.optional()
|
|
33
|
+
.describe("Multipart form data as key-value pairs (-F). Each pair maps to `-F key=value`. For file uploads use `@filepath` as the value."),
|
|
29
34
|
timeout: z
|
|
30
35
|
.number()
|
|
31
36
|
.min(1)
|
|
@@ -33,32 +38,91 @@ export function registerRequestTool(server) {
|
|
|
33
38
|
.optional()
|
|
34
39
|
.default(30)
|
|
35
40
|
.describe("Request timeout in seconds (default: 30)"),
|
|
41
|
+
connectTimeout: z
|
|
42
|
+
.number()
|
|
43
|
+
.min(1)
|
|
44
|
+
.max(300)
|
|
45
|
+
.optional()
|
|
46
|
+
.describe("Maximum time in seconds for connection phase only (--connect-timeout). Independent of total timeout."),
|
|
36
47
|
followRedirects: z
|
|
37
48
|
.boolean()
|
|
38
49
|
.optional()
|
|
39
50
|
.default(true)
|
|
40
51
|
.describe("Follow HTTP redirects (default: true)"),
|
|
41
|
-
|
|
52
|
+
insecure: z
|
|
42
53
|
.boolean()
|
|
43
54
|
.optional()
|
|
44
|
-
.
|
|
45
|
-
|
|
46
|
-
|
|
55
|
+
.describe("Allow insecure TLS connections, e.g. self-signed certificates (-k)"),
|
|
56
|
+
retry: z
|
|
57
|
+
.number()
|
|
58
|
+
.min(0)
|
|
59
|
+
.max(10)
|
|
60
|
+
.optional()
|
|
61
|
+
.describe("Number of retries on transient failures (--retry)"),
|
|
62
|
+
compressed: z
|
|
63
|
+
.boolean()
|
|
64
|
+
.optional()
|
|
65
|
+
.describe("Request compressed response and decompress automatically (--compressed)"),
|
|
66
|
+
basicAuth: z
|
|
67
|
+
.string()
|
|
68
|
+
.max(INPUT_LIMITS.STRING_MAX)
|
|
69
|
+
.optional()
|
|
70
|
+
.describe("Basic auth credentials as 'user:password' (-u)"),
|
|
71
|
+
proxy: z
|
|
72
|
+
.string()
|
|
73
|
+
.max(INPUT_LIMITS.STRING_MAX)
|
|
74
|
+
.optional()
|
|
75
|
+
.describe("Proxy URL (e.g., http://proxy:8080) (-x)"),
|
|
76
|
+
httpVersion: z
|
|
77
|
+
.enum(HTTP_VERSIONS)
|
|
78
|
+
.optional()
|
|
79
|
+
.describe("HTTP version to use: '1.0', '1.1', or '2' (--http1.0/--http1.1/--http2)"),
|
|
80
|
+
cookie: z
|
|
81
|
+
.string()
|
|
82
|
+
.max(INPUT_LIMITS.STRING_MAX)
|
|
83
|
+
.optional()
|
|
84
|
+
.describe("Cookie string or cookie jar file path for session-based APIs (-b). Format: 'name=value; name2=value2'"),
|
|
85
|
+
resolve: z
|
|
47
86
|
.string()
|
|
48
|
-
.max(INPUT_LIMITS.
|
|
87
|
+
.max(INPUT_LIMITS.STRING_MAX)
|
|
49
88
|
.optional()
|
|
50
|
-
.describe("
|
|
89
|
+
.describe("Custom DNS resolution (--resolve). Format: 'host:port:addr' (e.g., 'example.com:443:127.0.0.1')"),
|
|
90
|
+
compact: z.boolean().optional().default(true).describe("Prefer compact output"),
|
|
91
|
+
path: z.string().max(INPUT_LIMITS.PATH_MAX).optional().describe("Working directory"),
|
|
51
92
|
},
|
|
52
93
|
outputSchema: HttpResponseSchema,
|
|
53
|
-
}, async ({ url, method, headers, body, timeout, followRedirects, compact, path }) => {
|
|
94
|
+
}, async ({ url, method, headers, body, form, timeout, connectTimeout, followRedirects, insecure, retry, compressed, basicAuth, proxy, httpVersion, cookie, resolve, compact, path, }) => {
|
|
54
95
|
assertSafeUrl(url);
|
|
96
|
+
if (basicAuth)
|
|
97
|
+
assertNoFlagInjection(basicAuth, "basicAuth");
|
|
98
|
+
if (proxy)
|
|
99
|
+
assertNoFlagInjection(proxy, "proxy");
|
|
100
|
+
if (cookie)
|
|
101
|
+
assertNoFlagInjection(cookie, "cookie");
|
|
102
|
+
if (resolve)
|
|
103
|
+
assertNoFlagInjection(resolve, "resolve");
|
|
104
|
+
if (form) {
|
|
105
|
+
for (const value of Object.values(form)) {
|
|
106
|
+
assertNoFlagInjection(value, "form value");
|
|
107
|
+
}
|
|
108
|
+
}
|
|
55
109
|
const args = buildCurlArgs({
|
|
56
110
|
url,
|
|
57
111
|
method: method ?? "GET",
|
|
58
112
|
headers,
|
|
59
|
-
body,
|
|
113
|
+
body: form ? undefined : body,
|
|
114
|
+
form,
|
|
60
115
|
timeout: timeout ?? 30,
|
|
116
|
+
connectTimeout,
|
|
61
117
|
followRedirects: followRedirects ?? true,
|
|
118
|
+
insecure,
|
|
119
|
+
retry,
|
|
120
|
+
compressed,
|
|
121
|
+
basicAuth,
|
|
122
|
+
proxy,
|
|
123
|
+
httpVersion,
|
|
124
|
+
cookie,
|
|
125
|
+
resolve,
|
|
62
126
|
});
|
|
63
127
|
const cwd = path || process.cwd();
|
|
64
128
|
const result = await curlCmd(args, cwd);
|
|
@@ -77,19 +141,47 @@ export function buildCurlArgs(opts) {
|
|
|
77
141
|
"-S", // Show errors
|
|
78
142
|
"-i", // Include response headers in output
|
|
79
143
|
];
|
|
80
|
-
// Write-out format for timing and size metadata
|
|
81
|
-
const writeOut =
|
|
144
|
+
// Write-out format for timing and size metadata (expanded with detailed timing)
|
|
145
|
+
const writeOut = [
|
|
146
|
+
`\n${PARE_META_SEPARATOR}\n`,
|
|
147
|
+
"%{time_total}",
|
|
148
|
+
"%{size_download}",
|
|
149
|
+
"%{size_upload}",
|
|
150
|
+
"%{time_namelookup}",
|
|
151
|
+
"%{time_connect}",
|
|
152
|
+
"%{time_appconnect}",
|
|
153
|
+
"%{time_pretransfer}",
|
|
154
|
+
"%{time_starttransfer}",
|
|
155
|
+
"%{http_version}",
|
|
156
|
+
"%{num_redirects}",
|
|
157
|
+
"%{url_effective}",
|
|
158
|
+
"%{scheme}",
|
|
159
|
+
"%{ssl_verify_result}",
|
|
160
|
+
].join(" ");
|
|
82
161
|
args.push("-w", writeOut);
|
|
83
|
-
// HTTP method
|
|
84
|
-
|
|
162
|
+
// HTTP method: use -I (--head) for HEAD requests, -X for everything else
|
|
163
|
+
if (opts.useHeadFlag) {
|
|
164
|
+
args.push("-I");
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
args.push("-X", opts.method);
|
|
168
|
+
}
|
|
85
169
|
// Timeout
|
|
86
170
|
args.push("--max-time", String(opts.timeout));
|
|
171
|
+
// Connection timeout (separate from total timeout)
|
|
172
|
+
if (opts.connectTimeout !== undefined) {
|
|
173
|
+
args.push("--connect-timeout", String(opts.connectTimeout));
|
|
174
|
+
}
|
|
87
175
|
// Follow redirects
|
|
88
176
|
if (opts.followRedirects) {
|
|
89
177
|
args.push("-L");
|
|
90
178
|
// Limit redirect hops to prevent infinite loops
|
|
91
179
|
args.push("--max-redirs", "10");
|
|
92
180
|
}
|
|
181
|
+
// Preserve POST method on redirects (prevent silent POST-to-GET conversion)
|
|
182
|
+
if (opts.preserveMethodOnRedirect) {
|
|
183
|
+
args.push("--post301", "--post302", "--post303");
|
|
184
|
+
}
|
|
93
185
|
// Custom headers
|
|
94
186
|
if (opts.headers) {
|
|
95
187
|
for (const [key, value] of Object.entries(opts.headers)) {
|
|
@@ -99,9 +191,67 @@ export function buildCurlArgs(opts) {
|
|
|
99
191
|
args.push("-H", `${key}: ${value}`);
|
|
100
192
|
}
|
|
101
193
|
}
|
|
102
|
-
//
|
|
103
|
-
if (opts.
|
|
104
|
-
|
|
194
|
+
// Multipart form data (-F): takes priority over body/data-raw
|
|
195
|
+
if (opts.form && Object.keys(opts.form).length > 0) {
|
|
196
|
+
for (const [key, value] of Object.entries(opts.form)) {
|
|
197
|
+
assertNoFlagInjection(key, "form key");
|
|
198
|
+
assertNoFlagInjection(value, "form value");
|
|
199
|
+
args.push("-F", `${key}=${value}`);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
// Request body
|
|
204
|
+
if (opts.body) {
|
|
205
|
+
args.push("--data-raw", opts.body);
|
|
206
|
+
}
|
|
207
|
+
// URL-encoded form data
|
|
208
|
+
if (opts.dataUrlencode) {
|
|
209
|
+
for (const item of opts.dataUrlencode) {
|
|
210
|
+
args.push("--data-urlencode", item);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
// Insecure TLS (self-signed certs)
|
|
215
|
+
if (opts.insecure) {
|
|
216
|
+
args.push("-k");
|
|
217
|
+
}
|
|
218
|
+
// Retry on transient failures
|
|
219
|
+
if (opts.retry !== undefined) {
|
|
220
|
+
args.push("--retry", String(opts.retry));
|
|
221
|
+
}
|
|
222
|
+
// Request compressed response
|
|
223
|
+
if (opts.compressed) {
|
|
224
|
+
args.push("--compressed");
|
|
225
|
+
}
|
|
226
|
+
// Basic authentication
|
|
227
|
+
if (opts.basicAuth) {
|
|
228
|
+
args.push("-u", opts.basicAuth);
|
|
229
|
+
}
|
|
230
|
+
// HTTP proxy
|
|
231
|
+
if (opts.proxy) {
|
|
232
|
+
args.push("-x", opts.proxy);
|
|
233
|
+
}
|
|
234
|
+
// HTTP version
|
|
235
|
+
if (opts.httpVersion) {
|
|
236
|
+
switch (opts.httpVersion) {
|
|
237
|
+
case "1.0":
|
|
238
|
+
args.push("--http1.0");
|
|
239
|
+
break;
|
|
240
|
+
case "1.1":
|
|
241
|
+
args.push("--http1.1");
|
|
242
|
+
break;
|
|
243
|
+
case "2":
|
|
244
|
+
args.push("--http2");
|
|
245
|
+
break;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
// Cookie
|
|
249
|
+
if (opts.cookie) {
|
|
250
|
+
args.push("-b", opts.cookie);
|
|
251
|
+
}
|
|
252
|
+
// Custom DNS resolution
|
|
253
|
+
if (opts.resolve) {
|
|
254
|
+
args.push("--resolve", opts.resolve);
|
|
105
255
|
}
|
|
106
256
|
// URL must be last
|
|
107
257
|
args.push(opts.url);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/tools/request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE3E,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/tools/request.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@paretools/http",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"mcpName": "io.github.Dave-London/pare-http",
|
|
5
5
|
"description": "MCP server for HTTP requests (curl) with structured, token-efficient output",
|
|
6
6
|
"license": "MIT",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"dependencies": {
|
|
52
52
|
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
53
53
|
"zod": "^4.3.6",
|
|
54
|
-
"@paretools/shared": "0.
|
|
54
|
+
"@paretools/shared": "0.10.0"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
57
|
"@types/node": "^25.2.3",
|