triagem-proposta
This MCP server performs deterministic credit-proposal triage for rural credit (AgDev), applying rules R1–R6 and returning a verdict with reasons and a Markdown summary.
Triage a proposal via the single tool
triar_proposta, passing thepropostaargument (required).Accept flexible input:
propostacan be a JSON object (additionalProperties: true) or a raw string.Apply six deterministic rules: R1 (degraded area < 100 ha), R2 (deforestation alert after 2020-01-01), R3 (CAR Pending/Cancelled/Suspended), R4 (cadastral status ≠ Regular), R5 (|registry − CAR| > 5% of registry), R6 (missing required field).
Return a verdict:
SEGUE,RECUSADA, orREVISÃO HUMANA, resolving conflicts soRECUSADAprevails overREVISÃO HUMANAwhile listing all reasons.Return a Markdown card with title, verdict, reasons, and pending items.
Connect from Claude clients over Streamable HTTP (cloud endpoint) or locally via stdio (Python/Docker), no business-rule reasoning done by the model itself.
Click on "Deploy 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., "@triagem-propostaTrie a proposta P-001: 850 ha degradada, 1200 ha matrícula, 1190 ha CAR"
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.
Triagem de Propostas — AgDev
Skill Claude + servidor MCP Python para triagem determinística de crédito rural.
🌐 Servidor MCP Online (Pronto para Uso em Teste):
Um servidor MCP já está implantado e disponível na nuvem para avaliação imediata:
Endpoint:
https://mcp-triagem.anotae.app.br/mcpTransporte: Streamable HTTP (padrão recomendado pela Anthropic)
Autenticação: Sem autenticação (None) (aberto temporariamente para facilitar a avaliação deste teste prático)
Healthcheck no navegador: https://mcp-triagem.anotae.app.br/
Como Conectar no Claude Web (claude.ai)
A melhor prática para agentes no Claude Web é combinar uma Skill (Instrução/Guardrail) com um Conector (MCP Tool):
O Conector (MCP Tool): Executa o código Python determinístico na nuvem.
A Skill (Instrução): Atua como governança, garantindo que o Claude nunca alucine regras de negócio e acione obrigatoriamente a ferramenta
triar_proposta.
Passo 1: Cadastrar o Conector MCP
Acesse claude.ai ➔ menu lateral Customize ➔ aba Connectors.
Clique no botão
+ Add ▾➔ Add custom connector.Preencha:
Name:
triagem-proposta(outriagem-agdev)URL:
https://mcp-triagem.anotae.app.br/mcp
Ao avançar (ou em Continue anyway):
Transport:
Streamable HTTPAuthentication:
None(sem autenticação para testes)
Salve o conector.
Passo 2: Cadastrar a Skill de Orquestração
Na mesma tela de Customize, clique na aba Skills ➔ botão
+ Add ▾➔ Add skill.Preencha o nome:
triagem-proposta.No conteúdo da instrução da Skill (
SKILL.md), cole a diretriz:Você atua na triagem de propostas da AgDev. Quando o usuário fornecer dados de uma proposta (em JSON ou texto), acione obrigatoriamente a ferramenta triar_proposta. Não avalie as regras de negócio por conta própria. Aguarde o retorno da ferramenta e apresente ao usuário exatamente o resumo em Markdown gerado por ela, contendo título, parecer, motivos e pendências.Salve e deixe a Skill ativada.
Passo 3: Utilização pelo Analista
Abra um novo chat (+ New) e envie a proposta (em JSON ou texto livre):
"Trie a proposta P-001:
{"id": "P-001", "area_degradada_ha": 850, "area_matricula_ha": 1200, "area_car_ha": 1190, "alerta_desmatamento": null, "situacao_car": "Ativo", "situacao_cadastral": "Regular"}"
O Claude ativará a Skill, acionará a ferramenta remota e entregará o card Markdown com parecer determinístico.
Related MCP server: Cronhaus Inbox MCP Server
Pré-requisitos (Execução Local)
Python 3.11+
(opcional) uv — acelera a instalação
Instalação e execução (< 5 minutos)
# 1. Clone e entre no repositório
cd agdev
# 2. Crie o ambiente e instale (com extras de teste)
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS/Linux
# source .venv/bin/activate
pip install -e ".[dev]"
# 3. Rode os testes
pytest -q
# 4. Triagem rápida via CLI (exemplos do enunciado)
python -m triagem_proposta.cli examples/propostas.json --somente-parecerSaída esperada:
P-001 SEGUE
P-002 RECUSADA
P-003 REVISÃO HUMANA
P-004 RECUSADA
P-005 REVISÃO HUMANAUma proposta isolada
python -m triagem_proposta.cli --json "{\"id\":\"P-001\",\"area_degradada_ha\":850,\"area_matricula_ha\":1200,\"area_car_ha\":1190,\"alerta_desmatamento\":null,\"situacao_car\":\"Ativo\",\"situacao_cadastral\":\"Regular\"}"Configuração no Claude Desktop
1. Abra o arquivo de configuração
Pelo próprio aplicativo: Abra o Claude Desktop, clique no menu superior esquerdo (ou ícone de engrenagem) ➔ Settings ➔ Developer ➔ clique no botão Edit Config.
Ou pelo Explorador de Arquivos:
Windows: Pressione
Win + R, digite%APPDATA%\Claudee abra o arquivoclaude_desktop_config.jsoncom o Bloco de Notas ou VS Code.macOS: Abra
~/Library/Application Support/Claude/claude_desktop_config.json.
2. Cole a configuração
A) Conectando ao Servidor Online na Nuvem (Recomendado):
{
"mcpServers": {
"triagem-proposta": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp-triagem.anotae.app.br/mcp"
]
}
}
}B) Ou rodando o Python Local:
⚠️ Atenção no Windows (Barras no caminho): No formato JSON, use barras normais (
/) ou barras duplas (\\).
{
"mcpServers": {
"triagem-proposta-local": {
"command": "D:/agdev/.venv/Scripts/python.exe",
"args": ["-m", "triagem_proposta.server"]
}
}
}(No macOS/Linux, substitua o comando por /caminho/para/agdev/.venv/bin/python).
3. Reinicie o Claude Desktop
Feche completamente o aplicativo e abra-o novamente.
4. Validação Visual
No canto inferior direito da caixa de mensagem de um novo chat, verifique o ícone de ferramentas/martelo (🔨) com a tool triar_proposta.
Configuração no Claude Code (CLI)
No terminal:
# Conectando ao servidor em nuvem:
claude mcp add triagem-proposta -- npx -y mcp-remote https://mcp-triagem.anotae.app.br/mcp
# Ou conectando localmente:
claude mcp add triagem-proposta-local -- .venv/Scripts/python.exe -m triagem_proposta.serverEstrutura
src/triagem_proposta/
models.py # Parecer, Proposta, Motivo
rules.py # R1–R6 isoladas (sem I/O)
engine.py # Orquestração + resolução de conflitos
markdown_report.py # Card Markdown
server.py # Servidor MCP (FastMCP / stdio)
cli.py # CLI local
tests/ # Casos negativos e de borda
examples/ # JSON do enunciadoRegras (resumo)
Regra | Critério | Parecer |
R1 | Área degradada < 100 ha | RECUSADA |
R2 | Alerta de desmatamento após 01/01/2020 | RECUSADA |
R3 | CAR Pendente / Cancelado / Suspenso | REVISÃO / RECUSADA |
R4 | Situação cadastral ≠ Regular | REVISÃO HUMANA |
R5 | |matrícula − CAR| > 5% da matrícula | REVISÃO HUMANA |
R6 | Campo obrigatório ausente | REVISÃO HUMANA |
Conflito: RECUSADA prevalece sobre REVISÃO HUMANA; todos os motivos são listados.
Execução via Docker (Contêiner)
Para rodar o servidor MCP encapsulado em contêiner com suporte a rede (Streamable HTTP na porta 8001/8000):
docker compose up -d --buildO endpoint MCP fica disponível em http://localhost:8001/mcp (e em produção via Cloudflare em https://mcp-triagem.anotae.app.br/mcp).
Um endpoint informativo de healthcheck responde em http://localhost:8001/.
Documentação
SKILL.md — quando usar a skill
DESIGN.md — revisão humana, dados reais, versionamento e adoção
DEPLOY_ORACLE_CLOUD.md — guia completo de deploy em contêiner na Oracle Cloud (OCI)
Available Tools
1 tooltriar_propostaA
Aplica as regras R1–R6 de forma determinística sobre uma proposta de crédito e retorna parecer (SEGUE | RECUSADA | REVISÃO HUMANA), motivos e resumo Markdown.
| Name | Required | Description | Default |
|---|---|---|---|
| proposta | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and does well: it discloses deterministic rule application (R1–R6) and enumerates the three decision outcomes. It does not describe side effects, auth needs, or input validation behavior, but for a computation-heavy triage tool the core behavior is clear.
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?
A single dense sentence that front-loads the verb and resource, then lists the outputs. Every element earns its place, and there is no redundancy or waste.
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?
An output schema exists, so return values need not be detailed, yet the description supplies the decision enum anyway. The main gap is input specification: the single parameter is undocumented and the description does not explain what shape the credit proposal should take. With no annotations and 0% schema description coverage, this leaves an agent partially under-informed.
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 0% and the single parameter 'proposta' has no schema-level explanation. The description mentions 'proposta de crédito', adding domain meaning, but does not clarify the expected structure (object vs. string) or required fields. It fails to compensate for the missing schema documentation.
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 specific verb ('Aplica as regras R1–R6') and resource ('proposta de crédito') and clearly describes the output types (parecer, motivos, resumo Markdown). This is enough to distinguish it from any potential sibling, though none exist. The deterministic nature of the rule application is also explicitly stated.
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 the tool is for credit proposal triage by naming the domain ('proposta de crédito') and the rule set (R1–R6). However, it gives no explicit when-to-use, when-not-to-use, or alternative tools. The usage context is inferable but not directly stated.
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.
1 tool update
v1.0.0- First observed
triar_proposta
TDQS
Scored across 1 tool
With only one tool, there is no possibility of confusion or overlap. The tool's purpose is clearly distinct and unambiguous.
The single tool follows a clear verb_noun pattern in snake_case (triar_proposta), consistent within itself. No competing conventions exist.
One tool is borderline thin for an MCP server, even though it matches the narrow scope of triaging a proposal. It could be seen as too focused with no additional operations.
The tool covers the entire triage process, applying deterministic rules R1–R6 and returning a verdict, reasons, and a Markdown summary. No obvious gaps exist for the stated purpose.
Maintenance
Related MCP Connectors
Deterministic decision layer for autonomous agents: reproducible PROCEED/REVIEW/SKIP verdicts.
Full business credit analysis from a CNPJ, with a suggested credit limit. Platform-hosted, no creden
Check if an ecommerce purchase meets buyer rules before payment. Returns PASS, FAIL, or REVIEW.
Author rules from policy docs, then decide: a Rete engine gives the verdict, an LLM explains why.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceAutomates carbon credit project registration document review, transforming 6-8 hour manual reviews into 60-90 minute guided workflows with automated document discovery, evidence extraction, cross-validation, and compliance report generation.-
- FlicenseNot gradedqualityDmaintenanceEnables AI-powered invoice analysis and reasoning: given invoice fields, it detects missing data, inconsistencies, duplicates, and proposes actions (register, request data, mark duplicate, review) using deterministic rules.-
- FlicenseNot gradedqualityCmaintenanceEnables creditworthiness analysis for non-traditional borrowers using rule-based scoring, financial behavior assessment, and underwriting report generation via MCP tools.1-
- FlicenseAqualityDmaintenanceDeterministic SNAP eligibility logic, exposed as auditable Model Context Protocol tools. An AI agent can read, reason, and orchestrate, but the eligibility determination itself is made by versioned, tested, cited code that a caseworker, an auditor, or a court can inspect.5-