v1.0.0 · Matias Fernando

Converte qualquer
API em MCP

Sem escrever código. Apenas configure a URL da spec OpenAPI/Swagger e a tua API fica disponível como ferramentas MCP para LLMs em segundos.

Segundos de configuração
Zero código necessário
Swagger 2.0 → OpenAPI 3.0
// 01 — Sobre o projeto

Por que este
projecto existe?

LLMs modernos têm capacidades incríveis, mas não conseguem interagir diretamente com APIs REST existentes. O Protocolo MCP resolve isso, mas exige que cada API tenha um servidor dedicado.

O rest2mcp elimina essa barreira: forneces a URL da spec OpenAPI/Swagger, e o servidor gera automaticamente as ferramentas MCP correspondentes.

❌ Problema LLMs não conseguem chamar endpoints REST diretamente, e cada API precisaria de um servidor MCP dedicado.
✅ Solução Conversão automática de specs OpenAPI/Swagger para ferramentas MCP — sem código adicional.

✨ Destaques fundamentais

01

Zero código — Apenas configure a URL da spec no cliente MCP.

02

Múltiplas APIs — Configure várias APIs no mesmo cliente simultaneamente.

03

Conversão automática — Swagger 2.0 é convertido para OpenAPI 3.0 automaticamente.

Como funciona?

No transporte stdio (padrão):

01
Configurar MCP_SPEC_URL Define a variável no teu cliente MCP favorito.
02
Download e conversão O servidor baixa e converte a especificação da API.
03
Geração das ferramentas Ferramentas MCP criadas automaticamente a partir dos endpoints.
04
LLM usa as ferramentas O modelo chama a API como se fossem funções nativas.
05
Ciclo encerrado O servidor termina quando o cliente desconecta.
Nota SSE/HTTP: Para transporte SSE, o servidor pode correr de forma independente num host remoto, sem depender do ciclo de vida do cliente.
// 02 — Canais de transporte

STDIO, HTTP e SSE
três modos de uso

O rest2mcp suporta três canais de transporte, cada um ideal para diferentes cenários de integração.

Transporte STDIO

Padrão — Cliente spawna

Ideal para integração direta com clientes MCP locais (VS Code, Claude Desktop, Cursor).

CICLO DE VIDA
Cliente spawna/killa processo
INSPECTOR (--inspect)
Inspector spawna processo diretamente
python main.py --transport stdio
Transporte HTTP

Servidor independente

Ideal quando o servidor precisa rodar de forma contínua em host remoto ou local.

CICLO DE VIDA
Contínuo (até parar manualmente)
INSPECTOR (--inspect)
Servidor HTTP + Inspector no browser
python main.py --transport http --port 8081
Transporte SSE

Server-Sent Events

Ideal para comunicação em tempo real via Server-Sent Events com suporte nativo.

CICLO DE VIDA
Contínuo (até parar manualmente)
INSPECTOR (--inspect)
Servidor SSE + Inspector no browser
python main.py --transport sse --port 8081
Exemplos de uso com --inspect

Como usar com e sem --inspect

✨ COM INSPECTOR
# STDIO — Inspector spawna diretamente
python main.py --inspect --transport stdio
# HTTP — Servidor + Inspector
python main.py --inspect --transport http --port 8081
# SSE — Servidor + Inspector
python main.py --inspect --transport sse --port 8081
🚀 PRODUÇÃO (SEM INSPECT)
# STDIO — Cliente spawna (padrão)
python main.py --transport stdio
# HTTP — Servidor independente
python main.py --transport http --port 8081
# SSE — Servidor independente
python main.py --transport sse --port 8081

Tudo o que precisas,
pronto a usar.

Seis recursos que tornam o rest2mcp a escolha mais rápida para conectar LLMs às tuas APIs.

🌐

Qualquer API, Zero Código

Apenas configura a URL da spec. Sem desenvolver servidores MCP individuais para cada API.

🔄

Múltiplas APIs Simultâneas

Configura várias APIs no mesmo cliente MCP, cada uma com o seu próprio servidor.

🖥️

Conversão Automática

Swagger 2.0 desatualizado? Convertido automaticamente para OpenAPI 3.0 via swagger2openapi.

🔍

Modo Inspector

Testa e depura as ferramentas geradas com o MCP Inspector integrado no próprio servidor.

🎨

Logging Colorido

Logs informativos com cores para depuração rápida e eficaz no terminal.

🧪

API de Teste Incluída

Inclui loja_api.py — uma API FastAPI de demonstração para testes locais imediatos.

// 04 — Exemplo prático

Duas APIs,
um servidor.

Configura múltiplas APIs no mesmo cliente MCP. Veja a diferença entre uma API externa (Swagger 2.0) e uma API local (OpenAPI 3.0).

🌐

PetStore API (Externa)

Swagger 2.0
MCP_SPEC_URL=https://petstore.swagger.io/v2/swagger.json
MCP_SERVER_NAME=PetStore API
⚠️ Swagger 2.0 desatualizado — O servidor converte automaticamente para OpenAPI 3.0 usando swagger2openapi.
🏠

Loja API (Local)

OpenAPI 3.0
MCP_SPEC_URL=http://localhost:8000/openapi.json
MCP_SERVER_NAME=Loja API
OpenAPI 3.0 nativo — Usado directamente sem conversão, mais rápido e confiável.

Configuração no VS Code — Múltiplas APIs

{
  "mcp.servers": {
    "petstore": {
      "command": ".../venv/Scripts/python.exe",
      "args": ["main.py"],
      "env": {
        "MCP_SPEC_URL": "https://petstore.swagger.io/v2/swagger.json",
        "MCP_SERVER_NAME": "PetStore API"
      }
    },
    "loja-local": {
      "command": ".../venv/Scripts/python.exe",
      "args": ["main.py"],
      "env": {
        "MCP_SPEC_URL": "http://localhost:8000/openapi.json",
        "MCP_SERVER_NAME": "Loja API"
      }
    }
  }
}

// 05 — Instalação

Instala em
segundos.

Escolhe o método adequado para o teu sistema operativo.

# Instalação completa (Python + Node.js)
make install

# Apenas Python
make install-python

# Apenas Node.js
make install-node

# Limpar ficheiros temporários
make clean

# Iniciar Inspector (requer MCP_SPEC_URL)
make inspect
# Dar permissões de execução
chmod +x setup.sh

# Executar script de instalação
./setup.sh

O script cria o venv, instala dependências Python e Node.js globalmente.

# Executar no PowerShell
.\setup.ps1

O script cria o venv, instala dependências Python e Node.js globalmente.

01

Clonar o Repositório

git clone https://github.com/mvninull/open-mcp.git
cd open-mcp
02

Configurar o Servidor MCP no Cliente

Após clonar, configura no ficheiro JSON do teu cliente MCP (VS Code, Claude, etc.):

{
  "mcp.servers": {
    "minha-api": {
      "command": "${workspaceFolder}/venv/Scripts/python.exe",
      "args": ["${workspaceFolder}/main.py"],
      "env": {
        "MCP_SPEC_URL": "https://petstore.swagger.io/v2/swagger.json",
        "MCP_SERVER_NAME": "PetStore API"
      }
    }
  }
}
03

Pronto! Verificar Instalação

O script instala automaticamente: Python venv com fastmcp, httpx e pydantic, além de Node.js swagger2openapi globalmente.


// 06 — Quick Start

Em produção
em minutos.

Usa a API de teste incluída (loja_api.py) para experimentar o servidor MCP localmente.

1

Iniciar API de Teste

# Terminal 1: Iniciar loja_api.py
./venv/Scripts/python loja_api.py

# API disponível em:
# Swagger UI  → http://localhost:8000/docs
# OpenAPI JSON → http://localhost:8000/openapi.json
2

Configurar Variáveis de Ambiente

# Terminal 2 (PowerShell)
$env:MCP_SPEC_URL = "http://localhost:8000/openapi.json"
$env:MCP_SERVER_NAME = "Loja API"
3

Iniciar MCP Inspector

# Terminal 2
./venv/Scripts/python main.py --inspect

# Inspector abre em → http://localhost:6274
4

Testar as Ferramentas

No Inspector, clica em "List Tools" para ver as ferramentas geradas automaticamente a partir da Loja API — listar produtos, criar, actualizar e eliminar.


// 07 — Configuração

Clientes MCP
suportados.

Exemplos de configuração para os principais clientes MCP.

VS Code / OpenCode

{
  "mcp.servers": {
    "loja-api": {
      "command": "${workspaceFolder}/venv/Scripts/python.exe",
      "args": ["${workspaceFolder}/main.py"],
      "env": {
        "MCP_SPEC_URL": "http://localhost:8000/openapi.json",
        "MCP_SERVER_NAME": "Loja API"
      }
    }
  }
}
🤖

Claude Desktop

{
  "mcpServers": {
    "loja-api": {
      "command": "/caminho/venv/Scripts/python.exe",
      "args": ["/caminho/main.py"],
      "env": {
        "MCP_SPEC_URL": "http://localhost:8000/openapi.json",
        "MCP_SERVER_NAME": "Loja API"
      }
    }
  }
}