# Bling — how to use (mcp.ai)

Bling ERP (SMB and e-commerce management, by Locaweb) via the official v3 API, sales orders, products, contacts (customers/suppliers), payables/receivables, NF-e invoices, stock and registrations, over OAuth 2.0. Read-only. Pairs with the Banco MCP to reconcile finances with the bank statement. The platform provides the OAuth app, just click Authorize and log into your Bling account.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_bling?ms=1781859060000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `bling_get_contato`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/bling`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/bling/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/bling/get/contato` — Detalha um contato por id (GET /contatos/{id}).
  - body: { id: string, account?: string, ids?: string[] }
- `POST https://api.mcp.ai/api/bling/get/nfe` — Detalha uma NFe por id (GET /nfe/{id}).
  - body: { id: string, account?: string, ids?: string[] }
- `POST https://api.mcp.ai/api/bling/get/pedido/venda` — Detalha um pedido de venda por id (GET /pedidos/vendas/{id}).
  - body: { id: string, account?: string, ids?: string[] }
- `POST https://api.mcp.ai/api/bling/get/produto` — Detalha um produto por id (GET /produtos/{id}).
  - body: { id: string, account?: string, ids?: string[] }
- `POST https://api.mcp.ai/api/bling/list/accounts` — Lista as contas Bling conectadas a este install — id, label.
  - body: { account?: string }
- `POST https://api.mcp.ai/api/bling/list/categorias/produtos` — Lista categorias de produtos (GET /categorias/produtos). Paginado.
  - body: { pagina?: integer, limite?: integer, account?: string }
- `POST https://api.mcp.ai/api/bling/list/contas/pagar` — Lista contas a pagar (GET /contas/pagar). Paginado. Filtros: `dataEmissaoInicial`/`Final`, `dataVencimentoInicial`/`Final` (AAAA-MM-DD), `situacao`, `idContato`.
  - body: { pagina?: integer, limite?: integer, dataEmissaoInicial?: string, dataEmissaoFinal?: string, dataVencimentoInicial?: string, dataVencimentoFinal?: string, situacao?: string, idContato?: string, account?: string }
- `POST https://api.mcp.ai/api/bling/list/contas/receber` — Lista contas a receber (GET /contas/receber). Paginado. Filtros: `dataEmissaoInicial`/`Final`, `dataVencimentoInicial`/`Final` (AAAA-MM-DD), `situacao`, `idContato`.
  - body: { pagina?: integer, limite?: integer, dataEmissaoInicial?: string, dataEmissaoFinal?: string, dataVencimentoInicial?: string, dataVencimentoFinal?: string, situacao?: string, idContato?: string, account?: string }
- `POST https://api.mcp.ai/api/bling/list/contatos` — Lista contatos (clientes/fornecedores) (GET /contatos). Paginado. Filtros opcionais: `pesquisa`, `idTipoContato`, `numeroDocumento` (CNPJ/CPF), `idVendedor`, `uf`.
  - body: { pagina?: integer, limite?: integer, pesquisa?: string, idTipoContato?: string, numeroDocumento?: string, idVendedor?: string, uf?: string, account?: string }
- `POST https://api.mcp.ai/api/bling/list/depositos` — Lista depósitos/almoxarifados (GET /depositos). Paginado.
  - body: { pagina?: integer, limite?: integer, account?: string }
- `POST https://api.mcp.ai/api/bling/list/estoque/saldos` — Lista saldos de estoque por produto (GET /estoques/saldos). Informe `idsProdutos` (ids separados por vírgula) ou `codigos` (SKUs separados por vírgula).
  - body: { idsProdutos?: string, codigos?: string, account?: string }
- `POST https://api.mcp.ai/api/bling/list/formas/pagamento` — Lista formas de pagamento (GET /formas-pagamentos). Paginado.
  - body: { pagina?: integer, limite?: integer, account?: string }
- `POST https://api.mcp.ai/api/bling/list/nfe` — Lista notas fiscais eletrônicas (GET /nfe). Paginado. Filtros: `dataEmissaoInicial`/`Final` (AAAA-MM-DD), `situacao`, `tipo`, `numeroLoja`.
  - body: { pagina?: integer, limite?: integer, dataEmissaoInicial?: string, dataEmissaoFinal?: string, situacao?: string, tipo?: string, numeroLoja?: string, account?: string }
- `POST https://api.mcp.ai/api/bling/list/pedidos/vendas` — Lista pedidos de venda (GET /pedidos/vendas). Paginado. Filtros opcionais: `dataInicial`/`dataFinal` (AAAA-MM-DD), `idContato`, `numero`.
  - body: { pagina?: integer, limite?: integer, dataInicial?: string, dataFinal?: string, idContato?: string, numero?: string, account?: string }
- `POST https://api.mcp.ai/api/bling/list/produtos` — Lista produtos (GET /produtos). Paginado. Filtros opcionais: `nome`, `codigo`, `idCategoria`, `tipo`, `criterio`.
  - body: { pagina?: integer, limite?: integer, nome?: string, codigo?: string, idCategoria?: string, tipo?: string, criterio?: string, account?: string }
- `POST https://api.mcp.ai/api/bling/list/vendedores` — Lista vendedores (GET /vendedores). Paginado.
  - body: { pagina?: integer, limite?: integer, account?: string }

## Example prompts
- "List sales orders from the last 7 days"
- "Which receivables are due this week?"
- "Show products with low stock balance"

## More
- Page: https://mcp.ai/bling
- Agent spec (llms.txt): https://mcp.ai/bling/llms.txt
- Postman collection: https://mcp.ai/bling/postman.json
