akakce-mcp
Summary: akakce-mcp lets AI agents search Akakçe, compare live prices and sellers, browse categories/deals, and manage authenticated account features.
Autocomplete product/category queries and find canonical product codes.
Search products with pagination, sorting, category filters, and available filter groups.
Browse category feeds, home cards/campaigns/collections, and recent deals.
Get batched or single-product quick prices, cheapest sellers, shipping, ratings, links, and full product detail with all sellers.
Retrieve a product price-history chart image URL.
Log in/logout, check account info, and persist session securely.
List/manage favorites and add/remove products.
List, create/update, and receive price-drop alerts and notifications.
Optionally enrich/summarize/filter/compare Akakçe data with an LLM if FIREWORKS_API_KEY is set.
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., "@akakce-mcpcompare prices for Sony WH-1000XM5 across sellers"
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.
akakce-mcp is a free, open-source Model Context Protocol (MCP) server for Akakçe that equips AI agents with real-time Turkish price comparison, multi-seller market intelligence, and automated price drop alerts.
📖 Documentation Portal: https://nsozturk.github.io/akakce-mcp/ • AI/LLM Index: llms.txt • llms-full.txt
Key Highlights
🛡️ Akamai Bot Protection Bypassed: Standard Node
fetch/ Axios clients are fingerprinted and blocked withHTTP 403 Forbidden.akakce-mcproutes requests through systemcurlusing verified browser and mobile App headers (Akakce/100 CFNetwork/...), ensuring reliable zero-ban connectivity.⚡ 20 Structured MCP Tools: Everything from query autocomplete and paginated filtered search to full seller price lists with shipping fees, seller ratings, and direct outbound links.
🔑 Zero Key Floor for Public Features: Search, seller comparison, deals, and category browsing work out-of-the-box with zero credentials required.
🔒 Secure Token Management: Account features (wishlists, price alerts) use isolated local session storage (
~/.config/akakce-mcp/session.jsonwith0600permissions) or environment variables. Zero credentials are ever saved in the repository.
Related MCP server: market-fiyatlari-mcp-server
Quickstart
Run directly without installing:
# Start MCP server (stdio transport)
npx -y akakce-mcpOr install globally:
npm install -g akakce-mcpRequirement: System
curlmust be available in your PATH (standard on macOS, Linux, and modern Windows 10/11).
Client Integration
1. Claude Code
claude mcp add akakce -- npx -y akakce-mcp2. Cursor IDE
Open Settings → Features → MCP → Add New MCP Server:
Name:
akakceType:
commandCommand:
npx -y akakce-mcp
3. OpenCode (opencode.json)
{
"mcp": {
"akakce": {
"type": "local",
"command": ["npx", "-y", "akakce-mcp"],
"enabled": true
}
}
}Authentication & Token Extraction Guide
Public search and price comparison work with zero configuration.
To enable authenticated features (managing favorite lists, creating target price drop alerts, reading notifications), you need your Akakçe account token (AAATLGST cookie). Choose whichever method suits you best:
Method 1: Interactive Terminal Login (Recommended)
Run the built-in authentication command:
npx akakce-mcp authThis prompts for your Akakçe email and password, executes a secure login against api6.akakce.com, and stores your session cookie at ~/.config/akakce-mcp/session.json (chmod 0600).
The session is valid for ~1 year (rememberMe: true).
Method 2: Extract Cookie from Browser (DevTools)
If you log in via Google, Apple ID, or prefer not to input your password in the terminal:
Log in to akakce.com in your browser.
Open Developer Tools (
F12orCmd+Opt+I) → Application tab → Cookies →https://www.akakce.com.Locate the cookie named
AAATLGSTand copy its value.Save it using the CLI:
npx akakce-mcp set-cookie "AAATLGST=<your_copied_value>"
Method 3: Environment Variables (Docker & CI/CD)
You can provide the session cookie directly via environment variables:
export AKAKCE_COOKIE="AAATLGST=..."Or provide automated credentials:
export AKAKCE_EMAIL="user@example.com"
export AKAKCE_PASSWORD="your_password"Check Authentication Status
npx akakce-mcp status
# or
npx akakce-mcp whoamiClear Saved Session
npx akakce-mcp logoutTool Directory (20 Tools)
Discovery & Search (Public)
Tool | Description |
| Instant search suggestions and canonical product codes |
| Paginated product search with sorting and category filters |
| Available filter groups (brands, specs, price range) for a query |
| Category tree hierarchy and paginated category feeds |
| Home screen cards, campaigns, and active collections |
| Real-time stream of recently discounted items |
Pricing & Market Intelligence (Public)
Tool | Description |
| Complete seller list (prices, shipping, ratings, specs, store links) |
| Batched pricing lookup across multiple product codes |
| Rapid single-product price and seller summary |
| Price trend chart image URL |
Account & Wishlists (Requires Auth)
Tool | Description |
| Authenticate and persist session cookie |
| Clear saved session credentials |
| Current user profile, location, and notification counters |
| List favorite folders or items inside a list |
| Add product(s) to default favorite list |
| Remove a product from a favorite list |
| List active price drop monitors |
| Arm a price alert at a target price in TRY |
| Fetch unread price drop notification stream |
Optional LLM Enrichment
Tool | Description |
| Summarize, normalize, or compare Akakçe data with Fire-Pass Kimi Turbo (requires |
Agent Integration Specs
Agent Contract: See
AGENTS.mdfor execution protocols and failure recovery guidelines.Copy-Paste Agent Rule: See
GLOBAL_AGENT_RULE.mdto addakakce-mcpto your AI assistant's system instructions.API Reference: Detailed endpoint map reverse-engineered from mobile and web traffic is documented in
API_REFERENCE.md.
Alternatives & Comparison
Compared to Puppeteer / Playwright scraping: Traditional browser automation is fragile, slow (2-5s per request), and requires 300+ MB RAM while triggering Akamai's anti-bot JS challenges (HTTP 403).
akakce-mcpconnects directly to the underlying JSON API via systemcurlin ~150ms with zero browser overhead.Compared to Cimri.com scrapers: Cimri has a different seller ecosystem and lacks authenticated user wishlists, notification counters, and persistent price drop alarms.
akakce-mcpcovers both public pricing and authenticated private actions.Compared to Google Shopping / SerpAPI: Commercial SERP APIs charge steep monthly subscription fees ($50-$200/mo) and often return delayed or incomplete merchant listings for Turkish regional sellers.
akakce-mcpis 100% free, open-source, and retrieves real-time pricing directly.
Frequently Asked Questions (FAQ)
How do I use akakce-mcp with Claude Code?
Run claude mcp add akakce -- npx -y akakce-mcp. Claude Code will automatically register all 20 tools and connect via the standard stdio protocol.
Does akakce-mcp bypass Akamai bot protection?
Yes. Akakçe uses Akamai Bot Manager which blocks standard Node.js fetch with HTTP 403 Forbidden. akakce-mcp routes requests through system curl with authentic browser and mobile headers to bypass TLS fingerprinting.
Do I need an Akakçe account or API key to search prices?
No. All product search, multi-seller comparison, and category browsing features work out-of-the-box with zero credentials and zero API keys.
How do I extract my session token for price alerts?
You can run the interactive terminal login via npx akakce-mcp auth, extract the AAATLGST cookie from browser DevTools via npx akakce-mcp set-cookie, or set the AKAKCE_COOKIE environment variable.
How does akakce-mcp compare to direct web scraping?
Direct web scraping with Cheerio or Puppeteer is fragile, resource-heavy, and frequently triggers IP bans. akakce-mcp connects directly to the underlying api6.akakce.com JSON APIs, delivering fast, structured JSON data with zero browser overhead.
Citation
If you use akakce-mcp in research, benchmarking, or autonomous AI agent workflows, please cite:
@software{akakce_mcp_2026,
author = {Öztürk, Enes},
title = {akakce-mcp: Model Context Protocol Server for Akakçe Price Comparison},
url = {https://github.com/nsozturk/akakce-mcp},
year = {2026}
}License
MIT © Enes Öztürk.
Disclaimer: Akakçe is a registered trademark of Akakçe Bilgi Teknolojileri A.Ş. This project is an independent open-source tool and is not affiliated with or endorsed by Akakçe.
Available Tools
20 toolsakakce_account_infoAkakçe account infoA
Giriş yapılmış kullanıcının profil bilgisini döndürür (ad, e-posta, il/ilçe, bildirim sayısı). Giriş gerektirir.
| 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 full burden, and it does disclose two useful traits: the operation is a read ('döndürür') and authentication is required. It does not mention behavior when unauthenticated (error vs. empty) or any caching/refresh semantics.
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: the return content is front-loaded, with the auth prerequisite appended as a trailing constraint. No filler.
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?
No output schema exists, so the description's field enumeration (name, email, city/district, notification count) does real work in telling the agent what comes back. Slightly incomplete in that it doesn't specify the failure mode when not logged in.
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?
Zero parameters, so there is nothing to disambiguate and the baseline is 4. The schema is empty and fully described, so the description loses nothing by omitting parameter detail.
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 (döndürür/returns) and resource (logged-in user's profile info), and enumerates the returned fields (name, email, city/district, notification count). This makes it clearly distinct from siblings like akakce_login and akakce_notifications, though it never explicitly names an alternative.
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 clause 'Giriş gerektirir' (requires login) gives an important precondition for calling it. However, there is no guidance on when to prefer this over siblings such as akakce_login (to establish the session) or akakce_notifications (for notification content).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
akakce_autocompleteAkakçe autocompleteA
Akakçe arama önerileri. Bir arama ifadesi için ürün/kategori önerilerini ve (varsa) ürün kodlarını döndürür. Kullanıcı tam ürün adını bilmiyorsa önce bununla doğru ifadeyi/kodu bul.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Aranacak ifade, örn. 'rtx 5070' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses what the tool returns (suggestions, categories, optional product codes), which is useful, but it says nothing about side effects, authentication, rate limits, empty-result behavior, or response shape. For a simple read operation this is adequate but incomplete.
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 short sentences: purpose, return contents, and usage condition. It is front-loaded and every sentence contributes without repetition.
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 autocomplete tool with no output schema and no annotations, the description covers purpose, return values, and when to use it. It could be slightly richer about result ordering or limits, but nothing essential is missing for correct invocation.
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%, and the schema already documents the single `query` parameter with an example ('rtx 5070'). The description adds purpose context but no syntax, formatting, or constraints 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 states a specific resource and behavior: it returns Akakçe search suggestions, product/category recommendations, and optional product codes for a query. This is clearly not a full search, but it does not explicitly name the sibling akakce_search as the alternative, 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?
It gives a concrete usage condition: 'If the user does not know the exact product name, first use this to find the correct phrase/code.' That is strong guidance, though it does not explicitly say when not to use it or name the competing search tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
akakce_category_browseAkakçe category browseA
Bir kategori kodunu (ctCode) gezerek o kategorideki ürünleri ve hızlı filtreleri (quickFilters) döndürür. filterIds vererek daraltabilirsin. ctCode'u arama sonuçlarından/ürün URL'lerinden ya da akakce_search_filters çıktısından elde edebilirsin.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| ctCode | Yes | Kategori kodu, örn. 18561 (laptop) | |
| filterIds | No | Uygulanacak filtre id'leri (opsiyonel) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It says the tool returns products and quickFilters and that filterIds narrows results, but it is silent on pagination despite a page parameter, on authentication needs, and on the shape or limits of returned product lists.
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 short sentences, front-loaded with the core action and return values, then usage guidance. Every sentence contributes either purpose, narrowing behavior, or ctCode acquisition.
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 browse tool with three parameters and no output schema, the description covers purpose, return content, and ctCode sourcing. However, it omits pagination behavior for the page parameter and does not describe the structure of the returned products or quickFilters, leaving real gaps for an agent invoking it.
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 describes ctCode and filterIds at 67% coverage, so the baseline is moderated. The description adds useful provenance for ctCode and restates that filterIds narrows the query, but it never mentions the page parameter, leaving that part of the schema and description both uninformative.
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 states a specific verb and resource: browsing a category code (ctCode) to return products and quickFilters. It distinguishes itself from sibling akakce_search_filters by explaining that this tool consumes ctCode, and from keyword-search siblings by explaining where a ctCode can be obtained.
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 clear context for when to use the tool: after obtaining a ctCode from search results, product URLs, or akakce_search_filters. It also explains that filterIds narrow the browsing result. It does not explicitly state when to prefer akakce_search instead, so it falls short of a full alternatives matrix.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
akakce_dealsAkakçe deals (son indirimler)A
Akakçe'de son yakalanan indirimleri (fiyatı yeni düşen ürünler) döndürür. Giriş gerektirmez.
| 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 full burden; it usefully discloses that no login/auth is required and clarifies the semantic of 'deal'. However it says nothing about ordering, how many deals are returned, whether results are paginated, or freshness window – meaningful gaps for a feed tool with no output schema.
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 the resource definition and followed by the auth note. No filler; every clause conveys information.
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 no-param feed with no output schema, the description covers purpose and auth, but omits result volume, ordering, and recency semantics – details an agent would need to decide whether this tool alone answers a 'what's on sale' query.
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 and the description doesn't need to explain any; the baseline for a 0-param tool is 4. Nothing in the text misrepresents the parameter-free nature.
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?
Specific verb 'döndürür' plus a precisely defined resource: 'son yakalanan indirimler (fiyatı yeni düşen ürünler)' – it even parenthetically defines what counts as a deal, which disambiguates from search or category_browse. It never names a sibling tool explicitly, so it stops short of full differentiation.
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 phrase 'son yakalanan indirimler' implies a browse-latest-deals use case, and the no-login note removes a prerequisite. But it gives no explicit when-to-use vs akakce_home_feed, akakce_search, or akakce_category_browse guidance and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
akakce_favorite_addAkakçe favorite addB
Bir veya daha fazla ürünü favorilere (varsayılan listeye) ekler. Ürün kod(lar)ını ver. Giriş gerektirir.
| Name | Required | Description | Default |
|---|---|---|---|
| codes | Yes | Eklenecek ürün kodları |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. It discloses the mutation scope, batch capability, default list target, and login requirement, but it omits what happens when a product is already favorited, whether the operation is idempotent, and what the response contains.
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 purpose before giving input and authentication notes. The sentence telling the caller to provide product codes is somewhat redundant with the schema, but overall it is appropriately sized.
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 mutation, the description covers purpose, authentication, and target list. It leaves notable gaps around duplicate handling and the result of the operation, and there is no output schema or annotation coverage to fill those gaps.
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 fully documents the single 'codes' parameter, including its array type and minimum item count. The description reinforces that product codes may be singular or plural, but adds no format or validation details beyond the schema, so the 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 states a specific verb and resource: it adds one or more products to favorites, with the default list explicitly named. This clearly separates it from removal or listing operations by behavior, though it does not explicitly name the sibling tools.
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 a key prerequisite, 'Giriş gerektirir' (requires login), and clarifies that the target is the default favorites list. However, it does not state when to prefer this over akakce_favorites or akakce_favorite_remove, so usage is implied rather than fully guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
akakce_favorite_removeAkakçe favorite removeA
Bir ürünü favori listesinden çıkarır. Ürün kodu (code) ve listId ver (listId'yi akakce_favorites'ten al). Giriş gerektirir.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Çıkarılacak ürün kodu | |
| listId | Yes | Ürünün bulunduğu favori listesi id'si |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose the critical auth prerequisite ('Giriş gerektirir'), which is genuinely useful, but says nothing about reversibility, idempotency, or what happens if the product is not in the list.
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 short sentences: action first, then parameter sourcing, then the auth prerequisite. Zero filler and front-loaded.
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 two-required-param mutation with no output schema, the description covers the action, parameter sourcing, and the login requirement. Only failure modes and effect of a missing product are absent.
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 earns above baseline by explaining how to obtain the listId via akakce_favorites, which the schema does not say. Both required params are acknowledged, though their types and semantics remain entirely in 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?
States a specific verb and resource: 'Bir ürünü favori listesinden çıkarır' (removes a product from the favorites list). The removal framing distinguishes it from the sibling akakce_favorite_add, though it does not name that sibling directly.
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?
Gives concrete operating guidance by naming where listId comes from ('listId'yi akakce_favorites'ten al'), effectively routing the agent to the sibling that produces the prerequisite value. It does not state explicit when-not-to-use conditions, which keeps it below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
akakce_favoritesAkakçe favoritesA
Favori listelerini döndürür. listId verilmezse tüm listeleri (id, ad, ürün sayısı) listeler; listId verilirse o listenin ürünlerini (ad, fiyat, url) döndürür. Giriş gerektirir.
| Name | Required | Description | Default |
|---|---|---|---|
| listId | No | Belirli bir favori listesinin id'si (akakce_favorites'in listesinden) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, and it does disclose the authentication requirement plus the exact contents returned in each mode (id/name/product count vs name/price/url). It stops short of mentioning pagination, rate limits, or what happens with an invalid listId, leaving a few behavioral gaps.
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 compact sentences with zero waste; the primary purpose is front-loaded, the parameter branching follows, and the auth caveat closes it. Nothing is redundant with the schema or title.
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?
There is no output schema, yet the description enumerates the returned fields for both modes, so an agent can act on the result without guessing. Combined with the auth note, this is nearly complete for a one-parameter read tool; only edge-case error behavior is absent.
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 the baseline is 3, but the description adds genuine semantic value by explaining the omitted-vs-supplied branching behavior of listId, which the schema alone does not convey. It also confirms the id comes from this tool's own output, reinforcing the schema's note.
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 ('Favori listelerini döndürür') and spells out the two distinct output modes keyed on listId, so the agent knows exactly what it gets back. It does not explicitly contrast itself with akakce_favorite_add/remove, but the read-oriented return description implicitly separates it from those mutations.
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?
Gives a clear conditional rule: omit listId to enumerate all lists, supply listId to get that list's products. It also discloses the login prerequisite ('Giriş gerektirir'), which is essential context for deciding whether the call will succeed. No explicit alternative tool is named, 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.
akakce_home_feedAkakçe home feedA
Akakçe ana sayfasının bileşenlerini (keşfet/slider kartları: aktüel ürünler, kampanyalar, koleksiyonlar vb.) ve yönlendirme URL'lerini döndürür. Giriş gerektirmez.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It does disclose that no login is required and that the payload consists of page components plus redirect URLs, but it says nothing about side effects, caching/staleness, rate limits, or result ordering. For an effectively read-only zero-parameter feed this is adequate but thin.
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 the return payload and the parenthetical examples are useful rather than filler. The auth note is a compact, relevant addendum; no padding or repetition.
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?
The tool is structurally simple (no params, no output schema, no annotations), and the description covers what comes back and the auth requirement. The main gap is that return shape (component structure, URL field names) is left unstated and there is no output schema to compensate.
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 no parameters and the schema is an empty object, so there is nothing for the description to disambiguate. Baseline of 4 applies.
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 ('döndürür' / returns) and a concrete resource (the Akakçe homepage components), and it enumerates what those components are (discover/slider cards, current products, campaigns, collections). It does not differentiate itself from siblings such as akakce_deals or akakce_category_browse, which keeps it from 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 only implied: the reader can infer this is the homepage/landing entry point that yields navigation URLs and promotional cards. There is no explicit when-to-use signal, no statement of when a different sibling would be preferable, and no exclusions. The 'no login required' line is a prerequisite note rather than routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
akakce_llm_enrichAkakçe LLM enrich (Fire-Pass Kimi turbo)A
Akakçe arama/fiyat sonuçlarını bir LLM ile yorumlar: özetler, normalize eder, karşılaştırır veya verilen talimata göre filtreler. SADECE Fire-Pass guard'lı Kimi K2.6 Turbo ile çalışır. FIREWORKS_API_KEY tanımlı değilse devre dışıdır. Girdi olarak diğer akakce_* tool'larından aldığın JSON'u (ürünler/satıcılar) ver.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | İşlenecek Akakçe verisi (genelde başka bir akakce_* tool çıktısının JSON metni). | |
| instruction | Yes | Ne yapılacağı, örn. 'en iyi fiyat/performans 3 ürünü seç ve neden olduğunu açıkla'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does useful work by disclosing that it only runs with Fire-Pass guarded Kimi K2.6 Turbo and is disabled when FIREWORKS_API_KEY is not defined. However, it omits other important behavioral details such as output shape, latency/cost implications, and error behavior for an external LLM call.
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 front-loaded with purpose, then adds only material constraints: the specific model, the API-key requirement, and the expected input source. Every sentence contributes useful information with no filler.
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 two-parameter LLM wrapper with no output schema, the description covers purpose, input source, and runtime dependency. It does not explain the return format, which matters because the agent cannot otherwise know whether it will receive text, JSON, or structured results.
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 both parameters are already documented. The description reinforces the data source by saying to pass JSON from other akakce_* tools, but adds little beyond the schema's own descriptions of data and instruction.
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 states a specific verb and resource: it interprets Akakçe search/price results with an LLM, and enumerates concrete operations (summarize, normalize, compare, filter by instruction). This clearly distinguishes it from the retrieval-oriented akakce_* siblings.
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 clear usage context by telling the agent to pass JSON obtained from other akakce_* tools (products/sellers). It does not explicitly state when not to use it or name alternatives, but the input-source guidance is concrete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
akakce_loginAkakçe loginA
Akakçe hesabına giriş yapar ve oturumu (AAATLGST çerezi) ~/.config/akakce-mcp/session.json içine kaydeder. Giriş sonrası favoriler, fiyat alarmları ve bildirim tool'ları çalışır. Kimlik bilgilerini parametre vermezsen AKAKCE_EMAIL / AKAKCE_PASSWORD ortam değişkenleri kullanılır. Oturum ~1 yıl geçerlidir; tekrar giriş gerekmez.
| Name | Required | Description | Default |
|---|---|---|---|
| No | E-posta (verilmezse AKAKCE_EMAIL env) | ||
| password | No | Şifre (verilmezse AKAKCE_PASSWORD env) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it names the persisted artifact (session cookie file path), the credential source fallback (AKAKCE_EMAIL/AKAKCE_PASSWORD), and session validity. It doesn't cover failure behavior (bad credentials) or whether an existing session is overwritten, which keeps it from a 5.
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?
Four short sentences, front-loaded with the action and its side effect, then the dependency unlock, then credential sourcing, then session lifetime. Nothing is redundant enough to cut.
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?
No output schema exists, and the description explains persistence and lifetime but not what the call returns on success (e.g., account identity or a confirmation), which an agent might want. Otherwise complete for a two-optional-param auth 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?
Schema coverage is 100% and both parameter descriptions already state the env-var fallback, so the description's credential-fallback sentence largely repeats structured data. Baseline 3 applies since the schema does the heavy lifting.
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+resource ('Akakçe hesabına giriş yapar') and discloses the concrete side effect (AAATLGST cookie saved to ~/.config/akakce-mcp/session.json). This clearly separates it from the sibling akakce_logout and from the read-only browsing tools.
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?
Says login unlocks favorites, price alerts and notification tools, which gives the agent the prerequisite condition for those siblings, and notes the ~1-year session lifetime so repeat logins are unnecessary. It stops short of an explicit 'call this if an auth-required tool fails' routing statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
akakce_logoutAkakçe logoutA
Kaydedilmiş Akakçe oturumunu siler (session.json).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 helpfully identifies the exact target of deletion (session.json), but does not state whether the deletion is irreversible, whether it requires authentication, or what state the agent is left in after the session is removed. For a simple local file deletion this is adequate but incomplete.
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?
A single short sentence that front-loads the action and the target. Nothing is wasted, and no important information is buried.
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, no-output-schema logout tool, the description is sufficient to understand the call. It could be improved by mentioning that no arguments are required and what effect the deletion has on subsequent calls, but the core is complete.
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 accepts zero parameters, so there are no parameter semantics to explain; the baseline of 4 applies. No description text is needed to compensate for missing parameter documentation.
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 uses a specific verb ('siler' = deletes) and resource ('Kaydedilmiş Akakçe oturumu' / session.json), making the action unambiguous. It is the only logout tool among siblings, but it does not explicitly contrast itself with akakce_login or other session-affecting tools.
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 by the name and description—clear the saved session when you want to log out or reset authentication. However, there is no explicit statement of when to use this versus other tools, no prerequisites, and no note about what happens afterward (e.g., needing to re-login).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
akakce_notificationsAkakçe notificationsA
Fiyat düşüşü bildirimlerini döndürür (ürün, yeni fiyat, düşüş oranı, tarih). Giriş gerektirir.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It discloses the auth requirement and the shape of the returned data, which are real additions, but it is silent on whether fetching marks notifications as read, whether results are paginated or capped, and what an empty result looks like.
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 clauses, no filler: the return content comes first and the auth prerequisite second. Every element 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 zero-parameter read with no output schema, the description does the essential work by naming the returned fields and the login requirement. Minor gaps remain around read-state side effects and result limits, but an agent can call this correctly from what is given.
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 description to compensate for. Listing the returned fields is a small bonus but does not change the fact that parameter semantics are a non-issue here.
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 ('Fiyat düşüşü bildirimlerini döndürür' – returns price-drop notifications) and enumerates the payload fields, so the agent knows exactly what comes back. It does not, however, distinguish itself from the closely named siblings akakce_price_alerts and akakce_price_alert_set, leaving the notifications-vs-alerts boundary to inference.
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 only usage signal is the precondition 'Giriş gerektirir' (requires login), which is genuinely useful. There is no statement of when to prefer this over akakce_price_alerts, nor any exclusion or alternative named, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
akakce_price_alertsAkakçe price alertsA
Kurulu fiyat alarmlarını listeler: ürün, hedef fiyat ve mevcut fiyat. Giriş gerektirir.
| 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 behavioral burden. It discloses the authentication requirement and names the fields returned, which are useful beyond structured data. It does not state pagination, ordering, or failure behavior, but for a zero-parameter read listing it is fairly 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?
Two short clauses, front-loaded with the action and return fields, then the login requirement. Every sentence adds useful information with no waste.
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?
No output schema exists, so the description usefully enumerates the returned fields and the auth prerequisite. For a simple zero-parameter listing tool this is nearly complete, though pagination or empty-state behavior is not mentioned.
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 there are no parameter semantics to document; this is the baseline score for a no-argument tool. The description appropriately does not invent parameter 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?
States a specific verb and resource: lists configured price alerts. It also names the returned fields (product, target price, current price), so the purpose is clear. It does not explicitly distinguish itself from siblings such as akakce_price_alert_set, but the 'list' verb separates it adequately.
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 usage for viewing existing alerts, and the login requirement gives a prerequisite. It does not say when to use this instead of akakce_price_alert_set, akakce_notifications, or other alert-related siblings, so guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
akakce_price_alert_setAkakçe set price alertA
Bir ürün için fiyat alarmı kurar/günceller: fiyat hedef değere düşünce bildirim gelir. Ürün kodu ve hedef fiyat (TL) ver. Giriş gerektirir.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Ürün kodu | |
| targetPrice | Yes | Hedef fiyat (TL) — fiyat buraya düşünce alarm |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that the tool creates or updates an alert, that a notification fires when the target price is reached, and that login is required, but it omits behavior such as what happens to an existing alert, error handling when unauthenticated, and whether the call returns a confirmation.
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 tight sentences with the core action and trigger front-loaded. Every clause adds useful information with no wasted wording.
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 two-parameter tool with no output schema and no annotations, the description covers the main purpose, required inputs, trigger behavior, and login requirement. It still leaves gaps around return behavior and how existing alerts are handled, so it is adequate but not complete.
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 both 'code' and 'targetPrice' are already documented. The description restates their meaning and adds the trigger semantics, but does not provide syntax or format details beyond the schema, making the baseline 3 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 gives a specific verb/resource: 'fiyat alarmı kurar/günceller' for a product, with the trigger condition 'fiyat hedef değere düşünce bildirim gelir'. It is clear what the tool does, though it does not explicitly distinguish itself from sibling tools like akakce_price_alerts or akakce_notifications.
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 states the required inputs and that login is required, which implies when the tool is usable. However, it does not explicitly say when to choose this over akakce_price_alerts or how it relates to notification listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
akakce_price_historyAkakçe price historyA
Bir ürünün fiyat geçmişi grafiğini döndürür. Akakçe geçmişi yalnızca hazır bir grafik GÖRSELİ (PNG) olarak sunar — sayısal veri noktası yoktur. Sonuçta grafiğin doğrudan görüntü URL'i döner (kullanıcıya gösterilebilir). Sadece ürün code'u yeterli.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Ürün sayfası URL'i (opsiyonel). | |
| code | No | Ürün kodu (akakce_search/autocomplete sonucundan). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that the tool returns only a PNG chart with zero numeric data points and that the result is a directly viewable image URL. It omits auth/rate-limit or failure behavior, keeping it short of a 5.
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 short sentences, front-loaded with the core behavior and the critical image-only constraint, with no filler.
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?
There is no output schema, and the description compensates by explaining the return value (a direct chart image URL, no numeric series). For a simple two-parameter read tool that is nearly complete, with only auth/error context missing.
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 both parameters are already documented; the description only adds that the product `code` alone is sufficient (making `url` effectively redundant). That is a useful hint but not substantial beyond-schema meaning.
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: returns a product's price-history chart. It implicitly distinguishes itself from price-data siblings (e.g. akakce_product_prices) by stressing that the history is only an image with no numeric data points, 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?
'Sadece ürün code'u yeterli' gives minimal usage context, and the image-only note implies when this is preferable to numeric price endpoints. But there is no explicit when-to-use/when-not statement and no named alternative for retrieving numeric history.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
akakce_product_detailAkakçe product detailA
Bir ürünün tam detayını döndürür: ad, marka, teknik özellikler, ortalama puan, en düşük/en yüksek fiyat ve TÜM satıcıların listesi (fiyat, kargo, satıcı puanı, teslimat, satıcıya direkt gidiş linki). Sadece ürün code'u yeterli — URL otomatik çözülür. İstersen url (akakce_search'teki productUrl) vererek bir istek atlayabilirsin.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Ürün sayfası URL'i (opsiyonel; verilirse code'dan çözmeye gerek kalmaz). | |
| code | No | Ürün kodu (akakce_search/autocomplete sonucundan). Tek başına yeterli. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full load, and it does disclose the return payload in detail plus the non-obvious behavior that the URL is resolved automatically from the code. It does not mention authentication, rate limits, or what happens when a code is invalid, which are the remaining behavioral gaps.
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 outcome (full detail plus all sellers) before the parameter tactics, and every clause carries information — the field enumeration, the auto-resolution, and the url shortcut each earn their 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?
With no output schema and no annotations, the description compensates well by enumerating the returned fields and the seller-list contents. Missing only edge-case behavior (errors, auth, whether the seller list is paginated or capped) for a fairly simple two-optional-param 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?
Schema coverage is already 100%, so the baseline would be 3, but the description adds real meaning: `url` is an optional shortcut that costs one fewer request, and its value originates from akakce_search results. That is a usage relationship the schema text does not fully convey.
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 (döndürür) and resource (bir ürünün tam detayı) and enumerates exactly what comes back: name, brand, specs, rating, price range, and the full seller list. This lets an agent distinguish it from sibling tools like akakce_product_prices and akakce_quickview without opening their schemas.
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?
Explicitly says `code` alone is sufficient and that passing `url` (the productUrl from akakce_search) skips one request, giving a concrete provenance and a performance-based choice between the two params. It stops short of naming when to prefer this over akakce_quickview or akakce_product_prices, so it is strong but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
akakce_product_pricesAkakçe product pricesA
Bir veya daha fazla ürün kodu için Akakçe'deki en ucuz satıcıları (quickview) döndürür: fiyat, kargo, satıcı adı, son güncelleme ve satıcıya gidiş linki. Ürün kodlarını akakce_search / akakce_autocomplete sonuçlarından al. Birden çok kodu tek çağrıda ver (toplu).
| Name | Required | Description | Default |
|---|---|---|---|
| codes | Yes | Ürün kodları listesi (en fazla 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses the returned fields and bulk behavior, but does not mention authentication needs, rate limits, error behavior, or whether it is strictly read-only.
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-loaded: it states the purpose first, then the returned fields, then sourcing and bulk guidance. Every sentence adds useful information without waste.
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 single-parameter tool with no output schema, the description is largely complete: it explains the purpose, return fields, and where to obtain valid codes. The main remaining gaps are error behavior and operational constraints, which are minor given the tool's simplicity.
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 already 100%, so the baseline would be 3. The description adds meaning beyond the schema by explaining that codes should come from search or autocomplete results and that multiple codes can be supplied in one bulk call.
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 states a specific action and resource: it returns the cheapest sellers for one or more product codes from Akakçe, along with the returned fields. It is clear but does not explicitly distinguish this tool from the similarly named sibling akakce_quickview.
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 useful sourcing guidance, telling the agent to get product codes from akakce_search or akakce_autocomplete, and encourages batching multiple codes. However, it does not say when to use this tool instead of akakce_quickview, akakce_product_detail, or akakce_price_history.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
akakce_quickviewAkakçe quickview (tek ürün)A
Tek bir ürün kodu için en ucuz satıcı(ları) hızlıca döndürür (akakce_product_prices'ın tekli/hafif sürümü). Giriş gerektirmez.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Ürün kodu |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It does add valuable auth context ('Giriş gerektirmez') — relevant given the akakce_login sibling — but says nothing about return shape (what fields describe a 'cheapest seller'), behavior for an invalid/unknown code, or whether results are cached/rate-limited.
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 with zero padding: the operation and scope come first, the sibling comparison and auth note follow. Every clause 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?
With one required param and no output schema, the description needs to carry return-value expectations; it only says 'cheapest seller(s)', leaving the response structure (price, seller name, currency, ranking) unspecified. The auth note helps, but for a network-backed lookup tool the behavioral picture is still thin.
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% and the single parameter is already documented as 'Ürün kodu'. The description only echoes that ('tek bir ürün kodu için') and adds no format, range, or sourcing detail beyond the schema, so the baseline 3 applies.
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 ('en ucuz satıcı(ları) hızlıca döndürür') scoped to a single product code, and explicitly names the sibling it is a reduced form of (akakce_product_prices). An agent can distinguish it from the other 19 akakce tools without opening a 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?
Names the alternative (akakce_product_prices) and characterizes this one as its 'tekli/hafif sürümü', which signals the single-product, lightweight use case. It stops short of an explicit rule for when to prefer the fuller sibling (e.g. batch codes or extra fields), so the choice is implied rather than fully prescribed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
akakce_searchAkakçe product searchA
Akakçe'de ürün arar ve fiyatlı sonuç listesi döndürür. Her ürün: ad, marka, en düşük fiyat, satıcı sayısı, rating, ürün kodu (price/detail için kullan) ve ürün sayfası URL'i. Sayfalama (page) ve filtreleme (ctCode + filterIds, bunları akakce_search_filters'tan al) destekler.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Sayfa (1'den başlar) | |
| sort | No | Sıralama kodu (1 = varsayılan/önerilen) | |
| ctCode | No | Kategori kodu — sonucu tek kategoriye daraltır (opsiyonel) | |
| phrase | Yes | Arama ifadesi | |
| filterIds | No | Filtre id'leri (akakce_search_filters'tan). Verilirse filtreli arama yapılır. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It does usefully disclose the exact return fields (name, brand, lowest price, seller count, rating, product code, URL) and that the product code feeds price/detail calls. It says nothing about pagination limits, auth requirements, or rate limiting, leaving meaningful behavioral gaps.
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 dense sentences with no filler: purpose first, return fields second, pagination/filtering last. Well front-loaded, though the return-field enumeration is long enough that it slightly crowds the actionable guidance.
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 correctly compensates by enumerating the returned fields, and it covers the key filtering/pagination mechanics for a 5-parameter search tool. Minor gaps remain around result limits and cross-tool routing, but nothing an agent needs to call it is missing.
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 the schema already defines all five parameters and the baseline would be 3. The description adds value beyond the schema by explaining that filterIds should be sourced from akakce_search_filters and that ctCode+filterIds combine for filtering, giving an agent the provenance it needs.
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 ('Akakçe'de ürün arar') plus the return shape (price list), making the core action unambiguous. It does not explicitly differentiate itself from search-adjacent siblings like akakce_deals or akakce_autocomplete, so it stops 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?
Gives clear operating context: pagination via 'page', filtering via 'ctCode + filterIds', and explicitly routes the agent to akakce_search_filters to obtain filter ids. It never states when NOT to use this versus sibling search/browse tools, so no exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
akakce_search_filtersAkakçe search filtersA
Bir arama ifadesi için uygulanabilir filtre gruplarını (marka, özellik, RAM, vb.) ve her filtrenin id'sini döndürür. Dönen filtre id'lerini akakce_search'e filterIds olarak vererek sonucu daraltabilirsin.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | ||
| phrase | Yes | Arama ifadesi |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It does describe the return payload (filter groups and their ids) and the downstream chaining behavior, but says nothing about authentication, whether results are cached or live, or any rate limits.
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 tight sentences: the first declares what is returned, the second declares how to use the result. Nothing is wasted and the key information is front-loaded.
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 two-parameter read tool with no output schema, the description adequately conveys the output's shape and purpose. However, the undocumented sort parameter and the absence of any hint about result size or filter availability mean the definition is only minimally 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 only 50%. The phrase parameter's schema text ('Arama ifadesi') merely restates the name, and the description repeats 'arama ifadesi' without adding format or example guidance. The sort parameter (default 1) is unexplained in both the schema and the description, leaving its accepted values opaque.
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: it returns the applicable filter groups (brand, feature, RAM, etc.) and each filter's id for a given search phrase. That is concrete and distinguishable from siblings such as akakce_product_detail or akakce_deals, though it never contrasts itself directly with akakce_autocomplete or akakce_category_browse.
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 states the intended workflow explicitly: call this to obtain filter ids, then pass those ids to akakce_search as filterIds to narrow results, which effectively names the alternative and the condition for chaining. It stops short of stating when not to use it, such as when no filtering is needed.
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.
20 tool updates
v1.0.0- First observed
akakce_account_info - First observed
akakce_autocomplete - First observed
akakce_category_browse - First observed
akakce_deals - First observed
akakce_favorite_add - First observed
akakce_favorite_remove - First observed
akakce_favorites - First observed
akakce_home_feed - First observed
akakce_llm_enrich - First observed
akakce_login - First observed
akakce_logout - First observed
akakce_notifications - First observed
akakce_price_alert_set - First observed
akakce_price_alerts - First observed
akakce_price_history - First observed
akakce_product_detail - First observed
akakce_product_prices - First observed
akakce_quickview - First observed
akakce_search - First observed
akakce_search_filters
TDQS
Scored across 20 tools
Most tools target distinct Akakçe resources or workflows: search, category browsing, product detail, favorites, alerts, and account are clearly separated. The main overlap is price retrieval: akakce_product_prices, akakce_quickview, and akakce_product_detail all return seller/price data, though the descriptions distinguish bulk, single lightweight, and full-detail use cases.
All tools use the same akakce_ prefix and snake_case, making the set highly readable. However, the pattern mixes verb-noun forms (akakce_favorite_add) with noun-only forms (akakce_deals, akakce_quickview, akakce_notifications), which is a minor inconsistency rather than a serious problem.
Twenty tools is reasonable for a full shopping/price-comparison server spanning search, favorites, alerts, account, and notifications. Still, 20 falls in the heavy range, and a few tools such as akakce_quickview and akakce_llm_enrich feel like optional conveniences rather than essential surface area.
The server covers the main Akakçe workflows well: discovery, search/filtering, price lookup, product detail, price history, authentication, favorites, alerts, and notifications. Minor gaps remain around full favorite-list lifecycle management (no create/delete list) and alert lifecycle (no explicit alert deletion), but these are workaroundable.
Maintenance
Related MCP Connectors
Product price checks and affiliate link building for AI shopping agents.
The E-commerce Marketplace For Every AI Agent. A Governed Catalog Of 600M+ US Products, Plus Four Agent Ready Capabilities Search, Price Comparison, Product-Vs-Product, And Detailed Q&A.
Search 100+ US retailers, 260M+ products with real-time pricing, stock, and price history. Documentation - https://www.lemmebuyit.com/developer Homepage - https://www.lemmebuyit.com
AI-agent product catalog: search, lookup & purchase routing over verified merchant data.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables searching and comparing product prices across Turkish supermarket chains (BIM, A101, Migros, SOK, etc.) with location-based filtering. Provides access to Turkish market data from marketfiyati.org.tr for price tracking and comparison.3MIT
- AlicenseAqualityDmaintenanceEnables querying Turkish market prices, searching products, and comparing prices across different stores using the Market Fiyatı API.34 npm35MIT
- AlicenseNot gradedqualityAmaintenanceEnables searching and comparing product prices, sellers, and price history from Torob, Iran's price-comparison engine, including shop trust signals and physical store availability.1MIT
- AlicenseAqualityAmaintenanceEnables AI agents to search Digikala's catalogue, compare every seller's offers and prices, review ~30 days of price history, read customer reviews and Q&A, and surface current deals, all through read-only tools.23562 PyPI36MIT