# PressGEO

> Public local AI visibility data, owner-confirmed business factsheets, and newsrooms.

- name: io.github.PressGEO/pressgeo
- version: 1.1.0
- connection class: R0 (autonomous)
- trust: 94/100
- quality: 87/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.PressGEO%2Fpressgeo
- tools: https://api.protogrid.dev/v1/servers/io.github.PressGEO%2Fpressgeo/tools

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

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "pressgeo": {
      "type": "http",
      "url": "https://pressgeo.com/mcp"
    }
  }
}
```


## Trust

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

## Quality 87/100 (new)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### 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: 86 (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`: 5 of 5 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_confirmed_entity (destructiveHint); get_local_market (destructiveHint, idempotentHint); get_local_factsheet (destructiveHint, idempotentHint); …
- pass `tools.token_cost`: about 536 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

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

- n/a `stability.changes`, `stability.rug_pull`: 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: 5, about 536 tokens to load them all
- tool set hash: b9186063b6c60310d4ccf31d0639bb2d
- tools last changed: 2026-11-05T05:31:41.736Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.PressGEO/pressgeo.svg)](https://protogrid.dev/servers/io.github.PressGEO/pressgeo)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-11-05 `list_confirmed_entities` removed
  - Published owner-confirmed public records with unsigned reproducible content receipts; not independent certification or proof of AI adoption.

Full history: https://api.protogrid.dev/v1/servers/io.github.PressGEO%2Fpressgeo/changes

## Remotes

- https://pressgeo.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (5)

- `get_confirmed_entity`: Read one published entity and its SHA-256 content-integrity receipt; owner confirmation is not independent verification.
- `get_local_factsheet`: Published, owner-confirmed factsheet for a local business: services, city, service areas, sourced awards and source URLs. Owner confirmation is not independent certification.
- `get_local_market`: Recorded 90-day AI recommendation data for local firms in a metro, optionally one service. Null citation rate means unmeasured, not zero. Use list_local_markets for valid slugs.
- `get_newsroom`: Public PressGEO newsroom for a company slug: company-supplied description, links and published releases. Statements are supplied by the company, not independently verified.
- `list_local_markets`: Metro and service slugs PressGEO covers, for use with get_local_market.
