mcp-insomnia 0.2.1 → 0.3.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.
Files changed (129) hide show
  1. package/README.md +44 -6
  2. package/dist/index.js +10 -10
  3. package/dist/index.js.map +1 -1
  4. package/dist/resources/collection.resource.d.ts +3 -0
  5. package/dist/resources/collection.resource.d.ts.map +1 -0
  6. package/dist/resources/collection.resource.js +113 -0
  7. package/dist/resources/collection.resource.js.map +1 -0
  8. package/dist/resources/environment.resource.d.ts +3 -0
  9. package/dist/resources/environment.resource.d.ts.map +1 -0
  10. package/dist/resources/environment.resource.js +48 -0
  11. package/dist/resources/environment.resource.js.map +1 -0
  12. package/dist/resources/index.d.ts +3 -0
  13. package/dist/resources/index.d.ts.map +1 -0
  14. package/dist/resources/index.js +8 -0
  15. package/dist/resources/index.js.map +1 -0
  16. package/dist/resources/request.resource.d.ts +3 -0
  17. package/dist/resources/request.resource.d.ts.map +1 -0
  18. package/dist/resources/request.resource.js +157 -0
  19. package/dist/resources/request.resource.js.map +1 -0
  20. package/dist/resources/search.resource.d.ts +3 -0
  21. package/dist/resources/search.resource.d.ts.map +1 -0
  22. package/dist/resources/search.resource.js +143 -0
  23. package/dist/resources/search.resource.js.map +1 -0
  24. package/dist/storage/index.d.ts +3 -0
  25. package/dist/storage/index.d.ts.map +1 -0
  26. package/dist/storage/index.js +3 -0
  27. package/dist/storage/index.js.map +1 -0
  28. package/dist/storage/insomnia-storage.d.ts +111 -0
  29. package/dist/storage/insomnia-storage.d.ts.map +1 -0
  30. package/dist/storage/insomnia-storage.js +322 -0
  31. package/dist/storage/insomnia-storage.js.map +1 -0
  32. package/dist/{storage.d.ts → storage/storage.d.ts} +1 -1
  33. package/dist/storage/storage.d.ts.map +1 -0
  34. package/dist/{storage.js → storage/storage.js} +3 -3
  35. package/dist/storage/storage.js.map +1 -0
  36. package/dist/tools/collection.tools.d.ts +3 -0
  37. package/dist/tools/collection.tools.d.ts.map +1 -0
  38. package/dist/tools/collection.tools.js +132 -0
  39. package/dist/tools/collection.tools.js.map +1 -0
  40. package/dist/tools/environment.tools.d.ts +3 -0
  41. package/dist/tools/environment.tools.d.ts.map +1 -0
  42. package/dist/tools/environment.tools.js +93 -0
  43. package/dist/tools/environment.tools.js.map +1 -0
  44. package/dist/tools/folder.tools.d.ts +3 -0
  45. package/dist/tools/folder.tools.d.ts.map +1 -0
  46. package/dist/tools/folder.tools.js +46 -0
  47. package/dist/tools/folder.tools.js.map +1 -0
  48. package/dist/tools/index.d.ts +3 -0
  49. package/dist/tools/index.d.ts.map +1 -0
  50. package/dist/tools/index.js +17 -0
  51. package/dist/tools/index.js.map +1 -0
  52. package/dist/tools/insomnia.tools.d.ts +3 -0
  53. package/dist/tools/insomnia.tools.d.ts.map +1 -0
  54. package/dist/tools/insomnia.tools.js +482 -0
  55. package/dist/tools/insomnia.tools.js.map +1 -0
  56. package/dist/tools/request.tools.d.ts +3 -0
  57. package/dist/tools/request.tools.d.ts.map +1 -0
  58. package/dist/tools/request.tools.js +368 -0
  59. package/dist/tools/request.tools.js.map +1 -0
  60. package/dist/tools/utility.tools.d.ts +3 -0
  61. package/dist/tools/utility.tools.d.ts.map +1 -0
  62. package/dist/tools/utility.tools.js +433 -0
  63. package/dist/tools/utility.tools.js.map +1 -0
  64. package/dist/types/auth.d.ts +25 -0
  65. package/dist/types/auth.d.ts.map +1 -0
  66. package/dist/types/auth.js +2 -0
  67. package/dist/types/auth.js.map +1 -0
  68. package/dist/types/collection.d.ts +48 -0
  69. package/dist/types/collection.d.ts.map +1 -0
  70. package/dist/types/collection.js +2 -0
  71. package/dist/types/collection.js.map +1 -0
  72. package/dist/types/common.d.ts +63 -0
  73. package/dist/types/common.d.ts.map +1 -0
  74. package/dist/types/common.js +2 -0
  75. package/dist/types/common.js.map +1 -0
  76. package/dist/types/environment.d.ts +17 -0
  77. package/dist/types/environment.d.ts.map +1 -0
  78. package/dist/types/environment.js +2 -0
  79. package/dist/types/environment.js.map +1 -0
  80. package/dist/types/har.d.ts +29 -0
  81. package/dist/types/har.d.ts.map +1 -0
  82. package/dist/types/har.js +2 -0
  83. package/dist/types/har.js.map +1 -0
  84. package/dist/types/index.d.ts +9 -0
  85. package/dist/types/index.d.ts.map +1 -0
  86. package/dist/types/index.js +9 -0
  87. package/dist/types/index.js.map +1 -0
  88. package/dist/{types.d.ts → types/request.d.ts} +29 -105
  89. package/dist/types/request.d.ts.map +1 -0
  90. package/dist/types/request.js +2 -0
  91. package/dist/types/request.js.map +1 -0
  92. package/dist/types/resource.d.ts +20 -0
  93. package/dist/types/resource.d.ts.map +1 -0
  94. package/dist/types/resource.js +2 -0
  95. package/dist/types/resource.js.map +1 -0
  96. package/dist/types/tool.d.ts +35 -0
  97. package/dist/types/tool.d.ts.map +1 -0
  98. package/dist/types/tool.js +2 -0
  99. package/dist/types/tool.js.map +1 -0
  100. package/dist/utils/curl-parser.d.ts +10 -0
  101. package/dist/utils/curl-parser.d.ts.map +1 -0
  102. package/dist/utils/curl-parser.js +84 -0
  103. package/dist/utils/curl-parser.js.map +1 -0
  104. package/dist/utils/http.d.ts +3 -0
  105. package/dist/utils/http.d.ts.map +1 -0
  106. package/dist/utils/http.js +12 -0
  107. package/dist/utils/http.js.map +1 -0
  108. package/dist/utils/postman-converter.d.ts +88 -0
  109. package/dist/utils/postman-converter.d.ts.map +1 -0
  110. package/dist/utils/postman-converter.js +171 -0
  111. package/dist/utils/postman-converter.js.map +1 -0
  112. package/package.json +16 -6
  113. package/dist/resources.d.ts +0 -11
  114. package/dist/resources.d.ts.map +0 -1
  115. package/dist/resources.js +0 -449
  116. package/dist/resources.js.map +0 -1
  117. package/dist/run-duplication-test.d.ts +0 -2
  118. package/dist/run-duplication-test.d.ts.map +0 -1
  119. package/dist/run-duplication-test.js +0 -58
  120. package/dist/run-duplication-test.js.map +0 -1
  121. package/dist/storage.d.ts.map +0 -1
  122. package/dist/storage.js.map +0 -1
  123. package/dist/tools.d.ts +0 -10
  124. package/dist/tools.d.ts.map +0 -1
  125. package/dist/tools.js +0 -773
  126. package/dist/tools.js.map +0 -1
  127. package/dist/types.d.ts.map +0 -1
  128. package/dist/types.js +0 -2
  129. package/dist/types.js.map +0 -1
package/README.md CHANGED
@@ -83,7 +83,7 @@ npm run build
83
83
  - `create_collection` - Create new collection/workspace
84
84
  - `list_collections` - List all collections
85
85
  - `export_collection` - Export collection to JSON format
86
- - `import_from_insomnia_export` - Import collections from a standard Insomnia V4 export file
86
+
87
87
 
88
88
  ### Folder Management
89
89
 
@@ -97,6 +97,26 @@ npm run build
97
97
  - `execute_request` - Execute request and view response
98
98
  - `generate_code_snippet` - Generate a code snippet for a request in various languages/frameworks
99
99
 
100
+ ### Import Tools
101
+
102
+ - `import_from_curl` - Parse cURL command into a request
103
+ - `import_from_postman` - Import Postman Collection (v2.1) JSON
104
+ - `import_from_openapi` - Import OpenAPI/Swagger (v3.0) JSON
105
+ - `import_from_insomnia_export` - Import collections from a standard Insomnia V4 export file
106
+
107
+ ### Insomnia Direct Integration (NeDB)
108
+
109
+ Interact directly with the local Insomnia application database (macOS).
110
+
111
+ - `list_insomnia_projects` - List all projects/teams from Insomnia
112
+ - `list_insomnia_collections` - List all workspaces/collections from Insomnia
113
+ - `get_insomnia_collection` - Get full details of a specific Insomnia workspace
114
+ - `get_insomnia_request` - Get full details of a specific Insomnia request
115
+ - `sync_from_insomnia` - Import a workspace from Insomnia to MCP
116
+ - `sync_all_from_insomnia` - Import all workspaces from Insomnia to MCP
117
+ - `sync_to_insomnia` - Export an MCP collection back to Insomnia
118
+ - `execute_insomnia_request` - Execute a request directly from Insomnia (with env support)
119
+
100
120
  ### Environment Management
101
121
 
102
122
  - `set_environment_variable` - Set environment variable
@@ -118,13 +138,13 @@ npm run build
118
138
  ### Create Collection
119
139
 
120
140
  ```
121
- Create a new collection named "API Testing" for testing endpoints
141
+ Create a new Insomnia collection named "API Testing" for testing endpoints
122
142
  ```
123
143
 
124
144
  ### Add Request
125
145
 
126
146
  ```
127
- Add GET request to "API Testing" collection with:
147
+ Add GET request to "API Testing" Insomnia collection with:
128
148
  - Name: Get Users
129
149
  - URL: https://jsonplaceholder.typicode.com/users
130
150
  - Headers: Content-Type: application/json
@@ -133,7 +153,7 @@ Add GET request to "API Testing" collection with:
133
153
  ### Set Environment Variable
134
154
 
135
155
  ```
136
- Set environment variable "baseUrl" with value "https://api.example.com" for "API Testing" collection
156
+ Set Insomnia environment variable "baseUrl" with value "https://api.example.com" for "API Testing" collection
137
157
  ```
138
158
 
139
159
  ### Execute Request
@@ -145,12 +165,30 @@ Execute "Get Users" request using the configured environment variables
145
165
  ### Generate Code Snippet
146
166
 
147
167
  ```
148
- Generate a code snippet for request "Get Users" in "javascript"
168
+ Generate a code snippet for Insomnia request "Get Users" in "javascript"
149
169
  ```
150
170
 
151
171
  ## Data Storage
152
172
 
153
- Data is stored in `~/.mcp-insomnia/collections.json` in JSON format.
173
+ Data is stored in two locations:
174
+ 1. **MCP Storage** (Staging): `~/.mcp-insomnia/collections.json`
175
+ - Acts as a **Draft/Staging Area**.
176
+ - Changes here do NOT affect the Insomnia App until synced.
177
+ - Ideal for generating new collections, importing from OpenAPI, or mass-refactoring.
178
+
179
+ 2. **Insomnia Storage** (Live): `~/Library/Application Support/Insomnia` (NeDB)
180
+ - The **Live Database** used by the Insomnia Application.
181
+ - Changes here are immediately visible in the App (may require restart).
182
+
183
+ ## Recommended Workflow
184
+
185
+ **Scenario A: Creating/Modifying Content**
186
+ 1. **Import/Fetch**: Pull data to Staging (`sync_from_insomnia` or `import_from_openapi`).
187
+ 2. **Edit**: Modify requests/folders using MCP tools (`create_request`, `update_request`).
188
+ 3. **Publish**: Sync changes back to Live (`sync_to_insomnia`).
189
+
190
+ **Scenario B: Running Existing Requests**
191
+ - Use `execute_insomnia_request` to run requests directly from the Live database without syncing.
154
192
 
155
193
  ## License
156
194
 
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
3
3
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
- import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema } from '@modelcontextprotocol/sdk/types.js';
5
- import { createInsomniaTools } from './tools.js';
6
- import { createInsomniaResources } from './resources.js';
4
+ import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
5
+ import { createInsomniaTools } from './tools/index.js';
6
+ import { createInsomniaResources } from './resources/index.js';
7
7
  const server = new Server({
8
8
  name: 'mcp-insomnia',
9
- version: '0.1.0',
9
+ version: '0.3.0',
10
10
  }, {
11
11
  capabilities: {
12
12
  tools: {},
@@ -14,9 +14,9 @@ const server = new Server({
14
14
  },
15
15
  });
16
16
  const tools = createInsomniaTools();
17
- server.setRequestHandler(ListToolsRequestSchema, async () => {
17
+ server.setRequestHandler(ListToolsRequestSchema, () => {
18
18
  return {
19
- tools: tools.map(tool => ({
19
+ tools: tools.map((tool) => ({
20
20
  name: tool.name,
21
21
  description: tool.description,
22
22
  inputSchema: tool.inputSchema,
@@ -25,16 +25,16 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
25
25
  });
26
26
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
27
27
  const { name } = request.params;
28
- const tool = tools.find(t => t.name === name);
28
+ const tool = tools.find((t) => t.name === name);
29
29
  if (!tool) {
30
30
  throw new Error(`Tool ${name} not found`);
31
31
  }
32
32
  return await tool.handler(request);
33
33
  });
34
34
  const resources = createInsomniaResources();
35
- server.setRequestHandler(ListResourcesRequestSchema, async () => {
35
+ server.setRequestHandler(ListResourcesRequestSchema, () => {
36
36
  return {
37
- resources: resources.map(resource => ({
37
+ resources: resources.map((resource) => ({
38
38
  uri: resource.uri,
39
39
  name: resource.name,
40
40
  description: resource.description,
@@ -44,7 +44,7 @@ server.setRequestHandler(ListResourcesRequestSchema, async () => {
44
44
  });
45
45
  server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
46
46
  const { uri } = request.params;
47
- const resource = resources.find(r => r.uri === uri || uri.startsWith(r.uri.replace('{id}', '')));
47
+ const resource = resources.find((r) => r.uri === uri || uri.startsWith(r.uri.replace('{id}', '')));
48
48
  if (!resource) {
49
49
  throw new Error(`Resource ${uri} not found`);
50
50
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Resource } from '../types/resource.js';
2
+ export declare const collectionResources: Resource[];
3
+ //# sourceMappingURL=collection.resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection.resource.d.ts","sourceRoot":"","sources":["../../src/resources/collection.resource.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAKrD,eAAO,MAAM,mBAAmB,EAAE,QAAQ,EAuHzC,CAAC"}
@@ -0,0 +1,113 @@
1
+ import { storage } from '../storage/index.js';
2
+ export const collectionResources = [
3
+ {
4
+ uri: 'insomnia://collections',
5
+ name: 'Collections',
6
+ description: 'List all collections with folder structure',
7
+ mimeType: 'application/json',
8
+ handler: async () => {
9
+ const collections = storage.getAllCollections();
10
+ const result = Array.from(collections.entries()).map(([id, structure]) => ({
11
+ id,
12
+ name: structure.workspace.name,
13
+ description: structure.workspace.description,
14
+ scope: structure.workspace.scope,
15
+ created: new Date(structure.workspace.created).toISOString(),
16
+ modified: new Date(structure.workspace.modified).toISOString(),
17
+ folders: structure.folders.map((folder) => ({
18
+ id: folder._id,
19
+ name: folder.name,
20
+ description: folder.description,
21
+ parentId: folder.parentId,
22
+ created: new Date(folder.created).toISOString(),
23
+ modified: new Date(folder.modified).toISOString(),
24
+ })),
25
+ requestCount: structure.requests.length,
26
+ environmentCount: structure.environments.length,
27
+ }));
28
+ return {
29
+ contents: [
30
+ {
31
+ type: 'text',
32
+ text: JSON.stringify(result, null, 2),
33
+ },
34
+ ],
35
+ };
36
+ },
37
+ },
38
+ {
39
+ uri: 'insomnia://collection/{id}',
40
+ name: 'Collection Detail',
41
+ description: 'Full details of a specific collection',
42
+ mimeType: 'application/json',
43
+ handler: async (request) => {
44
+ const uri = request.params.uri;
45
+ const collectionId = uri.replace('insomnia://collection/', '');
46
+ const structure = storage.getCollection(collectionId);
47
+ if (!structure) {
48
+ throw new Error(`Collection with ID ${collectionId} not found`);
49
+ }
50
+ const result = {
51
+ workspace: {
52
+ id: structure.workspace._id,
53
+ name: structure.workspace.name,
54
+ description: structure.workspace.description,
55
+ scope: structure.workspace.scope,
56
+ created: new Date(structure.workspace.created).toISOString(),
57
+ modified: new Date(structure.workspace.modified).toISOString(),
58
+ },
59
+ structure: {
60
+ folders: structure.folders.map((folder) => ({
61
+ id: folder._id,
62
+ name: folder.name,
63
+ description: folder.description,
64
+ parentId: folder.parentId,
65
+ requestCount: structure.requests.filter((r) => r.parentId === folder._id)
66
+ .length,
67
+ })),
68
+ requests: structure.requests.map((request) => ({
69
+ id: request._id,
70
+ name: request.name,
71
+ method: request.method,
72
+ url: request.url,
73
+ parentId: request.parentId,
74
+ parentName: request.parentId === collectionId
75
+ ? 'Root'
76
+ : (structure.folders.find((f) => f._id === request.parentId)
77
+ ?.name ?? 'Unknown'),
78
+ hasAuth: !!request.authentication,
79
+ authType: request.authentication?.type,
80
+ })),
81
+ environments: structure.environments.map((env) => ({
82
+ id: env._id,
83
+ name: env.name,
84
+ variableCount: Object.keys(env.data).length,
85
+ })),
86
+ },
87
+ statistics: {
88
+ totalRequests: structure.requests.length,
89
+ totalFolders: structure.folders.length,
90
+ totalEnvironments: structure.environments.length,
91
+ methodBreakdown: structure.requests.reduce((acc, req) => {
92
+ acc[req.method] = (acc[req.method] || 0) + 1;
93
+ return acc;
94
+ }, {}),
95
+ authenticationBreakdown: structure.requests.reduce((acc, req) => {
96
+ const authType = req.authentication?.type ?? 'none';
97
+ acc[authType] = (acc[authType] || 0) + 1;
98
+ return acc;
99
+ }, {}),
100
+ },
101
+ };
102
+ return {
103
+ contents: [
104
+ {
105
+ type: 'text',
106
+ text: JSON.stringify(result, null, 2),
107
+ },
108
+ ],
109
+ };
110
+ },
111
+ },
112
+ ];
113
+ //# sourceMappingURL=collection.resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection.resource.js","sourceRoot":"","sources":["../../src/resources/collection.resource.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Resource } from '../types/resource.js';
2
+ export declare const environmentResources: Resource[];
3
+ //# sourceMappingURL=environment.resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.resource.d.ts","sourceRoot":"","sources":["../../src/resources/environment.resource.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGrD,eAAO,MAAM,oBAAoB,EAAE,QAAQ,EAiE1C,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { storage } from '../storage/index.js';
2
+ export const environmentResources = [
3
+ {
4
+ uri: 'insomnia://environments',
5
+ name: 'Environments',
6
+ description: 'List environment variables per collection. Can be filtered with ?collectionId={id}',
7
+ mimeType: 'application/json',
8
+ handler: async (request) => {
9
+ const allEnvironments = [];
10
+ const uri = request.params.uri;
11
+ const url = new URL(uri);
12
+ const collectionIdFilter = url.searchParams.get('collectionId');
13
+ const collections = collectionIdFilter
14
+ ? new Map([[collectionIdFilter, storage.getCollection(collectionIdFilter)]])
15
+ : storage.getAllCollections();
16
+ for (const [collectionId, structure] of collections.entries()) {
17
+ if (!structure)
18
+ continue;
19
+ const environments = structure.environments.map((env) => ({
20
+ id: env._id,
21
+ collectionId,
22
+ collectionName: structure.workspace.name,
23
+ name: env.name,
24
+ description: env.description,
25
+ variableCount: Object.keys(env.data).length,
26
+ variables: Object.entries(env.data).map(([key, value]) => ({
27
+ key,
28
+ value: typeof value === 'string' && value.length > 100 ? `${value.substring(0, 100)}...` : value,
29
+ type: typeof value,
30
+ })),
31
+ isPrivate: env.isPrivate || false,
32
+ created: new Date(env.created).toISOString(),
33
+ modified: new Date(env.modified).toISOString(),
34
+ }));
35
+ allEnvironments.push(...environments);
36
+ }
37
+ return {
38
+ contents: [
39
+ {
40
+ type: 'text',
41
+ text: JSON.stringify(allEnvironments, null, 2),
42
+ },
43
+ ],
44
+ };
45
+ },
46
+ },
47
+ ];
48
+ //# sourceMappingURL=environment.resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.resource.js","sourceRoot":"","sources":["../../src/resources/environment.resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAI9C,MAAM,CAAC,MAAM,oBAAoB,GAAe;IAC5C;QACI,GAAG,EAAE,yBAAyB;QAC9B,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,oFAAoF;QACjG,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACvB,MAAM,eAAe,GAehB,EAAE,CAAC;YACR,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;YAC/B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YACzB,MAAM,kBAAkB,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAEhE,MAAM,WAAW,GAAG,kBAAkB;gBAClC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,kBAAkB,EAAE,OAAO,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;gBAC5E,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAElC,KAAK,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC5D,IAAI,CAAC,SAAS;oBAAE,SAAS;gBAEzB,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAwB,EAAE,EAAE,CAAC,CAAC;oBAC3E,EAAE,EAAE,GAAG,CAAC,GAAG;oBACX,YAAY;oBACZ,cAAc,EAAE,SAAS,CAAC,SAAS,CAAC,IAAI;oBACxC,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC5B,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM;oBAC3C,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;wBACvD,GAAG;wBACH,KAAK,EACD,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;wBAC7F,IAAI,EAAE,OAAO,KAAK;qBACrB,CAAC,CAAC;oBACH,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,KAAK;oBACjC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE;oBAC5C,QAAQ,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE;iBACjD,CAAC,CAAC,CAAC;gBAEJ,eAAe,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;YAC1C,CAAC;YAED,OAAO;gBACH,QAAQ,EAAE;oBACN;wBACI,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;qBACjD;iBACJ;aACJ,CAAC;QACN,CAAC;KACJ;CACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Resource } from '../types/resource.js';
2
+ export declare function createInsomniaResources(): Resource[];
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,wBAAgB,uBAAuB,IAAI,QAAQ,EAAE,CAEpD"}
@@ -0,0 +1,8 @@
1
+ import { collectionResources } from './collection.resource.js';
2
+ import { requestResources } from './request.resource.js';
3
+ import { environmentResources } from './environment.resource.js';
4
+ import { searchResources } from './search.resource.js';
5
+ export function createInsomniaResources() {
6
+ return [...collectionResources, ...requestResources, ...environmentResources, ...searchResources];
7
+ }
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,MAAM,UAAU,uBAAuB;IACnC,OAAO,CAAC,GAAG,mBAAmB,EAAE,GAAG,gBAAgB,EAAE,GAAG,oBAAoB,EAAE,GAAG,eAAe,CAAC,CAAC;AACtG,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Resource } from '../types/resource.js';
2
+ export declare const requestResources: Resource[];
3
+ //# sourceMappingURL=request.resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.resource.d.ts","sourceRoot":"","sources":["../../src/resources/request.resource.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIrD,eAAO,MAAM,gBAAgB,EAAE,QAAQ,EA+LtC,CAAC"}
@@ -0,0 +1,157 @@
1
+ import { storage } from '../storage/index.js';
2
+ export const requestResources = [
3
+ {
4
+ uri: 'insomnia://requests',
5
+ name: 'Requests',
6
+ description: 'List all requests in collections with metadata. Can be filtered with ?collectionId={id}',
7
+ mimeType: 'application/json',
8
+ handler: async (request) => {
9
+ const allRequests = [];
10
+ const uri = request.params.uri;
11
+ const url = new URL(uri);
12
+ const collectionIdFilter = url.searchParams.get('collectionId');
13
+ const collections = collectionIdFilter
14
+ ? new Map([[collectionIdFilter, storage.getCollection(collectionIdFilter)]])
15
+ : storage.getAllCollections();
16
+ for (const [collectionId, structure] of collections.entries()) {
17
+ if (!structure)
18
+ continue;
19
+ const requests = structure.requests.map((request) => ({
20
+ id: request._id,
21
+ collectionId,
22
+ collectionName: structure.workspace.name,
23
+ parentId: request.parentId,
24
+ parentName: structure.folders.find((f) => f._id === request.parentId)?.name ?? 'Root',
25
+ name: request.name,
26
+ description: request.description,
27
+ method: request.method,
28
+ url: request.url,
29
+ hasAuthentication: !!request.authentication,
30
+ headerCount: request.headers.length,
31
+ parameterCount: request.parameters.length,
32
+ hasBody: !!request.body,
33
+ created: new Date(request.created).toISOString(),
34
+ modified: new Date(request.modified).toISOString(),
35
+ }));
36
+ allRequests.push(...requests);
37
+ }
38
+ allRequests.sort((a, b) => new Date(b.modified).getTime() - new Date(a.modified).getTime());
39
+ return {
40
+ contents: [
41
+ {
42
+ type: 'text',
43
+ text: JSON.stringify(allRequests, null, 2),
44
+ },
45
+ ],
46
+ };
47
+ },
48
+ },
49
+ {
50
+ uri: 'insomnia://request/{id}',
51
+ name: 'Request Detail',
52
+ description: 'Full details of a specific request',
53
+ mimeType: 'application/json',
54
+ handler: async (request) => {
55
+ const uri = request.params.uri;
56
+ const requestId = uri.replace('insomnia://request/', '');
57
+ let targetRequest = null;
58
+ let collectionInfo = null;
59
+ const collections = storage.getAllCollections();
60
+ for (const [collectionId, structure] of collections.entries()) {
61
+ const foundRequest = structure.requests.find((r) => r._id === requestId);
62
+ if (foundRequest) {
63
+ targetRequest = foundRequest;
64
+ collectionInfo = {
65
+ id: collectionId,
66
+ name: structure.workspace.name,
67
+ parentName: foundRequest.parentId === collectionId
68
+ ? 'Root'
69
+ : (structure.folders.find((f) => f._id === foundRequest.parentId)
70
+ ?.name ?? 'Unknown'),
71
+ };
72
+ break;
73
+ }
74
+ }
75
+ if (!targetRequest) {
76
+ throw new Error(`Request with ID ${requestId} not found`);
77
+ }
78
+ const result = {
79
+ id: targetRequest._id,
80
+ name: targetRequest.name,
81
+ description: targetRequest.description,
82
+ method: targetRequest.method,
83
+ url: targetRequest.url,
84
+ collection: collectionInfo,
85
+ headers: targetRequest.headers,
86
+ parameters: targetRequest.parameters,
87
+ body: targetRequest.body || null,
88
+ authentication: targetRequest.authentication
89
+ ? {
90
+ type: targetRequest.authentication.type,
91
+ hasCredentials: !!(targetRequest.authentication.username ?? targetRequest.authentication.token),
92
+ }
93
+ : null,
94
+ metadata: {
95
+ created: new Date(targetRequest.created).toISOString(),
96
+ modified: new Date(targetRequest.modified).toISOString(),
97
+ hasHeaders: targetRequest.headers.length > 0,
98
+ hasParameters: targetRequest.parameters.length > 0,
99
+ hasBody: !!targetRequest.body,
100
+ hasAuthentication: !!targetRequest.authentication,
101
+ },
102
+ };
103
+ return {
104
+ contents: [
105
+ {
106
+ type: 'text',
107
+ text: JSON.stringify(result, null, 2),
108
+ },
109
+ ],
110
+ };
111
+ },
112
+ },
113
+ {
114
+ uri: 'insomnia://request/{id}/history',
115
+ name: 'Request Execution History',
116
+ description: 'Get the execution history of a specific request',
117
+ mimeType: 'application/json',
118
+ handler: async (request) => {
119
+ const uri = request.params.uri;
120
+ const requestId = uri.replace('insomnia://request/', '').replace('/history', '');
121
+ let targetRequest = null;
122
+ const collections = storage.getAllCollections();
123
+ for (const structure of collections.values()) {
124
+ const foundRequest = structure.requests.find((r) => r._id === requestId);
125
+ if (foundRequest) {
126
+ targetRequest = foundRequest;
127
+ break;
128
+ }
129
+ }
130
+ if (!targetRequest) {
131
+ throw new Error(`Request with ID ${requestId} not found`);
132
+ }
133
+ const history = (targetRequest.history || []).map((h) => ({
134
+ id: h._id,
135
+ timestamp: new Date(h.timestamp).toISOString(),
136
+ response: {
137
+ statusCode: h.response.statusCode,
138
+ statusMessage: h.response.statusMessage,
139
+ duration: h.response.duration,
140
+ size: h.response.size,
141
+ headers: h.response.headers,
142
+ body: h.response.body,
143
+ },
144
+ error: h.error,
145
+ }));
146
+ return {
147
+ contents: [
148
+ {
149
+ type: 'text',
150
+ text: JSON.stringify(history, null, 2),
151
+ },
152
+ ],
153
+ };
154
+ },
155
+ },
156
+ ];
157
+ //# sourceMappingURL=request.resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.resource.js","sourceRoot":"","sources":["../../src/resources/request.resource.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Resource } from '../types/resource.js';
2
+ export declare const searchResources: Resource[];
3
+ //# sourceMappingURL=search.resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.resource.d.ts","sourceRoot":"","sources":["../../src/resources/search.resource.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAKrD,eAAO,MAAM,eAAe,EAAE,QAAQ,EAgKrC,CAAC"}