@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.
@@ -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). Use instead of running `curl` in the terminal.",
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
- compact: z
52
+ insecure: z
42
53
  .boolean()
43
54
  .optional()
44
- .default(true)
45
- .describe("Auto-compact when structured output exceeds raw CLI tokens. Set false to always get full schema."),
46
- path: z
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.PATH_MAX)
87
+ .max(INPUT_LIMITS.STRING_MAX)
49
88
  .optional()
50
- .describe("Working directory (default: cwd)"),
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 = `\n${PARE_META_SEPARATOR}\n%{time_total} %{size_download}`;
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
- args.push("-X", opts.method);
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
- // Request body
103
- if (opts.body) {
104
- args.push("--data-raw", opts.body);
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":"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"}
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.8.5",
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.8.5"
54
+ "@paretools/shared": "0.10.0"
55
55
  },
56
56
  "devDependencies": {
57
57
  "@types/node": "^25.2.3",