Server definition
- Hash
- sha256:f9b99b504071b55bab4cdc2fbce5980142bbc7b4bd9b6ab490b2f85b4b654da6
- What it is
- What a remote MCP server returned when asked what it offers: 3 tools
The blob, as servednamed by its sha256
{
"instructions": "Stateless visa/entry-requirements lookups. check_entry_requirements is rate limited on the free tier; for unlimited access pay per request via x402 on the HTTP API (see the llms.txt of this host). Advisory information for trip planning — not a boarding, immigration, or legal decision. Rules change frequently; verify with the destination country's official sources before travel.",
"tools": [
{
"description": "Whether a passport holder can enter a destination country: visa-free, visa on arrival, e-visa, eTA, or visa required — with allowed stay, official application portal, extended rules (passport validity, onward ticket, yellow fever, transit-without-visa) and source citations. Free tier: rate limited per caller (see /auth.md to register for a larger quota, or use the x402-paid HTTP API for unlimited access).",
"inputSchema": {
"properties": {
"destination": {
"description": "Destination country, ISO 3166-1 alpha-3 (e.g. JPN)",
"type": "string"
},
"passport": {
"description": "Passport country, ISO 3166-1 alpha-3 (e.g. NLD)",
"type": "string"
},
"purpose": {
"description": "Travel purpose (default: tourism)",
"type": "string"
},
"residence_permits_of": {
"description": "Issuers of residence permits held (ISO3 or SCHENGEN/EU/GCC)",
"items": {
"type": "string"
},
"type": "array"
},
"transit": {
"description": "Optional transit country, ISO 3166-1 alpha-3",
"type": "string"
},
"visas_of": {
"description": "Issuers of visas held (ISO3 or SCHENGEN/EU/GCC)",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"passport",
"destination"
],
"type": "object"
},
"name": "check_entry_requirements",
"outputSchema": {
"additionalProperties": true,
"description": "Visa verdict with entry rules and split provenance. Unknown or conflicting data is served as requirement 'unknown'/'needs_review' with action check_official_authority — never guessed.",
"properties": {
"allowed_stay_days": {
"description": "Maximum stay in days when the verdict grants one",
"type": [
"number",
"null"
]
},
"apply": {
"additionalProperties": true,
"description": "Official government application/information portal when action is required",
"properties": {
"kind": {
"description": "evisa | eta | visa_info",
"type": "string"
},
"source": {
"additionalProperties": true,
"description": "Official-source citation for the field it accompanies",
"properties": {
"name": {
"description": "Official authority name",
"type": "string"
},
"retrieved_at": {
"description": "YYYY-MM-DD the source was last retrieved",
"type": "string"
},
"url": {
"description": "Official page the rule was verified against",
"type": "string"
}
},
"type": "object"
},
"url": {
"description": "Official portal URL",
"type": "string"
}
},
"type": [
"object",
"null"
]
},
"dataset_version": {
"description": "Base-matrix revision (YYYY-MM-DD)",
"type": "string"
},
"defaults_applied": {
"description": "Assumptions applied to answer (e.g. purpose=tourism, ordinary passport)",
"items": {
"type": "string"
},
"type": "array"
},
"entry_rules": {
"additionalProperties": true,
"description": "Destination entry rules: passport_validity, blank_pages, onward_ticket, yellow_fever, other_health, twov (transit-without-visa), residence_permit_exemptions, official_links, purpose_scope — each non-null field cites its official source {name, url, retrieved_at}, plus last_verified and coverage (extended|basic).",
"type": "object"
},
"entry_rules_verification": {
"additionalProperties": true,
"description": "Provenance of the curated entry-rules layer: verified_official_sources | stale | not_curated | needs_review, with last_verified and staleness_days",
"type": "object"
},
"request_id": {
"description": "Unique id for reproducibility",
"type": "string"
},
"requirement": {
"description": "visa_free | visa_on_arrival | e_visa | eta | visa_required | no_admission | unknown | needs_review",
"type": "string"
},
"requirement_label": {
"description": "Human-readable verdict",
"type": "string"
},
"verdict_verification": {
"additionalProperties": true,
"description": "Provenance of the visa verdict itself — always derives from an aggregated secondary matrix (status secondary_source_only or needs_review), never claimed officially verified",
"type": "object"
}
},
"type": "object"
}
},
{
"description": "Premium evaluation of a whole trip in one call: multiple passports (best passport per leg), documents held, multi-leg itineraries with transit legs, dates and purpose — with structured why[] explanations, conditions[], and verification states per decision. PAID endpoint: the call returns HTTP 402 x402 payment instructions unless the request carries an x402 payment header; any x402-capable client settles in USDC on Base and retries.",
"inputSchema": {
"properties": {
"traveler": {
"description": "The traveler's documents",
"properties": {
"passports": {
"description": "ISO3, 1-4 passports",
"items": {
"type": "string"
},
"type": "array"
},
"residence_permits_of": {
"description": "Issuers of residence permits held (ISO3 or SCHENGEN/EU/GCC)",
"items": {
"type": "string"
},
"type": "array"
},
"visas_of": {
"description": "Issuers of valid visas held (ISO3 or SCHENGEN/EU/GCC)",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"passports"
],
"type": "object"
},
"trip": {
"description": "The itinerary to evaluate, in travel order",
"properties": {
"legs": {
"description": "Trip legs in order, up to 10",
"items": {
"properties": {
"arrival_date": {
"description": "YYYY-MM-DD; enables stay-duration and validity-window checks",
"type": "string"
},
"country": {
"description": "Leg country, ISO 3166-1 alpha-3",
"type": "string"
},
"departure_date": {
"description": "YYYY-MM-DD; enables stay-duration and validity-window checks",
"type": "string"
},
"purpose": {
"description": "Overrides the trip purpose for this leg",
"type": "string"
},
"role": {
"description": "entry = enter the country; transit = pass through in transit",
"enum": [
"entry",
"transit"
],
"type": "string"
}
},
"required": [
"country"
],
"type": "object"
},
"type": "array"
},
"purpose": {
"description": "Trip-wide travel purpose (default: tourism); per-leg purpose overrides",
"type": "string"
}
},
"required": [
"legs"
],
"type": "object"
}
},
"required": [
"traveler",
"trip"
],
"type": "object"
},
"name": "evaluate_trip",
"outputSchema": {
"additionalProperties": true,
"description": "Per-leg decisions with explanations, or — when the request carried no x402 payment — the machine-readable payment instructions to settle and retry.",
"properties": {
"error": {
"description": "Present on the unpaid path: 'payment_required'",
"type": "string"
},
"legs": {
"description": "One decision per leg: requirement, best_option (which held passport/document wins), why[] explanations with sources, conditions[] (validity, onward ticket, yellow fever, stay-duration fit), and a verification state",
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
"trip_summary": {
"additionalProperties": true,
"description": "Aggregate outcome",
"type": "object"
},
"x402_requirements": {
"additionalProperties": true,
"description": "x402 v2 payment requirements (decoded from the PAYMENT-REQUIRED header): pay in USDC on Base and retry the same call",
"type": [
"object",
"null"
]
}
},
"type": "object"
}
},
{
"description": "Coverage and freshness of the underlying visa-requirements dataset, plus endpoints and x402 pricing for the unlimited paid tier.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "get_dataset_info",
"outputSchema": {
"additionalProperties": true,
"description": "Dataset revision plus the free and x402-paid endpoints with current prices",
"properties": {
"data": {
"additionalProperties": true,
"properties": {
"retrieved_at": {
"description": "Base-matrix revision (YYYY-MM-DD)",
"type": "string"
}
},
"type": "object"
},
"docs": {
"description": "LLM-facing documentation URL",
"type": "string"
},
"free_endpoint": {
"additionalProperties": true,
"description": "The free rate-limited check endpoint",
"properties": {
"limit": {
"description": "Free-tier quota",
"type": "string"
},
"price": {
"type": "string"
},
"url": {
"type": "string"
}
},
"type": "object"
},
"paid_endpoints": {
"additionalProperties": true,
"description": "x402 pay-per-request endpoints (USDC on Base, no account)",
"properties": {
"check": {
"additionalProperties": true,
"type": "object"
},
"evaluate": {
"additionalProperties": true,
"type": "object"
},
"matrix": {
"additionalProperties": true,
"type": "object"
}
},
"type": "object"
},
"transparency": {
"description": "Data-quality metrics URL",
"type": "string"
}
},
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:f9b99b504071b55bab4cdc2fbce5980142bbc7b4bd9b6ab490b2f85b4b654da6 | sha256sum