Overview
The `country` parameter takes an ISO 3166-1 alpha-2 code such as `CA` or `de`; it is trimmed and uppercased before lookup. The code is resolved against a country code reference, then matched to a world countries dataset for the common name, the `landlocked` flag and the center coordinates, and finally to a borders dataset keyed by the same two-letter code. A code that fails any of these steps returns a 404 with `country not found`.
`borders` lists each neighbor by its three-letter ISO 3166-1 alpha-3 code, for example `["USA"]` for Canada, rather than by name. Map them to names with a country lookup if you need to display them. The list covers land borders only; when the dataset records no land neighbors for a country, the array is empty.
`country` is the common English name and `cca2` the two-letter code. `region` and `subregion` come from the borders dataset and use broad groupings such as Americas and Northern America for Canada. `landlocked` is true when the country has no coastline.
`coordinates.lat` and `coordinates.lng` are the country's representative point from the world countries dataset, often rounded to whole degrees (Canada is 60, -95). Treat them as a point to centre a map on, not as a geometric centroid or a capital city location. They are null on the Free plan; every other field is returned on all plans.
Live Test Country Borders Skill Skill →
The tool
Once your client is connected to the VerveKit server, this appears in its tool list as CountryBordersSkill. It is read-only and open-world — it fetches and never mutates anything on your side — so most clients call it without asking you to confirm.
{
"name": "CountryBordersSkill",
"arguments": {
"country": "CA"
}
}You do not name the tool yourself; the model picks it. Asking about CA in the terms this skill covers is enough for it to reach for CountryBordersSkill on its own — naming it explicitly also works, and is the way to force the call.
Connecting
One server URL covers every skill in the catalog, including this one. Authorization is OAuth: the client opens a browser once, and there is no key to paste into a config file.
{
"mcpServers": {
"vervekit": {
"url": "https://api.vervekit.com/v1/mcp"
}
}
}https://api.vervekit.com/v1/mcpPer-client setup — Claude, Cursor, VS Code, ChatGPT — is on the MCP setup page.
Arguments
These are the properties on the tool's inputSchema, so a well-behaved client validates them before the call is made. Premium arguments are accepted on every plan but only take effect on plans that include them.
| Argument | Type | Description |
|---|---|---|
countryRequired | string | The Country 2 Letter ISO code (e.g., CA) length 2–2 |
What the model gets back
The result carries a structuredContent object matching the tool's declared outputSchema, so a client reads fields without parsing prose. status is "ok" and error is null on success; a null field means the value was not available for that input, not that the call failed.
{
"status": "ok",
"error": null,
"data": {
"country": "Canada",
"cca2": "CA",
"landlocked": false,
"region": "Americas",
"subregion": "Northern America",
"coordinates": {
"lat": 60,
"lng": -95
},
"borders": [
"USA"
]
}
}
Response fields
Paths are relative to data. Premium fields are absent rather than zeroed on plans that do not include them, so check for presence instead of comparing to 0.
| Field | Type | Example | Description |
|---|---|---|---|
country | string | Canada | Full name of the country |
cca2 | string | CA | Two-letter ISO country code |
landlocked | boolean | false | Indicates if country is landlocked without ocean access |
region | string | Americas | Geographic continent or major world region |
subregion | string | Northern America | More specific geographic subdivision within region |
coordinates | object | {…} | |
coordinates.latPremium | number | 60 | Latitude coordinate of country center point |
coordinates.lngPremium | number | -95 | Longitude coordinate of country center point |
borders | array | ["USA"] | List of neighboring country names that share borders |
Failure modes
Errors come back as tool errors carrying a sentence the model can act on, not a bare status code. Error handling covers the full list.
| Status | What it means |
|---|---|
400 / 422 | The arguments did not validate. The message names the offending one. |
401 | The OAuth session is invalid or expired — reconnect the server. |
403 | Blocked by a key restriction or an IP allow-list. Never a bad identity. |
404 | This skill is not part of VerveKit. Check the catalog. |
429 | Out of credits, or a brief rate limit. The message tells them apart. |
A call costs 2 credits each time the tool actually runs; a model that reasons about the tool without calling it costs nothing.
Use cases
- Cross-Border Route Planning
- Freight dispatchers check adjacent nations along transport corridors to verify transit jurisdictions and identify landlocked destinations needing sea-port rerouting.
- Regional Market Expansion
- E-commerce platforms identify neighboring territories around existing warehouses to sequence regional delivery coverage country by country.
- Geopolitical Strategy Games
- Game developers build realistic adjacency maps between territories to enforce valid troop movements across shared national borders.
- Compliance Risk Screening
- When auditing vendor supply chains, trade compliance officers flag suppliers operating adjacent to sanctioned territories.
Other ways to use Country Borders Skill
Set up Country Borders Skill on VerveKit, or reach the same source a different way. Your VerveKit account and credits work on all of them — one key, one balance.
Related
More in Geography: