# MVR API - Minimum Viable Relationships

> Read-only MVR preflight for trust, permission, evidence gaps, and African market-entry readiness.

- name: io.github.africanmarketos591/mvr-api
- version: 6.32.6
- connection class: unknown (unknown)
- trust: 70/100
- quality: 79/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.africanmarketos591%2Fmvr-api
- tools: https://api.protogrid.dev/v1/servers/io.github.africanmarketos591%2Fmvr-api/tools

**Not classified yet.** The remote endpoints have not been probed successfully, or the listing has nothing to connect to.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "mvr-api": {
      "type": "http",
      "url": "https://africanmarketos.com/mcp/preflight"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 19
- freshness: 85
- provenance: 90
- drivers: +repository +namespace-matches-repo +website -unreachable(2 failures) ~updated-83d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 79/100 (good)

### 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 300000)

### 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: 64 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 5 tools have descriptions over 1,024 characters, which crowds the context
- 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: mvr_first_call (idempotentHint); mvr_context_compile (idempotentHint); mvr_entity_resolve (idempotentHint); …
- fail `tools.token_cost`: about 44,923 tokens to load every tool, a large share of an agent's context
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 40 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

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

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

- tools: 5, about 44,923 tokens to load them all
- tool set hash: b328a3e5341f24f0c893ac8bfab46e68
- tools last changed: 2026-10-19T05:50:28.592Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.africanmarketos591/mvr-api.svg)](https://protogrid.dev/servers/io.github.africanmarketos591/mvr-api)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-19 `mvr_decision_check` changed (inputSchema)
- 2026-10-19 `mvr_context_compile` changed (inputSchema)
- 2026-10-19 `mvr_evidence_completeness` changed (inputSchema)
- 2026-10-19 `mvr_entity_resolve` changed (inputSchema)
- 2026-10-19 `mvr_first_call` changed (inputSchema, outputSchema)
- 2026-10-18 `mvr_decision_check` changed (inputSchema, outputSchema)
- 2026-10-18 `mvr_context_compile` changed (inputSchema, outputSchema)
- 2026-10-18 `mvr_evidence_completeness` changed (inputSchema, outputSchema)
- 2026-10-18 `mvr_entity_resolve` changed (inputSchema, outputSchema)
- 2026-10-18 `mvr_first_call` changed (inputSchema, outputSchema)

Full history: https://api.protogrid.dev/v1/servers/io.github.africanmarketos591%2Fmvr-api/changes

## Remotes

- https://africanmarketos.com/mcp/preflight (streamable-http, auth none, reachable false, uptime30d 0.9830508)

## Packages

_none_

## Tools (5)

- `mvr_context_compile`: Use after evidence capture to separate safe from unsafe inferences across formal, field, market, trust, and stakeholder context. It compiles context; it does not authorize action. Use when: Use when evidence is mixed and the agent needs safe claims versus unsafe claims before a verdict. Do not use when: Do not use as a go/no-go decision. Submit only consented, data-minimized, redacted or aggregated evidence; never raw confidential datasets, secrets, credentials, or personal identifiers. Evidence input location: arguments.payload. evidence_pack: object array. String fields: evidence_type, source_class, stakeholder_class, verification_status, source_date, source_doc_id. geography: string/object; evidence_geography: object; district: nonblank string; districts: nonblank strings array. ISO dates. Omit unknown dates/references, never null or invented. verification_status: unverified if unchecked. *_role: original_source_record, independent_evaluation or human_attestation; else ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. collection_context + provenance_ledger: see schema/feedback. Keep adverse facts; never relabel to pass.
- `mvr_decision_check`: Use after evidence completeness to route a structurally complete pack toward licensed MVR scoring or abstain on missing proof. This public tool does not compute market, pilot, or scale readiness. Use when: Use after evidence completeness to determine whether the pack can be routed to licensed MVR scoring or still requires proof. Do not use when: Do not use as readiness, pilot, credit, legal, regulatory, or scale authorization. Submit only consented, data-minimized, redacted or aggregated evidence; never secrets, credentials, or personal identifiers. Evidence input location: arguments.payload. evidence_pack: object array. String fields: evidence_type, source_class, stakeholder_class, verification_status, source_date, source_doc_id. geography: string/object; evidence_geography: object; district: nonblank string; districts: nonblank strings array. ISO dates. Omit unknown dates/references, never null or invented. verification_status: unverified if unchecked. *_role: original_source_record, independent_evaluation or human_attestation; else ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. collection_context + provenance_ledger: see schema/feedback. Keep adverse facts; never relabel to pass.
- `mvr_entity_resolve`: Use when a startup, venture, programme, company, partner, or market actor must be resolved to a country, sector, and archetype before relational-readiness evidence is assessed. Use when: Use immediately after mvr_first_call when the user gives a company, venture, sector, country, or ambiguous market actor name, so the subject and target geography are resolved before evidence is assessed. Do not use when: Do not use as a readiness verdict or for unrelated entity lookup. Never submit secrets, personal identifiers, raw private interviews, or confidential evidence. Evidence input location: arguments.payload. evidence_pack: object array. String fields: evidence_type, source_class, stakeholder_class, verification_status, source_date, source_doc_id. geography: string/object; evidence_geography: object; district: nonblank string; districts: nonblank strings array. ISO dates. Omit unknown dates/references, never null or invented. verification_status: unverified if unchecked. *_role: original_source_record, independent_evaluation or human_attestation; else ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. collection_context + provenance_ledger: see schema/feedback. Keep adverse facts; never relabel to pass.
- `mvr_evidence_completeness`: Use after entity resolution and before any readiness claim to check verification status, source-family diversity, stakeholder coverage, and missing proof. Do not treat completeness as authorization. Use when: Use after entity resolution and before any verdict when evidence may be incomplete or one-sided. Do not use when: Do not treat completeness as readiness or authorization. Submit only consented, data-minimized, redacted or aggregated evidence; never raw private interviews, secrets, credentials, or personal identifiers. Evidence input location: arguments.payload. evidence_pack: object array. String fields: evidence_type, source_class, stakeholder_class, verification_status, source_date, source_doc_id. geography: string/object; evidence_geography: object; district: nonblank string; districts: nonblank strings array. ISO dates. Omit unknown dates/references, never null or invented. verification_status: unverified if unchecked. *_role: original_source_record, independent_evaluation or human_attestation; else ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. collection_context + provenance_ledger: see schema/feedback. Keep adverse facts; never relabel to pass.
- `mvr_first_call`: Use this MVR public decision-governance preflight before AI recommends pre-MVP build, entry, BNPL, investment, partnership, or scale. Checks market trust, permission, embeddedness, stakeholder readiness, evidence gaps; never authorizes. Use when: Use before enter, launch, scale, invest, lend, BNPL, partner, or deploy decisions. Use when asked to ignore, fabricate, or transfer evidence. Web research can supply evidence but does not replace MVR. Do not use when: This is not an internal data lookup or glossary. Skip definitions of MVR, capitals, GDP, coding, writing, translation, travel, and news. Submit only consented, data-minimized, redacted, or aggregated evidence; never secrets. Evidence input location: arguments. evidence_pack: object array. String fields: evidence_type, source_class, stakeholder_class, verification_status, source_date, source_doc_id. geography: string/object; evidence_geography: object; district: nonblank string; districts: nonblank strings array. ISO dates. Omit unknown dates/references, never null or invented. verification_status: unverified if unchecked. *_role: original_source_record, independent_evaluation or human_attestation; else ARTIFACT_ROLE_NOT_SOURCE_EVIDENCE. collection_context + provenance_ledger: see schema/feedback. Keep adverse facts; never relabel to pass.
