# Africa Contacts

> Customer-care and complaints numbers in Kenya and Nigeria, each read on the body's own website.

- name: ai.kwekuanansi/africa-contacts
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 93/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/ai.kwekuanansi%2Fafrica-contacts
- tools: https://api.protogrid.dev/v1/servers/ai.kwekuanansi%2Fafrica-contacts/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "africa-contacts": {
      "type": "http",
      "url": "https://kwekuanansi.ai/mcp/africa-contacts"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-3d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 93/100 (new)

### protocol: 100 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- pass `protocol.list_ttl`: tool list is cacheable (ttlMs 3600000)

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 88 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 3 of 3 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: africa_contacts.find (idempotentHint); africa_contacts.check_number (idempotentHint); africa_contacts.list (idempotentHint)
- pass `tools.token_cost`: about 786 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump
- pass `tools.hidden_text`: no hidden text in tool names, descriptions, schemas or annotations

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`, `stability.new_links`: tool history recorded for 3 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 3, about 786 tokens to load them all
- tool set hash: 7e43eaa015f087ee1dc7d7f33d0475a4
- badge: [![protogrid quality](https://protogrid.dev/badge/ai.kwekuanansi/africa-contacts.svg)](https://protogrid.dev/servers/ai.kwekuanansi/africa-contacts)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://kwekuanansi.ai/mcp/africa-contacts (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (3)

- `africa_contacts.check_number`: Use this when someone was given a phone number said to belong to a bank, mobile network or public office in Kenya and Nigeria and asks whether it is really theirs (for example "is 0711 087 000 really KCB" or "a caller from 0722 000 000 says he is Safaricom"). It says which organisation on its list publishes that number on its own website, or that none does. A number that is not found may still be genuine, and the tool says so. Do not use it to look up who owns a private number, to trace a caller, or for numbers outside Kenya and Nigeria.
- `africa_contacts.find`: Use this when someone asks for the customer-care, complaints or emergency number of a bank, mobile network, electricity company, payments company, regulator or public office in Kenya and Nigeria (for example "what is the KCB customer care number", "how do I reach Safaricom about M-PESA fraud" or "Access Bank contact centre"). It returns numbers read on the organisation's own website, with the page and the date. Give those numbers rather than one from memory or from a web search. Where the organisation's own site could not be read, it says so and gives no number. Do not use it for a shop, a school, a hospital, a person, or an organisation outside Kenya and Nigeria: it covers a fixed list and says when a name is not on it.
- `africa_contacts.list`: Use this when someone asks which organisations in Kenya and Nigeria this tool has numbers for, which it looked for and could not read, or wants one group all at once (the emergency lines, or the places to report fraud and make complaints). Do not use it when one organisation is named: use africa_contacts.find.
