# LegalOne — how to use (mcp.ai)

Wrapper da API oficial OData do LegalOne (Thomson Reuters / Novajus, pacote Premium): processos/litígios, contatos, agenda/compromissos, prazos, tarefas, andamentos, documentos, timesheet, financeiro (honorários/receitas/despesas) e campos personalizados. Leitura + criação/edição via OData. Autenticação OAuth2 (client_credentials) provisionada pela Thomson Reuters por escritório. Os nomes de coleção se finalizam contra o $metadata do tenant; tools genéricas cobrem qualquer endpoint.

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

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

### Endpoints
- `POST https://api.mcp.ai/api/legalone/create/appointments` — Cria um(a) Compromissos/agenda (OData POST /Appointments). `data` = corpo da entidade conforme a API oficial.
  - body: { data: object }
- `POST https://api.mcp.ai/api/legalone/create/contacts` — Cria um(a) Contatos (pessoas físicas/jurídicas: clientes, partes, advogados) (OData POST /Contacts). `data` = corpo da entidade conforme a API oficial.
  - body: { data: object }
- `POST https://api.mcp.ai/api/legalone/create/deadlines` — Cria um(a) Prazos (OData POST /Deadlines). `data` = corpo da entidade conforme a API oficial.
  - body: { data: object }
- `POST https://api.mcp.ai/api/legalone/create/litigations` — Cria um(a) Processos/litígios (contencioso) (OData POST /Litigations). `data` = corpo da entidade conforme a API oficial.
  - body: { data: object }
- `POST https://api.mcp.ai/api/legalone/create/tasks` — Cria um(a) Tarefas/providências (OData POST /Tasks). `data` = corpo da entidade conforme a API oficial.
  - body: { data: object }
- `POST https://api.mcp.ai/api/legalone/create/timeentries` — Cria um(a) Timesheet (apontamento de horas) (OData POST /TimeEntries). `data` = corpo da entidade conforme a API oficial.
  - body: { data: object }
- `POST https://api.mcp.ai/api/legalone/create/updates` — Cria um(a) Andamentos/publicações/atualizações do processo (OData POST /Updates). `data` = corpo da entidade conforme a API oficial.
  - body: { data: object }
- `POST https://api.mcp.ai/api/legalone/customfield/options` — Opções de um campo personalizado (OData /CustomFieldDefinitions/{id}/options) — resolve o texto de valores listItemId em customFields.
  - body: { id: string, ids?: string[] }
- `POST https://api.mcp.ai/api/legalone/get/appointments` — Busca um(a) Compromissos/agenda por id (OData /Appointments/{id}). Use $expand para sub-recursos.
  - body: { id: string, $expand?: string, $select?: string, query?: object, ids?: string[] }
- `POST https://api.mcp.ai/api/legalone/get/areas` — Busca um(a) Áreas de atuação por id (OData /Areas/{id}). Use $expand para sub-recursos.
  - body: { id: string, $expand?: string, $select?: string, query?: object, ids?: string[] }
- `POST https://api.mcp.ai/api/legalone/get/contacts` — Busca um(a) Contatos (pessoas físicas/jurídicas: clientes, partes, advogados) por id (OData /Contacts/{id}). Use $expand para sub-recursos.
  - body: { id: string, $expand?: string, $select?: string, query?: object, ids?: string[] }
- `POST https://api.mcp.ai/api/legalone/get/courts` — Busca um(a) Tribunais/órgãos/varas por id (OData /Courts/{id}). Use $expand para sub-recursos.
  - body: { id: string, $expand?: string, $select?: string, query?: object, ids?: string[] }
- `POST https://api.mcp.ai/api/legalone/get/customfielddefinitions` — Busca um(a) Definições de campos personalizados por id (OData /CustomFieldDefinitions/{id}). Use $expand para sub-recursos.
  - body: { id: string, $expand?: string, $select?: string, query?: object, ids?: string[] }
- `POST https://api.mcp.ai/api/legalone/get/deadlines` — Busca um(a) Prazos por id (OData /Deadlines/{id}). Use $expand para sub-recursos.
  - body: { id: string, $expand?: string, $select?: string, query?: object, ids?: string[] }
- `POST https://api.mcp.ai/api/legalone/get/documents` — Busca um(a) Documentos (GED) por id (OData /Documents/{id}). Use $expand para sub-recursos.
  - body: { id: string, $expand?: string, $select?: string, query?: object, ids?: string[] }
- `POST https://api.mcp.ai/api/legalone/get/expenses` — Busca um(a) Financeiro: despesas/contas a pagar por id (OData /Expenses/{id}). Use $expand para sub-recursos.
  - body: { id: string, $expand?: string, $select?: string, query?: object, ids?: string[] }
- `POST https://api.mcp.ai/api/legalone/get/feeagreements` — Busca um(a) Contratos de honorários por id (OData /FeeAgreements/{id}). Use $expand para sub-recursos.
  - body: { id: string, $expand?: string, $select?: string, query?: object, ids?: string[] }
- `POST https://api.mcp.ai/api/legalone/get/litigations` — Busca um(a) Processos/litígios (contencioso) por id (OData /Litigations/{id}). Use $expand para sub-recursos.
  - body: { id: string, $expand?: string, $select?: string, query?: object, ids?: string[] }
- `POST https://api.mcp.ai/api/legalone/get/positions` — Busca um(a) Instâncias/posições processuais por id (OData /Positions/{id}). Use $expand para sub-recursos.
  - body: { id: string, $expand?: string, $select?: string, query?: object, ids?: string[] }
- `POST https://api.mcp.ai/api/legalone/get/receivables` — Busca um(a) Financeiro: contas a receber/receitas por id (OData /Receivables/{id}). Use $expand para sub-recursos.
  - body: { id: string, $expand?: string, $select?: string, query?: object, ids?: string[] }
- `POST https://api.mcp.ai/api/legalone/get/servicetypes` — Busca um(a) Tipos de serviço/processo por id (OData /ServiceTypes/{id}). Use $expand para sub-recursos.
  - body: { id: string, $expand?: string, $select?: string, query?: object, ids?: string[] }
- `POST https://api.mcp.ai/api/legalone/get/tasks` — Busca um(a) Tarefas/providências por id (OData /Tasks/{id}). Use $expand para sub-recursos.
  - body: { id: string, $expand?: string, $select?: string, query?: object, ids?: string[] }
- `POST https://api.mcp.ai/api/legalone/get/timeentries` — Busca um(a) Timesheet (apontamento de horas) por id (OData /TimeEntries/{id}). Use $expand para sub-recursos.
  - body: { id: string, $expand?: string, $select?: string, query?: object, ids?: string[] }
- `POST https://api.mcp.ai/api/legalone/get/updates` — Busca um(a) Andamentos/publicações/atualizações do processo por id (OData /Updates/{id}). Use $expand para sub-recursos.
  - body: { id: string, $expand?: string, $select?: string, query?: object, ids?: string[] }
- `POST https://api.mcp.ai/api/legalone/get/users` — Busca um(a) Usuários/responsáveis do escritório por id (OData /Users/{id}). Use $expand para sub-recursos.
  - body: { id: string, $expand?: string, $select?: string, query?: object, ids?: string[] }
- `POST https://api.mcp.ai/api/legalone/list/appointments` — Lista Compromissos/agenda (OData /Appointments). Filtre com $filter/$top/$skip/$orderby/$expand.
  - body: { $filter?: string, $expand?: string, $select?: string, $orderby?: string, $top?: integer, $skip?: integer, $count?: boolean, query?: object }
- `POST https://api.mcp.ai/api/legalone/list/areas` — Lista Áreas de atuação (OData /Areas). Filtre com $filter/$top/$skip/$orderby/$expand.
  - body: { $filter?: string, $expand?: string, $select?: string, $orderby?: string, $top?: integer, $skip?: integer, $count?: boolean, query?: object }
- `POST https://api.mcp.ai/api/legalone/list/contacts` — Lista Contatos (pessoas físicas/jurídicas: clientes, partes, advogados) (OData /Contacts). Filtre com $filter/$top/$skip/$orderby/$expand.
  - body: { $filter?: string, $expand?: string, $select?: string, $orderby?: string, $top?: integer, $skip?: integer, $count?: boolean, query?: object }
- `POST https://api.mcp.ai/api/legalone/list/courts` — Lista Tribunais/órgãos/varas (OData /Courts). Filtre com $filter/$top/$skip/$orderby/$expand.
  - body: { $filter?: string, $expand?: string, $select?: string, $orderby?: string, $top?: integer, $skip?: integer, $count?: boolean, query?: object }
- `POST https://api.mcp.ai/api/legalone/list/customfielddefinitions` — Lista Definições de campos personalizados (OData /CustomFieldDefinitions). Filtre com $filter/$top/$skip/$orderby/$expand.
  - body: { $filter?: string, $expand?: string, $select?: string, $orderby?: string, $top?: integer, $skip?: integer, $count?: boolean, query?: object }
- `POST https://api.mcp.ai/api/legalone/list/deadlines` — Lista Prazos (OData /Deadlines). Filtre com $filter/$top/$skip/$orderby/$expand.
  - body: { $filter?: string, $expand?: string, $select?: string, $orderby?: string, $top?: integer, $skip?: integer, $count?: boolean, query?: object }
- `POST https://api.mcp.ai/api/legalone/list/documents` — Lista Documentos (GED) (OData /Documents). Filtre com $filter/$top/$skip/$orderby/$expand.
  - body: { $filter?: string, $expand?: string, $select?: string, $orderby?: string, $top?: integer, $skip?: integer, $count?: boolean, query?: object }
- `POST https://api.mcp.ai/api/legalone/list/expenses` — Lista Financeiro: despesas/contas a pagar (OData /Expenses). Filtre com $filter/$top/$skip/$orderby/$expand.
  - body: { $filter?: string, $expand?: string, $select?: string, $orderby?: string, $top?: integer, $skip?: integer, $count?: boolean, query?: object }
- `POST https://api.mcp.ai/api/legalone/list/feeagreements` — Lista Contratos de honorários (OData /FeeAgreements). Filtre com $filter/$top/$skip/$orderby/$expand.
  - body: { $filter?: string, $expand?: string, $select?: string, $orderby?: string, $top?: integer, $skip?: integer, $count?: boolean, query?: object }
- `POST https://api.mcp.ai/api/legalone/list/litigations` — Lista Processos/litígios (contencioso) (OData /Litigations). Filtre com $filter/$top/$skip/$orderby/$expand.
  - body: { $filter?: string, $expand?: string, $select?: string, $orderby?: string, $top?: integer, $skip?: integer, $count?: boolean, query?: object }
- `POST https://api.mcp.ai/api/legalone/list/positions` — Lista Instâncias/posições processuais (OData /Positions). Filtre com $filter/$top/$skip/$orderby/$expand.
  - body: { $filter?: string, $expand?: string, $select?: string, $orderby?: string, $top?: integer, $skip?: integer, $count?: boolean, query?: object }
- `POST https://api.mcp.ai/api/legalone/list/receivables` — Lista Financeiro: contas a receber/receitas (OData /Receivables). Filtre com $filter/$top/$skip/$orderby/$expand.
  - body: { $filter?: string, $expand?: string, $select?: string, $orderby?: string, $top?: integer, $skip?: integer, $count?: boolean, query?: object }
- `POST https://api.mcp.ai/api/legalone/list/servicetypes` — Lista Tipos de serviço/processo (OData /ServiceTypes). Filtre com $filter/$top/$skip/$orderby/$expand.
  - body: { $filter?: string, $expand?: string, $select?: string, $orderby?: string, $top?: integer, $skip?: integer, $count?: boolean, query?: object }
- `POST https://api.mcp.ai/api/legalone/list/tasks` — Lista Tarefas/providências (OData /Tasks). Filtre com $filter/$top/$skip/$orderby/$expand.
  - body: { $filter?: string, $expand?: string, $select?: string, $orderby?: string, $top?: integer, $skip?: integer, $count?: boolean, query?: object }
- `POST https://api.mcp.ai/api/legalone/list/timeentries` — Lista Timesheet (apontamento de horas) (OData /TimeEntries). Filtre com $filter/$top/$skip/$orderby/$expand.
  - body: { $filter?: string, $expand?: string, $select?: string, $orderby?: string, $top?: integer, $skip?: integer, $count?: boolean, query?: object }
- `POST https://api.mcp.ai/api/legalone/list/updates` — Lista Andamentos/publicações/atualizações do processo (OData /Updates). Filtre com $filter/$top/$skip/$orderby/$expand.
  - body: { $filter?: string, $expand?: string, $select?: string, $orderby?: string, $top?: integer, $skip?: integer, $count?: boolean, query?: object }
- `POST https://api.mcp.ai/api/legalone/list/users` — Lista Usuários/responsáveis do escritório (OData /Users). Filtre com $filter/$top/$skip/$orderby/$expand.
  - body: { $filter?: string, $expand?: string, $select?: string, $orderby?: string, $top?: integer, $skip?: integer, $count?: boolean, query?: object }
- `POST https://api.mcp.ai/api/legalone/metadata` — Documento OData $metadata (XML) — lista autoritativa de entidades e campos da API do escritório. Útil para descobrir o casing/coleções reais do tenant.
- `POST https://api.mcp.ai/api/legalone/odata/get` — GET genérico em qualquer coleção/recurso OData do LegalOne. Informe `entity` (ex.: "Litigations") e opcionalmente `id`; suporta $filter/$expand/$select/$top/$skip/$orderby. Use isto para entidades não
  - body: { $filter?: string, $expand?: string, $select?: string, $orderby?: string, $top?: integer, $skip?: integer, $count?: boolean, query?: object, entity: string, id?: string, ids?: string[] }
- `POST https://api.mcp.ai/api/legalone/request` — Escape hatch: chamada OData crua. `method` (GET/POST/PATCH/PUT/DELETE) + `path` (ex.: "/Litigations/2479") + `query`/`body` opcionais. Cobre endpoints/ações fora das tools nomeadas.
  - body: { method: string, path: string, query?: object, body?: object }
- `POST https://api.mcp.ai/api/legalone/update/appointments` — Atualiza um(a) Compromissos/agenda (OData PATCH /Appointments/{id}). `data` = campos a alterar.
  - body: { id: string, data: object, ids?: string[] }
- `POST https://api.mcp.ai/api/legalone/update/contacts` — Atualiza um(a) Contatos (pessoas físicas/jurídicas: clientes, partes, advogados) (OData PATCH /Contacts/{id}). `data` = campos a alterar.
  - body: { id: string, data: object, ids?: string[] }
- `POST https://api.mcp.ai/api/legalone/update/litigations` — Atualiza um(a) Processos/litígios (contencioso) (OData PATCH /Litigations/{id}). `data` = campos a alterar.
  - body: { id: string, data: object, ids?: string[] }

## Example prompts
- "Liste os processos do LegalOne com movimentação nos últimos 7 dias"
- "Busque o contato (cliente) X no LegalOne e mostre os processos vinculados"
- "Crie um compromisso na agenda do LegalOne vinculado ao processo Y"

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