Geographic data by API key: countries, states, cities, currency rates and IP geolocation.
MCPpedia last refreshed this data
io.github.CloudCorpRecords/geodata is an MCP server that geographic data by API key: countries, states, cities, currency rates and IP geolocation. Its tool list has not been published yet over stdio and sse, requires no API key, and scores 89/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients - only the file and path differ.
{
"mcpServers": {
"geodata": {
"env": {
"APOGEOAPI_KEY": "<your key>"
},
"args": [
"-y",
"@reneturcios/geodata",
"mcp"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Geographic data by API key: countries, states, cities, currency rates and IP geolocation.
Run this in your terminal to verify the server starts. Then let us know if it worked - your result helps other developers.
npx -y '@reneturcios/geodata' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories - click any category to see the underlying evidence.
No known CVEs.
Checked @reneturcios/geodata against OSV.dev.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience - it helps other developers decide.
Sign in to write a review.
Others in other
deja-vu: local memory over the session histories of forty-three coding agents.
MCP WordPress Remote proxy server
专门为 agent 打造的 agent 搜索工具,具备多语言搜索能力,覆盖中文/英文/学术/代码/购物/金融/新闻/百科。
Searchable football data provider documentation for AI coding agents. Like Context7 for football data.
MCP Security Weekly
Get CVE alerts and security updates for io.github.CloudCorpRecords/geodata and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Country, state and city data, live currency rates and IP geolocation, behind one API key. geodata is a thin client for the ApogeoAPI REST API: you bring an API key, and eight tools cover the whole lookup surface — a single country in full detail, the paginated country catalogue, name search, the states and cities underneath a country, the current exchange rate for a country's currency, where an IP address lives, and one search box that spans all three levels.
Every successful call returns the upstream JSON exactly as the API sent it. Nothing is reshaped, renamed or summarised on the way through, so what your client sees is what the service returned.
Two environment variables control the client:
APOGEOAPI_KEY (required) — your API key, sent on every
request as the X-API-Key header. When it is not set,
every tool fails with APOGEOAPI_KEY is not set and no
request is made.APOGEOAPI_BASE_URL (optional) — API base URL. Defaults
to https://api.apogeoapi.com.get_country — full country data by ISO2/ISO3 code:
name, capital, region, population, currency, live USD
rate, timezones and phone code. An optional base
(for example EUR) changes the currency base for rates.list_countries — the paginated catalogue of all 250+
countries. Optional page, limit and base are sent
as query parameters when present.search_countries — countries matching a partial query
name.get_states — all states/provinces for a country code.get_cities — all cities for a state, addressed by its
numeric state_id.get_currency_rate — the live USD exchange rate for a
country's currency (updated every 4 hours), with an
optional base.geolocate_ip — country, region, city, coordinates,
timezone and EU membership for an IPv4/IPv6 ip.global_search — one query searched across countries,
states and cities at once.Validation fails before any request with a specific
message: code must be a non-empty string,
country must be a non-empty string,
query must be a non-empty string,
ip must be a non-empty string, or
state_id must be a positive integer. An upstream
non-2xx reply fails with apogeoapi error: HTTP <status>
and an unreachable API with apogeoapi unreachable.
Four request paths are pinned by the vendor site's worked examples:
GET /v1/countries/{code} (with optional ?base=)GET /v1/countriesGET /v1/countries/{country}/currency-rateGET /v1/ip/{ip}The remaining four paths are reconstructions, labelled as such: they follow the site's documented collection pattern but are not pinned by a worked example.
GET /v1/countries?search=<query> — reconstruction
(used by search_countries)GET /v1/countries/{country}/states — reconstruction
(used by get_states)GET /v1/states/{state_id}/cities — reconstruction
(used by get_cities)GET /v1/search?q=<query> — reconstruction
(used by global_search)For list_countries, the collection endpoint and its
query style are pinned, while the page / limit /
base parameter names are a reconstruction.
Each tool is a subcommand taking one JSON argument string:
export APOGEOAPI_KEY="<your key>"
npx @reneturcios/geodata get_country '{"code":"US"}'
npx @reneturcios/geodata get_country '{"code":"FR","base":"EUR"}'
npx @reneturcios/geodata list_countries '{"page":1,"limit":50}'
npx @reneturcios/geodata search_countries '{"query":"united"}'
npx @reneturcios/geodata get_states '{"country":"US"}'
npx @reneturcios/geodata get_cities '{"state_id":42}'
npx @reneturcios/geodata get_currency_rate '{"country":"DE"}'
npx @reneturcios/geodata geolocate_ip '{"ip":"8.8.8.8"}'
npx @reneturcios/geodata global_search '{"query":"paris"}'
npx @reneturcios/geodata --version
Output is the tool's result text (the upstream JSON on
success). Exit codes: 0 on success, 1 on a runtime
error (including a valida