Skip to main content
Glama
opastorello

Olist ERP MCP Server

by opastorello

Olist ERP MCP Server

Servidor MCP para a API Olist ERP (Tiny ERP) v3 com 168 tools geradas automaticamente do Swagger da API.

Compativel com qualquer cliente MCP — Claude Code, Claude Desktop, n8n, Cursor, etc.

O que faz

Conecta qualquer agente de IA ao Olist ERP. As 168 tools cobrem todas as operacoes da API:

Categoria

Tools

Operacoes

Produtos

24

CRUD, estoque, precos, kits, anexos

Pedidos de Venda

14

CRUD, notas, etiquetas, rastreio

Contatos

14

CRUD, tipos, busca

Contas a Pagar

14

CRUD, baixa, estorno

Contas a Receber

14

CRUD, baixa, estorno, boletos

Notas Fiscais (NFe/NFCe)

18

Emissao, consulta, XML, cancelamento

PDV

10

Vendas, sessoes, caixa

CRM

8

Oportunidades, funil

Contratos

6

CRUD, parcelas

Ordem de Servico

6

CRUD

Expedicao

8

Volumes, objetos, etiquetas

Catalogo

16

Categorias, marcas, depositos, vendedores

Configuracoes

16

Empresa, formas pgto, parcelas

Related MCP server: Ploomes MCP Server

Quick Start

1. Configure o .env

cp .env.example .env

Preencha com suas credenciais Olist:

MCP_SERVER_NAME=olist-erp
SWAGGER_URL=https://erp.tiny.com.br/public-api/v3/swagger/swagger.json

OAUTH_CLIENT_ID=seu-client-id
OAUTH_CLIENT_SECRET=seu-client-secret
OAUTH_AUTH_URL=https://accounts.tiny.com.br/realms/tiny/protocol/openid-connect/auth
OAUTH_TOKEN_URL=https://accounts.tiny.com.br/realms/tiny/protocol/openid-connect/token
OAUTH_REDIRECT_URI=http://localhost:47321/auth/callback
OAUTH_SCOPE=openid

Para obter client_id e client_secret, crie uma aplicacao no painel de integracoes da sua conta Olist ERP (Tiny).

2. Suba o server

# Docker (recomendado)
docker compose up -d

# Ou local
pip install -r requirements.txt
python -m src.server

3. Autentique com a Olist

Abra http://localhost:47321/auth no browser e autorize a aplicacao na conta Olist.

4. Crie um token de acesso

curl -X POST http://localhost:47321/api/tokens \
  -H 'Content-Type: application/json' \
  -d '{"name": "meu-token"}'

Guarde o token retornado — sera necessario para acessar o endpoint /mcp.

5. Conecte seu agente

Configure o MCP client apontando para http://localhost:47321/mcp com o header Authorization: Bearer SEU_TOKEN.

Configuracao

Variavel

Default

Descricao

MCP Server

MCP_SERVER_NAME

swagger-mcp

Nome do server MCP

MCP_SERVER_INSTRUCTIONS

(auto)

Instrucoes do server para o LLM

MCP_TRANSPORT

streamable-http

Transporte: streamable-http, sse ou stdio

MCP_HOST

0.0.0.0

Host do servidor

MCP_PORT

47321

Porta do servidor

Swagger

SWAGGER_URL

URL do swagger spec (fetched no startup, cached localmente)

API

API_BASE_URL

(auto do spec)

Base URL da API (auto-detectado do servers[0].url do swagger)

OAuth2

OAUTH_CLIENT_ID

Client ID (obrigatorio)

OAUTH_CLIENT_SECRET

Client Secret (obrigatorio)

OAUTH_AUTH_URL

URL de autorizacao OAuth

OAUTH_TOKEN_URL

URL de troca de tokens

OAUTH_REDIRECT_URI

http://localhost:47321/auth/callback

Redirect URI

OAUTH_SCOPE

openid

Scopes OAuth

OAUTH_TOKEN_FILE

data/.oauth_tokens.json

Caminho para persistir tokens OAuth

API Token

MCP_TOKEN_FILE

data/.mcp_tokens.json

Caminho para persistir tokens de acesso

Autenticacao OAuth2

O servidor embute o fluxo OAuth2 completo com a Olist via rotas HTTP.

Fluxo

  1. Suba o servidor — funciona mesmo sem tokens

  2. Abra /auth no browser — redireciona para login da Olist

  3. Autorize a aplicacao — redireciona de volta para /auth/callback

  4. Tokens salvos — troca o code por tokens e salva em data/.oauth_tokens.json

  5. Pronto — todas as 168 tools funcionam

Tokens sao renovados automaticamente via refresh token. Se expirar, abra /auth novamente.

Seguranca — Token de Acesso

O endpoint /mcp e protegido por Bearer token. Ao criar o primeiro token, a autenticacao e ativada automaticamente — qualquer request sem token valido recebe 401 Unauthorized.

Rotas publicas (sem token): /auth, /auth/callback, /auth/status, /health, /info, /api/tokens.

Criar token

curl -X POST http://localhost:47321/api/tokens \
  -H 'Content-Type: application/json' \
  -d '{"name": "meu-token", "description": "Token para meus scripts"}'

Resposta:

{
  "token": "dKx8vZ-pQ_H2mN4r8tL9...",
  "name": "meu-token",
  "message": "Save this token securely. You won't be able to see it again."
}

Usar o token

curl -X POST http://localhost:47321/mcp \
  -H 'Authorization: Bearer dKx8vZ-pQ_H2mN4r8tL9...' \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{...}}'

Listar tokens

curl http://localhost:47321/api/tokens

Revogar token

curl -X DELETE http://localhost:47321/api/tokens/dummy \
  -H 'Content-Type: application/json' \
  -d '{"token": "dKx8vZ-pQ_H2mN4r8tL9..."}'

Tokens sao salvos com hash SHA-256. Se perder o token, crie um novo.

Rotas HTTP

Rota

Descricao

GET /auth

Redireciona para login OAuth da Olist

GET /auth/callback

Recebe o code e troca por tokens

GET /auth/status

Retorna {"authenticated": true/false}

GET /api/tokens

Lista tokens ativos

POST /api/tokens

Cria novo token

DELETE /api/tokens/{hash}

Revoga token

GET /health

Health check (200 healthy / 503 degraded)

GET /info

Metadata: nome, transport, tools, swagger_url

POST /mcp

Endpoint MCP — requer Bearer token

Integracao

Claude Desktop

1. Configure o MCP server em claude_desktop_config.json (Settings > Developer > Edit Config):

{
  "mcpServers": {
    "olist-erp": {
      "url": "http://localhost:47321/mcp",
      "headers": {
        "Authorization": "Bearer SEU_TOKEN_AQUI"
      }
    }
  }
}

2. Adicione o Agent Prompt — copie o conteudo de agents/olist-erp.md como Project Instructions no Claude Desktop.

Isso ensina o Claude as quirks da API Olist (validacao de EAN, workflows de NF, regras do ERP brasileiro). Sem o agent prompt, o Claude vai errar frequentemente.

Claude Code

{
  "mcpServers": {
    "olist-erp": {
      "url": "http://localhost:47321/mcp",
      "headers": {
        "Authorization": "Bearer SEU_TOKEN_AQUI"
      }
    }
  }
}

n8n

  1. Suba o container com docker compose up -d

  2. Autentique via http://localhost:47321/auth

  3. Crie um token: curl -X POST http://localhost:47321/api/tokens -H 'Content-Type: application/json' -d '{"name":"n8n"}'

  4. No n8n, adicione um MCP Client node apontando para http://host.docker.internal:47321/mcp com header Authorization: Bearer SEU_TOKEN

stdio (sem Docker)

{
  "mcpServers": {
    "olist-erp": {
      "command": "python",
      "args": ["-m", "src.server"],
      "cwd": "/caminho/para/olist-mcp-server"
    }
  }
}

Docker

docker-compose.yml

services:
  olist-mcp:
    build: .
    ports:
      - "47321:47321"
    env_file:
      - .env
    volumes:
      - ./data:/app/data
    restart: unless-stopped

Imagem do GHCR

docker pull ghcr.io/opastorello/olist-mcp-server:1.0.0

Health check

curl http://localhost:47321/health
# {"status":"healthy","server":"olist-erp","tools":168,"authenticated":true,"transport":"streamable-http"}

Arquitetura

src/
├── server.py           # Entry point - FastMCP + rotas OAuth/health + auth middleware
├── api_client.py       # Cliente HTTP async generico
├── tools_generator.py  # Gera tools dinamicamente do swagger + auto-fetch
├── oauth.py            # OAuth2 token manager (exchange, refresh, persistencia)
├── token_auth.py       # API token manager (SHA-256 hash, CRUD, validacao)
├── __main__.py         # python -m src
└── __init__.py

agents/
└── olist-erp.md        # Agent prompt para Claude Desktop (168 tools documentadas)

O swagger e buscado da SWAGGER_URL no startup e cacheado localmente. Se a Olist adicionar endpoints novos, basta reiniciar o server — novas tools aparecem automaticamente.

Pre-requisitos

  • Python 3.12+

  • Docker (opcional, recomendado)

  • Credenciais OAuth2 da Olist (crie no painel de integracoes da sua conta Olist ERP)

Licenca

MIT

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    -
    maintenance
    Enables AI assistants to interact with Conta Azul Financial APIs to manage accounts, balances, and transactions through natural language. It features specialized tools for tracking cash flow, processing payables and receivables, and generating comprehensive financial reports.
    Last updated
  • A
    license
    A
    quality
    D
    maintenance
    Connects AI agents to the Ploomes CRM REST API, exposing 56 tools for managing contacts, deals, tasks, pipelines, interactions, quotes, orders, products, fields, users, and account information.
    Last updated
    56
    22
    1
    MIT
  • A
    license
    -
    quality
    D
    maintenance
    Enables AI assistants to fully control and manage Odoo 18 ERP instances through 79 tools, including configuration, data operations, reporting, and code generation, with built-in domain knowledge and specialist agents.
    Last updated
    4
    AGPL 3.0
  • F
    license
    -
    quality
    C
    maintenance
    Enables LLM agents to interact with Odoo 17 ERP via external API, providing tools for inventory management, sales order processing, and customer management through natural language.
    Last updated

View all related MCP servers

Related MCP Connectors

  • Olist Tiny e-commerce ERP (formerly Tiny ERP) with the full official REST API v3, products, stock, o

  • Bling ERP (SMB and e-commerce management, by Locaweb) via the official v3 API, sales orders, product

  • Conta Azul ERP MCP — sales, customers, finance and NF-e via OAuth 2.0. Read + write, 35 tools.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/opastorello/olist-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server