MCP-Insomnia
Um servidor MCP para agentes de IA criarem e gerenciarem coleções de API no formato compatível com Insomnia.
Documentação
MCP-Insomnia
MCP-Insomnia é um servidor MCP (Model Context Protocol) que permite que agentes de IA criem e gerenciem coleções de API em formato compatível com o Insomnia. Este servidor fornece ferramentas para gerenciar coleções, requisições e ambientes que podem ser exportados para o Insomnia.
Instalação e Uso
Pré-requisitos
- Node.js 18+
- npm ou yarn
Existem três maneiras de usar o mcp-insomnia.
1. Executar com NPX (Recomendado)
Você pode executar o mcp-insomnia diretamente usando o npx sem instalação global.
Configuração:
{
"mcpServers": {
"insomnia": {
"command": "npx",
"args": ["-y", "mcp-insomnia"]
}
}
}
2. Instalar Globalmente via NPM
Instale o pacote globalmente usando npm.
Instalação:
npm install -g mcp-insomnia
Configuração:
{
"mcpServers": {
"insomnia": {
"command": "mcp-insomnia"
}
}
}
3. Instalar a partir do Código-Fonte
Clone o repositório e compile o projeto.
Instalação:
git clone https://github.com/anggasct/mcp-insomnia.git
cd mcp-insomnia
npm install
npm run build
Configuração:
{
"mcpServers": {
"insomnia": {
"command": "node",
"args": ["/path/to/mcp-insomnia/dist/index.js"]
}
}
}
Ferramentas Disponíveis
Gerenciamento de Coleções
create_collection- Criar nova coleção/workspacelist_collections- Listar todas as coleçõesget_collection_detail- Obter detalhes completos e estatísticas de uma coleçãoexport_collection- Exportar coleção para formato JSON
Gerenciamento de Pastas
create_folder- Criar pasta dentro da coleção
Gerenciamento de Requisições
list_requests- Listar todas as requisições, opcionalmente filtrar por coleçãoget_request- Obter detalhes completos de uma requisição específicacreate_request_in_collection- Criar nova requisiçãoupdate_request- Atualizar requisição existentedelete_request- Excluir requisiçãoexecute_request- Executar uma requisição armazenada no MCP e retornar a resposta (suporta resolução de ambiente, timeouts e limites de tamanho de resposta — veja Execução de requisições)get_request_history- Obter histórico de execução de uma requisição (até 20 entradas por requisição)
Ferramentas de Importação
import_from_curl- Analisar comando cURL em uma requisiçãoimport_from_postman- Importar Postman Collection (v2.1) JSONimport_from_openapi- Importar OpenAPI 3.x ou Swagger 2.x JSONimport_from_insomnia_export- Importar coleções de um arquivo de exportação padrão do Insomnia V4
Ferramentas Utilitárias
generate_code_snippet- Gerar um snippet de código para uma requisição. RequerrequestIdetarget. Alvos suportados:c,clojure,csharp,go,http,java,javascript,kotlin,node,objc,ocaml,php,powershell,python,ruby,shell,swift. Oclientopcional seleciona uma biblioteca (ex.:axiosparajavascript,curlparashell).
Integração Direta com o Insomnia (NeDB)
Interaja diretamente com o banco de dados local do aplicativo Insomnia (macOS, Linux, Windows).
list_insomnia_projects- Listar todos os projetos/equipes do Insomnialist_insomnia_collections- Listar todos os workspaces/coleções do Insomniaget_insomnia_collection- Obter detalhes completos de um workspace específico do Insomniaget_insomnia_request- Obter detalhes completos de uma requisição específica do Insomniasync_from_insomnia- Importar um workspace do Insomnia para o MCPsync_all_from_insomnia- Importar todos os workspaces do Insomnia para o MCPsync_to_insomnia- Exportar uma coleção do MCP de volta para o Insomniaexecute_insomnia_request- Executar uma requisição diretamente do Insomnia sem sincronização (suporta resolução de ambiente e timeouts — veja Execução de requisições)
Gerenciamento de Ambientes
set_environment_variable- Definir variável de ambienteget_environment_variables- Obter variáveis de ambiente
Ao executar requisições, as variáveis de ambiente são mescladas em camadas (camadas posteriores sobrescrevem as anteriores):
Coleções MCP (execute_request):
- Ambientes de workspace/base anexados à coleção
- Sub-ambiente (
environmentId, se fornecido) - Ambientes de pasta ao longo da cadeia de ancestrais da requisição
overrideVariables(sobrescritas por chamada)environmentVariables(camada de sobrescrita final legada)
Aplicativo Insomnia (execute_insomnia_request):
- Ambiente global (nível de projeto)
- Ambiente base (nível de workspace)
- Sub-ambiente (
environmentId, se fornecido) - Ambientes de pasta ao longo da cadeia de ancestrais da requisição
overrideVariables(sobrescritas por chamada)
Execução de requisições
Ambas as ferramentas de execução aceitam parâmetros opcionais de tempo de execução:
| Parâmetro | execute_request | execute_insomnia_request | Descrição |
|---|---|---|---|
requestId | ✓ | ✓ | ID da requisição a ser executada |
environmentId | ✓ | ✓ | ID do sub-ambiente para substituição de variáveis |
overrideVariables | ✓ | ✓ | Sobrescritas de variáveis por chamada (ex.: {"token": "abc123"}) |
environmentVariables | ✓ | Camada de sobrescrita final legada para coleções MCP | |
timeoutMs | ✓ | ✓ | Timeout da requisição em ms (padrão 30000; defina <= 0 para sem timeout — o cancelamento do MCP ainda se aplica) |
maxResponseBytes | ✓ | Tamanho máximo do corpo de resposta serializado na saída da ferramenta; corpos excedentes são truncados para uma prévia |
Busca e Estatísticas
search- Buscar em todas as coleções, pastas e requisiçõesget_stats- Obter estatísticas globais de todas as coleções
Exemplos de Uso
Criar Coleção
Create a new Insomnia collection named "API Testing" for testing endpoints
Adicionar Requisição
Add GET request to "API Testing" Insomnia collection with:
- Name: Get Users
- URL: https://jsonplaceholder.typicode.com/users
- Headers: Content-Type: application/json
Definir Variável de Ambiente
Set Insomnia environment variable "baseUrl" with value "https://api.example.com" for "API Testing" collection
Executar Requisição
Execute "Get Users" request using the configured environment variables
Com parâmetros opcionais:
Execute request req_abc123 with environmentId env_xyz, timeout 15000ms, and override baseUrl to https://staging.api.example.com
Gerar Snippet de Código
Generate a code snippet for request req_abc123 in javascript using axios
Armazenamento de Dados
Os dados são armazenados em dois locais:
-
Armazenamento MCP:
~/.mcp-insomnia/collections.json- Área de trabalho para criar/editar coleções antes da sincronização
- Alterações aqui NÃO afetam o aplicativo Insomnia até a sincronização
- Ideal para gerar novas coleções, importar do OpenAPI ou refatoração em massa
-
Armazenamento do Aplicativo Insomnia (NeDB)
- O banco de dados usado pelo aplicativo Insomnia
- Alterações aqui são visíveis no aplicativo (pode exigir reinicialização)
- Caminhos padrão:
- macOS:
~/Library/Application Support/Insomnia - Linux:
~/.config/Insomnia - Linux (Flatpak):
~/.var/app/rest.insomnia.Insomnia/config/Insomnia - Windows:
%APPDATA%/Insomnia
- macOS:
Diretório de Dados Personalizado do Insomnia
Se o Insomnia estiver instalado em um local não padrão, você pode definir a variável de ambiente INSOMNIA_DATA_DIR para especificar o caminho:
{
"mcpServers": {
"insomnia": {
"command": "npx",
"args": ["mcp-insomnia"],
"env": {
"INSOMNIA_DATA_DIR": "~/.var/app/rest.insomnia.Insomnia/config/Insomnia"
}
}
}
}
Nota: Instalações Flatpak no Linux são detectadas automaticamente — você só precisa do
INSOMNIA_DATA_DIRse seus dados do Insomnia estiverem em um local verdadeiramente personalizado.
Fluxo de Trabalho Recomendado
Cenário A: Criando/Modificando Conteúdo
- Importar/Buscar: Obter dados do Insomnia (
sync_from_insomniaouimport_from_openapi) - Editar: Modificar requisições/pastas usando ferramentas MCP (
create_request_in_collection,update_request) - Publicar: Sincronizar alterações de volta para o Insomnia (
sync_to_insomnia)
Cenário B: Executando Requisições Existentes
- Use
execute_insomnia_requestpara executar requisições diretamente do aplicativo Insomnia sem sincronização
Contribuindo
Contribuições são bem-vindas! Correções de bugs, novas ferramentas e melhorias são todas apreciadas.
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 Inspector
Faça um fork do repositório, crie uma branch a partir de main e abra um PR. Use conventional commits (feat:, fix:, docs:, etc.).
Encontrou um bug ou tem uma ideia? Abra uma issue.
Licença
Changelog
Consulte CHANGELOG.md para o histórico de versões.