MCP-Insomnia
MCP-Insomnia is an MCP server that enables AI agents to create, manage, import, export, and execute API collections in Insomnia-compatible format, with direct integration to the local Insomnia application database.
Collection & Folder Management
Create, list, export (Insomnia V4 JSON), and get statistics for API collections/workspaces
Create folders within collections to organize requests
Request Management
Create, update, delete, list, and retrieve details for API requests (HTTP methods, headers, body, parameters, auth)
Execute stored requests with optional environment variables and view execution history
Environment Management
Set and retrieve environment variables associated with collections
Import Tools
Import from cURL commands, Postman Collection v2.1 JSON, OpenAPI/Swagger v3.0 specs, and Insomnia V4 export files
Code Generation
Generate code snippets for requests in 17+ languages and frameworks (JavaScript, Python, Go, Java, Shell, etc.)
Search & Statistics
Search across all collections, folders, and requests; get global statistics
Direct Insomnia App Integration (NeDB)
List projects and workspaces/collections from the local Insomnia app
Get full details of specific Insomnia workspaces and requests
Sync collections between MCP storage and Insomnia (import single/all workspaces, export back to Insomnia)
Execute requests directly from the Insomnia app with environment variable substitution and override support
Allows importing and parsing cURL commands to create new requests within API collections.
Enables comprehensive management of API collections, folders, and requests, including the ability to execute requests, manage environments, and synchronize with the local Insomnia application.
Integrates directly with the local Insomnia NeDB database on macOS to sync collections and execute requests with environment support.
Supports importing existing Postman collections (v2.1) into the Insomnia-compatible format.
Provides the capability to import API definitions from OpenAPI and Swagger (v3.0) JSON specifications.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP-Insomnia import this curl command into a new request: curl https://api.example.com/users"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP-Insomnia
MCP-Insomnia is an MCP (Model Context Protocol) server that enables AI agents to create and manage API collections in Insomnia-compatible format. This server provides tools for managing collections, requests, and environments that can be exported to Insomnia.
Installation and Usage
Prerequisites
Node.js 18+
npm or yarn
There are three ways to use mcp-insomnia.
1. Run with NPX (Recommended)
You can run mcp-insomnia directly using npx without a global installation.
Configuration:
{
"mcpServers": {
"insomnia": {
"command": "npx",
"args": ["-y", "mcp-insomnia"]
}
}
}2. Install Globally from NPM
Install the package globally using npm.
Installation:
npm install -g mcp-insomniaConfiguration:
{
"mcpServers": {
"insomnia": {
"command": "mcp-insomnia"
}
}
}3. Install from Source
Clone the repository and build the project.
Installation:
git clone https://github.com/anggasct/mcp-insomnia.git
cd mcp-insomnia
npm install
npm run buildConfiguration:
{
"mcpServers": {
"insomnia": {
"command": "node",
"args": ["/path/to/mcp-insomnia/dist/index.js"]
}
}
}Related MCP server: Invoker MCP Server
Available Tools
Collection Management
create_collection- Create new collection/workspacelist_collections- List all collectionsget_collection_detail- Get full details and statistics of a collectionexport_collection- Export collection to JSON format
Folder Management
create_folder- Create folder within collection
Request Management
list_requests- List all requests, optionally filter by collectionget_request- Get full details of a specific requestcreate_request_in_collection- Create new requestupdate_request- Update existing requestdelete_request- Delete requestexecute_request- Execute an MCP-stored request and return the response (supports environment resolution, timeouts, and response size limits — see Request execution)get_request_history- Get execution history of a request (up to 20 entries per request)
Import Tools
import_from_curl- Parse cURL command into a requestimport_from_postman- Import Postman Collection (v2.1) JSONimport_from_openapi- Import OpenAPI 3.x or Swagger 2.x JSONimport_from_insomnia_export- Import collections from a standard Insomnia V4 export file
Utility Tools
generate_code_snippet- Generate a code snippet for a request. RequiresrequestIdandtarget. Supported targets:c,clojure,csharp,go,http,java,javascript,kotlin,node,objc,ocaml,php,powershell,python,ruby,shell,swift. Optionalclientselects a library (e.g.axiosforjavascript,curlforshell).
Insomnia Direct Integration (NeDB)
Interact directly with the local Insomnia application database (macOS, Linux, Windows).
list_insomnia_projects- List all projects/teams from Insomnialist_insomnia_collections- List all workspaces/collections from Insomniaget_insomnia_collection- Get full details of a specific Insomnia workspaceget_insomnia_request- Get full details of a specific Insomnia requestsync_from_insomnia- Import a workspace from Insomnia to MCPsync_all_from_insomnia- Import all workspaces from Insomnia to MCPsync_to_insomnia- Export an MCP collection back to Insomniaexecute_insomnia_request- Execute a request directly from Insomnia without syncing (supports environment resolution and timeouts — see Request execution)
Environment Management
set_environment_variable- Set environment variableget_environment_variables- Get environment variables
When executing requests, environment variables are merged in layers (later layers override earlier ones):
MCP collections (execute_request):
Workspace/base environments attached to the collection
Sub-environment (
environmentId, if provided)Folder environments along the request's ancestor chain
overrideVariables(per-call overrides)environmentVariables(legacy final override layer)
Insomnia app (execute_insomnia_request):
Global environment (project level)
Base environment (workspace level)
Sub-environment (
environmentId, if provided)Folder environments along the request's ancestor chain
overrideVariables(per-call overrides)
Request execution
Both execution tools accept optional runtime parameters:
Parameter |
|
| Description |
| ✓ | ✓ | ID of the request to run |
| ✓ | ✓ | Sub-environment ID for variable substitution |
| ✓ | ✓ | Per-call variable overrides (e.g. |
| ✓ | Legacy final override layer for MCP collections | |
| ✓ | ✓ | Request timeout in ms (default |
| ✓ | Max serialized response body size in tool output; exceeded bodies are truncated to a preview |
Search & Statistics
search- Search across all collections, folders, and requestsget_stats- Get global statistics of all collections
Usage Examples
Create Collection
Create a new Insomnia collection named "API Testing" for testing endpointsAdd Request
Add GET request to "API Testing" Insomnia collection with:
- Name: Get Users
- URL: https://jsonplaceholder.typicode.com/users
- Headers: Content-Type: application/jsonSet Environment Variable
Set Insomnia environment variable "baseUrl" with value "https://api.example.com" for "API Testing" collectionExecute Request
Execute "Get Users" request using the configured environment variablesWith optional parameters:
Execute request req_abc123 with environmentId env_xyz, timeout 15000ms, and override baseUrl to https://staging.api.example.comGenerate Code Snippet
Generate a code snippet for request req_abc123 in javascript using axiosData Storage
Data is stored in two locations:
MCP Storage:
~/.mcp-insomnia/collections.jsonWorking area for building/editing collections before syncing
Changes here do NOT affect the Insomnia App until synced
Ideal for generating new collections, importing from OpenAPI, or mass-refactoring
Insomnia App Storage (NeDB)
The database used by Insomnia App
Changes here are visible in the App (may require restart)
Default paths:
macOS:
~/Library/Application Support/InsomniaLinux:
~/.config/InsomniaLinux (Flatpak):
~/.var/app/rest.insomnia.Insomnia/config/InsomniaWindows:
%APPDATA%/Insomnia
Custom Insomnia Data Directory
If Insomnia is installed in a non-default location, you can set the INSOMNIA_DATA_DIR environment variable to specify the path:
{
"mcpServers": {
"insomnia": {
"command": "npx",
"args": ["mcp-insomnia"],
"env": {
"INSOMNIA_DATA_DIR": "~/.var/app/rest.insomnia.Insomnia/config/Insomnia"
}
}
}
}Note: Flatpak installations on Linux are auto-detected — you only need
INSOMNIA_DATA_DIRif your Insomnia data is in a truly custom location.
Recommended Workflow
Scenario A: Creating/Modifying Content
Import/Fetch: Pull data from Insomnia (
sync_from_insomniaorimport_from_openapi)Edit: Modify requests/folders using MCP tools (
create_request_in_collection,update_request)Publish: Sync changes back to Insomnia (
sync_to_insomnia)
Scenario B: Running Existing Requests
Use
execute_insomnia_requestto run requests directly from Insomnia App without syncing
Contributing
Contributions are welcome! Bug fixes, new tools, and improvements are all appreciated.
git clone https://github.com/anggasct/mcp-insomnia.git
cd mcp-insomnia
npm install
npm run build
npx @modelcontextprotocol/inspector node dist/index.js # test via MCP InspectorFork the repo, create a branch from main, and open a PR. Use conventional commits (feat:, fix:, docs:, etc.).
Found a bug or have an idea? Open an issue.
License
Changelog
See CHANGELOG.md for release history.
Available Tools
30 toolscreate_collectionB
Create a new collection/workspace in Insomnia
Inputs: name (required), scope, description.
create_folderA
Create a folder to group requests within a collection
Inputs: name (required), collectionId (required), parentId, description.
create_request_in_collectionB
Create a new request within a specific collection/folder
Inputs: url (required), name (required), method (required), collectionId (required), +6 more.
delete_requestA
Delete a request from a collection
Inputs: requestId (required), dryRun.
execute_insomnia_requestA
Execute a request directly from Insomnia app without syncing. Supports environment variable substitution.
Inputs: requestId (required), timeoutMs, environmentId, overrideVariables.
execute_requestC
Execute a request and get a response
Inputs: requestId (required), timeoutMs, environmentId, maxResponseBytes, +2 more.
export_collectionB
Export collection to JSON (Insomnia V4 format)
Inputs: collectionId (required), filePath.
generate_code_snippetB
Generate a code snippet for a request in various languages/frameworks
Inputs: target (required), requestId (required), client.
get_collection_detailC
Get full details and statistics of a specific collection
Inputs: collectionId (required).
get_environment_variablesB
Get environment variables from a collection
Inputs: collectionId (required), environmentId.
get_insomnia_collectionB
Get a complete collection from Insomnia app by workspace ID
Inputs: workspaceId (required).
get_insomnia_requestC
Get detailed request information directly from Insomnia
Inputs: requestId (required).
get_requestC
Get full details of a specific request by ID
Inputs: requestId (required).
get_request_historyB
Get the execution history of a specific request
Inputs: requestId (required).
get_statsB
Get global statistics of all collections
Inputs: no named parameters.
import_from_curlB
Create a request from a cURL command
Inputs: curlCommand (required), collectionId (required), folderId, requestName.
import_from_insomnia_exportB
Import collections from a standard Insomnia V4 export file
Inputs: filePath (required).
import_from_openapiB
Generate requests from OpenAPI/Swagger specification
Inputs: filePath (required), baseUrl, collectionName.
import_from_postmanA
Import collections from a Postman Collection v2.1 JSON file
Inputs: filePath (required).
list_collectionsB
List all collections and their structure
Inputs: no named parameters.
list_insomnia_collectionsB
List all collections directly from Insomnia app (requires Insomnia to be installed)
Inputs: no named parameters.
list_insomnia_projectsB
List all projects from Insomnia app
Inputs: no named parameters.
list_requestsB
List all requests across collections. Optionally filter by collectionId.
Inputs: collectionId.
preview_sync_to_insomniaA
Preview the effect of syncing a collection to Insomnia: classify documents into toCreate/toUpdate/toDelete vs the Insomnia target. Performs no writes.
Inputs: collectionId (required), projectId.
searchB
Search for a keyword across all collections, folders, and requests
Inputs: keyword (required).
set_environment_variableC
Set environment variables for a collection
Inputs: key (required), value (required), collectionId (required), description, +1 more.
sync_all_from_insomniaB
Import all collections from Insomnia app into MCP storage
Inputs: no named parameters.
sync_from_insomniaC
Import a collection from Insomnia app into MCP storage
Inputs: workspaceId (required).
sync_to_insomniaC
Export a collection from MCP storage to Insomnia app
Inputs: collectionId (required), backup, dryRun, projectId.
update_requestC
Update an existing request
Inputs: requestId (required), url, body, name, +5 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 30 tools
Several tools form near-identical pairs differentiated mainly by source: MCP storage vs. live Insomnia app (e.g., list_collections vs. list_insomnia_collections, get_request vs. get_insomnia_request, execute_request vs. execute_insomnia_request). The descriptions clarify the distinction, but an agent must read carefully to avoid picking the wrong variant.
The set mostly follows a clear verb_noun snake_case pattern: create_collection, list_requests, update_request, delete_request. The main inconsistency is where 'insomnia' appears in names (list_insomnia_collections vs. sync_from_insomnia), but the overall convention remains predictable.
With 30 tools, the server feels over-sized even for a feature-rich Insomnia integration. Many operations are duplicated across MCP storage and live-app variants, inflating the surface area without adding proportional capability.
Requests have solid lifecycle coverage with create, get, update, delete, execute, and search, and imports/exports are broad. However, collections lack update and delete operations, and folders have no update/delete path, leaving notable CRUD gaps in the core domain.
Maintenance
Related MCP Connectors
AI-callable tools for API mocking, testing, monitoring, security, and automation.
Give your AI agents trusted access to the full Postman platform.
Discover, compare, route, and execute machine-accessible capabilities for AI agents.
Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to interact with Istek API Client for managing workspaces, collections, environments, variables, and request history. Allows natural language control of API development workflows including creating collections, adding requests, and managing environment configurations.-
- AlicenseAqualityDmaintenanceEnables AI agents to create, run, and manage HTTP requests using the Invoker API client's .ivk format. It provides tools for scanning collections, executing requests, managing environments, and building documentation sites.968 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to create, manage, and interact with Postman collections, workspaces, environments, and API requests directly from conversations.72 npm5MIT

Gud API MCP Serverofficial
FlicenseAqualityCmaintenanceEnables AI agents to create, run, and save API requests and collections as local Gud API files, which are git-committable and viewable in VS Code-compatible editors.855 npm-