turkey-data-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@turkey-data-mcpWhat's the dollar–lira rate today?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
turkey-data-mcp
MCP server for live Turkey data — gold & silver prices, official TCMB exchange rates, fuel pump prices, prayer times and the Kandilli earthquake feed. Give Claude (or any MCP-compatible AI) real-time answers about Turkey.
Powered by the free public API at turkpidya.com. No API key required.
Tools
Tool | What it returns | Refresh |
| Gold (gram 14k–24k, Turkish coins) & silver prices in TRY, buy/sell + daily change | 5 min |
| Official TCMB rates for ~22 currencies vs Turkish lira (forex & banknote) | daily |
| EPDK pump prices (gasoline 95, diesel) for Istanbul, Ankara, Izmir, Antalya | 6 h |
| Diyanet-method prayer times for 20 Turkish cities, with Hijri date | daily |
| The 20 supported city slugs | daily |
| Recent quakes from Kandilli Observatory, filterable by window/magnitude/location | 5 min |
| The single most recent quake | 5 min |
Example prompts once installed:
"What's the dollar–lira rate today?" · "Gram altın ne kadar?" · "Was there an earthquake near Izmir this week?" · "When is maghrib in Istanbul?" · "Compare diesel prices between Ankara and Antalya."
Related MCP server: Kandilli Deprem MCP Server
Install
Requires Node.js ≥ 18.
Note: until the npm package goes live you can install straight from GitHub — replace
turkey-data-mcpwithgithub:bodyegypt/turkey-data-mcpin any snippet below (no build step needed,dist/is committed).
Claude Code (CLI)
claude mcp add turkey-data -- npx -y turkey-data-mcpClaude Desktop
Add to claude_desktop_config.json (Settings → Developer → Edit Config):
{
"mcpServers": {
"turkey-data": {
"command": "npx",
"args": ["-y", "turkey-data-mcp"]
}
}
}Any other MCP client (stdio)
npx -y turkey-data-mcpFrom source
git clone https://github.com/bodyegypt/turkey-data-mcp.git
cd turkey-data-mcp && npm install && npm run build
node dist/index.jsData sources & limits
Gold/silver: Harem Altın, cross-checked with TCMB · FX: TCMB official daily fixing · Fuel: EPDK per-brand reports, city averages · Prayer times: Diyanet İşleri calculation method · Earthquakes: Kandilli Observatory (KOERI).
All timestamps are Europe/Istanbul. All prices in TRY.
The upstream API allows 60 requests/min per IP; this server throttles itself client-side and returns a clear retry message if exceeded.
Raw REST API (no MCP needed):
https://turkpidya.com/wp-json/turkpidya-data/v1/— see turkpidya.com/developers.
Development
npm install
npm run build # compile TypeScript to dist/
npm run smoke # run all tools against the live API via a real MCP stdio clientLicense & attribution
MIT © Abdalla. Data served by turkpidya.com — attribution appreciated when republishing data. Contact: info@pidyagroup.com
Available Tools
7 toolsget_earthquakesRecent Earthquakes in TurkeyA
Get recent earthquakes in and around Turkey from the Kandilli Observatory (KOERI) official feed, refreshed every 5 minutes. Returns magnitude, depth (km), coordinates, location name and timestamp (Istanbul time) for each event, newest first. Filters: 'hours' = lookback window (default 24, max 168 = 7 days), 'min_magnitude' = minimum magnitude (e.g. 3 to skip micro-quakes), 'city' = substring match on the location name (e.g. 'izmir', 'balikesir'), 'limit' = max results (default 20, max 100). Use this for 'was there an earthquake in Turkey today?', 'deprem son dakika', 'earthquakes near Izmir this week'. For just the single most recent event, use get_latest_earthquake instead.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Case-insensitive substring filter on the location name, e.g. 'izmir', 'balikesir', 'mugla'. Use ASCII (no Turkish characters). | |
| hours | No | Lookback window in hours. Default 24, max 168 (7 days). | |
| limit | No | Maximum number of earthquakes to return. Default 20, max 100. | |
| min_magnitude | No | Only return quakes at or above this magnitude. Default 0 (all). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the data source (KOERI), refresh interval (5 minutes), return fields (magnitude, depth, coordinates, location, timestamp), ordering (newest first), and timezone (Istanbul time). This is comprehensive behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: first sentence states the action, second describes return data, third explains filters, fourth gives use cases, and fifth points to the alternative. Every sentence is informative and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even though there is no output schema, the description fully specifies what the agent can expect in the response (magnitude, depth, coordinates, location, timestamp) and the sort order. Combined with the sibling differentiation and parameter details, it is complete for a read-only tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Even though schema coverage is 100%, the description adds practical examples like '3 to skip micro-quakes' for min_magnitude and 'izmir', 'balikesir' for city. It also reiterates default and max values, giving agents a clearer sense of how to use each filter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches recent earthquakes in and around Turkey from the Kandilli Observatory (KOERI) feed. It distinguishes itself from the sibling tool get_latest_earthquake by explicitly noting that tool is for the single most recent event.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete example queries like 'was there an earthquake in Turkey today?' and 'earthquakes near Izmir this week', and explicitly tells the agent to use get_latest_earthquake for the single most recent event. This gives clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_exchange_ratesTurkish Lira Exchange Rates (TCMB)A
Get official Turkish lira (TRY) exchange rates from TCMB, the Central Bank of the Republic of Türkiye. Returns forex and banknote buy/sell rates for ~22 currencies (USD, EUR, GBP, JPY, SAR, AED, RUB, etc.). Rates are the official daily fixing published ~15:31 Istanbul time on trading days; weekends/holidays return the last trading day. Pass 'currency' (ISO 4217 code) for a single currency, or omit it for the full table. Note: JPY is quoted per 100 units (check the 'unit' field). Use this for 'dollar to lira rate', 'EUR/TRY today', or converting amounts to/from TRY.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | No | Optional 3-letter ISO 4217 currency code (e.g. 'USD', 'EUR', 'SAR'). Case-insensitive. Omit to get all ~22 currencies TCMB publishes. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and discloses key behaviors: official daily fixing time (~15:31), weekend/holiday fallback to last trading day, and the JPY-per-100-units quirk. This gives an agent essential context to interpret results, though it doesn't cover error cases for invalid currency codes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences deliver purpose, scope, timing, fallback, parameter usage, and a caveat. It is front-loaded and every sentence adds actionable information without padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only tool, the description covers source, content, timing, edge cases (weekends, JPY units), and usage examples, which fully equips an agent to select and call it correctly. No output schema exists, but the description gives enough about return values (buy/sell rates, currency list).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the currency parameter at 100% coverage. The description adds valuable context: omitting the parameter returns the full table, and it clarifies the ISO 4217 format with examples. The JPY unit note also helps interpret the returned 'unit' field, going beyond schema details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves official Turkish lira (TRY) exchange rates from TCMB, specifying the resource (Central Bank of the Republic of Türkiye) and concrete outputs (forex and banknote buy/sell rates for ~22 currencies). This distinguishes it from sibling tools like get_gold_prices or get_fuel_prices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases ('dollar to lira rate', 'EUR/TRY today', converting amounts) and explains the optional currency parameter with clear behavior (single vs full table). It doesn't explicitly name alternatives or say when not to use, but the TRY-only focus makes the appropriate context unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fuel_pricesTurkey Fuel Pump PricesA
Get current pump fuel prices in Turkey in TRY per litre, aggregated from official EPDK (Energy Market Regulatory Authority) per-brand reports. Covers gasoline 95 octane ('benzin95') and diesel ('motorin') with city averages plus min/max across brands. Available cities: istanbul, ankara, izmir, antalya. Pass 'city' to get one city, or omit it to compare all four. Refreshed every 6 hours. Use this for 'petrol price in Istanbul', 'diesel cost Turkey', 'benzin fiyatı'.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Optional city filter. One of: istanbul, ankara, izmir, antalya. Omit to get all four cities for comparison. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the data source (EPDK), refresh interval (every 6 hours), fuel types covered, and that output includes city averages plus min/max across brands. This is far beyond the minimal schema info and gives the agent a clear behavioral model.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single well-structured paragraph. It front-loads the core action, then provides source, coverage, parameter use, refresh, and examples in a logical order. Every sentence contributes value without excessive length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional param, no output schema), the description is quite complete. It explains what data is covered, where it comes from, how to filter, when it refreshes, and example queries. It doesn't detail exact JSON structure, but that's less critical for a simple lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes the only parameter (city) with enum and omission behavior. The description adds a slight reinforcement ('Pass city... or omit it to compare all four') but does not materially increase semantic understanding beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets current fuel prices in Turkey in TRY per litre, with a specific verb ('Get') and resource. It explicitly distinguishes itself from sibling tools (gold, exchange rates, prayer times, earthquakes) by naming fuels, source, and scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage examples ('Use this for petrol price in Istanbul...') and explains the optional city parameter behavior. It doesn't mention alternatives, but the sibling tools are clearly different domains, so context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gold_pricesTurkey Gold & Silver PricesA
Get current gold and silver prices in Turkey, quoted in Turkish lira (TRY). Source: Harem Altın, cross-checked with TCMB; refreshed every 5 minutes. Returns buy/sell prices, daily change (% and amount), weight and purity for: gram gold (14k/18k/22k/24k), Turkish gold coins (çeyrek/quarter, yarım/half, tam/full, cumhuriyet/republic, ata) and silver per gram. Use the optional 'category' filter to narrow results; omit it for everything. Use this for questions like 'gram altın ne kadar?', 'quarter gold coin price in Turkey', or 'how much is 24k gold in Istanbul today?'.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by category: 'gram' = gold per gram (14k–24k), 'coin' = Turkish gold coins (çeyrek, yarım, tam, cumhuriyet, ata), 'silver' = silver per gram, 'all' (default) = everything. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses data source (Harem Altın, cross-checked with TCMB), refresh interval (every 5 minutes), and return details (buy/sell prices, daily change, weight, purity). This is substantive, though it doesn't mention potential limitations or error cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is five sentences, but each sentence adds practical value: purpose, source/refresh, return contents, parameter behavior, and example queries. It's slightly longer than minimal but well-organized and front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description fully covers what the tool returns, how to use it, and its data freshness/source. It is complete and self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains the 'category' enum values. The description adds a minor usage hint about omitting it for everything, but doesn't add new semantic meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets current gold and silver prices in Turkey, quoted in TRY, with specific detail on weight/purity categories. This distinguishes it from sibling tools like get_exchange_rates and get_fuel_prices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit example queries ('gram altın ne kadar?') and explains the optional category filter's behavior ('omit it for everything'). This gives clear when-to-use guidance, though it doesn't explicitly mention alternatives, the usage context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_latest_earthquakeLatest Earthquake in TurkeyA
Get the single most recent earthquake recorded in or around Turkey by the Kandilli Observatory (KOERI). Returns magnitude, depth, coordinates, location and time (Istanbul timezone). Feed refreshes every 5 minutes. Takes no parameters. Use this for 'what was the last earthquake in Turkey?' — for lists, filtering or a longer time window, use get_earthquakes instead.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description takes on full responsibility. It discloses key behaviors: feed refresh every 5 minutes, return fields, timezone, and that it takes no parameters. It does not mention any side effects, but for a read-only tool this is adequate. Missing is explicit confirmation that it is a read-only operation, but that is implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences: purpose, return details, and usage guidance. Every sentence is necessary and carries weight; no redundancy or empty phrases.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, parameterless tool with no output schema, the description is well-rounded: it explains what is returned, notes refresh cadence, specifies timezone, and provides an alternative for broader queries. Nothing essential is missing for this scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters (100% coverage), and the description adds clarity by explicitly stating 'Takes no parameters.' For a no-parameter tool, this meets the baseline and slightly exceeds it by reassuring the user.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Get') and resource ('single most recent earthquake') with precise scope ('in or around Turkey by the Kandilli Observatory (KOERI)'), and explicitly distinguishes this from get_earthquakes by noting that the sibling handles lists and longer time windows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit when-to-use scenario ('what was the last earthquake in Turkey?') and an explicit when-not-to-use with a named alternative ('for lists, filtering or a longer time window, use get_earthquakes instead'). This is ideal guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_prayer_timesPrayer Times for Turkish CitiesA
Get Islamic prayer times (namaz vakitleri) for a Turkish city using the official Diyanet İşleri calculation method. Returns fajr, sunrise, dhuhr, asr, maghrib and isha in 24-hour local Istanbul time, plus the Hijri date. The 'city' parameter is REQUIRED — call list_prayer_cities first if unsure which cities are available (20 major Turkish cities, lowercase ASCII slugs like 'istanbul', 'ankara', 'sanliurfa'). Optional 'date' (YYYY-MM-DD) defaults to today; only a few days around today are cached — far-future or past dates return an error. Use this for 'iftar time in Istanbul', 'when is maghrib in Ankara', 'namaz vakitleri'.
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | City slug, lowercase ASCII, e.g. 'istanbul', 'izmir', 'diyarbakir', 'sanliurfa'. Turkish characters are transliterated (ş→s, ı→i, ü→u...). Call list_prayer_cities for the full list of 20 supported cities. | |
| date | No | Optional date in YYYY-MM-DD format. Defaults to today (Europe/Istanbul). Only dates near today are available. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries the burden and excels: it discloses the Diyanet calculation method, 24-hour local Istanbul time format, Hijri date return, required city, date defaulting to today, the caching limitation, and error behavior for distant dates. This is outstanding transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat lengthy but every sentence contributes: purpose, return values, usage caveats, and examples. It is front-loaded and structured, though a slight reduction in redundancy would push it to 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description adequately outlines the output contents (prayer times and Hijri date) and error conditions (far dates). While it doesn't specify exact JSON shape, the explanation is sufficient for a simple retrieval tool, and the link to list_prayer_cities covers missing city details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, providing a strong baseline. The description adds meaningful context: examples of valid city slugs, transliteration rules, the requirement to call list_prayer_cities, and the date caching boundary, enriching the schema's parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves Islamic prayer times for Turkish cities via the official Diyanet method, and enumerates the returned times (fajr, sunrise, dhuhr, asr, maghrib, isha) plus Hijri date, distinguishing it from sibling tools like gold prices or exchange rates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage examples ('iftar time in Istanbul') and directs users to call list_prayer_cities if unsure of city options. It does not explicitly mention when not to use, but the domain is clear relative to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_prayer_citiesList Supported Prayer-Time CitiesA
List the Turkish city slugs supported by get_prayer_times (20 major cities, e.g. istanbul, ankara, izmir, bursa, antalya, konya...). Call this before get_prayer_times when you are not sure a city is supported or how its slug is spelled. Takes no parameters.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of explaining behavior. It mentions that the tool lists 20 major cities, provides examples, and notes it takes no parameters. It conveys that this is a safe, read-only lookup, though it does not explicitly state the return format or ordering, which would have made it fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, brisk and informative. It front-loads the purpose, then adds usage guidance and a note about parameters. No wasted words—every segment earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple parameterless listing tool, the description is complete: it explains the purpose, gives examples, and tells when to use it alongside its sibling tool get_prayer_times. A small gap is the lack of an explicit note about the output type (e.g., array of slug strings), but given the straightforward nature, this is not a critical omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so per the rubric the baseline is 4. The description correctly notes 'Takes no parameters,' which is consistent but does not add extra semantic depth beyond the schema. This is acceptable given the absence of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the function with a specific verb ('List') and a specific resource ('Turkish city slugs supported by get_prayer_times'). It distinguishes itself from sibling tools by being a supporting lookup specifically for get_prayer_times, and provides concrete examples (istanbul, ankara, izmir).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'Call this before get_prayer_times when you are not sure a city is supported or how its slug is spelled.' This gives clear, actionable guidance with a condition, which is ideal for an AI agent deciding which tool to invoke.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
v1.0.0- First observed
get_earthquakes - First observed
get_exchange_rates - First observed
get_fuel_prices - First observed
get_gold_prices - First observed
get_latest_earthquake - First observed
get_prayer_times - First observed
list_prayer_cities
TDQS
Scored across 7 tools
Each tool targets a distinct data domain: prayer cities, gold prices, exchange rates, fuel prices, prayer times, and earthquakes. The two earthquake tools are clearly differentiated by scope (single latest event vs. filtered list), with descriptions referencing each other to avoid confusion.
All tool names follow a consistent verb_noun pattern, using either 'get' or 'list' as prefixes (e.g., get_gold_prices, list_prayer_cities). The verbs align with the action: 'list' for the enumerating helper and 'get' for retrieving specific data, maintaining a predictable and clean naming scheme.
With exactly 7 tools, the server is well-scoped for a niche domain focused on Turkey-specific data. Each tool serves a clear purpose without redundancy, and the count is within the ideal range for a specialized MCP server.
The tool set covers its apparent domain comprehensively: prayer times with a city helper, gold and exchange rates with full/optional filtering, fuel prices, and earthquake data with both summary and detailed list access. The inclusion of helper and convenience functions (list_prayer_cities, get_latest_earthquake) rounds out the surface, leaving no obvious dead ends.
Maintenance
Related MCP Connectors
Unlock the power of real-time cryptocurrency data with our Crypto Price Insights MCP server.
Official CoinMarketCap MCP server: real-time crypto prices, market cap, rankings and exchange data.
This MCP server provides seamless access to Malaysia's government open data, including datasets, w…
Geospatial MCP server for earthquake, tsunami, volcano, disaster, and FX data queries.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that provides current and historical gold/precious metal prices (gold, silver, platinum, and palladium) via the GoldAPI.io service with support for multiple currencies.1MIT
- AlicenseNot gradedqualityBmaintenanceEnables fetching latest earthquake data from Kandilli Observatory, searching earthquakes by region, and obtaining regional statistics through MCP tools.MIT
- FlicenseAqualityBmaintenanceMCP server for Turkish financial markets, providing BIST stock analysis, TEFAS fund data, TCMB macro indicators, KAP disclosures, analyst consensus forecasts, and portfolio optimization/risk simulation tools.18-
- AlicenseNot gradedqualityBmaintenanceAn MCP server that provides verified official Turkish electricity system data (from TEİAŞ and EÜAŞ) via tools for querying generation, installed capacity, demand, and import/export, enabling natural language access to energy statistics.MIT