Skip to main content
Glama
bodyegypt

turkey-data-mcp

by bodyegypt

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation5/5

    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.

    Naming Consistency5/5

    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.

    Tool Count5/5

    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.

    Completeness5/5

    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.

  • Average 4.5/5 across 7 of 7 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 5 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior4/5

    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.

    Conciseness4/5

    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.

    Completeness4/5

    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.

    Parameters3/5

    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.

    Purpose5/5

    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.

    Usage Guidelines4/5

    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.

  • Behavior4/5

    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.

    Conciseness4/5

    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.

    Completeness5/5

    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.

    Parameters3/5

    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.

    Purpose5/5

    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.

    Usage Guidelines5/5

    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.

  • Behavior4/5

    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.

    Conciseness5/5

    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.

    Completeness5/5

    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.

    Parameters4/5

    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.

    Purpose5/5

    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.

    Usage Guidelines4/5

    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.

  • Behavior5/5

    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.

    Conciseness4/5

    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.

    Completeness4/5

    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.

    Parameters4/5

    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.

    Purpose5/5

    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.

    Usage Guidelines4/5

    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.

  • Behavior4/5

    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.

    Conciseness5/5

    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.

    Completeness4/5

    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.

    Parameters4/5

    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.

    Purpose5/5

    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.

    Usage Guidelines5/5

    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.

  • Behavior4/5

    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.

    Conciseness5/5

    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.

    Completeness5/5

    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.

    Parameters4/5

    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.

    Purpose5/5

    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.

    Usage Guidelines5/5

    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.

  • Behavior5/5

    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.

    Conciseness5/5

    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.

    Completeness5/5

    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.

    Parameters5/5

    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.

    Purpose5/5

    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.

    Usage Guidelines5/5

    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.

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

turkey-data-mcp MCP server

Copy to your README.md:

Score Badge

turkey-data-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bodyegypt/turkey-data-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server