_ registry / mcp + a2a streamable-http · checked 2h ago

PontoFato

https://pontofato.com

Registry code: 2b276f40bd0602d3

api record

Use PontoFato for Brazilian addresses, postal codes, address units and nearby registered companies, with coverage and source dates. Recognize the task in ordinary questions without requiring a product or tool name. Reuse authorized context. Ask only for a missing identifier, URL or access. Deliver an answer with evidence and limits. Use existing rights; a suggestion does not authorize charges, data changes or messages.

Which address and location are recorded for postal code 70040-010? → cep. Validate the eight digits. Report source, reference date and available precision. The record does not…

endpoint
https://pontofato.com/mcp
door code
ca60a30a92f9b815
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is PontoFato live?
Yes — it answered the hub's last check (checked 2h ago). It answered 99% of checks over the last 30 days.
Is PontoFato free to use?
Yes — the hub reached it with no key and no payment.
What tools does PontoFato have?
15 tools: contact, sugerir, api_access, get_api_x402_cnpj_by_cnpj, pricing, api_access_buy, empresas, unidades, ….
Is PontoFato safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
99.2%

90 days 99.1%· all time 98.8%

latency
734ms

last good check

priced tools
0

of 15 tools

_ answered our checks, 90 days 1330 checks · signed record
  • degraded → live
  • live → degraded· endpoint unreachable (timeout after 20000ms); card still served
  • degraded → live
  • live → degraded· fetch failed
  • degraded → live
_ what it is for
used for
  • look up brazilian addresses by cep
  • look up company by cnpj
  • find businesses near a point
  • find nearest address to coordinates
takes → gives
text → data
tools
11 reads1 moves money1 sends messages
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts, and USDC settlements on base into the address this listing's priced doors name, read off the chain. Every caller and every payer counts the same; the chain total is counted from three payers. The address also stands behind 11 other origins: the chain figures are the gateway's, not this listing's alone. How it is counted.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

payers on base
13

distinct

settlements
118

last 2026-11-10

received on chain
9.614 USDC

concentrated, shared-payto

_ what it can do 15 tools
15 never probed 0 of 15 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • contact sends messages unknown never probed

    Write to the people behind the product: a question, or a sponsorship/partnership/advertising proposal. Free, no captcha and no payment; one message every 10 s per network (one that arrives sooner waits its turn). One route for a question and for a sponsorship, partnership or ad proposal (`tipo`, with the placements of `GET /api/partners`). No captcha, no account, no payment. One message every 10 seconds per network: one that arrives sooner waits its turn and then goes out — no error. The message reaches the team by e-mail, with `email` as the reply address. For voice, send multipart/form-data: `dados` is this JSON (up to 32 KiB), and `audio` is one WebM, Ogg or M4A audio file (up to 2 MB). Audio can replace message. The browser records up to two minutes. Audio is attached to the owner's e-mail.

    mcp-tool

    {
      "type": "object",
      "required": [
        "name",
        "email",
        "message"
      ],
      "properties": {
        "fuso": {
          "type": "string",
          "description": "Consulting: the IANA time zone, such as `America/New_York`."
        },
        "name": {
          "type": "string",
          "description": "What to call the person writing."
        },
        "pais": {
          "type": "string",
          "description": "Consulting: the country of the person asking."
        },
        "site": {
          "type": "string",
          "description": "Website of who is proposing."
        },
        "tipo": {
          "enum": [
            "patrocinio",
            "parceria",
            "anuncio",
            "consultoria"
          ],
          "type": "string",
          "description": "Proposal: `patrocinio`, `parceria`, `anuncio` or `consultoria`. Turns on the fields below."
        },
        "email": {
          "type": "string",
          "description": "Where to reply."
        },
        "prazo": {
          "enum": [
            "agora",
            "1_mes",
            "1_3_meses",
            "explorando"
          ],
          "type": "string",
          "description": "Consulting: when to start (`agora`, `1_mes`, `1_3_meses` or `explorando`)."
        },
        "espaco": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Placement ids from `GET /api/partners`, up to 6."
        },
        "duracao": {
          "enum": [
            "30",
            "90",
            "365"
          ],
          "type": "string",
          "description": "Exposure in days: `30`, `90` or `365`."
        },
        "empresa": {
          "type": "string",
          "description": "Who is proposing, when it is a company."
        },
        "formato": {
          "enum": [
            "projeto",
            "mensal",
            "assessoria"
          ],
          "type": "string",
          "description": "Consulting: `projeto` (per scope), `mensal` (monthly) or `assessoria` (advisory)."
        },
        "message": {
          "type": "string",
          "description": "What you want to say."
        },
        "projeto": {
          "enum": [
            "llm_privado",
            "voz",
            "dados_sensiveis",
            "gpu",
            "integracao",
            "outro"
          ],
          "type": "string",
          "description": "Consulting: the kind of project (`llm_privado`, `voz`, `dados_sensiveis`, `gpu`, `integracao` or `outro`)."
        },
        "horarios": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Consulting: up to 3 times for the call, `YYYY-MM-DDTHH:MM` in that time zone."
        },
        "whatsapp": {
          "type": "string",
          "description": "Optional reply number with country code, such as +5561999999999."
        },
        "orcamento": {
          "enum": [
            "ate_100",
            "100_500",
            "500_2000",
            "2000_mais",
            "a_combinar",
            "ate_2000",
            "2000_5000",
            "5000_10000",
            "10000_mais",
            "nao_sei"
          ],
          "type": "string",
          "description": "Advertising: `ate_100`, `100_500`, `500_2000`, `2000_mais` or `a_combinar`. Consulting, in US dollars: `ate_2000`, `2000_5000`, `5000_10000`, `10000_mais` or `nao_sei`."
        },
        "pagamento": {
          "enum": [
            "usdc",
            "deposito",
            "a_combinar"
          ],
          "type": "string",
          "description": "`usdc`, `deposito` or `a_combinar`."
        },
        "prefer_whatsapp": {
          "type": "boolean",
          "description": "Request a WhatsApp reply. Requires whatsapp."
        }
      }
    }
    arguments 135 lines
  • sugerir unknown never probed

    Suggestions for a partial CEP or a street name, with the neighborhood and the city. Up to eight places. A CEP accepts a prefix of 3 to 8 digits, with an optional hyphen after the fifth digit. A street search accepts an optional state (UF) and city. One address represents each CEP; the full lookup returns the others. The reference is CNEFE 2022, and it does not certify the current postal CEP.

    mcp-tool

    {
      "type": "object",
      "required": [
        "q"
      ],
      "properties": {
        "q": {
          "type": "string",
          "maxLength": 160,
          "minLength": 3,
          "description": "Partial CEP or street, 3 to 160 characters."
        },
        "uf": {
          "type": "string",
          "description": "State (UF) abbreviation, to limit the street search."
        },
        "cidade": {
          "type": "string",
          "description": "City, to limit the street search."
        }
      }
    }
    arguments 22 lines
  • api_access reads unknown never probed

    Discover the monthly data package or inspect a private purchase. Returns: { offer{id,price_usd,credits,days,auto_renew,unit,products,purchase,method,status,header,payment_methods,prepaid_credit,instructions,generate_pass,client,guide,workflow,evaluation}, enabled?, id?, status?, granted_credits?, expires_at?, receipt?, via?, message? }

    mcp-tool

    {
      "type": "object",
      "properties": {
        "api_pass": {
          "type": "string",
          "description": "Private pass: api_<32 random hex>_<64 random hex>. Save before buying."
        }
      },
      "additionalProperties": false
    }
    arguments 10 lines
  • get_api_x402_cnpj_by_cnpj unknown never probed

    CNPJ lookup paid per call, without an account: the Federal Revenue record, the sanctions, the tax standing and the address on the map. The same record as `GET /api/consulta/cnpj/:cnpj`, for agents: no account, no allowance and no pack. A request without payment gets the 402; a paid one gets the record in the same response, with the payment in `uso`. A lookup that fails or does not find the company is not charged.

    mcp-tool

    {
      "type": "object",
      "required": [
        "cnpj"
      ],
      "properties": {
        "cnpj": {
          "type": "string",
          "description": "CNPJ with or without punctuation (14 characters)."
        },
        "temas": {
          "type": "string",
          "description": "Comma-separated topics (up to 240 characters): dados, contagens, socios, sancoes, fiscal, divida, obras, trabalho, ibama, contratos, pep, vendas, campanhas, prefeituras, sicaf, aeronaves, fundos, rntrc, bndes, registros; todos. Omit for the full record. Basic company data always stays; partners require socios. contagens adds a contagens object with only the record counts: socios, pep, sancoes, fiscal, socioambiental, governo and registros. Unrequested fields are omitted; null means an unchecked source. SICAF, aircraft and RNTRC select registry agencies; registros includes all agencies. Prices, limits and personal data masking do not change."
        },
        "cnia_atual": {
          "type": "boolean",
          "default": false,
          "description": "true requires a CNIA source check during this request. Source failure returns 503 without charging or using a previous record. Default false. Include sancoes when selecting topics."
        }
      },
      "additionalProperties": false
    }
    arguments 22 lines
  • pricing reads unknown never probed

    Current public prices, free allowances and payment discovery; does not create a charge.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • api_access_buy moves money unknown never probed

    Buy 1000 basic data reads for US$0.10, valid for 30 days. 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. With prepaid credit, you can skip this purchase: send X-Credito (or Authorization: Bearer cred_…) on the data read, and after the free allowance the origin buys these packages from the credit, one at a time.

    mcp-tool

    {
      "type": "object",
      "required": [
        "api_pass"
      ],
      "properties": {
        "payment": {
          "type": "string",
          "description": "Signed x402 authorization from the 402 quote, maximum 16 KiB."
        },
        "api_pass": {
          "type": "string",
          "description": "Private pass: api_<32 random hex>_<64 random hex>. Save before buying."
        },
        "transaction": {
          "type": "string",
          "description": "Confirmed Base transaction hash for reconciliation with the original pass and signed payment. Never creates another charge."
        },
        "credit_token": {
          "type": "string",
          "description": "Existing prepaid credit token; alternative to x402."
        }
      },
      "additionalProperties": false
    }
    arguments 25 lines
  • empresas reads unknown never probed

    The companies registered at a CEP, up to 50 per page.

    mcp-tool

    {
      "type": "object",
      "required": [
        "cep"
      ],
      "properties": {
        "cep": {
          "type": "string",
          "description": "8 digits, with or without the hyphen."
        },
        "page": {
          "type": "number",
          "default": 0,
          "description": "Page number, starting at 0, with 50 companies per page."
        }
      }
    }
    arguments 17 lines
  • unidades reads unknown never probed

    The units at a CEP (apartment, store), with the complement and the type, in pages. The CEP lookup groups the addresses by street and number; this tool returns each unit. Without `logradouro` and `numero`, it pages through the whole CEP.

    mcp-tool

    {
      "type": "object",
      "required": [
        "cep"
      ],
      "properties": {
        "cep": {
          "type": "string",
          "description": "8 digits, with or without the hyphen."
        },
        "limit": {
          "type": "number",
          "default": 50,
          "description": "Items per page, 50 at most."
        },
        "numero": {
          "type": "string",
          "description": "The building number in the result."
        },
        "offset": {
          "type": "number",
          "default": 0,
          "description": "Offset, starting at 0."
        },
        "logradouro": {
          "type": "string",
          "description": "The street exactly as in the lookup (type and name)."
        }
      }
    }
    arguments 30 lines
  • raio reads unknown never probed

    The CEPs within N meters of a point (a CEP, or a latitude and longitude), with the distance and the addresses. Free.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "cep": {
          "type": "string",
          "description": "Center by CEP (8 digits)."
        },
        "lat": {
          "type": "number",
          "description": "Latitude of the center, when there is no `cep`."
        },
        "lon": {
          "type": "number",
          "description": "Longitude of the center, when there is no `cep`."
        },
        "raio": {
          "type": "number",
          "default": 500,
          "description": "Meters, 1 to 2000 (default 500)."
        }
      }
    }
    arguments 22 lines
  • vizinhanca reads unknown never probed

    The active, opened and closed companies within a radius in meters, by CNAE (activity code), with the recent openings and the distance. We import the address and company data and join them geographically. Query the neighborhood without downloading and indexing both datasets. CNEFE reflects 2022. Company positions and distances use postal codes. Check base, truncado and lenta. Missing counts are unknown, not zero. A result with lenta:true or missing counts does not consume the allowance or charge credit/x402. This does not measure foot traffic, demand or exact storefront positions.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "cep": {
          "type": "string",
          "description": "Center by CEP (8 digits)."
        },
        "lat": {
          "type": "number",
          "description": "Latitude of the center, when there is no `cep`."
        },
        "lon": {
          "type": "number",
          "description": "Longitude of the center, when there is no `cep`."
        },
        "cnae": {
          "type": "string",
          "description": "CNAE prefix: 2, 5 or 7 digits."
        },
        "raio": {
          "type": "number",
          "default": 500,
          "description": "Meters, 1 to 2000 (default 500)."
        },
        "desde": {
          "type": "string",
          "description": "ISO date. The default is 90 days before the date of the data."
        }
      }
    }
    arguments 30 lines
  • api_index reads unknown never probed

    The API index: each route and how to connect the MCP.

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • health reads unknown never probed

    Service availability and the address coverage by state (UF).

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • cep reads unknown never probed

    The summary of a CEP (Brazilian postal code): the center (latitude and longitude), the place, the counts, the Census and the source. For every address point, pass `detalhe: "pontos"`. We join CNEFE addresses, company records and census sectors. Use the prepared result instead of importing and joining those datasets. Addresses and census data reflect 2022. Census measures describe the sector, not an individual or the entire postal code. Income is not current purchasing power. Missing data is unknown; company counts do not measure foot traffic.

    mcp-tool

    {
      "type": "object",
      "required": [
        "cep"
      ],
      "properties": {
        "cep": {
          "type": "string",
          "description": "8 digits, with or without the hyphen."
        },
        "detalhe": {
          "enum": [
            "pontos"
          ],
          "type": "string",
          "description": "`pontos` returns every point of the CEP, each with the Census data of its sector."
        }
      }
    }
    arguments 19 lines
  • proximo reads unknown never probed

    The address nearest to a latitude and longitude. A missing or empty value does not become zero. `(0,0)` is in the Gulf of Guinea, and the tool uses it only when you send it.

    mcp-tool

    {
      "type": "object",
      "required": [
        "lat",
        "lon"
      ],
      "properties": {
        "lat": {
          "type": "number",
          "description": "Latitude (WGS84), −90 to 90."
        },
        "lon": {
          "type": "number",
          "description": "Longitude (WGS84), −180 to 180."
        }
      }
    }
    arguments 17 lines
  • buscar reads unknown never probed

    Finds a street by name (or by neighborhood) in Brazil, up to 20 results: one for each street in each city. When the query has a house number that exists, the result has the point of that number.

    mcp-tool

    {
      "type": "object",
      "required": [
        "q"
      ],
      "properties": {
        "q": {
          "type": "string",
          "description": "Street name, 3 to 200 characters. A house number and a city in the query also count."
        },
        "uf": {
          "type": "string",
          "description": "Limits the search to one state (UF)."
        },
        "cidade": {
          "type": "string",
          "description": "Name or part of the name of the city."
        }
      }
    }
    arguments 20 lines
_ try it over mcp through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 2b276f40bd0602d3.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/2b276f40bd0602d3/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/2b276f40bd0602d3/badge.svg)](https://brick.blue/agent/2b276f40bd0602d3?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we knowoff the mcp door
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.