_ 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?
23 tools: contact, api_index, health, consulta_cadastro, consulta_sugerir, consulta_planos, consulta_comprar, sugerir, ….
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 23 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
15 reads2 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 23 tools
23 never probed 0 of 23 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
  • 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
  • consulta_cadastro unknown never probed

    Name, status, activity and address of a Brazilian company by CNPJ. It does not count against the daily free limit, does not show contacts or partners and runs no extra checks. The origin's protection limit still applies. For sanctions, tax status and a live CNIA check, use consulta_cnpj.

    mcp-tool

    {
      "type": "object",
      "required": [
        "cnpj"
      ],
      "properties": {
        "cnpj": {
          "type": "string",
          "description": "CNPJ, with or without punctuation."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • consulta_sugerir unknown never probed

    Suggests up to 8 Brazilian companies for a CNPJ, company name, partner, phone or e-mail, ordered by how well they match. It does not count against the daily free limit and does not show contacts. `incompleto` means one of the sources did not answer.

    mcp-tool

    {
      "type": "object",
      "required": [
        "q"
      ],
      "properties": {
        "q": {
          "type": "string",
          "maxLength": 120,
          "minLength": 3,
          "description": "A name of 3 to 120 characters, a CNPJ, a phone with area code or a full e-mail."
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • consulta_planos reads unknown never probed

    The CNPJ and address lookup service: today's free allowance, the single package, the three plans and your balance. Without a credential, it shows the free allowance and the offers. With an account, credit (`X-Credito`) or an x402 wallet (`X-Wallet-Token`), it also shows the balance shared across Radar CNPJ, PontoFato and EditalMD. The wallet credential is issued separately on each portal.

    mcp-tool

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

    Buys the single package or one of the three plans, with credit or x402, also without an account. Without payment, it returns 402 with the price in dollars and reais. The body uses x402 v1; PAYMENT-REQUIRED uses v2. With an account or credit, the balance stays with that holder. Without identification, it stays with the wallet that the x402 payment confirmed. To use this balance, sign the wallet challenge and get the mmw_… credential at the wallet_start and wallet_token URLs of the answer. The payment does not grant a login or access to the linked account. A plan adds 30 days and the quota; a package is valid for 90 days. No automatic renewal.

    mcp-tool

    {
      "type": "object",
      "required": [
        "oferta"
      ],
      "properties": {
        "compra": {
          "type": "string",
          "description": "Mark of this purchase (8 to 64 characters `A-Za-z0-9_-`): with credit, repeating with the same mark does not charge again. With x402, do not sign another payment to repeat the same purchase."
        },
        "oferta": {
          "type": "string",
          "description": "The offer: `pacote`, `basico`, `profissional` or `empresa`."
        },
        "payment": {
          "type": "string",
          "description": "Signed x402 payment, from the 402 quote."
        },
        "credit_token": {
          "type": "string",
          "description": "Prepaid credit token (`cred_…`) that pays for the purchase."
        }
      },
      "additionalProperties": false
    }
    arguments 25 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
  • api_access_buy moves money unknown never probed

    Buy 1000 basic data reads for US$1, 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
  • pricing reads unknown never probed

    Current prices and free allowances. Returns: { product, quota{free,paid,how_to_pay,live,free_now?,charged_now?,trial?}, pricing, billing, api_index }

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • billing reads unknown never probed

    Public discovery of payment and prepaid credit. Returns: { product, quota{free,paid,how_to_pay,live,free_now?,charged_now?,trial?}, pricing, billing, api_index, payment{provider,mode,network,chain_id,pay_to,homolog,dev,dev_gate,alternavel,gratis?,cobrados?,facilitator,asset,asset_address,faucet,wallets}, credit{url,header} }

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 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
  • 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
  • consulta_cep reads unknown never probed

    Addresses at a CEP (Brazilian postal code) with coordinates (CNEFE/IBGE) and the companies registered there. Returns up to 20 addresses and up to 20 companies; the total number of addresses is in `pontos_total`. Free: it uses no daily allowance or balance.

    mcp-tool

    {
      "type": "object",
      "required": [
        "cep"
      ],
      "properties": {
        "cep": {
          "type": "string",
          "description": "CEP with 8 digits."
        }
      },
      "additionalProperties": false
    }
    arguments 13 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
  • 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
  • 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
  • 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
  • consulta_cnpj reads unknown never probed

    Additional CNPJ lookup with prepared public records and an attempted CNIA source check during the request. Set cnia_atual=true when that check is required: source failure returns 503 without charging or using a previous record. Without this requirement, the last stored CNIA may be returned; read conferidoEm. Select topics to load only the needed blocks. The available free allowance comes before lookup balance or per-call payment.

    mcp-tool

    {
      "type": "object",
      "required": [
        "cnpj"
      ],
      "properties": {
        "cnpj": {
          "type": "string",
          "description": "CNPJ, with or without punctuation."
        },
        "temas": {
          "type": "string",
          "maxLength": 240,
          "description": "Comma-separated topics: 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. contagens adds a contagens object with only the record counts (socios, pep, sancoes, fiscal, socioambiental, governo, registros). Unrequested blocks are omitted; null means unchecked. Personal data remains masked."
        },
        "cnia_atual": {
          "type": "boolean",
          "default": false,
          "description": "Require a CNIA source check during this request. If it fails, return 503 without charging or using a previous record. When selecting topics, include sancoes."
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • consulta_endereco unknown never probed

    Addresses and companies at a CEP (Brazilian postal code), without counting against the daily free limit. Up to 20 addresses and 20 companies; `pontos_total` has the total number of addresses. The origin's protection limit still applies.

    mcp-tool

    {
      "type": "object",
      "required": [
        "cep"
      ],
      "properties": {
        "cep": {
          "type": "string",
          "description": "CEP, with or without the hyphen."
        }
      },
      "additionalProperties": false
    }
    arguments 13 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.