Condora

Desenvolvedores

API MCP do Condora

Referência técnica da integração MCP somente leitura para sistemas parceiros de administradoras de condomínios. Esta página é apenas documentação: lê-la não concede acesso a nenhum dado.

Visão geral

Servidor MCP (Model Context Protocol) em transporte Streamable HTTP sem sessão, com respostas JSON. Todas as operações são de leitura: não há criação, alteração ou exclusão de dados. Endpoint relativo: /api/integracoes/mcp.

Versões do protocolo suportadas: 2025-11-25, 2025-06-18, 2025-03-26. Se o cliente pedir outra versão, o servidor responde com a mais recente.

Nos exemplos, $CONDORA_ORIGEM representa o endereço de conexão, que será fornecido ao liberar a integração. Valores como $CLIENT_ID, $CLIENT_SECRET e $ACCESS_TOKEN são marcadores, assim como os identificadores aaaaaaaa-….

Credenciais e acesso

Cada integração recebe credenciais técnicas próprias (client_id e client_secret), fornecidas pelo responsável pela integração na administradora. O acesso fica limitado a uma empresa, aos escopos liberados e, quando definido, a condomínios e categorias de documentos específicos.

Escopos disponíveis (independentes entre si):

  • assembleias.read
  • assembleias.details.read
  • condominios.read
  • documentos.list
  • documentos.metadata.read
  • documentos.download

Guarde o client_secret fora de logs e repositórios. Rotação, desativação ou revogação da integração invalida os tokens já emitidos.

Autenticação (client_credentials / Bearer)

Obtenha um token de curta duração em POST /api/integracoes/token com corpo application/x-www-form-urlencoded. O campo resource deve ser exatamente o endereço do endpoint MCP. O parâmetro opcional scope (separado por espaços) restringe o token a parte dos escopos liberados.

cURL — obter token
curl -X POST "$CONDORA_ORIGEM/api/integracoes/token" \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'grant_type=client_credentials' \
  --data-urlencode "client_id=$CLIENT_ID" \
  --data-urlencode "client_secret=$CLIENT_SECRET" \
  --data-urlencode "resource=$CONDORA_ORIGEM/api/integracoes/mcp"
Resposta (ilustrativa)
{
  "access_token": "$ACCESS_TOKEN",
  "token_type": "Bearer",
  "expires_in": 900,
  "scope": "assembleias.read condominios.read"
}

Envie o token em Authorization: Bearer em cada requisição. Esta API é compatível com clientes que aceitam Bearer configurado ou client_credentials; não oferece registro dinâmico de clientes, tela de consentimento nem fluxo OAuth interativo.

Fluxo MCP

Cabeçalhos obrigatórios: Authorization, Content-Type: application/json, Accept: application/json, text/event-stream e MCP-Protocol-Version. GET e DELETE retornam 405.

1. initialize

cURL
curl -X POST "$CONDORA_ORIGEM/api/integracoes/mcp" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2025-11-25' \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"integracao","version":"1.0"}}}'
Resposta
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "protocolVersion": "2025-11-25",
    "capabilities": {
      "tools": {}
    },
    "serverInfo": {
      "name": "condora-integracoes",
      "version": "1.0.0"
    },
    "instructions": "Somente leitura; acesso limitado à empresa e às permissões da integração."
  }
}

2. notifications/initialized (sem id; resposta 202)

cURL
curl -X POST "$CONDORA_ORIGEM/api/integracoes/mcp" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2025-11-25' \
  -d '{"jsonrpc":"2.0","method":"notifications/initialized"}'

3. tools/list

Retorna somente as ferramentas permitidas pelos escopos do token.

cURL
curl -X POST "$CONDORA_ORIGEM/api/integracoes/mcp" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2025-11-25' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'

4. tools/call

A resposta traz result.content (texto JSON) e result.structuredContent, validado pelo schema de saída da ferramenta.

Resposta (formato)
{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "{\"registros\":[],\"proxima_pagina\":null}"
      }
    ],
    "structuredContent": {
      "registros": [],
      "proxima_pagina": null
    }
  }
}

Métodos (11)

MétodoDescriçãoEscopoObrigatórios
listar_assembleiasConsulta o calendário autorizado, com paginação e filtros.assembleias.read—
consultar_assembleiaDetalhes da assembleia autorizada, sem participantes ou credenciais de reunião.assembleias.details.readassembleia_id
assembleias_por_periodoCalendário entre datas inclusivas.assembleias.readinicio, fim
assembleias_por_condominioCalendário de um condomínio autorizado.assembleias.readcondominio_id
proximas_assembleiasAssembleias a partir do dia atual de Brasília.assembleias.read—
consultar_status_assembleiaSituação atual de uma assembleia autorizada.assembleias.readassembleia_id
listar_condominiosIdentificadores e nomes dos condomínios autorizados.condominios.read—
listar_arquivos_condominioDocumentos do cadastro, deduplicados antes da paginação.documentos.listcondominio_id
consultar_arquivoMetadados de um documento autorizado do cadastro.documentos.metadata.readarquivo_id
buscar_arquivosPesquisa por nome, categoria e condomínio no cadastro autorizado.documentos.list—
obter_arquivoLink autenticado para o documento; cada download revalida o token e as permissões.documentos.downloadarquivo_id

listar_assembleias

Consulta o calendário autorizado, com paginação e filtros.

Escopo: assembleias.read

ParâmetroTipoUsoRegras
paginaintegeropcionalmín. 0 · máx. 10000 · padrão 0
limiteintegeropcionalmín. 1 · máx. 100 · padrão 25
condominio_iduuidopcional—
iniciodata (AAAA-MM-DD)opcional—
fimdata (AAAA-MM-DD)opcional—
statusstringopcionalaté 80 caracteres
JSON — tools/call
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "listar_assembleias",
    "arguments": {
      "pagina": 0,
      "limite": 25
    }
  }
}
cURL
curl -X POST "$CONDORA_ORIGEM/api/integracoes/mcp" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2025-11-25' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"listar_assembleias","arguments":{"pagina":0,"limite":25}}}'
Schemas de entrada e saída
inputSchema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "pagina": {
      "default": 0,
      "type": "integer",
      "minimum": 0,
      "maximum": 10000
    },
    "limite": {
      "default": 25,
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "condominio_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "inicio": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "fim": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "status": {
      "type": "string",
      "maxLength": 80
    }
  },
  "required": [
    "pagina",
    "limite"
  ],
  "additionalProperties": false
}
outputSchema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "registros": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    },
    "proxima_pagina": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "registros",
    "proxima_pagina"
  ],
  "additionalProperties": false
}

consultar_assembleia

Detalhes da assembleia autorizada, sem participantes ou credenciais de reunião.

Escopo: assembleias.details.read

ParâmetroTipoUsoRegras
assembleia_iduuidobrigatório—
JSON — tools/call
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "consultar_assembleia",
    "arguments": {
      "assembleia_id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"
    }
  }
}
cURL
curl -X POST "$CONDORA_ORIGEM/api/integracoes/mcp" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2025-11-25' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"consultar_assembleia","arguments":{"assembleia_id":"aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"}}}'
Schemas de entrada e saída
inputSchema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "assembleia_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "assembleia_id"
  ],
  "additionalProperties": false
}
outputSchema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "registro": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "registro"
  ],
  "additionalProperties": false
}

assembleias_por_periodo

Calendário entre datas inclusivas.

Escopo: assembleias.read

ParâmetroTipoUsoRegras
paginaintegeropcionalmín. 0 · máx. 10000 · padrão 0
limiteintegeropcionalmín. 1 · máx. 100 · padrão 25
condominio_iduuidopcional—
iniciodata (AAAA-MM-DD)obrigatório—
fimdata (AAAA-MM-DD)obrigatório—
statusstringopcionalaté 80 caracteres
JSON — tools/call
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "assembleias_por_periodo",
    "arguments": {
      "inicio": "2030-01-01",
      "fim": "2030-01-31"
    }
  }
}
cURL
curl -X POST "$CONDORA_ORIGEM/api/integracoes/mcp" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2025-11-25' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"assembleias_por_periodo","arguments":{"inicio":"2030-01-01","fim":"2030-01-31"}}}'
Schemas de entrada e saída
inputSchema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "pagina": {
      "default": 0,
      "type": "integer",
      "minimum": 0,
      "maximum": 10000
    },
    "limite": {
      "default": 25,
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "condominio_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "inicio": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "fim": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "status": {
      "type": "string",
      "maxLength": 80
    }
  },
  "required": [
    "pagina",
    "limite",
    "inicio",
    "fim"
  ],
  "additionalProperties": false
}
outputSchema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "registros": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    },
    "proxima_pagina": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "registros",
    "proxima_pagina"
  ],
  "additionalProperties": false
}

assembleias_por_condominio

Calendário de um condomínio autorizado.

Escopo: assembleias.read

ParâmetroTipoUsoRegras
paginaintegeropcionalmín. 0 · máx. 10000 · padrão 0
limiteintegeropcionalmín. 1 · máx. 100 · padrão 25
condominio_iduuidobrigatório—
iniciodata (AAAA-MM-DD)opcional—
fimdata (AAAA-MM-DD)opcional—
statusstringopcionalaté 80 caracteres
JSON — tools/call
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "assembleias_por_condominio",
    "arguments": {
      "condominio_id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"
    }
  }
}
cURL
curl -X POST "$CONDORA_ORIGEM/api/integracoes/mcp" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2025-11-25' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"assembleias_por_condominio","arguments":{"condominio_id":"aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"}}}'
Schemas de entrada e saída
inputSchema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "pagina": {
      "default": 0,
      "type": "integer",
      "minimum": 0,
      "maximum": 10000
    },
    "limite": {
      "default": 25,
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "condominio_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "inicio": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "fim": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "status": {
      "type": "string",
      "maxLength": 80
    }
  },
  "required": [
    "pagina",
    "limite",
    "condominio_id"
  ],
  "additionalProperties": false
}
outputSchema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "registros": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    },
    "proxima_pagina": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "registros",
    "proxima_pagina"
  ],
  "additionalProperties": false
}

proximas_assembleias

Assembleias a partir do dia atual de Brasília.

Escopo: assembleias.read

ParâmetroTipoUsoRegras
paginaintegeropcionalmín. 0 · máx. 10000 · padrão 0
limiteintegeropcionalmín. 1 · máx. 100 · padrão 25
condominio_iduuidopcional—
JSON — tools/call
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "proximas_assembleias",
    "arguments": {
      "pagina": 0,
      "limite": 25
    }
  }
}
cURL
curl -X POST "$CONDORA_ORIGEM/api/integracoes/mcp" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2025-11-25' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"proximas_assembleias","arguments":{"pagina":0,"limite":25}}}'
Schemas de entrada e saída
inputSchema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "pagina": {
      "default": 0,
      "type": "integer",
      "minimum": 0,
      "maximum": 10000
    },
    "limite": {
      "default": 25,
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "condominio_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "pagina",
    "limite"
  ],
  "additionalProperties": false
}
outputSchema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "registros": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    },
    "proxima_pagina": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "registros",
    "proxima_pagina"
  ],
  "additionalProperties": false
}

consultar_status_assembleia

Situação atual de uma assembleia autorizada.

Escopo: assembleias.read

ParâmetroTipoUsoRegras
assembleia_iduuidobrigatório—
JSON — tools/call
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "consultar_status_assembleia",
    "arguments": {
      "assembleia_id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"
    }
  }
}
cURL
curl -X POST "$CONDORA_ORIGEM/api/integracoes/mcp" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2025-11-25' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"consultar_status_assembleia","arguments":{"assembleia_id":"aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"}}}'
Schemas de entrada e saída
inputSchema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "assembleia_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "assembleia_id"
  ],
  "additionalProperties": false
}
outputSchema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "registro": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "registro"
  ],
  "additionalProperties": false
}

listar_condominios

Identificadores e nomes dos condomínios autorizados.

Escopo: condominios.read

ParâmetroTipoUsoRegras
paginaintegeropcionalmín. 0 · máx. 10000 · padrão 0
limiteintegeropcionalmín. 1 · máx. 100 · padrão 25
JSON — tools/call
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "listar_condominios",
    "arguments": {
      "pagina": 0,
      "limite": 25
    }
  }
}
cURL
curl -X POST "$CONDORA_ORIGEM/api/integracoes/mcp" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2025-11-25' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"listar_condominios","arguments":{"pagina":0,"limite":25}}}'
Schemas de entrada e saída
inputSchema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "pagina": {
      "default": 0,
      "type": "integer",
      "minimum": 0,
      "maximum": 10000
    },
    "limite": {
      "default": 25,
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "pagina",
    "limite"
  ],
  "additionalProperties": false
}
outputSchema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "registros": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    },
    "proxima_pagina": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "registros",
    "proxima_pagina"
  ],
  "additionalProperties": false
}

listar_arquivos_condominio

Documentos do cadastro, deduplicados antes da paginação.

Escopo: documentos.list

ParâmetroTipoUsoRegras
paginaintegeropcionalmín. 0 · máx. 10000 · padrão 0
limiteintegeropcionalmín. 1 · máx. 100 · padrão 25
condominio_iduuidobrigatório—
categoriastringopcionalaté 80 caracteres
JSON — tools/call
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "listar_arquivos_condominio",
    "arguments": {
      "condominio_id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"
    }
  }
}
cURL
curl -X POST "$CONDORA_ORIGEM/api/integracoes/mcp" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2025-11-25' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"listar_arquivos_condominio","arguments":{"condominio_id":"aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"}}}'
Schemas de entrada e saída
inputSchema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "pagina": {
      "default": 0,
      "type": "integer",
      "minimum": 0,
      "maximum": 10000
    },
    "limite": {
      "default": 25,
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "condominio_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "categoria": {
      "type": "string",
      "maxLength": 80
    }
  },
  "required": [
    "pagina",
    "limite",
    "condominio_id"
  ],
  "additionalProperties": false
}
outputSchema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "registros": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    },
    "proxima_pagina": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "registros",
    "proxima_pagina"
  ],
  "additionalProperties": false
}

consultar_arquivo

Metadados de um documento autorizado do cadastro.

Escopo: documentos.metadata.read

ParâmetroTipoUsoRegras
arquivo_iduuidobrigatório—
JSON — tools/call
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "consultar_arquivo",
    "arguments": {
      "arquivo_id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"
    }
  }
}
cURL
curl -X POST "$CONDORA_ORIGEM/api/integracoes/mcp" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2025-11-25' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"consultar_arquivo","arguments":{"arquivo_id":"aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"}}}'
Schemas de entrada e saída
inputSchema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "arquivo_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "arquivo_id"
  ],
  "additionalProperties": false
}
outputSchema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "registro": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "registro"
  ],
  "additionalProperties": false
}

buscar_arquivos

Pesquisa por nome, categoria e condomínio no cadastro autorizado.

Escopo: documentos.list

ParâmetroTipoUsoRegras
paginaintegeropcionalmín. 0 · máx. 10000 · padrão 0
limiteintegeropcionalmín. 1 · máx. 100 · padrão 25
nomestringopcionalaté 120 caracteres
categoriastringopcionalaté 80 caracteres
condominio_iduuidopcional—
JSON — tools/call
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "buscar_arquivos",
    "arguments": {
      "pagina": 0,
      "limite": 25
    }
  }
}
cURL
curl -X POST "$CONDORA_ORIGEM/api/integracoes/mcp" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2025-11-25' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"buscar_arquivos","arguments":{"pagina":0,"limite":25}}}'
Schemas de entrada e saída
inputSchema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "pagina": {
      "default": 0,
      "type": "integer",
      "minimum": 0,
      "maximum": 10000
    },
    "limite": {
      "default": 25,
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "nome": {
      "type": "string",
      "maxLength": 120
    },
    "categoria": {
      "type": "string",
      "maxLength": 80
    },
    "condominio_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "pagina",
    "limite"
  ],
  "additionalProperties": false
}
outputSchema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "registros": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    },
    "proxima_pagina": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "registros",
    "proxima_pagina"
  ],
  "additionalProperties": false
}

obter_arquivo

Link autenticado para o documento; cada download revalida o token e as permissões.

Escopo: documentos.download

ParâmetroTipoUsoRegras
arquivo_iduuidobrigatório—
JSON — tools/call
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "obter_arquivo",
    "arguments": {
      "arquivo_id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"
    }
  }
}
cURL
curl -X POST "$CONDORA_ORIGEM/api/integracoes/mcp" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2025-11-25' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"obter_arquivo","arguments":{"arquivo_id":"aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa"}}}'
Schemas de entrada e saída
inputSchema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "arquivo_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "arquivo_id"
  ],
  "additionalProperties": false
}
outputSchema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "registro": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        "nome": {
          "type": "string"
        },
        "download_path": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "nome",
        "download_path"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "registro"
  ],
  "additionalProperties": false
}

Download autenticado

obter_arquivo devolve download_path. Baixe com GET /api/integracoes/mcp/arquivos/ID usando o mesmo Bearer. Não há credenciais na URL nem links públicos; token e permissões são revalidados a cada download. Resposta com Content-Disposition: attachment e Cache-Control: no-store; requer o escopo documentos.download.

cURL
curl -L "$CONDORA_ORIGEM/api/integracoes/mcp/arquivos/aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -o documento.pdf

Paginação e filtros

Listas retornam registros e proxima_pagina (null quando não há mais páginas). Consultas individuais retornam registro. Use pagina (começa em 0) e limite.

Filtros de período usam datas AAAA-MM-DD inclusivas, com inicio ≤ fim. Parâmetros não documentados são rejeitados. Documentos são deduplicados antes da paginação.

Códigos de erro

HTTPSignificado
400Parâmetros ou protocolo inválidos (ex.: invalid_params, unsupported_grant_type, invalid_target).
401Credencial ou token inválido/expirado (invalid_client, invalid_token).
403Sem permissão para a operação ou origem não aceita (forbidden, invalid_origin).
404Recurso indisponível para a integração.
405Método HTTP não aceito (GET e DELETE no endpoint MCP).
406Cabeçalho Accept incompatível.
413Corpo ou arquivo acima do limite.
415Content-Type não aceito.
429Limite de requisições atingido (Retry-After: 60).
503Serviço desativado ou temporariamente indisponível.
JSON-RPCSignificado
-32700parse_error — JSON inválido.
-32600invalid_request — mensagem JSON-RPC inválida.
-32601Método ou ferramenta desconhecidos.
-32602Parâmetros inválidos para o schema da ferramenta.
-32000Demais falhas, sempre com correlation_id.
Erro JSON-RPC (formato)
{
  "jsonrpc": "2.0",
  "id": 2,
  "error": {
    "code": -32602,
    "message": "invalid_params",
    "data": {
      "correlation_id": "UUID"
    }
  }
}

Detalhes internos nunca são expostos; informe o correlation_id ao suporte.

Limites técnicos

ItemMáximo
Registros por páginaaté 100 (padrão 25)
Parâmetro pagina0 a 10000
Corpo JSON da requisiçãoaté 32 KiB
Download de arquivoaté 25 MB
Tentativas de autenticação10 por cliente/minuto e 120 globais/minuto
Consultaslimite por integração, definido ao liberar o acesso