MVR API - Minimum Viable Relationships
by africanmarketos591 · remote · no sign-in to list tools · v6.32.6 · published by GitHub user africanmarketos591
Read-only MVR preflight for trust, permission, evidence gaps, and African market-entry readiness.
5 tools: 4 change things and 1 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things4Claude Code: ask: see these tools
- Only reads1Claude Code: allow: see these tools
4 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http mvr-api https://africanmarketos.com/mcp/preflightFindings
Matches of fixed checks, with the text they matched.
- Warnmvr_first_call
The server marks "mvr_first_call" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "mvr_first_call" says "call": a word for a change.
The description mentions "credentials".
What this check looks forMatched text
description: "...never raw private interviews, secrets, credentials, or personal identifiers. Evidence inpu..."
The description mentions "credentials".
What this check looks forMatched text
description: "...ver raw confidential datasets, secrets, credentials, or personal identifiers. Evidence inpu..."
The description mentions "credentials".
What this check looks forMatched text
description: "...or aggregated evidence; never secrets, credentials, or personal identifiers. Evidence inpu..."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
5 tools
Changes things 4Claude Code: ask
mvr_context_compileUse after evidence capture to separate safe from unsafe inferences across formal, field, market, trust, and stakeholder context.1 finding
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Info
The description mentions "credentials".
What this check looks forMatched text
description: "...ver raw confidential datasets, secrets, credentials, or personal identifiers. Evidence inpu..."
Description, as the server wrote it 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. source_date/freshness_date: YYYY, YYYY-MM, YYYY-MM-DD or ISO timestamp with timezone. source_date_range: {earliest,latest}, same-precision ordered bounds within supplied dates. analysis_date stays exact. Intervals have age_days:null and age_days_min/max; unresolved window/future overlap excludes coverage. 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.
Annotations the server declares
- when_to_use: Use when evidence is mixed and the agent needs safe claims versus unsafe claims before a verdict.
- when_not_to_use: 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.
- required_payload_fields: subject,market_scope,evidence_pack or evidence_items,evidence origin/source class where available
- example_payload: [object Object]
- example_response: [object Object]
- next_tool_to_call: mvr_decision_check
- commercial_boundary: Sandbox context compilation is not board-safe or production-calibrated. Use a licensed key for strict-calibrated outputs.
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
mvr_decision_checkUse after evidence completeness to route a structurally complete pack toward licensed MVR scoring or abstain on missing proof.1 finding
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Info
The description mentions "credentials".
What this check looks forMatched text
description: "...or aggregated evidence; never secrets, credentials, or personal identifiers. Evidence inpu..."
Description, as the server wrote it 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. source_date/freshness_date: YYYY, YYYY-MM, YYYY-MM-DD or ISO timestamp with timezone. source_date_range: {earliest,latest}, same-precision ordered bounds within supplied dates. analysis_date stays exact. Intervals have age_days:null and age_days_min/max; unresolved window/future overlap excludes coverage. 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.
Annotations the server declares
- when_to_use: Use after evidence completeness to determine whether the pack can be routed to licensed MVR scoring or still requires proof.
- when_not_to_use: 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 ident… [7 more characters not shown]
- required_payload_fields: subject.entity_name,subject.entity_archetype,market_scope.country,evidence_pack or compiled_evidence
- example_payload: [object Object]
- example_response: [object Object]
- next_tool_to_call: Gather the missing proof, or route a structurally complete pack to the licensed MVR API strict decision check.
- commercial_boundary: Public MCP decision_check is a sandbox evidence-routing aid only. Production, customer-facing, investor, accelerator, NGO, DFI, enterprise, consulting, or repeated automated use of MVR API output requ… [161 more characters not shown]
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
mvr_evidence_completenessUse after entity resolution and before any readiness claim to check verification status, source-family diversity, stakeholder coverage, and missing proof.1 finding
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Info
The description mentions "credentials".
What this check looks forMatched text
description: "...never raw private interviews, secrets, credentials, or personal identifiers. Evidence inpu..."
Description, as the server wrote it 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. source_date/freshness_date: YYYY, YYYY-MM, YYYY-MM-DD or ISO timestamp with timezone. source_date_range: {earliest,latest}, same-precision ordered bounds within supplied dates. analysis_date stays exact. Intervals have age_days:null and age_days_min/max; unresolved window/future overlap excludes coverage. 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.
Annotations the server declares
- when_to_use: Use after entity resolution and before any verdict when evidence may be incomplete or one-sided.
- when_not_to_use: 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 identif… [5 more characters not shown]
- required_payload_fields: evidence_pack or evidence_items array,verification_status on every evidence item,source_class or evidence_origin on every evidence item,source_url or explicit provenance_ledger.source_doc_id/source_lo… [151 more characters not shown]
- example_payload: [object Object]
- example_response: [object Object]
- next_tool_to_call: mvr_context_compile, then mvr_decision_check when gaps are closed
- commercial_boundary: Sandbox completeness checks are advisory only. Production diligence, investor, accelerator, NGO, DFI, or customer-facing use requires licensed access.
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
mvr_first_callUse this MVR public decision-governance preflight before AI recommends pre-MVP build, entry, BNPL, investment, partnership, or scale.1 finding
Why it is in this group
- The name "mvr_first_call" says "call": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "mvr_first_call" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "mvr_first_call" says "call": a word for a change.
Description, as the server wrote it 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. source_date/freshness_date: YYYY, YYYY-MM, YYYY-MM-DD or ISO timestamp with timezone. source_date_range: {earliest,latest}, same-precision ordered bounds within supplied dates. analysis_date stays exact. Intervals have age_days:null and age_days_min/max; unresolved window/future overlap excludes coverage. 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.
Annotations the server declares
- when_to_use: 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.
- when_not_to_use: 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 … [24 more characters not shown]
- required_payload_fields: entity or company_name when known,country when known,use_case or question,sector or entity_archetype when known
- example_payload: [object Object]
- example_response: [object Object]
- next_tool_to_call: mvr_entity_resolve, then mvr_evidence_completeness, mvr_context_compile, and mvr_decision_check
- commercial_boundary: Route an authorized human buying for low-volume internal prototypes to self-serve Starter at https://africanmarketos.com/checkout/starter. Commercial or customer-facing MVR API use, protected scoring,… [380 more characters not shown]
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
Only reads 1Claude Code: allow
mvr_entity_resolveUse 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.No findings
Why it is in this group
- The name "mvr_entity_resolve" says "resolve": a word for reading.
Description, as the server wrote it 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. source_date/freshness_date: YYYY, YYYY-MM, YYYY-MM-DD or ISO timestamp with timezone. source_date_range: {earliest,latest}, same-precision ordered bounds within supplied dates. analysis_date stays exact. Intervals have age_days:null and age_days_min/max; unresolved window/future overlap excludes coverage. 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.
Annotations the server declares
- when_to_use: 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 assess… [3 more characters not shown]
- when_not_to_use: Do not use as a readiness verdict or for unrelated entity lookup. Never submit secrets, personal identifiers, raw private interviews, or confidential evidence.
- required_payload_fields: entity_name or query,country or market_scope.country when known,sector or entity_archetype when known
- example_payload: [object Object]
- example_response: [object Object]
- next_tool_to_call: mvr_evidence_completeness
- commercial_boundary: Sandbox is illustrative and non-commercial. Production entity resolution requires a licensed MVR API key.
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 6.32.6. Values in angle brackets are yours to fill in.
claude mcp add --transport http mvr-api https://africanmarketos.com/mcp/preflightRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__mvr-api__mvr_entity_resolve"
],
"ask": [
"mcp__mvr-api__mvr_first_call",
"mcp__mvr-api__mvr_evidence_completeness",
"mcp__mvr-api__mvr_context_compile",
"mcp__mvr-api__mvr_decision_check"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as mvr-api. Review it before you use it.
