# Sienge — how to use (mcp.ai)

Read your construction numbers from Sienge in Claude, ChatGPT or through the API: projects, budget and inputs, schedule, measurements, supplier contracts, budgeted vs incurred cost, payables and receivables, and unit inventory.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_sienge?ms=1794515220000`
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. `sienge_bulk`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/sienge`
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/sienge/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/sienge/bulk` — Consulta em MASSA do Sienge (bulk-data): o período inteiro numa chamada, sem paginação. Para sincronizar ou analisar volume grande.
  - body: { recurso: string, data_inicio?: string, data_fim?: string, tipo_data?: string, empresa_id?: integer, centros_custo_ids?: integer[], obra_id?: integer, unidade_construtiva_id?: integer, cliente_id?: integer, indexador_correcao_id?: integer, data_correcao?: string, data_base?: string, max_linhas?: integer, account?: string }
- `POST https://api.mcp.ai/api/sienge/centros/custo` — Centros de custo (id, nome, empresa, CNPJ). O id é o costCenterId dos filtros financeiros e do custo orçado x realizado.
  - body: { limite?: integer, offset?: integer, max_paginas?: integer, account?: string }
- `POST https://api.mcp.ai/api/sienge/clientes` — Clientes (compradores) cadastrados: id, tipo de pessoa, nome, CPF/CNPJ. O id é o customerId de sienge_contas_receber. Contato (e-mail, telefones, endereços) só com incluir_contato=true.
  - body: { cpf?: string, cnpj?: string, obra_id?: integer, so_ativos?: boolean, alterados_desde?: string, incluir_contato?: boolean, limite?: integer, offset?: integer, max_paginas?: integer, account?: string, obra_ids?: integer[] }
- `POST https://api.mcp.ai/api/sienge/contas/pagar` — Títulos de contas a pagar por período da data de EMISSÃO (ou da data de ALTERAÇÃO com por_alteracao=true, para sincronização incremental): credor, empresa (debtorId), documento, nº de parcelas, valor 
  - body: { data_inicio: string, data_fim: string, por_alteracao?: boolean, empresa_id?: integer, credor_id?: integer, centro_custo_id?: integer, numero_documento?: string, status?: string, limite?: integer, offset?: integer, max_paginas?: integer, account?: string, empresa_ids?: integer[], credor_ids?: integer[], centro_custo_ids?: integer[] }
- `POST https://api.mcp.ai/api/sienge/contas/pagar/parcelas` — Parcelas de títulos de contas a pagar: número, vencimento, data-base, valor, forma de pagamento, situação e envio ao banco. Com incluir_apropriacao_obra=true traz também a apropriação do título nas ob
  - body: { titulo_ids: integer[], incluir_apropriacao_obra?: boolean, account?: string }
- `POST https://api.mcp.ai/api/sienge/contas/receber` — Títulos de contas a receber de UM cliente (o Sienge exige o cliente; o id vem de sienge_clientes): documento, emissão, valor, empresa, inadimplente, sub judice, quitação e unidade. Visão do período in
  - body: { cliente_id: integer, empresa_id?: integer, centro_custo_id?: integer, quitados?: boolean, limite?: integer, offset?: integer, max_paginas?: integer, account?: string, cliente_ids?: integer[], empresa_ids?: integer[], centro_custo_ids?: integer[] }
- `POST https://api.mcp.ai/api/sienge/contas/receber/parcelas` — Parcelas de títulos de contas a receber: vencimento, saldo devedor, tipo de condição, portador e se o boleto foi gerado. 1 requisição por título.
  - body: { titulo_ids: integer[], account?: string }
- `POST https://api.mcp.ai/api/sienge/contrato/detalhe` — Detalhe de contratos de suprimento: saldos de mão de obra e material, caução, e as obras com unidades construtivas do contrato. Com obra_id + unidade_construtiva_id no item, traz também os itens do co
  - body: { contratos: object[], account?: string }
- `POST https://api.mcp.ai/api/sienge/contratos` — Contratos de suprimento (empreitadas, fornecedores) por período da data do contrato: documento + número do contrato (a chave), fornecedor, empresa, status, aprovação, autorização, vigência, objeto, va
  - body: { data_inicio: string, data_fim: string, empresa_id?: integer, obra_id?: integer, limite?: integer, offset?: integer, max_paginas?: integer, account?: string, empresa_ids?: integer[], obra_ids?: integer[] }
- `POST https://api.mcp.ai/api/sienge/credores` — Credores (fornecedores, corretores, funcionários) com CPF/CNPJ, situação, endereço, telefones e contatos. Busque por nome (trecho), CPF ou CNPJ.
  - body: { nome?: string, cpf?: string, cnpjs?: string[], limite?: integer, offset?: integer, max_paginas?: integer, account?: string }
- `POST https://api.mcp.ai/api/sienge/custo/orcado/realizado` — Mapa Imobiliário por empreendimento no período: custo orçado x custo incorrido (acumulado, do mês, a incorrer), VGV e POC, receita apropriada, recebimentos, custo apropriado (estoque, garantia, comiss
  - body: { centros_custo_ids: integer[], data_inicio: string, data_fim: string, limite?: integer, offset?: integer, max_paginas?: integer, account?: string }
- `POST https://api.mcp.ai/api/sienge/empresas` — Empresas cadastradas no Sienge (id, razão social, nome fantasia, CNPJ). O id é o companyId/debtorId usado nos filtros das outras tools.
  - body: { limite?: integer, offset?: integer, max_paginas?: integer, account?: string }
- `POST https://api.mcp.ai/api/sienge/indexadores` — Indexadores de correção (INCC, IGP-M, CUB…) com o último valor. O id é o indexador_correcao_id de sienge_bulk (contas a pagar exige um).
  - body: { limite?: integer, offset?: integer, max_paginas?: integer, account?: string }
- `POST https://api.mcp.ai/api/sienge/list/accounts` — Lista as conexões Sienge (id, apelido, subdomínio do cliente, client_ref quando veio de Connect Session). Não chama a API.
  - body: { account?: string }
- `POST https://api.mcp.ai/api/sienge/medicao/itens` — Uma medição de contrato por inteiro: totais (material, mão de obra, descontos, impostos, caução, líquido), os itens medidos (quantidade, acumulado, %, valores e apropriação na planilha da obra) e, com
  - body: { documento_id: string, numero_contrato: string, obra_id: integer, medicao_numero: integer, incluir_titulos?: boolean, account?: string, documento_ids?: string[], obra_ids?: integer[] }
- `POST https://api.mcp.ai/api/sienge/medicoes/contratos` — Medições de contratos de suprimento: contrato, obra, número, data e vencimento, responsável, aprovação, autorização, liberação, valores de mão de obra e material, líquido e a liberar. Filtre por contr
  - body: { documento_id?: string, numero_contrato?: string, obra_id?: integer, fornecedor_id?: integer, data_inicio?: string, data_fim?: string, limite?: integer, offset?: integer, max_paginas?: integer, account?: string, documento_ids?: string[], obra_ids?: integer[], fornecedor_ids?: integer[] }
- `POST https://api.mcp.ai/api/sienge/obra/detalhe` — Detalhe de obras/empreendimentos por id: endereço, status do orçamento e da obra, nível de apropriação, dados da construção (responsável técnico, pavimentos, área, início e fim), dados de venda e cent
  - body: { obra_ids: integer[], account?: string }
- `POST https://api.mcp.ai/api/sienge/obras` — Empreendimentos e obras (no Sienge a obra é um "enterprise": o id dele é o buildingId de orçamento, planejamento, contratos e medições). Traz id, nome, nome comercial, CNPJ, tipo, empresa, tabela de c
  - body: { empresa_id?: integer, tipo?: integer, so_habilitadas_integracao?: boolean, limite?: integer, offset?: integer, max_paginas?: integer, account?: string, empresa_ids?: integer[] }
- `POST https://api.mcp.ai/api/sienge/orcamento/insumos` — Insumos orçados da obra: item da planilha (WBS), código do insumo, descrição, unidade, quantidade, preço unitário e total, data do preço, detalhe e marca. Filtre por unidade construtiva.
  - body: { obra_id: integer, unidade_construtiva_id?: integer, limite?: integer, offset?: integer, max_paginas?: integer, account?: string, obra_ids?: integer[], unidade_construtiva_ids?: integer[] }
- `POST https://api.mcp.ai/api/sienge/orcamento/itens` — Itens de uma planilha do orçamento atual (EAP): código WBS, descrição, unidade, quantidade, preço unitário e total, e preço por categoria (material, mão de obra…). Para todas as obras e versões de uma
  - body: { obra_id: integer, unidade_construtiva_id: integer, limite?: integer, offset?: integer, max_paginas?: integer, account?: string, obra_ids?: integer[], unidade_construtiva_ids?: integer[] }
- `POST https://api.mcp.ai/api/sienge/orcamento/planilhas` — Planilhas da versão atual do orçamento de uma obra: uma por unidade construtiva (building unit). O id da planilha é o unidade_construtiva_id de sienge_orcamento_itens, sienge_orcamento_insumos e sieng
  - body: { obra_id: integer, limite?: integer, offset?: integer, max_paginas?: integer, account?: string, obra_ids?: integer[] }
- `POST https://api.mcp.ai/api/sienge/planejamento/medicoes` — Medições de avanço físico do planejamento (progress logs): número da medição, data, responsável, consistência e aprovação.
  - body: { obra_id?: integer, unidade_construtiva_id?: integer, data_inicio?: string, data_fim?: string, medicao_numero?: integer, limite?: integer, offset?: integer, max_paginas?: integer, account?: string, obra_ids?: integer[], unidade_construtiva_ids?: integer[] }
- `POST https://api.mcp.ai/api/sienge/planejamento/tarefas` — Cronograma (versão atual do planejamento) de uma planilha da obra: tarefas com nível, início e fim, duração, quantidade, valor, execução planejada mês a mês (% planejado) e itens de orçamento ligados.
  - body: { obra_id: integer, unidade_construtiva_id: integer, limite?: integer, offset?: integer, max_paginas?: integer, account?: string, obra_ids?: integer[], unidade_construtiva_ids?: integer[] }
- `POST https://api.mcp.ai/api/sienge/unidades` — Unidades dos empreendimentos (estoque de imóveis): nome, tipo, situação comercial, áreas privativa/comum/terreno, fração ideal, andar, previsão de entrega e avaliação.
  - body: { obra_id?: integer, situacao_comercial?: string, nome?: string, limite?: integer, offset?: integer, max_paginas?: integer, account?: string, obra_ids?: integer[] }

## Example prompts
- "Which projects are active and what is the budgeted vs incurred cost of each this year?"
- "Show the schedule for project 12 and what was planned for this month"
- "How much do we owe in the next 30 days, by project and by supplier?"

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