MCP Advbox Server
Enables n8n workflows to automate operations on legal data from Advbox via MCP tools.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Advbox Servershow my open lawsuits"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
📚 Documentação MCP Advbox Server
Versão: 2.2.0 (Hardened)
Última atualização: 05 de Janeiro de 2026
Autor: Jonas Sousa
📑 Índice
Related MCP server: bogamatic-sac-mcp
1. Visão Geral
O que é o MCP Advbox?
O MCP Advbox Server é um servidor que implementa o protocolo Model Context Protocol (MCP) para integração com a API do Advbox, sistema de gestão jurídica. Ele permite que agentes de IA (como Claude) interajam diretamente com dados de clientes, processos, tarefas e transações financeiras do escritório.
Funcionalidades Principais
✅ 19 Tools para operações CRUD completas
✅ Autenticação segura via Bearer Token
✅ Rate Limiting para proteção contra abuso
✅ SSE (Server-Sent Events) para comunicação em tempo real
✅ Validação de entrada em todos os parâmetros
✅ Headers de segurança (HSTS, CSP, X-Frame-Options)
Casos de Uso
Caso de Uso | Descrição |
Consulta de clientes | Buscar informações de clientes por nome, telefone, email |
Gestão de processos | Criar, atualizar e consultar processos jurídicos |
Controle financeiro | Listar transações, receitas e despesas |
Agenda de compromissos | Criar e listar tarefas e compromissos |
Relatórios de equipe | Consultar pontuação e recompensas da equipe |
2. Arquitetura
Diagrama
┌─────────────────┐ HTTPS/SSE ┌──────────────────┐ HTTPS ┌─────────────────┐
│ Claude / n8n │ ◄────────────────► │ MCP Advbox API │ ◄────────────► │ Advbox API │
│ │ Bearer Token │ (Port 3847) │ API Token │ (v1) │
└─────────────────┘ └──────────────────┘ └─────────────────┘Stack Tecnológica
Componente | Tecnologia |
Runtime | Node.js 20 Alpine |
Linguagem | TypeScript |
Protocolo | MCP (Model Context Protocol) |
Transporte | HTTP + SSE |
Container | Docker |
Proxy | Traefik |
TLS | Let's Encrypt |
Estrutura de Arquivos
/opt/stacks/advbox-mcp-server/
├── src/
│ └── http-server.ts # Código principal
├── dist/
│ └── http-server.js # Código compilado
├── docs/
│ └── README.md # Esta documentação
├── docker-compose.yml
├── Dockerfile.http
├── package.json
├── tsconfig.json
└── .env3. Instalação
Pré-requisitos
Docker 24.0+
Docker Compose v2
Rede Docker
proxyconfiguradaTraefik com Let's Encrypt
Passo a Passo
# 1. Criar estrutura
mkdir -p /opt/stacks/advbox-mcp-server/src
cd /opt/stacks/advbox-mcp-server
# 2. Criar .env
cat > .env << EOF
ADVBOX_API_TOKEN=seu_token_advbox
ADVBOX_BASE_URL=https://app.advbox.com.br/api/v1
MCP_TOKEN=$(openssl rand -hex 32)
ALLOWED_ORIGINS=https://seu-dominio.com
EOF
# 3. Build e Deploy
docker compose build --no-cache advbox-api
docker compose up -d advbox-api
# 4. Verificar
curl http://localhost:3847/health4. Configuração
Variáveis de Ambiente
Variável | Obrigatório | Descrição |
| ✅ | Token de acesso à API Advbox |
| ❌ | URL base da API (default: https://app.advbox.com.br/api/v1) |
| ✅ | Token de autenticação do MCP |
| ❌ | Domínios permitidos (CORS) |
| ❌ | Porta interna (default: 3000) |
Limites de Segurança
Parâmetro | Valor | Descrição |
| 1 MB | Tamanho máximo do body |
| 100 req/min | Requests por IP |
| 100 | Conexões SSE simultâneas |
| 5 | Conexões SSE por IP |
| 1 hora | Timeout de conexão SSE |
5. Autenticação
Método
Bearer Token no header Authorization.
Header
Authorization: Bearer <MCP_TOKEN>Exemplo
curl -H "Authorization: Bearer <TOKEN>" https://<SEU_DOMINIO>/toolsErros
Status | Resposta | Causa |
401 |
| Token inválido |
429 |
| Rate limit |
6. Endpoints HTTP
Método | Endpoint | Auth | Descrição |
GET |
| ❌ | Health check |
GET |
| ✅ | Conexão SSE (MCP) |
POST |
| ✅ | Mensagem MCP |
GET |
| ✅ | Listar tools |
POST |
| ✅ | Executar tool |
GET /health
curl https://<SEU_DOMINIO>/health{"status":"healthy","version":"2.2.0","tools":19,"sse":0}POST /execute
curl -X POST \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{"tool":"list_customers","arguments":{"limit":5}}' \
https://<SEU_DOMINIO>/execute7. Tools Disponíveis
Resumo (19 tools)
Categoria | Tools | Quantidade |
Customers | list, get, search, create | 4 |
Lawsuits | list, get, search, create, update | 5 |
Transactions | list, get | 2 |
Tasks | list, create | 2 |
Settings | get_settings, get_users, get_origins, get_stages, get_type_lawsuits | 5 |
Rewards | get_users_rewards | 1 |
7.1 Customers (Clientes)
list_customers
Lista e busca clientes com filtros.
Parâmetro | Tipo | Obrigatório | Descrição |
| string | ❌ | Nome do cliente (busca parcial) |
| string | ❌ | Telefone |
| string | ❌ | |
| string | ❌ | Cidade |
| number | ❌ | Máximo de resultados (default: 100, max: 500) |
| number | ❌ | Pular resultados (paginação) |
Exemplo:
{"tool":"list_customers","arguments":{"name":"Silva","limit":10}}get_customer
Obtém detalhes de um cliente pelo ID.
Parâmetro | Tipo | Obrigatório | Descrição |
| number | ✅ | ID do cliente |
Exemplo:
{"tool":"get_customer","arguments":{"customer_id":12345}}search_customers
Busca clientes por nome.
Parâmetro | Tipo | Obrigatório | Descrição |
| string | ✅* | Termo de busca |
| string | ✅* | Alternativa ao query |
create_customer
Cria um novo cliente.
Parâmetro | Tipo | Obrigatório | Descrição |
| number | ✅ | ID do usuário criando |
| number | ✅ | ID da origem do cliente |
| string | ✅ | Nome do cliente |
| string | ❌ | |
| string | ❌ | CPF/CNPJ |
| string | ❌ | RG |
| string | ❌ | Telefone |
| string | ❌ | Data nascimento (YYYY-MM-DD) |
Exemplo:
{
"tool": "create_customer",
"arguments": {
"users_id": 1,
"customers_origins_id": 2,
"name": "João da Silva",
"email": "joao@email.com",
"phone": "85999999999"
}
}7.2 Lawsuits (Processos)
list_lawsuits
Lista processos com filtros.
Parâmetro | Tipo | Obrigatório | Descrição |
| string | ❌ | Nome da pasta/cliente |
| string | ❌ | Número do processo |
| number | ❌ | ID do cliente |
| number | ❌ | ID do responsável |
| number | ❌ | ID do grupo/área |
| number | ❌ | Máximo de resultados |
| number | ❌ | Pular resultados |
get_lawsuit
Obtém detalhes de um processo.
Parâmetro | Tipo | Obrigatório | Descrição |
| number | ✅ | ID do processo |
search_lawsuits
Busca processos por nome/pasta.
Parâmetro | Tipo | Obrigatório | Descrição |
| string | ✅* | Termo de busca |
| string | ✅* | Alternativa |
create_lawsuit
Cria um novo processo.
Parâmetro | Tipo | Obrigatório | Descrição |
| number | ✅ | ID do usuário criando |
| array[number] | ✅ | IDs dos clientes |
| number | ✅ | ID do estágio |
| number | ✅ | ID do tipo de processo |
| string | ❌ | Número do processo |
| string | ❌ | Número do protocolo |
| string | ❌ | Nome da pasta |
| string | ❌ | Data (YYYY-MM-DD) |
| string | ❌ | Observações |
Exemplo:
{
"tool": "create_lawsuit",
"arguments": {
"users_id": 1,
"customers_id": [123, 456],
"stages_id": 5,
"type_lawsuits_id": 10,
"folder": "Silva vs Estado",
"process_number": "0001234-56.2026.8.06.0001"
}
}update_lawsuit
Atualiza um processo existente.
Parâmetro | Tipo | Obrigatório | Descrição |
| number | ✅ | ID do processo |
| number | ❌ | Novo estágio |
| number | ❌ | Novo tipo |
| string | ❌ | Número do processo |
| string | ❌ | Nome da pasta |
| string | ❌ | Observações |
7.3 Transactions (Transações)
list_transactions
Lista transações financeiras.
Parâmetro | Tipo | Obrigatório | Descrição |
| string | ❌ | Data pagamento início (YYYY-MM-DD) |
| string | ❌ | Data pagamento fim |
| string | ❌ | Data vencimento início |
| string | ❌ | Data vencimento fim |
| number | ❌ | Filtrar por processo |
| number | ❌ | Máximo de resultados |
| number | ❌ | Pular resultados |
Exemplo:
{
"tool": "list_transactions",
"arguments": {
"date_payment_start": "2026-01-01",
"date_payment_end": "2026-01-31"
}
}get_transaction
Obtém detalhes de uma transação.
Parâmetro | Tipo | Obrigatório | Descrição |
| number | ✅ | ID da transação |
7.4 Tasks (Tarefas)
list_tasks
Lista tarefas e compromissos.
Parâmetro | Tipo | Obrigatório | Descrição |
| string | ❌ | Data início (YYYY-MM-DD) |
| string | ❌ | Data fim |
| number | ❌ | Filtrar por usuário |
| number | ❌ | Filtrar por processo |
| number | ❌ | Filtrar por tipo de tarefa |
| number | ❌ | Máximo de resultados |
| number | ❌ | Pular resultados |
create_task
Cria uma nova tarefa/compromisso.
Parâmetro | Tipo | Obrigatório | Descrição |
| number | ✅ | ID do usuário criando |
| array[number] | ✅ | IDs dos convidados |
| number | ✅ | ID do tipo de tarefa |
| number | ✅ | ID do processo |
| string | ✅ | Data início (YYYY-MM-DD) |
| string | ❌ | Hora início (HH:MM) |
| string | ❌ | Data fim |
| string | ❌ | Hora fim |
| string | ❌ | Prazo |
| string | ❌ | Comentários |
| string | ❌ | Local |
| boolean | ❌ | Urgente |
| boolean | ❌ | Importante |
Exemplo:
{
"tool": "create_task",
"arguments": {
"from": 1,
"guests": [2, 3],
"tasks_id": 5,
"lawsuits_id": 100,
"start_date": "2026-01-10",
"start_time": "14:00",
"comments": "Reunião com cliente",
"urgent": true
}
}7.5 Settings (Configurações)
get_settings
Obtém todas as configurações do sistema (users, stages, types, origins).
get_users
Lista usuários/colaboradores.
get_origins
Lista origens de clientes. Use para obter customers_origins_id.
get_stages
Lista estágios de processos. Use para obter stages_id.
get_type_lawsuits
Lista tipos de processos. Use para obter type_lawsuits_id.
7.6 Rewards (Recompensas)
get_users_rewards
Obtém pontuação e recompensas da equipe.
Parâmetro | Tipo | Obrigatório | Descrição |
| string | ❌ | Data limite (YYYY-MM-DD) |
Exemplo:
{"tool":"get_users_rewards","arguments":{"date":"2026-01-05"}}8. Exemplos de Uso
8.1 Fluxo MCP Completo (SSE)
// 1. Conectar ao SSE
const eventSource = new EventSource('https://<SEU_DOMINIO>/sse', {
headers: { 'Authorization': 'Bearer <TOKEN>' }
});
let messageEndpoint = '';
// 2. Receber endpoint para mensagens
eventSource.addEventListener('endpoint', (e) => {
messageEndpoint = e.data;
console.log('Endpoint:', messageEndpoint);
});
// 3. Receber respostas
eventSource.addEventListener('message', (e) => {
const response = JSON.parse(e.data);
console.log('Response:', response);
});
// 4. Enviar requisição MCP
fetch(messageEndpoint, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer <TOKEN>'
},
body: JSON.stringify({
jsonrpc: '2.0',
id: 1,
method: 'tools/call',
params: {
name: 'list_customers',
arguments: { limit: 5 }
}
})
});8.2 Execução Direta (REST)
# Listar clientes
curl -X POST \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{"tool":"list_customers","arguments":{"name":"Silva","limit":10}}' \
https://<SEU_DOMINIO>/execute
# Buscar processo
curl -X POST \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{"tool":"get_lawsuit","arguments":{"lawsuit_id":12345}}' \
https://<SEU_DOMINIO>/execute
# Criar tarefa
curl -X POST \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"tool": "create_task",
"arguments": {
"from": 1,
"guests": [1],
"tasks_id": 5,
"lawsuits_id": 100,
"start_date": "2026-01-10",
"comments": "Audiência"
}
}' \
https://<SEU_DOMINIO>/execute8.3 Paginação
# Página 1 (primeiros 100)
curl -X POST -H "Authorization: Bearer <TOKEN>" \
-d '{"tool":"list_customers","arguments":{"limit":100,"offset":0}}' \
https://<SEU_DOMINIO>/execute
# Página 2 (próximos 100)
curl -X POST -H "Authorization: Bearer <TOKEN>" \
-d '{"tool":"list_customers","arguments":{"limit":100,"offset":100}}' \
https://<SEU_DOMINIO>/execute9. Segurança
9.1 Controles Implementados
Controle | Descrição | CWE Mitigado |
Timing-safe Auth | Comparação de tokens resistente a timing attacks | CWE-208 |
Rate Limiting | 100 req/min por IP | CWE-770 |
Input Validation | Sanitização de todos os parâmetros | CWE-20 |
Body Size Limit | Máximo 1MB | CWE-400 |
SSE Limits | Max 100 conexões, 5 por IP | CWE-770 |
Prototype Pollution | Filtro de | CWE-1321 |
Path Traversal | Regex validation em endpoints | CWE-22 |
Security Headers | HSTS, CSP, X-Frame-Options | Múltiplos |
9.2 Headers de Segurança
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block
Content-Security-Policy: default-src 'none'
Strict-Transport-Security: max-age=31536000; includeSubDomains9.3 CORS
Domínios permitidos (configurável via ALLOWED_ORIGINS):
https://<SEU_DOMINIO>https://<SEU_DOMINIO>
9.4 Container Security
✅ Executa como usuário não-root (
advbox:1001)✅ Imagem Alpine mínima
✅ Sem shell de root
✅ Recursos limitados (512MB RAM, 1 CPU)
9.5 Boas Práticas
Rotacione o MCP_TOKEN a cada 90 dias
Monitore tentativas de autenticação falhadas
Mantenha o container atualizado
Use HTTPS sempre (via Traefik)
10. Integração com n8n
10.1 Configuração do MCP Client
No n8n, configure o nó MCP Client com:
Campo | Valor |
URL |
|
Authentication | Header Auth |
Header Name |
|
Header Value |
|
10.2 Tools Mais Usadas em Automações
Automação | Tools |
Busca de clientes |
|
Criação de processos |
|
Relatórios financeiros |
|
Agenda |
|
Gamificação |
|
11. Monitoramento
11.1 Health Check
curl https://<SEU_DOMINIO>/health
# {"status":"healthy","version":"2.2.0","tools":19,"sse":0}11.2 Logs do Container
# Ver logs em tempo real
docker logs -f advbox-mcp-api
# Últimas 100 linhas
docker logs --tail 100 advbox-mcp-api11.3 Métricas a Monitorar
Métrica | Descrição | Alerta |
| Conexões SSE ativas | > 80 |
Health status | Estado do servidor | ≠ healthy |
Response time | Tempo de resposta | > 5s |
Error rate | Taxa de erros 5xx | > 1% |
11.4 Integração com Uptime Kuma
Type: HTTP(s)
URL: https://<SEU_DOMINIO>/health
Method: GET
Expected Status: 200
Interval: 60 seconds
Retries: 312. Troubleshooting
12.1 Erros Comuns
401 Unauthorized
Causa: Token ausente ou inválido
Solução:
# Verificar token
cat /opt/stacks/advbox-mcp-server/.env | grep MCP_TOKEN
# Testar com curl
curl -H "Authorization: Bearer <TOKEN>" https://<SEU_DOMINIO>/tools429 Too Many Requests
Causa: Rate limit excedido (100 req/min)
Solução: Aguardar 60 segundos ou otimizar requisições
503 Too many connections
Causa: Limite de conexões SSE atingido (100)
Solução:
docker restart advbox-mcp-apiConnection refused
Causa: Container não está rodando
Solução:
docker ps | grep advbox
docker logs advbox-mcp-api
docker compose up -d advbox-apiAPI error 401 (Advbox)
Causa: Token do Advbox inválido
Solução:
cat /opt/stacks/advbox-mcp-server/.env | grep ADVBOX_API_TOKEN
curl -H "Authorization: Bearer <ADVBOX_TOKEN>" https://app.advbox.com.br/api/v1/settings12.2 Comandos de Diagnóstico
# Status do container
docker inspect advbox-mcp-api | jq '.[0].State'
# Uso de recursos
docker stats advbox-mcp-api --no-stream
# Verificar rede
docker exec advbox-mcp-api wget -qO- http://localhost:3000/health
# Rebuild completo
cd /opt/stacks/advbox-mcp-server
docker compose down
docker compose build --no-cache
docker compose up -d13. Changelog
v2.2.0 (05/01/2026) - HARDENED
Segurança:
✅ Timing-safe token comparison
✅ Proteção contra Prototype Pollution
✅ Rate limiting com proteção memory exhaustion
✅ Limite de conexões SSE (global e por IP)
✅ Timeout em conexões SSE (1 hora)
✅ CORS restritivo com whitelist
✅ Validação de email
✅ Headers de segurança (HSTS)
v2.1.0 (05/01/2026)
✅ Autenticação Bearer Token
✅ Rate Limiting básico
✅ Input validation
v2.0.0 (04/01/2026)
✅ Servidor HTTP standalone
✅ 19 tools funcionais
✅ Suporte SSE
v1.0.0 (03/01/2026)
Versão inicial (STDIO)
14. Referência Rápida
Credenciais de Produção
Item | Valor |
Endpoint SSE |
|
Endpoint Execute |
|
MCP Token |
|
Porta Local |
|
Comando de Teste Rápido
# Testar autenticação
curl -s -H "Authorization: Bearer <SEU_MCP_TOKEN>" \
https://<SEU_DOMINIO>/health
# Listar tools
curl -s -H "Authorization: Bearer <SEU_MCP_TOKEN>" \
https://<SEU_DOMINIO>/tools | jq '.tools[].name'Documentação gerada em 05/01/2026 - Jonas Sousa
15. Integração com Claude Desktop
15.1 Pré-requisitos
Node.js instalado (versão 18+)
Claude Desktop instalado
Verifique se o Node.js está instalado:
node --version
npx --versionSe não tiver, baixe em: https://nodejs.org/
15.2 Localização do Arquivo de Configuração
Sistema | Caminho |
Windows |
|
macOS |
|
Linux |
|
15.3 Configuração
Edite o arquivo claude_desktop_config.json e adicione:
{
"mcpServers": {
"advbox": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://<SEU_DOMINIO>/sse",
"--transport",
"sse-only",
"--header",
"Authorization:Bearer <SEU_MCP_TOKEN>"
]
}
}
}Nota: Se já existir conteúdo no arquivo, adicione apenas a seção
mcpServersmantendo as outras configurações.
Exemplo com configurações existentes:
{
"preferences": {
"chromeExtensionEnabled": true
},
"mcpServers": {
"advbox": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://<SEU_DOMINIO>/sse",
"--transport",
"sse-only",
"--header",
"Authorization:Bearer <SEU_MCP_TOKEN>"
]
}
}
}15.4 Parâmetros Explicados
Parâmetro | Descrição |
| Executor de pacotes Node.js |
| Aceita automaticamente a instalação do pacote |
| Pacote que faz ponte entre STDIO e SSE remoto |
| URL do servidor MCP Advbox |
| Força conexão via SSE (obrigatório) |
| Header de autenticação |
| Token de autenticação (sem espaço após ":") |
15.5 Ativação
Salve o arquivo
claude_desktop_config.jsonFeche completamente o Claude Desktop (incluindo na bandeja do sistema)
Abra o Claude Desktop novamente
Verifique se aparece o ícone de ferramentas/MCP na interface
15.6 Verificação
Após reiniciar, teste com um dos comandos:
"Liste as tools disponíveis do Advbox"
"Busque clientes com nome Silva no Advbox"
"Quais são os usuários do escritório?"
15.7 Troubleshooting Claude Desktop
Verificar Logs
No Claude Desktop, acesse: View → Toggle Developer Tools → Console
Erros Comuns
Erro | Causa | Solução |
| Formato JSON incorreto | Use o formato com |
| Falta | Adicione o parâmetro |
| Servidor não respondeu | Verifique se o servidor está online |
| Conexão caiu | Verifique rede e reinicie Claude Desktop |
Testar Conexão Manualmente
No terminal, execute:
npx -y mcp-remote https://<SEU_DOMINIO>/sse --transport sse-only --header "Authorization:Bearer <SEU_MCP_TOKEN>"Se conectar corretamente, você verá mensagens JSON sendo trocadas.
15.8 Múltiplos Servidores MCP
Para adicionar outros servidores MCP junto com o Advbox:
{
"mcpServers": {
"advbox": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://<SEU_DOMINIO>/sse",
"--transport",
"sse-only",
"--header",
"Authorization:Bearer <SEU_MCP_TOKEN>"
]
},
"outro-servidor": {
"command": "npx",
"args": ["-y", "outro-mcp-server"]
}
}
}Seção adicionada em 05/01/2026
Available Tools
17 toolsadvbox_create_customerB
Create a new customer in Advbox. Requires user ID, origin ID, and customer name.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City | |
| name | Yes | Customer name | |
| No | Customer email address | ||
| notes | No | Additional notes | |
| phone | No | Phone number (99999999999 or (99) 99999-9999) | |
| state | No | State (e.g., SP, RJ) | |
| document | No | Customer document number | |
| users_id | Yes | ID of the user creating the customer | |
| birthdate | No | Birthdate (YYYY-MM-DD) | |
| cellphone | No | Cellphone number | |
| occupation | No | Occupation/profession | |
| postalcode | No | Postal code (99999-999) | |
| identification | No | Customer CPF/CNPJ (e.g., 123.456.789-01) | |
| customers_origins_id | Yes | ID of the customer origin |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the creation action without mentioning permissions, side effects, return values, or reversibility. For a mutating operation, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that clearly states the action and required inputs. It is front-loaded with the primary purpose and contains no superfluous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 14 parameters, no output schema, and no annotations, this description is too minimal. It lacks usage context, behavioral details, and return format. Although the schema covers parameter descriptions, the overall description does not provide sufficient context for an agent to fully understand when and how to use the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all 14 parameters have descriptions. The description repeats the required parameters (users_id, customers_origins_id, name) but adds no extra meaning beyond what the schema already provides. Baseline 3 applies because the schema handles parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Create a new customer in Advbox.' It clearly identifies the action and the target entity, and the required fields add specificity. This distinguishes it from sibling tools like advbox_create_movement or advbox_create_task by naming the customer resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states prerequisites ('Requires user ID, origin ID, and customer name') but does not explicitly provide when-to-use guidance or mention alternatives. Usage is implied by the action, but no exclusions or alternative tool references are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
advbox_create_lawsuitA
Create a new lawsuit in Advbox. Requires user ID, customer IDs, stage ID, and lawsuit type ID.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Lawsuit date (YYYY-MM-DD) | |
| notes | No | Detailed notes about the lawsuit | |
| folder | No | Folder name | |
| users_id | Yes | ID of the user creating the lawsuit | |
| stages_id | Yes | ID of the lawsuit stage | |
| customers_id | Yes | List of customer IDs associated with the lawsuit | |
| process_number | No | Process number (e.g., 0123456-78.2025.8.26.0100) | |
| protocol_number | No | Protocol number | |
| type_lawsuits_id | Yes | ID of the lawsuit type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior itself. It only states that it creates a lawsuit and lists required parameters, but does not mention side effects, permissions, idempotency, or response behavior. For a mutation tool, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence that front-loads the core purpose ('Create a new lawsuit in Advbox') and immediately follows with essential requirements. No wasted words and appropriate length for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 9 parameters, no annotations, and no output schema, the description is minimal. It does not mention optional parameters (notes, folder, process_number, etc.), return values, or prerequisites beyond required IDs. For a complex create operation, more context is needed for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the schema already explains each parameter. The description adds value by singling out the required parameters (users_id, customers_id, stages_id, type_lawsuits_id) but does not clarify formats, relationships, or optional parameter usage beyond the schema. This aligns with the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create'), the resource ('a new lawsuit'), and the system ('in Advbox'), which distinguishes it from sibling tools like advbox_update_lawsuit. It also lists the required IDs, making the tool's scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Create a new lawsuit' provides clear context that this tool is for creation, not updates (which are handled by advbox_update_lawsuit). It doesn't explicitly name alternatives or exclusions, but the implied usage is clear enough for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
advbox_create_movementB
Create a new movement/update for a lawsuit
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Movement date (YYYY-MM-DD) | |
| lawsuit_id | Yes | Lawsuit ID | |
| description | Yes | Movement description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states 'Create', implying a write operation, but does not explain side effects, authentication needs, validation rules, or what happens if the lawsuit does not exist. This lack of detail leaves significant ambiguity for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that immediately conveys the core action and resource. No filler words or redundant phrasing, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple create operation with fully described parameters, the description is minimally adequate. However, it lacks any mention of required context like the need for an existing lawsuit or the meaning of a 'movement' in this domain. With no annotations or output schema, this gap leaves the agent to infer critical details from the tool name alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter semantics are already fully documented in the input schema. The description adds no additional context about parameter usage or relationships, meeting the baseline but not exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'movement/update for a lawsuit', making it evident this tool adds a new record associated with a case. It distinguishes itself from related siblings like advbox_create_lawsuit and advbox_update_lawsuit by referring to 'movement', though the term 'movement/update' is slightly ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives or any prerequisites such as requiring an existing lawsuit. The description is a bare statement of functionality and does not mention typical workflows or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
advbox_create_taskB
Create a new task/appointment in Advbox. Requires creator ID, guests, task type, lawsuit, and start date.
| Name | Required | Description | Default |
|---|---|---|---|
| from | Yes | ID of the user creating the task | |
| local | No | Location | |
| guests | Yes | List of user IDs to be added as guests | |
| urgent | No | Mark as urgent | |
| comments | No | Additional details/instructions | |
| end_date | No | End date (YYYY-MM-DD) | |
| end_time | No | End time (HH:MM) | |
| tasks_id | Yes | ID of the task type | |
| important | No | Mark as important | |
| start_date | Yes | Appointment date (YYYY-MM-DD) | |
| start_time | No | Start time (HH:MM) | |
| lawsuits_id | Yes | ID of the associated lawsuit | |
| date_deadline | No | Deadline date (YYYY-MM-DD) | |
| display_schedule | No | Show in schedule/calendar |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It indicates a create operation (implying mutation) but does not mention side effects, reversibility, permissions, return values, or error behavior. This is a significant gap for a mutation tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core purpose ('Create a new task/appointment in Advbox') and then lists key requirements. It is efficient and free of unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 14 parameters, no annotations, and no output schema, the description is too thin. It identifies required fields but does not explain the return value, success/failure behavior, or any nuances about optional parameters. The schema covers parameter semantics, but the overall context for an agent is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description lists required fields (creator ID, guests, task type, lawsuit, start date) which map directly to schema properties, but it adds no additional semantic meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new task/appointment in Advbox, using a specific verb and resource. It distinguishes from sibling creation tools like advbox_create_movement, advbox_create_customer, and advbox_create_lawsuit by explicitly naming the entity type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by listing required fields, but it does not explicitly state when to use this tool over alternatives or provide exclusions. The use case is reasonably clear from the tool name and description, but no explicit guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
advbox_get_birthdaysA
Get customers with birthdays in the current month
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states it 'gets' customers, implying a read operation, but does not disclose return format, pagination, sorting, timezone handling, or any side effects. For a simple read, this is minimal but lacks important behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no filler. Every word contributes to the purpose, and it is front-loaded with the action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with no parameters and no output schema, but the description could provide more context, such as what customer fields are returned, whether 'current month' follows a specific timezone, or whether results are ordered. These gaps make it adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema coverage is 100%, so the description is not required to explain parameters. The baseline for 0 parameters is 4, and the description does not need to compensate anything here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get customers with birthdays in the current month' uses a specific verb ('Get'), identifies the resource ('customers'), and adds a distinct qualifier ('birthdays in the current month') that clearly differentiates it from sibling tools like list_customers and get_customer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose implies usage (when you need customers with birthdays this month), but there is no explicit guidance on when to use it versus alternatives like list_customers. No when-not or alternative tool is mentioned, so it relies on the agent to infer utility.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
advbox_get_customerB
Get a specific customer by ID from Advbox
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Customer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it only states 'Get a specific customer by ID.' It does not mention read-only nature explicitly, error handling, response format, or any side effects, leaving significant behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is easy to scan. It avoids unnecessary detail but is extremely brief, which while concise, might under-specify the tool's behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with one parameter and no output schema, the description is minimally adequate but lacks information about return value, error conditions (e.g., what happens if the ID does not exist), or any access prerequisites. It does not fully prepare the agent for invocation outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the parameter 'id' is already described as 'Customer ID.' The description adds no additional semantic meaning beyond what the schema provides, which is consistent with the baseline score for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('a specific customer by ID'), clearly distinguishing it from sibling tools like list_customers. It unambiguously identifies the tool's function and scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives such as advbox_list_customers. It gives no context about typical use cases, prerequisites, or conditions where this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
advbox_get_last_movementsA
Get the latest movements across all lawsuits with filter options
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of items | |
| offset | No | Pagination offset |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose operational details. It adds scope context but does not mention pagination behavior, default ordering, or that 'filter options' are actually not present in the schema beyond limit/offset. Some gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence, but the phrase 'with filter options' is misleading since no filter parameters exist beyond pagination. Minor inaccuracy slightly reduces conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with full schema coverage and no output schema, the description provides essential scope but omits behavioral details such as result ordering and defaults. It is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes limit and offset with basic descriptions, so the tool description adds no parameter-specific meaning. Baseline of 3 applies because the schema covers everything and the description doesn't mislead.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get the latest movements across all lawsuits', using a specific verb and resource scope that distinguishes it from advbox_get_lawsuit_movements, which targets movements for a specific lawsuit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'across all lawsuits' implies when to use this tool (when broad scope is needed), but it does not explicitly name alternatives or state exclusion criteria. The guidance is clear but implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
advbox_get_lawsuitA
Get a specific lawsuit by ID from Advbox
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Lawsuit ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits on its own. It merely states 'Get' with no elaboration on return values, error handling (e.g., if the ID is not found), or any side effects. For a read-only credential, the bare action is insufficient; the agent cannot anticipate what to expect on success or failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that immediately states the action, resource, and target. It contains zero redundant or filler content, making it perfectly concise for the simple tool it describes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter and no output schema or annotations, the description covers the basic operation but omits any information about the return value or failure behavior. The agent knows what the tool does but not what to expect back, which is a notable gap for a retrieval operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers the single parameter 'id' with the description 'Lawsuit ID', and schema description coverage is 100%. The description adds no additional meaning beyond what the schema provides, so the baseline of 3 applies per rubric rules.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Get' with the resource 'lawsuit' and clearly identifies the scope as 'by ID from Advbox'. This distinguishes it from sibling tools like list_lawsuits, create_lawsuit, update_lawsuit, and get_lawsuit_history, leaving no ambiguity about whether it retrieves a single existing record versus performing other operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'specific lawsuit by ID' implies this tool is for retrieving a single record when the ID is known, which contrasts with list_lawsuits for listing all. However, no explicit guidance is given about when to prefer this over alternatives, nor are there prerequisites or exclusions mentioned. The usage is inferred rather than directly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
advbox_get_lawsuit_historyA
Get the task history of a specific lawsuit
| Name | Required | Description | Default |
|---|---|---|---|
| lawsuit_id | Yes | Lawsuit ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. 'Get' implies a read-only operation, which is helpful, but the description does not explain any additional behavior such as return format, ordering, or whether the history includes all statuses. It is minimally transparent but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, purposeful sentence that immediately states the tool's function. It contains no redundant words or filler, earning its place efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description is sufficiently complete. It clearly conveys what the tool returns (task history) and the scope (specific lawsuit). While it could mention that the result is a list, the implication is strong enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the only parameter (lawsuit_id) with a clear meaning. The description adds no extra semantic detail beyond what the schema provides, which is acceptable given the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and clearly identifies the resource ('task history of a specific lawsuit'). It effectively distinguishes this tool from siblings like advbox_get_lawsuit (which retrieves lawsuit details) and advbox_get_lawsuit_movements (which retrieves movements).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes clear context: use this tool to retrieve task history for a specific lawsuit, indicated by the required lawsuit_id parameter. However, it does not explicitly mention alternatives or exclusions, such as using advbox_list_tasks for a broader task list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
advbox_get_lawsuit_movementsC
Get the movements/updates of a specific lawsuit
| Name | Required | Description | Default |
|---|---|---|---|
| lawsuit_id | Yes | Lawsuit ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'Get', which implies read-only, but does not explain what a 'movement' is, the return format, ordering, pagination, or any other behavioral traits that could affect the agent's expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no redundant words. It efficiently communicates the core purpose, though it forgoes the opportunity to include valuable context that could be added without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one well-documented parameter) and clear purpose, the description is minimally adequate. However, the absence of an output schema and any behavioral details leaves questions about the response structure and the exact nature of 'movements', making it incomplete for a fully self-sufficient description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents lawsuit_id with 100% coverage ('Lawsuit ID'), so the baseline is 3. The description adds no additional meaning beyond the schema, neither clarifying the parameter's format nor its role in the request.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('movements/updates of a specific lawsuit'), making the core purpose understandable. However, it does not distinguish itself from sibling tools like advbox_get_lawsuit_history or advbox_get_last_movements, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus similar alternatives. There is no mention of use cases, prerequisites, or exclusions, leaving the agent to infer the appropriate context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
advbox_get_publicationsB
Get publications for a specific lawsuit
| Name | Required | Description | Default |
|---|---|---|---|
| lawsuit_id | Yes | Lawsuit ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description alone must convey behavioral traits. It only restates the tool's basic function and gives no information about return format, error behavior, ordering, pagination, or permission requirements. The description adds no transparency beyond what the name implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler words. It is as concise as possible while conveying the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and no annotations, the description fails to explain what a 'publication' is, the nature of the response, or any edge cases. It is adequate only for conveying the high-level purpose, but lacks context on behavior and results, making it incomplete for an agent to reliably use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes lawsuit_id as an integer 'Lawsuit ID' with 100% coverage. The description doesn't add any additional semantic detail beyond acknowledging the lawsuit context, so the schema carries the explanatory weight. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' with a clear resource 'publications' and scope 'for a specific lawsuit', distinguishing it from sibling tools like get_lawsuit or get_lawsuit_history. It is unambiguous and action-oriented.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives, or any prerequisites such as whether a lawsuit must exist. There is no mention of exclusions or fallback tools, leaving the agent without direction on selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
advbox_get_settingsA
Get Advbox account settings and configuration
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure. It indicates a read operation ('Get') but does not state side effects, return format, authentication requirements, or rate limits. The minimal description adds little beyond the basic verb, leaving the agent without key behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single six-word sentence, 'Get Advbox account settings and configuration.' It is extremely concise, front-loaded, and contains no unnecessary words, every word earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with a straightforward getter purpose, the description adequately states the core function. However, there is no output schema and the description does not explain what the returned settings look like or any operational context, making it complete enough for simple use but not deeply informative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so schema description coverage is 100%. With no parameters, the description has no parameter semantics to add, and the baseline of 4 applies because there is nothing to clarify.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Get') and resource ('Advbox account settings and configuration'), making the tool's purpose unambiguous. It also distinguishes from sibling tools like advbox_list_customers and advbox_get_customer, which target different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no explicit guidance on when to use this tool versus alternatives, but the tool name and description strongly imply it is the go-to tool for retrieving account settings. Since no sibling tool covers settings, the usage context is implied rather than explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
advbox_list_customersA
List customers from Advbox with various filter options including name, phone, email, location, and creation date. Returns paginated results.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Customer city | |
| name | No | Customer name or part of it (partial search) | |
| No | Customer email address | ||
| limit | No | Number of items (1-1000) | |
| phone | No | Customer phone (e.g., 48991234567) | |
| state | No | Customer state | |
| offset | No | Number of items to skip (pagination) | |
| document | No | Customer document number | |
| birthdays | No | Filter customers with birthdays in current month | |
| cellphone | No | Customer cellphone | |
| occupation | No | Customer occupation/profession | |
| created_end | No | End date for creation filter (YYYY-MM-DD) | |
| created_start | No | Start date for creation filter (YYYY-MM-DD) | |
| identification | No | Customer CPF/CNPJ |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It adds value by mentioning pagination, which is a key behavioral trait. However, it does not disclose authentication requirements, default sorting, filter combination behavior, or response shape beyond 'paginated results', leaving notable gaps for a tool with 14 optional parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, concise, and front-loaded. It conveys the resource, capability, and key feature (paginated results) without wasted words. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 14 optional parameters and no output schema, the description is relatively thin. It mentions filtering and pagination but does not explain how filters combine, whether results have a default order, or what the response includes. The schema covers parameter semantics, so the description is minimally viable but not fully complete for such a complex listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds only a high-level summary of filters (name, phone, email, location, creation date) and does not provide additional semantics beyond what the schema already describes for each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists customers from Advbox, with a specific verb ('List') and resource ('customers'), and mentions the primary capabilities (filtering, pagination). It distinguishes itself from siblings like advbox_get_customer (single customer retrieval) and advbox_create_customer (creation) by explicitly indicating a multi-record listing function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for customer listing with filtering and pagination, which is clear for selecting this over get_customer or create_customer. However, it does not explicitly name alternatives or state when not to use this tool, so it lacks explicit exclusions but provides adequate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
advbox_list_lawsuitsA
List lawsuits from Advbox with various filter options including customer, process number, dates, stage, and responsible. Returns paginated results.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Lawsuit name or part of it | |
| step | No | Filter by step (Aguardando retorno...) | |
| type | No | Filter by type name or ID | |
| group | No | Filter by group name or ID | |
| limit | No | Number of items (1-100) | |
| notes | No | Search in lawsuit notes | |
| stage | No | Filter by stage (Judicial, Recursal...) | |
| folder | No | Lawsuit folder name | |
| offset | No | Pagination offset | |
| created_end | No | Creation date end (YYYY-MM-DD) | |
| customer_id | No | Customer ID associated with the lawsuit | |
| responsible | No | Filter by responsible person | |
| created_start | No | Creation date start (YYYY-MM-DD) | |
| identification | No | Customer CPF/CNPJ | |
| process_number | No | Process number | |
| protocol_number | No | Protocol number | |
| process_date_end | No | Process date end (YYYY-MM-DD) | |
| process_date_start | No | Process date start (YYYY-MM-DD) | |
| status_closure_end | No | Closure date end (YYYY-MM-DD) | |
| status_closure_start | No | Closure date start (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It adds the useful trait 'Returns paginated results,' which is not fully explicit in the schema. However, it omits other behavioral aspects like read-only nature, auth requirements, or filter combination behavior, so it is only partially transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the action, and every phrase adds value—the filter categories and pagination notice are substantive. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 20 parameters and no output schema, yet the description only covers the core action and pagination. It does not explain return fields, how filters interact, ordering, or other contextual details. Adequate but leaves meaningful gaps for such a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description briefly references filter groups like customer, process number, dates, stage, and responsible, but does not add syntax, combination rules, or default behavior beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'List lawsuits from Advbox' with specific verb+resource. It distinguishes itself from sibling tools like advbox_get_lawsuit by indicating a listing (plural) rather than a single retrieval, and the mention of filter options clarifies its scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool versus alternatives. While the description implies listing scenarios, it does not mention exclusions or reference siblings (e.g., advising to use advbox_get_lawsuit for a single lawsuit). Lacks clear contextual usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
advbox_list_tasksA
List tasks/appointments from Advbox. Note: Date filters require both start AND end dates. Maximum range is 90 days.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Filter by specific task ID | |
| limit | No | Number of items (1-100) | |
| offset | No | Pagination offset | |
| task_id | No | Filter by task type ID | |
| user_id | No | Filter by responsible user ID | |
| date_end | No | Appointment date end (YYYY-MM-DD) - requires date_start | |
| user_name | No | Filter by user name (partial match) | |
| date_start | No | Appointment date start (YYYY-MM-DD) - requires date_end | |
| lawsuit_id | No | Filter by lawsuit ID | |
| created_end | No | Creation date end (YYYY-MM-DD) - requires created_start | |
| deadline_end | No | Deadline date end (YYYY-MM-DD) - requires deadline_start | |
| completed_end | No | Completion date end (YYYY-MM-DD) - requires completed_start | |
| created_start | No | Creation date start (YYYY-MM-DD) - requires created_end | |
| deadline_start | No | Deadline date start (YYYY-MM-DD) - requires deadline_end | |
| completed_start | No | Completion date start (YYYY-MM-DD) - requires completed_end |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the transparency burden. It does disclose the paired date requirement and 90-day maximum range, which is useful. However, it does not explicitly state that the operation is read-only, nor does it mention pagination or return format, though 'List' implies read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the purpose, the second provides a critical constraint. Every word earns its place, and the structure is front-loaded with the key action. There is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (15 parameters, no output schema, no annotations), the description is succinct but adequately covers the essential context: it states what the tool does and highlights a key restriction (90-day range). The schema covers parameter details, so the description doesn't need to repeat them. It could mention response format, but for a list tool the implied paginated list is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all 15 parameters (100% coverage), so the baseline is 3. The description adds value beyond the schema by explicitly stating the maximum 90-day date range constraint, which is not present in any parameter description. This gives the agent additional context for constructing valid date filters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb and resource: 'List tasks/appointments from Advbox.' This precisely identifies the tool's action and scope, and distinguishes it from sibling tools like advbox_list_customers and advbox_list_lawsuits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context that this is for tasks/appointments and includes a critical usage constraint: date filters require both start and end dates and the date range is limited to 90 days. It doesn't explicitly exclude alternatives, but the tool's name and purpose make the use case obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
advbox_list_transactionsA
List financial transactions from Advbox with comprehensive filter options
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by category | |
| debit_bank | No | Filter by debit bank | |
| lawsuit_id | No | Filter by lawsuit ID | |
| cost_center | No | Filter by cost center | |
| created_end | No | Creation date end (YYYY-MM-DD) | |
| description | No | Filter by description | |
| responsible | No | Filter by responsible person | |
| date_due_end | No | Due date end (YYYY-MM-DD) | |
| created_start | No | Creation date start (YYYY-MM-DD) | |
| customer_name | No | Filter by customer name | |
| competence_end | No | Competence date end (YYYY-MM-DD) | |
| date_due_start | No | Due date start (YYYY-MM-DD) | |
| process_number | No | Filter by process number | |
| protocol_number | No | Filter by protocol number | |
| competence_start | No | Competence date start (YYYY-MM-DD) | |
| date_payment_end | No | Payment date end (YYYY-MM-DD) | |
| date_payment_start | No | Payment date start (YYYY-MM-DD) | |
| customer_identification | No | Filter by customer CPF/CNPJ |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral disclosure. It only says 'comprehensive filter options' and gives no insight into read-only nature, pagination, rate limits, authentication, or default behavior. The 'list' verb implies read-only, but that's not explicitly stated, leaving gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that wastes no words. It efficiently captures the key action and resource, then moves on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 18 parameters and no output schema, the description is thin. It doesn't mention sorting, pagination, result limits, or any operation-specific behavior. While the schema covers filters, the description offers little beyond the tool name, so it falls short of complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no parameter meaning beyond what the schema already provides; it merely calls filters 'comprehensive'. No extra semantics are given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb + resource: 'List financial transactions from Advbox'. This clearly distinguishes it from sibling tools that list customers, lawsuits, or tasks. No ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: this is the go-to tool for listing financial transactions, directly distinguished from siblings by the resource type. However, it lacks explicit 'when to use vs alternatives' guidance or any exclusions, so it doesn't hit the top score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
advbox_update_lawsuitC
Update an existing lawsuit in Advbox
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Lawsuit ID to update | |
| notes | No | Notes | |
| folder | No | Folder name | |
| stages_id | No | Stage ID | |
| process_number | No | Process number | |
| protocol_number | No | Protocol number | |
| type_lawsuits_id | No | Lawsuit type ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The text only restates the action from the tool name ('Update an existing lawsuit') and offers no information about side effects, whether it does partial or full updates, required permissions, or the nature of the operation beyond the verb, giving the agent almost no behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that directly states the tool's purpose. It contains no superfluous words and is easy to parse, earning full marks for conciseness and structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters, no annotations, and no output schema, the description is severely under-specified. It doesn't explain what happens after updating, what the return value is, or how the update behaves (e.g., whether unspecified fields are left unchanged). This is a mutation tool with minimal guidance, comparable to the update_drive example that also scored a 2.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema documents all 7 parameters with descriptions, so schema coverage is 100%. The tool description adds no additional meaning beyond what the schema already captures, so it appropriately hits the baseline of 3 for relying on the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (update) and the resource (an existing lawsuit in Advbox), which is specific enough to understand the tool's basic function. However, it doesn't distinguish this from sibling tools like advbox_create_lawsuit or advbox_get_lawsuit beyond the verb, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, no prerequisites, and no mention of whether it's appropriate for partial updates or only full replacements. The description merely states what it does without contextual usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
17 tool updates
v1.0.0- First observed
advbox_create_customer - First observed
advbox_create_lawsuit - First observed
advbox_create_movement - First observed
advbox_create_task - First observed
advbox_get_birthdays - First observed
advbox_get_customer - First observed
advbox_get_last_movements - First observed
advbox_get_lawsuit - First observed
advbox_get_lawsuit_history - First observed
advbox_get_lawsuit_movements - First observed
advbox_get_publications - First observed
advbox_get_settings - First observed
advbox_list_customers - First observed
advbox_list_lawsuits - First observed
advbox_list_tasks - First observed
advbox_list_transactions - First observed
advbox_update_lawsuit
TDQS
Most tools are clearly distinct by resource and action (e.g., list_customers vs get_customer vs create_customer). The only minor overlap is between get_lawsuit_history and get_lawsuit_movements, but descriptions clarify their different scopes.
All tools follow a consistent advbox_verb_noun pattern, using standard verbs like list, get, create, and update. There are no mixed naming conventions or vague verbs.
17 tools is slightly heavy for a typical server, but it covers multiple entities (customers, lawsuits, tasks, transactions, settings) in a coherent way. Each tool has a clear role, and the count is justified by the broad domain.
Core workflows are covered (create/get/list lawsuits, customers, tasks), but there are gaps: no update or delete for customers and tasks, no transaction detail, and no create/delete for tasks. These omissions could require workarounds but do not break primary use cases.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Wrapper for the official AdvBox API (legal practice management): cases (with history, movements, pub
Wrapper for the official Projuris ADV REST API (legal practice management): cases, people (clients/p
Law firm management MCP: manage cases, clients, tasks, calendar and documents via Claude AI.
Wrapper for the official EasyJur API (legal practice management): cases (with parties, claims, finan
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceEnables 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.-
- AlicenseAqualityDmaintenanceEnables interaction with the Argentine judiciary system (SAC - Justicia Cordoba) via Claude Desktop, supporting case searches, notifications, and procedural deadlines.12MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to provide Portuguese legal advice by exposing legal calculators, templates, and reference documents through the MCP protocol.MIT
- AlicenseCqualityAmaintenanceEnables interaction with Rocketmatter legal practice management via natural language, covering matters, clients, tasks, time, invoices, calendar, documents, and trust accounting.86MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/JonasSousaAP/advbox-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server