{"name":"giftideas","title":"Gift Ideas","description":"Real gift ideas with real prices, for every occasion.","version":"1","websiteUrl":"https://giftideas.fyi","documentationUrl":"https://giftideas.fyi/developers","supportedProtocolVersions":["2025-06-18","2025-03-26","2024-11-05"],"remotes":[{"type":"streamable-http","url":"https://giftideas.fyi/mcp"}],"capabilities":{"tools":{"listChanged":false}},"instructions":"Gift Ideas lists shops. Call list_places and list_categories first to learn the place and category slugs. Then call search_listings, and get_listing for one record. Every result has meta.attribution and meta.sources. Show the credit line, and keep the license of each source. A shop is a record, not an endorsement. list_product_categories, list_products and get_product read the affiliate products. A price is the one seen on price_as_of, not a live price; buy_url is an affiliate link. With a service token in the Authorization header, tools/list also offers the write tools that the token's scopes allow.","tools":[{"name":"search_listings","description":"Search published shops by text, place and category.","inputSchema":{"type":"object","properties":{"q":{"description":"Search text, with at least one letter or digit. Matches name, categories, attributes, description and place. Typos fall back to close matches.","type":"string","minLength":1,"maxLength":200},"country":{"description":"ISO 3166-1 alpha-2 country code, any case. A country the directory does not cover, as listed in /places, gives 400.","type":"string","pattern":"^[A-Za-z]{2}$"},"region":{"description":"Region slug, from /places.","type":"string","minLength":1,"maxLength":100,"pattern":"^[a-z0-9]+(-[a-z0-9]+)*$"},"city":{"description":"City slug, from /places.","type":"string","minLength":1,"maxLength":100,"pattern":"^[a-z0-9]+(-[a-z0-9]+)*$"},"category":{"description":"Category slug, from /categories. A parent slug also matches its children.","type":"string","minLength":1,"maxLength":100,"pattern":"^[a-z0-9]+(-[a-z0-9]+)*$"},"sort":{"description":"`relevance` needs `q` and is the default with it. `name` is the default without `q`. `recent` is newest first.","type":"string","enum":["relevance","name","recent"]},"limit":{"default":20,"description":"Items per page.","type":"integer","minimum":1,"maximum":50},"cursor":{"description":"`page.nextCursor` from the previous response. Opaque. Send the same filters and `limit`.","type":"string","minLength":1,"maxLength":200}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_listing","description":"Get one published shop by its slug.","inputSchema":{"type":"object","properties":{"slug":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-z0-9]+(-[a-z0-9]+)*$","description":"The listing slug."}},"required":["slug"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"list_places","description":"List countries, regions and cities that have shops.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"list_categories","description":"List categories with their shop counts.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_stats","description":"Get the number of published shops, places and categories, and when the data last changed.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"list_sources","description":"List where the shop data comes from, with the license and refresh of each source.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"list_products","description":"List the affiliate products, with the price each had on the day it was checked. Filter by product category.","inputSchema":{"type":"object","properties":{"category":{"description":"A product category slug.","type":"string","minLength":1,"maxLength":100,"pattern":"^[a-z0-9]+(-[a-z0-9]+)*$"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_product","description":"Get one affiliate product by its slug, with its page and outbound link.","inputSchema":{"type":"object","properties":{"slug":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-z0-9]+(-[a-z0-9]+)*$","description":"The product slug."}},"required":["slug"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"list_product_categories","description":"List the product categories with their product counts.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}}]}