Hasfiyat Altın API
Server Details
Official MCP server of Hasfiyat Altın API: live Turkish gold & FX prices (TRY), history, calc.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 4 tools
get_prices (live quotes), get_price_history (OHLC history), calculate_value (quantity × price math), and list_sources (metadata) each target a distinct need. The only mild overlap is between get_prices and calculate_value, since an agent could fetch a price and multiply manually, but the descriptions make the boundary reasonably clear.
All four tools use a consistent snake_case verb_noun pattern: calculate_value, get_price_history, get_prices, list_sources. The get_* family is uniform and list_sources/calculate_value fit the same style.
Four tools is a small but well-scoped surface for a price API where each tool earns its place. It is on the thin side — no dedicated symbol-discovery tool — but nothing feels padded or redundant.
The surface covers live quotes, historical OHLC, value calculation, and source discovery, which spans the core lifecycle of a pricing API. Minor gaps exist: symbol enumeration relies on calling get_prices with an empty symbols list, and there is no batch calculation or unit/metadata lookup.
Available Tools
4 toolscalculate_valueAltın/döviz tutarı hesaplaARead-onlyIdempotentInspect
Bir kalemin canlı fiyatıyla miktar × fiyat hesabı yapar. Ör. 15 gram 22 ayar, 3 çeyrek, 1000 USD kaç TL. side: satış (sell, müşterinin alırken ödediği) veya alış (buy). Computes quantity × live price in TRY.
| Name | Required | Description | Default |
|---|---|---|---|
| side | No | sell = satış fiyatı, buy = alış fiyatı. | sell |
| source | No | Fiyat kaynağı kodu. | harem |
| symbol | Yes | Kalem, ör. "GRAM", "22 AYAR", "CEYREK", "USD". | |
| quantity | Yes | Miktar (gram, adet veya döviz birimi). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/destructive/idempotent/openWorld, so the bar is lower. The description adds useful context by stressing 'canlı fiyat' (live price), explaining why results vary and why the tool is open-world, but it omits things like caching/staleness, error behavior for unknown symbols, and whether the price is fetched at call time per `source`.
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?
Front-loaded with the core formula and backed by concrete examples; the `side` clarification is placed sensibly. The Turkish/English duplication of the same sentence ('miktar × fiyat' / 'quantity × live price in TRY') is slightly redundant but not damaging.
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 read-only calculation tool with full schema coverage and no output schema, the definition supplies the formula, the output currency (TRY), and input examples — enough to call it correctly. It stops short of describing the result shape (single total vs. price + total breakdown) or behavior on an unknown symbol, which would be the remaining gap.
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%, so baseline is 3; the description goes beyond by reframing `side` from the customer's perspective ('müşterinin alırken ödediği') and giving symbol examples that match the schema's own examples, reinforcing the expected value format. `source` and `quantity` semantics remain schema-only, but overall it adds real nuance.
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?
States a specific verb and formula (quantity × live price) plus the target domain (gold/currency in TRY), and the worked examples ('15 gram 22 ayar, 3 çeyrek, 1000 USD kaç TL') make the computation concrete. It is clearly distinguishable from get_prices/get_price_history by the presence of a quantity multiplier, though no sibling is named explicitly.
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 implies when to use it (when you need a total value rather than a unit price) and clarifies the sell/buy perspective, but never states the alternative explicitly — e.g. 'use get_prices for the raw quote, this tool for a quantity total'. No exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_price_historyGeçmiş fiyat (OHLC)ARead-onlyIdempotentInspect
Bir kalemin günlük (1d) veya saatlik (1h) açılış/yüksek/düşük/kapanış geçmişini döndürür (harem kaynağı). Günlük veri 4 Ekim 2026'dan, saatlik veri son 45 günden itibaren vardır. Tarihler YYYY-MM-DD. Returns daily or hourly OHLC history (Europe/Istanbul).
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Bitiş tarihi (YYYY-MM-DD). | |
| from | No | Başlangıç tarihi (YYYY-MM-DD). | |
| period | No | 1d = günlük, 1h = saatlik. | 1d |
| symbol | No | Kalem adı veya kısaltması, ör. "HAS ALTIN", "GRAM", "USD". | HAS ALTIN |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnly, idempotent, non-destructive and openWorld, so the description only has to add depth. It does so by disclosing the bounds of historical data and the Europe/Istanbul timezone, which matters for interpreting the returned timestamps. It stops short of explaining empty-range behavior or error responses.
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 short and front-loads the core behavior followed by data-availability constraints. The full English restatement of the final sentence is somewhat redundant, given that the first sentence is already Turkish, which costs it a perfect score.
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 read-only history tool with no output schema, the description covers what is returned (OHLC), the granularity options, the coverage window and the timezone. Only edge behavior such as out-of-range dates or empty results is left unstated.
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?
With 100% schema description coverage, the schema already documents all four parameters, including the date pattern, the period enum and example symbols. The description reinforces the YYYY-MM-DD format and the timezone, but it adds no syntax or constraint detail beyond what the schema already says. A 3 reflects this baseline.
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 names a specific resource and verb ('returns daily or hourly open/high/low/close history') and states the data source ('harem kaynağı'), which distinguishes it from the sibling 'get_prices'. It does not explicitly name the sibling tools as alternatives, so it falls short of a 5.
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?
Usage is implied through data-availability limits: daily data starts 4 Oct 2026, hourly data covers only the last 45 days. That steers an agent toward the right period value, but there is no explicit statement about when to pick this tool over 'get_prices' or what to do if the requested range falls outside the window.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pricesCanlı altın ve döviz fiyatlarıARead-onlyIdempotentInspect
Türkiye piyasası için canlı altın, gümüş, döviz ve parite alış/satış fiyatlarını döndürür (TL). symbols boşsa kaynaktaki tüm kalemler gelir. Örnek semboller: HAS, GRAM, CEYREK, YARIM, TAM, ATA, 22 AYAR, ONS, USD, EUR. Her çağrı 1 REST isteği sayılır. Returns live Turkish market gold/FX buy & sell prices in TRY.
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | Fiyat kaynağı kodu (varsayılan harem). | harem |
| symbols | No | İstenen semboller, ör. ["HAS","GRAM","CEYREK","USD"]. Boş bırakılırsa tüm kalemler. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and openWorld, so the safety profile is covered. The description adds genuinely new context: each call counts as one REST request (a quota/rate signal), prices are in TRY, and an empty symbol list returns every item from the source.
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?
Front-loaded with the core purpose, then the empty-list rule, examples and the REST-request cost — a sensible order. The closing English sentence largely duplicates the opening Turkish one, which is defensible for non-Turkish agents but is redundant text.
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?
With no output schema, the description carries the burden of describing returns, and it does state that buy/sell prices in TRY come back for the requested items. For a two-parameter read tool this is nearly sufficient, though the response shape (per-item fields) and the meaning of the source codes remain unstated.
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 documents both `source` and `symbols`, including the empty-list behavior. The description contributes a longer example symbol vocabulary (ONS, parities, gold grades) but no explanation of what the twelve source codes mean or how they differ, leaving that to list_sources.
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 names a specific verb and resource set: it returns live gold, silver, FX and parity buy/sell prices for the Turkish market in TRY. That clearly separates it from get_price_history (historical) and calculate_value (computation), though it never names those siblings explicitly.
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?
There is no when-to-use or when-not-to-use guidance, and no routing to get_price_history, list_sources or calculate_value. The only usage-adjacent statement is that an empty `symbols` list returns everything, which is parameter behavior rather than tool selection advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sourcesFiyat kaynaklarını listeleARead-onlyIdempotentInspect
Hasfiyat Altın API'nin desteklediği fiyat kaynağı kodlarını listeler (get_prices için source). API anahtarı gerektirmez, kota harcamaz. Lists the price source codes accepted by get_prices. No API key needed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds operational facts the annotations do not: no API key required and no quota consumed, which matters for an agent deciding whether it is cheap to call. It does not describe the shape of the returned list, which is the remaining gap.
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?
Two short sentences, front-loaded with what is listed and followed by the operational caveats. The Turkish and English versions are near-duplicates rather than a single tight statement, which is mild redundancy, but each sentence still carries distinct information (purpose, then no-key/no-quota).
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 zero-parameter, read-only lookup with no output schema, the definition covers purpose, downstream use, and cost/auth behavior. The only missing piece is any hint about the returned value's format (e.g. a flat array of code strings), which would fully close the loop given there is no output schema.
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 takes zero parameters, so the baseline is 4 and there is nothing for the schema to document. The description still adds value by explaining that the returned codes are the accepted inputs for get_prices' source argument, linking the output to a downstream parameter.
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?
States a specific verb and resource ("lists the price source codes") and explicitly scopes it as "accepted by get_prices", which ties it directly to a named sibling. An agent can distinguish it from get_prices, get_price_history and calculate_value without opening any schema.
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 parenthetical "(get_prices için `source`)" makes the intended use clear: call this to discover valid values for get_prices' source argument. It stops short of an explicit "call this before/only when you need a source code" instruction, and names no exclusion cases, but 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
calculate_value - First observed
get_price_history - First observed
get_prices - First observed
list_sources
Related MCP Connectors
Official MCP server for Agentwork — delegate tasks to AI agents with human-in-the-loop
Official MCP server for MAQAMI, a hotel and flight booking platform with 3M+ hotels.
Official MCP server for Softhills 3D/2D Visualization SDKs, API documentation, and code examples.
Unlock the power of real-time cryptocurrency data with our Crypto Price Insights MCP server.
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server for live Turkey data — gold & silver prices, official TCMB exchange rates, fuel pump prices, prayer times and the Kandilli earthquake feed.773 npm1MIT
- 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
- AlicenseAqualityCmaintenanceOfficial MCP server that exposes 8 tools for real-time and historical commodity prices (gold, silver, oil, and 140+ more), allowing AI assistants to query market data via natural language.8463 npmMIT

OrcaRail MCPofficial
AlicenseBqualityBmaintenanceOfficial MCP server for accepting crypto payments through OrcaRail. It enables AI agents to create payment intents, manage subscriptions, handle product catalogs, and get exchange rates via natural language.26252 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.