Teklif
Server Details
Demo: brand offers (car rental, e-commerce, insurance) for ChatGPT, Claude, Gemini via MCP.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- nietzische-app/teklif-mcp
- GitHub Stars
- 0
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 3 tools
search_offers and compare_offers are mostly separable thanks to the explicit 'user asked to compare' trigger and sort_by semantics, but compare_offers with no IDs degrades into a search-like fallback (top 5 lowest-priced), which blurs the boundary. get_offer_link is clearly distinct as a single-offer lookup. Overall only one pair carries real overlap risk.
All three tools follow a consistent verb_noun snake_case pattern: search_offers, compare_offers, get_offer_link. Verbs are meaningful and the shared '_offers' noun makes the domain obvious at a glance.
Three tools is on the thin side for an offer-discovery server; the entire surface is search, compare, and link-out. Each tool does earn its place, but the set feels minimal rather than well-rounded.
Read-only search/compare/link is a coherent narrow scope and booking is explicitly out of scope, but there is no way to fetch a single offer's full details (only card views) and no provider/pagination controls. Agents hitting a card they want to inspect further must fall back to the external URL.
Available Tools
3 toolscompare_offersCompare offersARead-onlyInspect
Compares offers the user has explicitly asked to compare (by offer IDs from search_offers, or by category/city). If no IDs are given, returns up to 5 matching offers sorted by sort_by (default: the 5 lowest-priced). Returns offers with a card view. No paid or sponsored ranking. Operator-owned Aegis Scanner pricing.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City filter (example: İstanbul) | |
| sort_by | No | Sort order: price (default), rating, or relevance. No paid placement. | price |
| category | No | hepsi | |
| offer_ids | No | Offer IDs to compare (from search_offers). If omitted, up to 5 matching offers by category/city are returned. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, non-destructive, closed-world, so the bar is low, yet the description adds real context: no paid or sponsored ranking, a hard result cap of 5, and a card-view return shape. The trailing "Operator-owned Aegis Scanner pricing" is opaque and doesn't clarify behavior.
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 that front-load the verb and the selection modes, with no filler. The final pricing/source note is abrupt and reads as a fragment rather than an integrated caveat.
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, but the description covers the return shape (card view), the result cap, sorting, ranking neutrality, and all four parameters' roles. For a read-only comparison tool with zero required parameters this is sufficient to invoke correctly.
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 a solid 75%, and the description still adds behavioral meaning: offer_ids overrides category/city, and when omitted the tool returns up to 5 matching offers by default price order. The category enum values (addon, hepsi) remain undefined in both schema and description, and city takes no format guidance 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 ("Compares offers") plus the two selection modes: explicit offer IDs sourced from search_offers, or category/city filtering. This implicitly separates it from search_offers, though the boundary (search vs. compare) is never stated outright.
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 trigger ("offers the user has explicitly asked to compare") and describes the fallback path when no IDs are supplied, including the cap of 5 and default sort. It stops short of an explicit exclusion telling the agent to call search_offers first when it has no IDs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_offer_linkGet offer linkARead-onlyInspect
Returns the provider page URL for a single offer ID from search_offers. Read-only; does not book or purchase. Links point to aegisscanner.com (operator-owned).
| Name | Required | Description | Default |
|---|---|---|---|
| offer_id | Yes | Offer id, e.g. aegis-starter or aegis-growth |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, so safety is covered; the description still adds real context beyond them by stating it "does not book or purchase" and that links are operator-owned (aegisscanner.com), which addresses trust and side-effect concerns an agent might otherwise hesitate on. It doesn't describe link lifetime or what happens for an unknown/invalid offer ID.
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, with the core purpose front-loaded and the safety/ownership caveats following. Every clause carries information — none restates the tool name or the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only lookup with no output schema, the description covers purpose, source of the input, return value (a URL), non-mutating behavior, and domain trust. Nothing an agent needs to invoke it correctly 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% with an inline example (aegis-starter, aegis-growth), so the baseline would be 3; the description adds meaning by constraining the ID's provenance to search_offers, telling the agent where a valid value comes from rather than just its type.
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 pair ("Returns the provider page URL for a single offer ID") and scopes it to a single ID sourced from search_offers, which cleanly separates it from the two siblings (search_offers, compare_offers). An agent can identify the tool without opening the 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 phrase "from search_offers" implicitly prescribes the workflow — obtain the ID via search_offers, then call this — and "single offer ID" rules out bulk use. It stops short of naming compare_offers as the alternative for multi-offer evaluation, so the sibling-exclusion is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_offersSearch offersARead-onlyInspect
Searches offers when the user asks for them, filtered by category (one_time, monthly, addon, or hepsi = all), optional city and optional maximum price in TRY. Returns matching offers sorted by sort_by (price | rating | relevance; default price, lowest first) and shows them as cards. No paid or sponsored ranking. Currently returns operator-owned Aegis Scanner plans from aegisscanner.com/landing#pricing.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City filter (case- and Turkish-diacritic-insensitive). Example: İstanbul, Ankara, İzmir, Bursa | |
| budget | No | Maximum price in TRY. Example: 3000 | |
| sort_by | No | Sort order: price (lowest first, default), rating (highest first), or relevance (rating then price). No paid placement. | price |
| category | No | one_time | monthly | addon | hepsi (all) | hepsi |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, non-destructive, closed-world), yet the description still adds real value: the default sort order, an explicit "No paid or sponsored ranking" guarantee, and a disclosure of what data currently backs results (operator-owned Aegis Scanner plans). It omits result-count limits and pagination, which would matter for a search tool.
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 front-loaded sentences that move from purpose to filtering/sorting to data scope, with no filler. A few clauses duplicate the schema's enum and default documentation and could be 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?
For a read-only search with full schema coverage and no output schema, the definition covers filters, default ordering, ranking neutrality, and current data provenance. Missing only result-size or empty-result behavior, which is minor at this complexity.
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 documents city, budget, sort_by and category including enums and defaults. The description largely restates those ("hepsi = all", "default price, lowest first") and adds no format or edge-case semantics the schema lacks, so 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 ("searches offers") plus the filter dimensions and the return shape (cards sorted by sort_by). It never names its siblings compare_offers or get_offer_link, so an agent must infer the boundary, 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?
"when the user asks for them" gives a minimal trigger condition, and the filter/sort vocabulary is spelled out, but there is no when-not guidance and no routing to compare_offers or get_offer_link. Usage is implied rather than prescribed.
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.
3 tool updates
- Changed
compare_offers5 fields changed- changed
Input schema / properties / category / enumPrevious value: -[ - "arac_kiralama", - "e_ticaret", - "kasko", - "trafik_sigortasi", - "hepsi" -]New value: +[ + "one_time", + "monthly", + "addon", + "hepsi" +] - changed
Input schema / properties / city / descriptionPrevious value: -"Şehir filtresi (örn. İstanbul)"New value: +"City filter (example: İstanbul)" - changed
Input schema / properties / offer_ids / descriptionPrevious value: -"Karşılaştırılacak teklif id'leri (search_offers sonuçlarından). Boşsa kategori/şehir filtresine göre en uygunlar."New value: +"Offer IDs to compare (from search_offers). If omitted, up to 5 matching offers by category/city are returned." - removed
Input schema / properties / platformRemoved value: -{ - "default": "chatgpt", - "enum": [ - "chatgpt", - "claude", - "gemini" - ], - "type": "string" -} - added
Input schema / properties / sort_byAdded value: +{ + "default": "price", + "description": "Sort order: price (default), rating, or relevance. No paid placement.", + "enum": [ + "price", + "rating", + "relevance" + ], + "type": "string" +}
- Changed
get_offer_link3 fields changed- changed
Input schema / properties / offer_id / descriptionPrevious value: -"Teklif id, örn. rent-eco-i20 veya kasko-ist-genis"New value: +"Offer id, e.g. aegis-starter or aegis-growth" - removed
Input schema / properties / platformRemoved value: -{ - "description": "chatgpt | claude | gemini", - "enum": [ - "chatgpt", - "claude", - "gemini" - ], - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "offer_id", - "platform" -]New value: +[ + "offer_id" +]
- Changed
search_offers6 fields changed- changed
Input schema / properties / budget / descriptionPrevious value: -"Maksimum fiyat (TRY). Örn. 3000"New value: +"Maximum price in TRY. Example: 3000" - changed
Input schema / properties / category / descriptionPrevious value: -"arac_kiralama | e_ticaret | kasko | trafik_sigortasi | hepsi"New value: +"one_time | monthly | addon | hepsi (all)" - changed
Input schema / properties / category / enumPrevious value: -[ - "arac_kiralama", - "e_ticaret", - "kasko", - "trafik_sigortasi", - "hepsi" -]New value: +[ + "one_time", + "monthly", + "addon", + "hepsi" +] - changed
Input schema / properties / city / descriptionPrevious value: -"Şehir filtresi (büyük/küçük harf ve Türkçe karakter duyarsız). Örn. İstanbul, Ankara, İzmir, Bursa"New value: +"City filter (case- and Turkish-diacritic-insensitive). Example: İstanbul, Ankara, İzmir, Bursa" - removed
Input schema / properties / platformRemoved value: -{ - "default": "chatgpt", - "description": "UTM için hedef asistan: chatgpt | claude | gemini", - "enum": [ - "chatgpt", - "claude", - "gemini" - ], - "type": "string" -} - added
Input schema / properties / sort_byAdded value: +{ + "default": "price", + "description": "Sort order: price (lowest first, default), rating (highest first), or relevance (rating then price). No paid placement.", + "enum": [ + "price", + "rating", + "relevance" + ], + "type": "string" +}
3 tool updates
- First observed
compare_offers - First observed
get_offer_link - First observed
search_offers
Related MCP Connectors
One MCP endpoint for Claude, GPT & Gemini: 100+ tools + no-code connectors + agent workers.
MCP-native ad server. Monetize AI chatbots and agents with conversational ads.
Hosted MCP for e-commerce: live product catalog, stock, and pricing for AI agents.
Hosted MCP server for marketing agencies: connect Google Ads, GA4, Search Console, Meta, LinkedIn and more to Claude or ChatGPT. Pull reports and make changes via OAuth login, no setup.
Related MCP Servers
AlicenseNot gradedqualityCmaintenanceDecode any video ad, load brand information, and generate ad scripts from inside MCP-compatible clients like Claude and ChatGPT.MIT- AlicenseAqualityDmaintenanceMCP server for DemoStudio — lets any MCP-compatible AI assistant generate short-form video ads directly from a conversation.456 npmMIT

Nexbidofficial
AlicenseNot gradedqualityCmaintenanceAgentic commerce infrastructure for AI agents. MCP-native product discovery, contextual ad matching, and purchase facilitation with European privacy compliance (nDSG/GDPR).MIT- FlicenseAqualityDmaintenanceHosted company-state MCP: brand, voice, charter, priorities, and entitled skills for Cursor, Claude, Codex, OpenClaw, and other MCP hosts. Public proof in under 10 seconds, tenant feed after trial.51-
Glama MCP Gateway
Add one secure layer between your agents and this server.