Koskamo

Zovo Country Data MCP

Compare up to 12 countries on up to 4 World Development Indicators, computing change, CAGR, and rankings, then providing Excel, CSV, and PDF outputs with APA-style citations.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Zovo Country Data MCP logo, by ZovoCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-08Published by Zovo
MCP endpoint (Streamable HTTP)
https://country-data.zovo.one/mcp
Vendor documentation

What its tools do

3 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

3 of 3 have a description · 3 of 3 declare behavior hints · 3 of 3 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Compare GDP per capita PPP for multiple countries over a year range
  • Rank Sub-Saharan African countries by life expectancy
  • Generate Excel workbooks with sources and CSV data files

Source and maintenance

Community listingRegistry 1.0.0

Protocol and capabilities

Server
country-data 1.0.0
MCP protocol negotiated in check
2025-11-25
Tools
3 advertised
Resources
1 advertised
Resource templates
1 advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  },
  "resources": {
    "listChanged": true
  }
}

Tools

3 advertised

search_indicators — Search indicators
Advertised by the server during the last successful anonymous check.
Advertised read-only

Use this when the user names an economic, social or environmental measure in words and you need its World Development Indicators code before comparing or ranking countries. Common indicators are listed first. Returns up to 15 codes and names. Does not return data values.

search_indicators input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 80,
      "description": "Keyword or short phrase for the measure, e.g. inflation, GDP per capita PPP, CO2 per capita."
    }
  }
}
search_indicators output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "query",
    "total_matches",
    "results",
    "source"
  ],
  "properties": {
    "query": {
      "type": "string"
    },
    "source": {
      "type": "object",
      "required": [
        "name",
        "url",
        "license"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "license": {
          "type": "string"
        },
        "retrieved_utc": {
          "type": "string"
        },
        "wdi_last_updated": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "code",
          "name",
          "topic",
          "curated"
        ],
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "topic": {
            "type": "string"
          },
          "curated": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      }
    },
    "total_matches": {
      "type": "number"
    }
  },
  "additionalProperties": false
}
search_indicators annotations
{
  "title": "Search indicators",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
compare_countries — Compare countries
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Use this when the user wants to compare 2 to 12 countries on 1 to 4 World Bank indicators over a year range, for example GDP per capita PPP, inflation, population, unemployment, CO2 or life expectancy. Returns the latest value and year per country, first value, change, CAGR and missing years, a chart, and XLSX, CSV and PDF files with citations. Missing years are not filled. Does not forecast or cover sub-national regions.

compare_countries input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "countries",
    "indicators"
  ],
  "properties": {
    "end_year": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": -9007199254740991,
      "description": "Last year, not after the current year, e.g. 2024. Default: last year."
    },
    "countries": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 60,
        "description": "ISO 3-letter code or World Bank country/aggregate name, e.g. DEU, Germany, World."
      },
      "maxItems": 12,
      "description": "2 to 12 countries, e.g. [\"DEU\", \"FRA\", \"ITA\"]."
    },
    "indicators": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 60,
        "description": "World Development Indicators code or common name; these names work without search_indicators: GDP, GDP per capita, GDP per capita PPP, GDP growth, inflation, unemployment, population, life expectancy, CO2 per capita, Gini."
      },
      "maxItems": 4,
      "description": "1 to 4 indicators, e.g. [\"NY.GDP.PCAP.PP.CD\", \"FP.CPI.TOTL.ZG\"]."
    },
    "start_year": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": -9007199254740991,
      "description": "First year, 1960 or later, e.g. 2000. Default: 14 years before end_year."
    }
  }
}
compare_countries output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "status",
    "years",
    "countries",
    "indicators",
    "notes",
    "source",
    "downloads"
  ],
  "properties": {
    "notes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "years": {
      "type": "object",
      "required": [
        "start",
        "end"
      ],
      "properties": {
        "end": {
          "type": "number"
        },
        "start": {
          "type": "number"
        }
      },
      "additionalProperties": false
    },
    "source": {
      "type": "object",
      "required": [
        "name",
        "url",
        "license"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "license": {
          "type": "string"
        },
        "retrieved_utc": {
          "type": "string"
        },
        "wdi_last_updated": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "status": {
      "type": "string"
    },
    "countries": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "iso3",
          "name"
        ],
        "properties": {
          "iso3": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "downloads": {
      "anyOf": [
        {
          "type": "object",
          "required": [
            "xlsx",
            "csv",
            "pdf"
          ],
          "properties": {
            "csv": {
              "type": "string"
            },
            "pdf": {
              "type": "string"
            },
            "xlsx": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "indicators": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "code",
          "name",
          "kind",
          "change_unit",
          "status",
          "rows"
        ],
        "properties": {
          "code": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "rows": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "iso3",
                "latest_year",
                "latest_value"
              ],
              "properties": {
                "iso3": {
                  "type": "string"
                },
                "first": {
                  "type": "string"
                },
                "change": {
                  "type": "string"
                },
                "latest": {
                  "type": "string"
                },
                "country": {
                  "type": "string"
                },
                "cagr_pct": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "change_pct": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "first_year": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "first_value": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "latest_year": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "latest_value": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "change_points": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "missing_years": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          },
          "status": {
            "type": "string"
          },
          "citation": {
            "type": "string"
          },
          "change_unit": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
compare_countries annotations
{
  "title": "Compare countries",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
rank_countries — Rank countries
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Use this when the user wants countries ranked on one World Bank indicator for a year, optionally within a region or income group, for example the highest life expectancy in Sub-Saharan Africa. Aggregates are excluded; ties share a rank; countries without a value are listed separately. Returns the top entries and XLSX, CSV and PDF files with the full ranking. Does not combine indicators into a score.

rank_countries input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "indicator"
  ],
  "properties": {
    "year": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": -9007199254740991,
      "description": "Year, e.g. 2022. Leave out to use the latest year in which at least half of the filtered countries have a value."
    },
    "limit": {
      "type": "integer",
      "maximum": 50,
      "minimum": 1,
      "description": "How many top entries to show in chat, 1 to 50, e.g. 10. Files hold the full ranking. Default 20."
    },
    "order": {
      "enum": [
        "desc",
        "asc"
      ],
      "type": "string",
      "description": "desc for highest first (default), asc for lowest first, e.g. asc."
    },
    "region": {
      "enum": [
        "EAS",
        "ECS",
        "LCN",
        "MEA",
        "NAC",
        "SAS",
        "SSF"
      ],
      "type": "string",
      "description": "World Bank region code, e.g. SSF for Sub-Saharan Africa, ECS Europe & Central Asia, EAS East Asia & Pacific, LCN Latin America & Caribbean, MEA Middle East, North Africa, Afghanistan & Pakistan, NAC North America, SAS South Asia."
    },
    "indicator": {
      "type": "string",
      "maxLength": 60,
      "description": "World Development Indicators code or common name, e.g. SP.DYN.LE00.IN or life expectancy."
    },
    "income_group": {
      "enum": [
        "LIC",
        "LMC",
        "UMC",
        "HIC"
      ],
      "type": "string",
      "description": "World Bank income group, e.g. HIC for high income, UMC upper middle, LMC lower middle, LIC low income."
    }
  }
}
rank_countries output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "status",
    "indicator",
    "year",
    "filter",
    "order",
    "countries_in_filter",
    "with_data",
    "without_data",
    "ranking",
    "source",
    "downloads"
  ],
  "properties": {
    "year": {
      "type": [
        "number",
        "null"
      ]
    },
    "order": {
      "type": "string"
    },
    "shown": {
      "type": "number"
    },
    "filter": {
      "type": "string"
    },
    "source": {
      "type": "object",
      "required": [
        "name",
        "url",
        "license"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "license": {
          "type": "string"
        },
        "retrieved_utc": {
          "type": "string"
        },
        "wdi_last_updated": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "status": {
      "type": "string"
    },
    "ranking": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "rank",
          "country",
          "iso3",
          "value",
          "display"
        ],
        "properties": {
          "iso3": {
            "type": "string"
          },
          "rank": {
            "type": "number"
          },
          "value": {
            "type": "number"
          },
          "country": {
            "type": "string"
          },
          "display": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "downloads": {
      "anyOf": [
        {
          "type": "object",
          "required": [
            "xlsx",
            "csv",
            "pdf"
          ],
          "properties": {
            "csv": {
              "type": "string"
            },
            "pdf": {
              "type": "string"
            },
            "xlsx": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "indicator": {
      "type": "object",
      "required": [
        "code",
        "name"
      ],
      "properties": {
        "code": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "citation": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "with_data": {
      "type": "number"
    },
    "year_rule": {
      "type": "string"
    },
    "without_data": {
      "type": "number"
    },
    "countries_in_filter": {
      "type": "number"
    }
  },
  "additionalProperties": false
}
rank_countries annotations
{
  "title": "Rank countries",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

1 advertised

country-data-widget — Zovo Country Data view

Advertised by the server during the last successful anonymous check.

Interactive view for Zovo Country Data.

country-data-widget URI
ui://widget/country-data-1-1.0.0-a36789616f7677c23cf87ff3bb492e30a5c1b81b59591a75c42ededa282cafa7.html

MIME type: text/html;profile=mcp-app

country-data-widget-legacy — Zovo Country Data view (previous versions)

Advertised by the server during the last successful anonymous check.

country-data-widget-legacy URI template
ui://widget/country-data-{version}.html

MIME type: text/html;profile=mcp-app

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1002 ms
95th percentile latency
1002 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1002 ms · metadata changed · 3 tool(s), 1 resource(s), 1 resource template(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http zovo-country-data-mcp https://country-data.zovo.one/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add zovo-country-data-mcp --url https://country-data.zovo.one/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable zovo-country-data-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "zovo-country-data-mcp": {
      "url": "https://country-data.zovo.one/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "zovo-country-data-mcp": {
      "type": "streamableHttp",
      "url": "https://country-data.zovo.one/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start zovo-country-data-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "zovo-country-data-mcp": {
      "type": "http",
      "url": "https://country-data.zovo.one/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http zovo-country-data-mcp https://country-data.zovo.one/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://country-data.zovo.one/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "zovo-country-data-mcp": {
      "serverUrl": "https://country-data.zovo.one/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Zovo Country Data MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.