Akay MCP
An official MCP server provided by Akay that allows AI assistants to interact with the live akay.ie B2B FMCG wholesale catalogue. It enables users to search for products, get real-time pricing for single items or entire buying lists, and generate quote requests for spirits, wine, beer, groceries, and other FMCG goods.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://mcp.akay.ie/mcpWhat you can do with it
- Search for live wholesale offers by product, brand, or EAN
- Price single products or whole buying lists by the case
- Prepare a quote request summary and CSV file for trade buyers
Source and maintenance
Protocol and capabilities
- Server
- akay-ie 1.0.0
- MCP protocol
- 2025-06-18
- Tools
- 8 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
8 advertised
search_offers — Search akay.ie offers
Search open akay.ie trade offers by keyword, EAN, size ("70cl", "6x70cl"), ABV or duty status, with optional website filters. Returns listed sell prices per case and per unit in each offer's own currency (EUR, USD or GBP), pack, duty status, Incoterm, location and stock. Paged: up to 25 per page, 10 pages per query.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"page": {
"type": "integer",
"maximum": 10,
"minimum": 1
},
"brand": {
"type": "string",
"maxLength": 60,
"description": "Exact brand name"
},
"query": {
"type": "string",
"maxLength": 200,
"description": "Keywords, EAN, size or pack, e.g. \"Jameson 70cl T2\""
},
"origin": {
"type": "string",
"maxLength": 60,
"description": "Country of origin"
},
"category": {
"type": "string",
"maxLength": 60,
"description": "Category, e.g. Spirits, Beer, Soft Drinks, Wine, Confectionery (see list_categories)"
},
"currency": {
"enum": [
"EUR",
"USD",
"GBP"
],
"type": "string"
},
"incoterm": {
"enum": [
"EXW",
"FCA",
"FAS",
"FOB",
"CFR",
"CIF",
"CPT",
"CIP",
"DAP",
"DPU",
"DDP"
],
"type": "string"
},
"location": {
"type": "string",
"maxLength": 60,
"description": "Warehouse location or country as listed, e.g. Netherlands, Latvia"
},
"page_size": {
"type": "integer",
"maximum": 25,
"minimum": 1
},
"duty_status": {
"enum": [
"T1",
"T2",
"Bonded",
"On Floor",
"Duty Paid"
],
"type": "string",
"description": "Duty status as listed. T1 = non-EU (third-country) status goods under customs transit; T2 = EU-status goods that can move within the EU under excise duty suspension (e.g. with an eAD in EMCS). Both T1 and T2 are held in bond with duty suspended: neither is duty paid. Bonded, On Floor and Duty Paid are shown exactly as listed on akay.ie."
},
"stock_status": {
"enum": [
"In stock",
"Limited",
"Enquire"
],
"type": "string"
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"source",
"results"
],
"properties": {
"note": {
"type": "string"
},
"page": {
"type": "number"
},
"pages": {
"type": "number"
},
"source": {
"type": "string",
"description": "Always \"akay.ie\""
},
"message": {
"type": "string"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"abv": {
"type": "number"
},
"ean": {
"type": "string"
},
"moq": {
"type": "string"
},
"url": {
"type": "string"
},
"name": {
"type": "string"
},
"pack": {
"type": "number",
"description": "Units per case"
},
"brand": {
"type": "string"
},
"origin": {
"type": "string"
},
"category": {
"type": "string"
},
"currency": {
"type": "string",
"description": "EUR, USD or GBP; never converted"
},
"ean_case": {
"type": "string"
},
"featured": {
"type": "boolean"
},
"incoterm": {
"type": "string"
},
"location": {
"type": "string"
},
"offer_id": {
"type": "string"
},
"lead_time": {
"type": "string"
},
"unit_type": {
"type": "string"
},
"volume_ml": {
"type": "number"
},
"expires_at": {
"type": "string"
},
"duty_status": {
"type": "string",
"description": "Duty status as listed. T1 = non-EU (third-country) status goods under customs transit; T2 = EU-status goods that can move within the EU under excise duty suspension (e.g. with an eAD in EMCS). Both T1 and T2 are held in bond with duty suspended: neither is duty paid. Bonded, On Floor and Duty Paid are shown exactly as listed on akay.ie."
},
"price_basis": {
"type": "string"
},
"stock_cases": {
"type": "number"
},
"price_status": {
"type": "string",
"description": "\"listed\" or \"indicative\" (listing older than 30 days)"
},
"stock_status": {
"type": "string"
},
"moq_estimated": {
"type": "boolean"
},
"price_per_case": {
"type": "number"
},
"price_per_unit": {
"type": "number"
},
"cases_per_pallet": {
"type": "number"
},
"offer_updated_at": {
"type": "string"
}
},
"additionalProperties": {}
}
},
"page_size": {
"type": "number"
},
"total_matches": {
"type": "number"
},
"feed_age_hours": {
"type": [
"number",
"null"
]
},
"query_understood": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"feed_published_at": {
"type": [
"string",
"null"
],
"description": "When the akay.ie catalogue snapshot was published (ISO 8601)"
},
"price_status_note": {
"type": "string"
}
},
"additionalProperties": {}
}{
"title": "Search akay.ie offers",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_offer — Get one akay.ie offer
Full public details of one open offer by its akay.ie offer_id (or akay.ie offer URL), with the akay.ie link and how to order.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"offer_id"
],
"properties": {
"offer_id": {
"type": "string",
"maxLength": 200,
"description": "offer_id from search results, or the akay.ie offer URL"
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"source",
"found"
],
"properties": {
"note": {
"type": "string"
},
"found": {
"type": "boolean"
},
"offer": {
"type": "object",
"properties": {
"abv": {
"type": "number"
},
"ean": {
"type": "string"
},
"moq": {
"type": "string"
},
"url": {
"type": "string"
},
"name": {
"type": "string"
},
"pack": {
"type": "number",
"description": "Units per case"
},
"brand": {
"type": "string"
},
"origin": {
"type": "string"
},
"category": {
"type": "string"
},
"currency": {
"type": "string",
"description": "EUR, USD or GBP; never converted"
},
"ean_case": {
"type": "string"
},
"featured": {
"type": "boolean"
},
"incoterm": {
"type": "string"
},
"location": {
"type": "string"
},
"offer_id": {
"type": "string"
},
"lead_time": {
"type": "string"
},
"unit_type": {
"type": "string"
},
"volume_ml": {
"type": "number"
},
"expires_at": {
"type": "string"
},
"duty_status": {
"type": "string",
"description": "Duty status as listed. T1 = non-EU (third-country) status goods under customs transit; T2 = EU-status goods that can move within the EU under excise duty suspension (e.g. with an eAD in EMCS). Both T1 and T2 are held in bond with duty suspended: neither is duty paid. Bonded, On Floor and Duty Paid are shown exactly as listed on akay.ie."
},
"price_basis": {
"type": "string"
},
"stock_cases": {
"type": "number"
},
"price_status": {
"type": "string",
"description": "\"listed\" or \"indicative\" (listing older than 30 days)"
},
"stock_status": {
"type": "string"
},
"moq_estimated": {
"type": "boolean"
},
"price_per_case": {
"type": "number"
},
"price_per_unit": {
"type": "number"
},
"cases_per_pallet": {
"type": "number"
},
"offer_updated_at": {
"type": "string"
}
},
"additionalProperties": {}
},
"source": {
"type": "string",
"description": "Always \"akay.ie\""
},
"message": {
"type": "string"
},
"how_to_order": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"whatsapp": {
"type": "string"
},
"whatsapp_number": {
"type": "string"
},
"instant_quote_chat": {
"type": "string"
},
"instant_quote_upload": {
"type": "string"
}
},
"additionalProperties": {}
},
"feed_age_hours": {
"type": [
"number",
"null"
]
},
"feed_published_at": {
"type": [
"string",
"null"
],
"description": "When the akay.ie catalogue snapshot was published (ISO 8601)"
},
"price_status_note": {
"type": "string"
}
},
"additionalProperties": {}
}{
"title": "Get one akay.ie offer",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_price — Price one product
Price one product (offer_id, EAN or name) for a quantity in cases. Returns the listed price per case and per unit in the offer's currency, the line total worked out in code, and MOQ and stock checks. If several offers fit, returns candidates instead of picking one. Optional target price comparison. Once the buyer is happy with a line, offer request_quote.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"abv": {
"type": "number",
"maximum": 100,
"minimum": 0
},
"ean": {
"type": "string",
"pattern": "^\\d{8,14}$",
"description": "Unit or case barcode"
},
"pack": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Units per case"
},
"cases": {
"type": "integer",
"maximum": 10000,
"minimum": 1,
"description": "Quantity in whole cases (1-10000)"
},
"units": {
"type": "integer",
"maximum": 1000000,
"minimum": 1,
"description": "Quantity in units, for offers priced per unit/piece without a listed case size. Use cases otherwise."
},
"product": {
"type": "string",
"maxLength": 200,
"description": "Product name as the buyer wrote it, e.g. \"Jameson 6x70cl T2\""
},
"offer_id": {
"type": "string",
"maxLength": 100,
"description": "akay.ie offer id (from search results)"
},
"volume_ml": {
"type": "integer",
"maximum": 100000,
"minimum": 1
},
"duty_status": {
"enum": [
"T1",
"T2",
"Bonded",
"On Floor",
"Duty Paid"
],
"type": "string",
"description": "Duty status as listed. T1 = non-EU (third-country) status goods under customs transit; T2 = EU-status goods that can move within the EU under excise duty suspension (e.g. with an eAD in EMCS). Both T1 and T2 are held in bond with duty suspended: neither is duty paid. Bonded, On Floor and Duty Paid are shown exactly as listed on akay.ie."
},
"target_basis": {
"enum": [
"case",
"unit"
],
"type": "string",
"description": "Whether the target price is per case or per unit"
},
"target_price": {
"type": "number",
"maximum": 10000000,
"description": "Buyer's target price, compared only when currency and basis are given",
"exclusiveMinimum": 0
},
"target_currency": {
"enum": [
"EUR",
"USD",
"GBP"
],
"type": "string"
},
"target_incoterm": {
"type": "string",
"maxLength": 10
},
"target_location": {
"type": "string",
"maxLength": 60
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"source"
],
"properties": {
"line": {
"type": "number"
},
"note": {
"type": "string"
},
"cases": {
"type": [
"number",
"null"
]
},
"offer": {
"type": "object",
"properties": {
"abv": {
"type": "number"
},
"ean": {
"type": "string"
},
"moq": {
"type": "string"
},
"url": {
"type": "string"
},
"name": {
"type": "string"
},
"pack": {
"type": "number",
"description": "Units per case"
},
"brand": {
"type": "string"
},
"origin": {
"type": "string"
},
"category": {
"type": "string"
},
"currency": {
"type": "string",
"description": "EUR, USD or GBP; never converted"
},
"ean_case": {
"type": "string"
},
"featured": {
"type": "boolean"
},
"incoterm": {
"type": "string"
},
"location": {
"type": "string"
},
"offer_id": {
"type": "string"
},
"lead_time": {
"type": "string"
},
"unit_type": {
"type": "string"
},
"volume_ml": {
"type": "number"
},
"expires_at": {
"type": "string"
},
"duty_status": {
"type": "string",
"description": "Duty status as listed. T1 = non-EU (third-country) status goods under customs transit; T2 = EU-status goods that can move within the EU under excise duty suspension (e.g. with an eAD in EMCS). Both T1 and T2 are held in bond with duty suspended: neither is duty paid. Bonded, On Floor and Duty Paid are shown exactly as listed on akay.ie."
},
"price_basis": {
"type": "string"
},
"stock_cases": {
"type": "number"
},
"price_status": {
"type": "string",
"description": "\"listed\" or \"indicative\" (listing older than 30 days)"
},
"stock_status": {
"type": "string"
},
"moq_estimated": {
"type": "boolean"
},
"price_per_case": {
"type": "number"
},
"price_per_unit": {
"type": "number"
},
"cases_per_pallet": {
"type": "number"
},
"offer_updated_at": {
"type": "string"
}
},
"additionalProperties": {}
},
"units": {
"type": "number"
},
"source": {
"type": "string",
"description": "Always \"akay.ie\""
},
"status": {
"type": "string",
"description": "matched, ambiguous, not_listed, moq_not_met, insufficient_stock, price_unavailable or invalid_quantity"
},
"message": {
"type": "string"
},
"currency": {
"type": "string"
},
"problems": {
"type": "array",
"items": {
"type": "string"
}
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"requested": {
"type": "string"
},
"candidates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"abv": {
"type": "number"
},
"ean": {
"type": "string"
},
"moq": {
"type": "string"
},
"url": {
"type": "string"
},
"name": {
"type": "string"
},
"pack": {
"type": "number",
"description": "Units per case"
},
"brand": {
"type": "string"
},
"origin": {
"type": "string"
},
"category": {
"type": "string"
},
"currency": {
"type": "string",
"description": "EUR, USD or GBP; never converted"
},
"ean_case": {
"type": "string"
},
"featured": {
"type": "boolean"
},
"incoterm": {
"type": "string"
},
"location": {
"type": "string"
},
"offer_id": {
"type": "string"
},
"lead_time": {
"type": "string"
},
"unit_type": {
"type": "string"
},
"volume_ml": {
"type": "number"
},
"expires_at": {
"type": "string"
},
"line_total": {
"type": "number"
},
"differences": {
"type": "array",
"items": {}
},
"duty_status": {
"type": "string",
"description": "Duty status as listed. T1 = non-EU (third-country) status goods under customs transit; T2 = EU-status goods that can move within the EU under excise duty suspension (e.g. with an eAD in EMCS). Both T1 and T2 are held in bond with duty suspended: neither is duty paid. Bonded, On Floor and Duty Paid are shown exactly as listed on akay.ie."
},
"line_status": {
"type": "string"
},
"price_basis": {
"type": "string"
},
"stock_cases": {
"type": "number"
},
"price_status": {
"type": "string",
"description": "\"listed\" or \"indicative\" (listing older than 30 days)"
},
"stock_status": {
"type": "string"
},
"moq_estimated": {
"type": "boolean"
},
"price_per_case": {
"type": "number"
},
"price_per_unit": {
"type": "number"
},
"cases_per_pallet": {
"type": "number"
},
"offer_updated_at": {
"type": "string"
},
"lowest_listed_akay_price": {
"type": "boolean"
}
},
"additionalProperties": {}
}
},
"line_total": {
"type": "number"
},
"matched_by": {
"type": "string"
},
"total_basis": {
"type": "string"
},
"how_to_order": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"whatsapp": {
"type": "string"
},
"whatsapp_number": {
"type": "string"
},
"instant_quote_chat": {
"type": "string"
},
"instant_quote_upload": {
"type": "string"
}
},
"additionalProperties": {}
},
"feed_age_hours": {
"type": [
"number",
"null"
]
},
"candidate_count": {
"type": "number"
},
"units_requested": {
"type": [
"number",
"null"
]
},
"feed_published_at": {
"type": [
"string",
"null"
],
"description": "When the akay.ie catalogue snapshot was published (ISO 8601)"
},
"price_status_note": {
"type": "string"
},
"target_comparison": {
"type": "object",
"properties": {},
"additionalProperties": {}
}
},
"additionalProperties": {}
}{
"title": "Price one product",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_categories — List categories
Categories with offer counts and top brands, plus the values available for the duty status, Incoterm, stock and location filters.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"source",
"categories"
],
"properties": {
"note": {
"type": "string"
},
"source": {
"type": "string",
"description": "Always \"akay.ie\""
},
"filters": {
"type": "object",
"properties": {
"currency": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {},
"offers": {
"type": "number"
}
},
"additionalProperties": {}
}
},
"incoterm": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {},
"offers": {
"type": "number"
}
},
"additionalProperties": {}
}
},
"location": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {},
"offers": {
"type": "number"
}
},
"additionalProperties": {}
}
},
"duty_status": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {},
"offers": {
"type": "number"
}
},
"additionalProperties": {}
}
},
"stock_status": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {},
"offers": {
"type": "number"
}
},
"additionalProperties": {}
}
}
},
"additionalProperties": {}
},
"categories": {
"type": "array",
"items": {
"type": "object",
"properties": {
"offers": {
"type": "number"
},
"category": {
"type": "string"
},
"top_brands": {
"type": "array",
"items": {
"type": "object",
"properties": {
"brand": {
"type": "string"
},
"offers": {
"type": "number"
}
},
"additionalProperties": {}
}
}
},
"additionalProperties": {}
}
},
"total_offers": {
"type": "number"
},
"feed_age_hours": {
"type": [
"number",
"null"
]
},
"feed_published_at": {
"type": [
"string",
"null"
],
"description": "When the akay.ie catalogue snapshot was published (ISO 8601)"
}
},
"additionalProperties": {}
}{
"title": "List categories",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}price_my_list — Price my buying list
Price a buying list (up to 100 lines / 20 KB): product names or EANs, quantities in cases and optional target prices. Paste it as text (one product per line, or CSV/TSV with a header row) or give structured lines. Each line comes back with a match status (matched, ambiguous, not_listed, moq_not_met, insufficient_stock, price_unavailable), the listed price, pack, stock, duty status, Incoterm and line total. Lines keep their own currency (EUR, USD or GBP); totals are subtotals per currency, never converted or summed across currencies.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"text": {
"type": "string",
"maxLength": 20000,
"description": "The pasted list, e.g. \"Jameson 6x70cl T2 - 200 cases\" per line, or CSV with a header row"
},
"lines": {
"type": "array",
"items": {
"type": "object",
"properties": {
"abv": {
"type": "number",
"maximum": 100,
"minimum": 0
},
"ean": {
"type": "string",
"pattern": "^\\d{8,14}$",
"description": "Unit or case barcode"
},
"pack": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Units per case"
},
"cases": {
"type": "integer",
"maximum": 10000,
"minimum": 1
},
"units": {
"type": "integer",
"maximum": 1000000,
"minimum": 1
},
"product": {
"type": "string",
"maxLength": 200,
"description": "Product name as the buyer wrote it, e.g. \"Jameson 6x70cl T2\""
},
"offer_id": {
"type": "string",
"maxLength": 100,
"description": "akay.ie offer id (from search results)"
},
"volume_ml": {
"type": "integer",
"maximum": 100000,
"minimum": 1
},
"duty_status": {
"enum": [
"T1",
"T2",
"Bonded",
"On Floor",
"Duty Paid"
],
"type": "string",
"description": "Duty status as listed. T1 = non-EU (third-country) status goods under customs transit; T2 = EU-status goods that can move within the EU under excise duty suspension (e.g. with an eAD in EMCS). Both T1 and T2 are held in bond with duty suspended: neither is duty paid. Bonded, On Floor and Duty Paid are shown exactly as listed on akay.ie."
},
"target_basis": {
"enum": [
"case",
"unit"
],
"type": "string",
"description": "Whether the target price is per case or per unit"
},
"target_price": {
"type": "number",
"maximum": 10000000,
"description": "Buyer's target price, compared only when currency and basis are given",
"exclusiveMinimum": 0
},
"target_currency": {
"enum": [
"EUR",
"USD",
"GBP"
],
"type": "string"
},
"target_incoterm": {
"type": "string",
"maxLength": 10
},
"target_location": {
"type": "string",
"maxLength": 60
}
}
},
"maxItems": 100
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"source",
"lines"
],
"properties": {
"note": {
"type": "string"
},
"lines": {
"type": "array",
"items": {
"type": "object",
"properties": {
"line": {
"type": "number"
},
"cases": {
"type": [
"number",
"null"
]
},
"offer": {
"type": "object",
"properties": {
"abv": {
"type": "number"
},
"ean": {
"type": "string"
},
"moq": {
"type": "string"
},
"url": {
"type": "string"
},
"name": {
"type": "string"
},
"pack": {
"type": "number",
"description": "Units per case"
},
"brand": {
"type": "string"
},
"origin": {
"type": "string"
},
"category": {
"type": "string"
},
"currency": {
"type": "string",
"description": "EUR, USD or GBP; never converted"
},
"ean_case": {
"type": "string"
},
"featured": {
"type": "boolean"
},
"incoterm": {
"type": "string"
},
"location": {
"type": "string"
},
"offer_id": {
"type": "string"
},
"lead_time": {
"type": "string"
},
"unit_type": {
"type": "string"
},
"volume_ml": {
"type": "number"
},
"expires_at": {
"type": "string"
},
"duty_status": {
"type": "string",
"description": "Duty status as listed. T1 = non-EU (third-country) status goods under customs transit; T2 = EU-status goods that can move within the EU under excise duty suspension (e.g. with an eAD in EMCS). Both T1 and T2 are held in bond with duty suspended: neither is duty paid. Bonded, On Floor and Duty Paid are shown exactly as listed on akay.ie."
},
"price_basis": {
"type": "string"
},
"stock_cases": {
"type": "number"
},
"price_status": {
"type": "string",
"description": "\"listed\" or \"indicative\" (listing older than 30 days)"
},
"stock_status": {
"type": "string"
},
"moq_estimated": {
"type": "boolean"
},
"price_per_case": {
"type": "number"
},
"price_per_unit": {
"type": "number"
},
"cases_per_pallet": {
"type": "number"
},
"offer_updated_at": {
"type": "string"
}
},
"additionalProperties": {}
},
"units": {
"type": "number"
},
"status": {
"type": "string",
"description": "matched, ambiguous, not_listed, moq_not_met, insufficient_stock, price_unavailable or invalid_quantity"
},
"message": {
"type": "string"
},
"currency": {
"type": "string"
},
"problems": {
"type": "array",
"items": {
"type": "string"
}
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"requested": {
"type": "string"
},
"candidates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"abv": {
"type": "number"
},
"ean": {
"type": "string"
},
"moq": {
"type": "string"
},
"url": {
"type": "string"
},
"name": {
"type": "string"
},
"pack": {
"type": "number",
"description": "Units per case"
},
"brand": {
"type": "string"
},
"origin": {
"type": "string"
},
"category": {
"type": "string"
},
"currency": {
"type": "string",
"description": "EUR, USD or GBP; never converted"
},
"ean_case": {
"type": "string"
},
"featured": {
"type": "boolean"
},
"incoterm": {
"type": "string"
},
"location": {
"type": "string"
},
"offer_id": {
"type": "string"
},
"lead_time": {
"type": "string"
},
"unit_type": {
"type": "string"
},
"volume_ml": {
"type": "number"
},
"expires_at": {
"type": "string"
},
"line_total": {
"type": "number"
},
"differences": {
"type": "array",
"items": {}
},
"duty_status": {
"type": "string",
"description": "Duty status as listed. T1 = non-EU (third-country) status goods under customs transit; T2 = EU-status goods that can move within the EU under excise duty suspension (e.g. with an eAD in EMCS). Both T1 and T2 are held in bond with duty suspended: neither is duty paid. Bonded, On Floor and Duty Paid are shown exactly as listed on akay.ie."
},
"line_status": {
"type": "string"
},
"price_basis": {
"type": "string"
},
"stock_cases": {
"type": "number"
},
"price_status": {
"type": "string",
"description": "\"listed\" or \"indicative\" (listing older than 30 days)"
},
"stock_status": {
"type": "string"
},
"moq_estimated": {
"type": "boolean"
},
"price_per_case": {
"type": "number"
},
"price_per_unit": {
"type": "number"
},
"cases_per_pallet": {
"type": "number"
},
"offer_updated_at": {
"type": "string"
},
"lowest_listed_akay_price": {
"type": "boolean"
}
},
"additionalProperties": {}
}
},
"line_total": {
"type": "number"
},
"matched_by": {
"type": "string"
},
"total_basis": {
"type": "string"
},
"candidate_count": {
"type": "number"
},
"units_requested": {
"type": [
"number",
"null"
]
},
"target_comparison": {
"type": "object",
"properties": {},
"additionalProperties": {}
}
},
"additionalProperties": {}
}
},
"source": {
"type": "string",
"description": "Always \"akay.ie\""
},
"next_step": {
"type": "string"
},
"offer_links": {
"type": "string"
},
"totals_note": {
"type": "string"
},
"wording_note": {
"type": "string"
},
"status_counts": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "number"
}
},
"feed_age_hours": {
"type": [
"number",
"null"
]
},
"lines_received": {
"type": "number"
},
"ambiguous_lines": {
"type": "string"
},
"feed_published_at": {
"type": [
"string",
"null"
],
"description": "When the akay.ie catalogue snapshot was published (ISO 8601)"
},
"price_status_note": {
"type": "string"
},
"totals_for_matched_lines": {
"type": "object",
"description": "Subtotal per currency code; currencies are never added together",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "number"
}
}
},
"additionalProperties": {}
}{
"title": "Price my buying list",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}request_quote — Prepare a quote request
Turn confirmed lines (offer_id + cases, or units for offers priced per unit) into a quote request summary and a CSV the buyer uploads at quote.akay.ie/#excel, plus WhatsApp and email options. Totals are per currency, never summed across currencies. Use it whenever the buyer says they want a quote, an order or to buy, and offer it after showing prices. Sends nothing, reserves nothing and needs no contact details.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"lines"
],
"properties": {
"lines": {
"type": "array",
"items": {
"type": "object",
"required": [
"offer_id"
],
"properties": {
"cases": {
"type": "integer",
"maximum": 10000,
"minimum": 1
},
"units": {
"type": "integer",
"maximum": 1000000,
"minimum": 1,
"description": "For offers priced per unit without a case size"
},
"offer_id": {
"type": "string",
"maxLength": 100
}
}
},
"maxItems": 100,
"minItems": 1
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"source",
"lines"
],
"properties": {
"csv": {
"type": "string"
},
"note": {
"type": "string"
},
"lines": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"line": {
"type": "number"
},
"name": {
"type": "string"
},
"pack": {
"type": "number"
},
"cases": {
"type": "number"
},
"units": {
"type": "number"
},
"status": {
"type": "string"
},
"message": {
"type": "string"
},
"currency": {
"type": "string"
},
"incoterm": {
"type": "string"
},
"location": {
"type": "string"
},
"offer_id": {
"type": "string"
},
"problems": {
"type": "array",
"items": {
"type": "string"
}
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"volume_ml": {
"type": "number"
},
"line_total": {
"type": "number"
},
"duty_status": {
"type": "string"
},
"price_status": {
"type": "string"
},
"price_per_case": {
"type": "number"
},
"price_per_unit": {
"type": "number"
}
},
"additionalProperties": {}
}
},
"source": {
"type": "string",
"description": "Always \"akay.ie\""
},
"totals": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "number"
}
},
"how_to_send": {
"type": "array",
"items": {
"type": "string"
}
},
"totals_note": {
"type": "string"
},
"csv_filename": {
"type": "string"
},
"summary_text": {
"type": "string"
},
"feed_age_hours": {
"type": [
"number",
"null"
]
},
"feed_published_at": {
"type": [
"string",
"null"
],
"description": "When the akay.ie catalogue snapshot was published (ISO 8601)"
},
"note_to_assistant": {
"type": "string"
}
},
"additionalProperties": {}
}{
"title": "Prepare a quote request",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}search — Search akay.ie (ids and links)
Search the akay.ie trade catalogue. Returns offer ids, titles and akay.ie URLs. Use fetch with an id for full details.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"maxLength": 200,
"description": "Search query"
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"results"
],
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"title",
"url"
],
"properties": {
"id": {
"type": "string",
"description": "Offer id; pass to fetch"
},
"url": {
"type": "string",
"description": "akay.ie offer page"
},
"title": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}{
"title": "Search akay.ie (ids and links)",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}fetch — Fetch one akay.ie offer by id
Fetch the full public details of one akay.ie offer by the id returned from search.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 200,
"description": "Offer id from search"
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id",
"title",
"text",
"url"
],
"properties": {
"id": {
"type": "string"
},
"url": {
"type": "string"
},
"text": {
"type": "string"
},
"title": {
"type": "string"
},
"metadata": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": [
"string",
"number",
"boolean",
"null"
]
}
}
},
"additionalProperties": false
}{
"title": "Fetch one akay.ie offer by id",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 668 ms
- 95th percentile latency
- 668 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 668 ms · metadata changed · 8 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http akay-mcp https://mcp.akay.ie/mcpCodex
codex mcp add akay-mcp --url https://mcp.akay.ie/mcpCursor
{
"mcpServers": {
"akay-mcp": {
"url": "https://mcp.akay.ie/mcp"
}
}
}Cline
{
"mcpServers": {
"akay-mcp": {
"type": "streamableHttp",
"url": "https://mcp.akay.ie/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"akay-mcp": {
"type": "http",
"url": "https://mcp.akay.ie/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http akay-mcp https://mcp.akay.ie/mcpClaude Desktop
{
"mcpServers": {
"akay-mcp": {
"url": "https://mcp.akay.ie/mcp"
}
}
}Windsurf
{
"mcpServers": {
"akay-mcp": {
"serverUrl": "https://mcp.akay.ie/mcp"
}
}
}Let your agent find its tools
Find servers like Akay MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other commerce servers
Do you run Akay MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.