pontofato

Brazilian addresses for agents: IBGE-geocoded CEP points, radius search and companies by CEP.

Should I use this

Quality & Safety

B
Description quality
70%
Schema completeness
78%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (8)

  • LOWTool 'api_index' description lacks action verbin api_index
  • LOWTool 'health' description lacks action verbin health
  • LOWTool 'cep' description lacks action verbin cep
  • LOWTool 'proximo' description lacks action verbin proximo
  • LOWTool 'empresas' description lacks action verbin empresas
  • LOWTool 'raio' description lacks action verbin raio
  • LOWTool 'vizinhanca' description lacks action verbin vizinhanca
  • LOWTool 'api_access' description lacks action verbin api_access

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,865Tokens (tool definitions)
~868 BTypical response size
Moderate attention impact (1.46% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "pontofato": {
      "url": "https://pontofato.com/mcp"
    }
  }
}

Remote endpoints

https://pontofato.com/mcpstreamable-http

What it can do

Tool inventory

Tools (14)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
⚪api_index

Índice auto-descrito: cada rota, o que cobra e como plugar o MCP.

Input Schema

{
  "type": "object",
  "properties": {}
}
⚪health

Disponibilidade do serviço e cobertura por UF.

Input Schema

{
  "type": "object",
  "properties": {}
}
⚪cep(cep)

Endereços de um CEP, com latitude e longitude.

Input Schema

{
  "type": "object",
  "properties": {
    "cep": {
      "type": "string",
      "description": "8 dígitos, com ou sem hífen"
    }
  },
  "required": [
    "cep"
  ]
}
⚪proximo(lat, lon)

Endereço mais próximo de latitude e longitude. Ausente ou vazio NÃO vira zero. `(0,0)` é o golfo da Guiné e só entra se a pessoa mandou.

Input Schema

{
  "type": "object",
  "properties": {
    "lat": {
      "type": "number",
      "description": "Latitude WGS84, −90 a 90."
    },
    "lon": {
      "type": "number",
      "description": "Longitude WGS84, −180 a 180."
    }
  },
  "required": [
    "lat",
    "lon"
  ]
}
⚪buscar(q, uf, cidade)

Busca textual de logradouro, com UF e cidade opcionais.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "Termo com 3+ caracteres."
    },
    "uf": {
      "type": "string",
      "description": "Restringe a uma UF."
    },
    "cidade": {
      "type": "string",
      "description": "Trecho do município."
    }
  },
  "required": [
    "q"
  ]
}
⚪unidades(cep, logradouro, numero, limit, offset)

Unidades de um CEP (apartamento, loja), com complemento e tipo. Paginado. O lookup do CEP agrupa por logradouro+número. Esta rota devolve cada unidade (apartamento, loja). Sem `logradouro`/`numero`, pagina o CEP inteiro.

Input Schema

{
  "type": "object",
  "properties": {
    "cep": {
      "type": "string",
      "description": "8 dígitos, com ou sem hífen"
    },
    "logradouro": {
      "type": "string",
      "description": "Logradouro exatamente como no lookup (tipo + nome)."
    },
    "numero": {
      "type": "string",
      "description": "Número do edifício no resultado."
    },
    "limit": {
      "type": "number",
      "description": "Itens por página, teto 50.",
      "default": 50
    },
    "offset": {
      "type": "number",
      "description": "Deslocamento 0-based.",
      "default": 0
    }
  },
  "required": [
    "cep"
  ]
}
⚪empresas(cep, page)

Empresas registradas neste CEP, até 50 por página.

Input Schema

{
  "type": "object",
  "properties": {
    "cep": {
      "type": "string",
      "description": "8 dígitos, com ou sem hífen."
    },
    "page": {
      "type": "number",
      "description": "Página 0-based, 50 por página",
      "default": 0
    }
  },
  "required": [
    "cep"
  ]
}
⚪raio(cep, lat, lon, raio)

CEPs a N metros de um ponto (cep ou lat/lon), com distância e endereços. Grátis.

Input Schema

{
  "type": "object",
  "properties": {
    "cep": {
      "type": "string",
      "description": "Centro pelo CEP (8 dígitos)"
    },
    "lat": {
      "type": "number",
      "description": "Latitude do centro, se não vier `cep`."
    },
    "lon": {
      "type": "number",
      "description": "Longitude do centro, se não vier `cep`."
    },
    "raio": {
      "type": "number",
      "description": "Metros, 1 a 2000 (padrão 500)",
      "default": 500
    }
  }
}
⚪vizinhanca(cep, lat, lon, raio, cnae, ...)

Empresas ativas, abertas e baixadas num raio em metros, por CNAE, com aberturas recentes e distância. Consulte quota.free_now no índice: vizinhanca indica cobrança desativada. Com cobrança ativa: franquia diária e tarifa própria. Consulte quota.free_now no índice: quando inclui vizinhanca ou *, a operação não cobra nem exige crédito. Com cobrança ativa, a franquia diária vem antes da tarifa por consulta.

Input Schema

{
  "type": "object",
  "properties": {
    "cep": {
      "type": "string",
      "description": "Centro pelo CEP (8 dígitos)"
    },
    "lat": {
      "type": "number",
      "description": "Latitude do centro, se não vier `cep`."
    },
    "lon": {
      "type": "number",
      "description": "Longitude do centro, se não vier `cep`."
    },
    "raio": {
      "type": "number",
      "description": "Metros, 1 a 2000 (padrão 500)",
      "default": 500
    },
    "cnae": {
      "type": "string",
      "description": "Prefixo de CNAE: 2, 5 ou 7 dígitos"
    },
    "desde": {
      "type": "string",
      "description": "ISO; padrão 90 dias antes da data da base"
    }
  }
}
⚪contact(name, email, message, tipo, empresa, ...)

Fale com quem faz o produto: dúvida, ou proposta de patrocínio/parceria/anúncio. Grátis, sem captcha nem pagamento; uma mensagem a cada 10 s por rede (a que chega antes espera a vez). Uma rota para dúvida e para proposta de patrocínio, parceria ou anúncio (`tipo`, com os espaços de `GET /api/partners`). Sem captcha, sem conta, sem pagamento. Uma mensagem a cada 10 segundos por rede: a que chega antes espera a vez e sai — sem erro. A mensagem chega à equipe por e-mail, com o `email` como endereço de resposta.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Como chamar quem escreve (alias `nome`)."
    },
    "email": {
      "type": "string",
      "description": "Para onde responder."
    },
    "message": {
      "type": "string",
      "description": "O que você quer dizer (alias `mensagem`)."
    },
    "tipo": {
      "type": "string",
      "enum": [
        "patrocinio",
        "parceria",
        "anuncio"
      ],
      "description": "Proposta: `patrocinio`, `parceria` ou `anuncio`. Liga os campos abaixo."
    },
    "empresa": {
      "type": "string",
      "description": "Quem propõe, quando é empresa."
    },
    "site": {
      "type": "string",
      "description": "Site de quem propõe."
    },
    "orcamento": {
      "type": "string",
      "enum": [
        "ate_100",
        "100_500",
        "500_2000",
        "2000_mais",
        "a_combinar"
      ],
      "description": "`ate_100`, `100_500`, `500_2000`, `2000_mais` ou `a_combinar`."
    },
    "espaco": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Ids de placement de `GET /api/partners`, até 6."
    },
    "duracao": {
      "type": "string",
      "enum": [
        "30",
        "90",
        "365"
      ],
      "description": "Dias de exposição: `30`, `90` ou `365`."
    },
    "pagamento": {
      "type": "string",
      "enum": [
        "usdc",
        "deposito",
        "a_combinar"
      ],
      "description": "`usdc`, `deposito` ou `a_combinar`."
    }
  },
  "required": [
    "name",
    "email",
    "message"
  ]
}
⚪api_access(api_pass)

Monthly data package and private purchase status, without charging.

Input Schema

{
  "type": "object",
  "properties": {
    "api_pass": {
      "type": "string",
      "description": "Private pass: api_<32 random hex>_<64 random hex>. Save before buying."
    }
  },
  "additionalProperties": false
}
🟡api_access_buy(api_pass, credit_token, payment, transaction)

Buy 1,000 basic data reads for US$1, valid for 30 days. Requires explicit payment. Same pass in retries recovers the same purchase. No automatic renewal. OCR, AI, documents and delivery keep their own tariffs. Send X-API-Pass on eligible data reads; remaining credits come in X-API-Credits-Remaining.

Input Schema

{
  "type": "object",
  "properties": {
    "api_pass": {
      "type": "string",
      "description": "Private pass: api_<32 random hex>_<64 random hex>. Save before buying."
    },
    "credit_token": {
      "type": "string",
      "description": "Existing prepaid credit token."
    },
    "payment": {
      "type": "string",
      "description": "Signed x402 payload, after authorizing the quote."
    },
    "transaction": {
      "type": "string",
      "description": "Base transaction hash to reconcile an uncertain payment with the same pass and original payload."
    }
  },
  "required": [
    "api_pass"
  ],
  "additionalProperties": false
}
⚪pricing

Current public prices and free allowances; no charge.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟡billing

Payment discovery and billing summary; does not create a charge.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded14 tools
verifiedversion not recorded14 tools