mcp-insomnia 0.5.6 → 0.7.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.
@@ -1,9 +1,81 @@
1
+ export const DEFAULT_EXECUTION_TIMEOUT_MS = 30_000;
2
+ const noopAbortController = new AbortController();
3
+ export function resolveExecutionTimeoutMs(timeoutMs) {
4
+ return timeoutMs === undefined ? DEFAULT_EXECUTION_TIMEOUT_MS : timeoutMs;
5
+ }
6
+ export function createExecutionAbortSignal(options = {}) {
7
+ const timeoutMs = resolveExecutionTimeoutMs(options.timeoutMs);
8
+ const signals = [];
9
+ if (timeoutMs > 0) {
10
+ signals.push(AbortSignal.timeout(timeoutMs));
11
+ }
12
+ if (options.mcpSignal && !options.mcpSignal.aborted) {
13
+ signals.push(options.mcpSignal);
14
+ }
15
+ if (signals.length === 0) {
16
+ return noopAbortController.signal;
17
+ }
18
+ if (signals.length === 1) {
19
+ return signals[0];
20
+ }
21
+ return AbortSignal.any(signals);
22
+ }
23
+ function isTimeoutAbortReason(reason) {
24
+ return reason instanceof DOMException && reason.name === 'TimeoutError';
25
+ }
26
+ function isAxiosCancelError(error) {
27
+ return error instanceof Error && 'code' in error && error.code === 'ERR_CANCELED';
28
+ }
29
+ export function getAbortErrorInfo(error, context) {
30
+ if (!isAxiosCancelError(error)) {
31
+ return null;
32
+ }
33
+ if (context.mcpSignal?.aborted) {
34
+ return {
35
+ cancelled: true,
36
+ cancelReason: 'mcp_cancelled',
37
+ message: 'Request was cancelled',
38
+ };
39
+ }
40
+ if (context.timeoutMs > 0 && isTimeoutAbortReason(context.executionSignal.reason)) {
41
+ return {
42
+ cancelled: true,
43
+ cancelReason: 'timeout',
44
+ message: `Request timed out after ${String(context.timeoutMs)}ms`,
45
+ };
46
+ }
47
+ if (context.timeoutMs > 0) {
48
+ return {
49
+ cancelled: true,
50
+ cancelReason: 'timeout',
51
+ message: `Request timed out after ${String(context.timeoutMs)}ms`,
52
+ };
53
+ }
54
+ return {
55
+ cancelled: true,
56
+ cancelReason: 'mcp_cancelled',
57
+ message: 'Request was cancelled',
58
+ };
59
+ }
1
60
  export function serializedByteLength(value) {
2
61
  if (value === undefined) {
3
62
  return 0;
4
63
  }
5
64
  return JSON.stringify(value).length;
6
65
  }
66
+ export function capResponsePayload(data, maxResponseBytes) {
67
+ const size = serializedByteLength(data);
68
+ if (maxResponseBytes === undefined || maxResponseBytes <= 0 || size <= maxResponseBytes) {
69
+ return { data, size, truncated: false };
70
+ }
71
+ const serialized = typeof data === 'string' ? data : JSON.stringify(data);
72
+ return {
73
+ data: serialized.slice(0, maxResponseBytes),
74
+ size,
75
+ truncated: true,
76
+ maxResponseBytes,
77
+ };
78
+ }
7
79
  export function normalizeHeaders(headers) {
8
80
  const normalized = {};
9
81
  if (headers) {
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/utils/http.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,oBAAoB,CAAC,KAAc;IAC/C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,CAAC,CAAC;IACb,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAiC;IAC9D,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC;QACV,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACjD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxC,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,UAAU,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/utils/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import type { InsomniaRequest } from '../types/request.js';
2
+ import { type CappedResponsePayload, type CancelReason } from './http.js';
3
+ export type EnvironmentVariables = Record<string, string | number | boolean>;
4
+ export interface ProcessedRequestParts {
5
+ url: string;
6
+ headers: Record<string, string>;
7
+ body: string | Record<string, unknown> | undefined;
8
+ }
9
+ export declare function buildProcessedRequest(request: InsomniaRequest, environmentVariables: EnvironmentVariables, jsonMimeTypes?: string[]): ProcessedRequestParts;
10
+ export interface HttpExecutionSuccess {
11
+ kind: 'success';
12
+ processed: ProcessedRequestParts;
13
+ status: number;
14
+ statusText: string;
15
+ headers: Record<string, string>;
16
+ data: unknown;
17
+ rawData: unknown;
18
+ duration: number;
19
+ capped: CappedResponsePayload;
20
+ }
21
+ export interface HttpExecutionCancelled {
22
+ kind: 'cancelled';
23
+ processed: ProcessedRequestParts;
24
+ cancelReason: CancelReason;
25
+ message: string;
26
+ duration: number;
27
+ }
28
+ export interface HttpExecutionError {
29
+ kind: 'error';
30
+ processed: ProcessedRequestParts;
31
+ message: string;
32
+ code?: string;
33
+ status?: number;
34
+ statusText?: string;
35
+ headers?: Record<string, string>;
36
+ data?: unknown;
37
+ duration: number;
38
+ capped: CappedResponsePayload;
39
+ }
40
+ export type HttpExecutionResult = HttpExecutionSuccess | HttpExecutionCancelled | HttpExecutionError;
41
+ export interface ExecuteHttpRequestOptions {
42
+ request: InsomniaRequest;
43
+ environmentVariables: EnvironmentVariables;
44
+ mcpSignal?: AbortSignal;
45
+ timeoutMs?: number;
46
+ maxResponseBytes?: number;
47
+ validateStatus?: (status: number) => boolean;
48
+ jsonMimeTypes?: string[];
49
+ }
50
+ export declare function executeHttpRequest(options: ExecuteHttpRequestOptions): Promise<HttpExecutionResult>;
51
+ //# sourceMappingURL=request-executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-executor.d.ts","sourceRoot":"","sources":["../../src/utils/request-executor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAMH,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EAEpB,MAAM,WAAW,CAAC;AAEnB,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAE7E,MAAM,WAAW,qBAAqB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;CACtD;AAgCD,wBAAgB,qBAAqB,CACjC,OAAO,EAAE,eAAe,EACxB,oBAAoB,EAAE,oBAAoB,EAC1C,aAAa,GAAE,MAAM,EAAyB,GAC/C,qBAAqB,CA0CvB;AAED,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,qBAAqB,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,qBAAqB,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACnC,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,qBAAqB,CAAC;IACjC,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,qBAAqB,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,qBAAqB,CAAC;CACjC;AAED,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,GAAG,sBAAsB,GAAG,kBAAkB,CAAC;AAErG,MAAM,WAAW,yBAAyB;IACtC,OAAO,EAAE,eAAe,CAAC;IACzB,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7C,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAoFzG"}
@@ -0,0 +1,128 @@
1
+ import axios from 'axios';
2
+ import { capResponsePayload, createExecutionAbortSignal, getAbortErrorInfo, normalizeHeaders, resolveExecutionTimeoutMs, } from './http.js';
3
+ function substituteTemplate(value, environmentVariables) {
4
+ let result = value;
5
+ for (const [key, envValue] of Object.entries(environmentVariables)) {
6
+ result = result.replace(new RegExp(`{{${key}}}`, 'g'), String(envValue));
7
+ }
8
+ return result;
9
+ }
10
+ function applyAuthentication(headers, authentication) {
11
+ if (!authentication) {
12
+ return;
13
+ }
14
+ switch (authentication.type) {
15
+ case 'bearer':
16
+ headers['Authorization'] = `Bearer ${authentication.token ?? ''}`;
17
+ break;
18
+ case 'basic': {
19
+ const credentials = Buffer.from(`${authentication.username ?? ''}:${authentication.password ?? ''}`).toString('base64');
20
+ headers['Authorization'] = `Basic ${credentials}`;
21
+ break;
22
+ }
23
+ }
24
+ }
25
+ export function buildProcessedRequest(request, environmentVariables, jsonMimeTypes = ['application/json']) {
26
+ const processedUrl = substituteTemplate(request.url, environmentVariables);
27
+ const processedHeaders = {};
28
+ request.headers.forEach((header) => {
29
+ if (!header.disabled) {
30
+ processedHeaders[header.name] = substituteTemplate(header.value, environmentVariables);
31
+ }
32
+ });
33
+ applyAuthentication(processedHeaders, request.authentication);
34
+ let processedBody = undefined;
35
+ if (request.body) {
36
+ if (request.body.graphql) {
37
+ const gql = request.body.graphql;
38
+ let variablesStr = gql.variables || '{}';
39
+ variablesStr = substituteTemplate(variablesStr, environmentVariables);
40
+ let variables = {};
41
+ try {
42
+ variables = JSON.parse(variablesStr);
43
+ }
44
+ catch {
45
+ // keep {}
46
+ }
47
+ const query = substituteTemplate(gql.query, environmentVariables);
48
+ processedBody = { query, variables };
49
+ }
50
+ else if (request.body.text) {
51
+ processedBody = substituteTemplate(request.body.text, environmentVariables);
52
+ if (request.body.mimeType && jsonMimeTypes.includes(request.body.mimeType)) {
53
+ try {
54
+ processedBody = JSON.parse(processedBody);
55
+ }
56
+ catch {
57
+ // keep string
58
+ }
59
+ }
60
+ }
61
+ }
62
+ return { url: processedUrl, headers: processedHeaders, body: processedBody };
63
+ }
64
+ export async function executeHttpRequest(options) {
65
+ const { request, environmentVariables, mcpSignal, timeoutMs, maxResponseBytes, validateStatus, jsonMimeTypes = ['application/json'], } = options;
66
+ const processed = buildProcessedRequest(request, environmentVariables, jsonMimeTypes);
67
+ const resolvedTimeoutMs = resolveExecutionTimeoutMs(timeoutMs);
68
+ const executionSignal = createExecutionAbortSignal({ mcpSignal, timeoutMs });
69
+ const startTime = Date.now();
70
+ try {
71
+ const response = await axios({
72
+ method: request.method.toLowerCase(),
73
+ url: processed.url,
74
+ headers: processed.headers,
75
+ data: processed.body,
76
+ signal: executionSignal,
77
+ ...(validateStatus !== undefined ? { validateStatus } : {}),
78
+ });
79
+ const duration = Date.now() - startTime;
80
+ const capped = capResponsePayload(response.data, maxResponseBytes);
81
+ return {
82
+ kind: 'success',
83
+ processed,
84
+ status: response.status,
85
+ statusText: response.statusText,
86
+ headers: normalizeHeaders(response.headers),
87
+ data: capped.data,
88
+ rawData: response.data,
89
+ duration,
90
+ capped,
91
+ };
92
+ }
93
+ catch (err) {
94
+ const duration = Date.now() - startTime;
95
+ const abortInfo = getAbortErrorInfo(err, {
96
+ mcpSignal,
97
+ executionSignal,
98
+ timeoutMs: resolvedTimeoutMs,
99
+ });
100
+ if (abortInfo) {
101
+ return {
102
+ kind: 'cancelled',
103
+ processed,
104
+ cancelReason: abortInfo.cancelReason,
105
+ message: abortInfo.message,
106
+ duration,
107
+ };
108
+ }
109
+ const error = err;
110
+ const responseData = error.response?.data;
111
+ const capped = capResponsePayload(responseData, maxResponseBytes);
112
+ return {
113
+ kind: 'error',
114
+ processed,
115
+ message: error.message || 'Unknown error',
116
+ code: error.code,
117
+ status: error.response?.status,
118
+ statusText: error.response?.statusText,
119
+ headers: error.response?.headers
120
+ ? normalizeHeaders(error.response.headers)
121
+ : undefined,
122
+ data: capped.data,
123
+ duration,
124
+ capped,
125
+ };
126
+ }
127
+ }
128
+ //# sourceMappingURL=request-executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-executor.js","sourceRoot":"","sources":["../../src/utils/request-executor.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-insomnia",
3
- "version": "0.5.6",
3
+ "version": "0.7.0",
4
4
  "description": "MCP server for making HTTP requests and managing API collections",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -9,12 +9,16 @@
9
9
  "start": "node dist/index.js",
10
10
  "dev": "tsx src/index.ts",
11
11
  "watch": "tsx watch src/index.ts",
12
- "lint": "tsc --noEmit",
12
+ "lint": "tsc --noEmit -p tsconfig.check.json",
13
+ "check": "npm run lint && npm run lint:eslint && npm run build && npm test",
13
14
  "lint:strict": "tsc --noEmit --strict",
14
15
  "lint:eslint": "eslint src/",
15
16
  "lint:fix": "eslint src/ --fix",
16
17
  "format": "prettier --write \"src/**/*.{ts,js,json,md}\"",
17
- "typecheck": "tsc --noEmit --pretty"
18
+ "typecheck": "tsc --noEmit --pretty",
19
+ "test": "vitest run",
20
+ "test:watch": "vitest",
21
+ "prepare": "husky"
18
22
  },
19
23
  "keywords": [
20
24
  "mcp",
@@ -46,7 +50,9 @@
46
50
  "prettier": "^3.7.4",
47
51
  "tsx": "^4.0.0",
48
52
  "typescript": "^5.0.0",
49
- "typescript-eslint": "^8.52.0"
53
+ "typescript-eslint": "^8.52.0",
54
+ "vitest": "^4.1.8",
55
+ "husky": "^9.1.7"
50
56
  },
51
57
  "bin": {
52
58
  "mcp-insomnia": "dist/index.js"
@@ -69,4 +75,4 @@
69
75
  "ip-address": "^10.2.0",
70
76
  "fast-uri": "^3.1.2"
71
77
  }
72
- }
78
+ }