/** * MCP tool definitions for marketplace scrapers */ export const tools = [ { name: "search_kijiji", description: "Search Kijiji marketplace for listings matching a query", inputSchema: { type: "object", properties: { query: { type: "string", description: "Search query for Kijiji listings", }, location: { type: "string", description: "Location name or ID (e.g., 'toronto', 'gta', 'ontario')", }, category: { type: "string", description: "Category name or ID (e.g., 'computers', 'furniture', 'bikes')", }, keywords: { type: "string", description: "Additional keywords to filter results", }, sortBy: { type: "string", description: "Sort results by field", enum: ["relevancy", "date", "price", "distance"], default: "relevancy", }, sortOrder: { type: "string", description: "Sort order", enum: ["asc", "desc"], default: "desc", }, maxPages: { type: "number", description: "Maximum pages to fetch (~40 items per page)", default: 5, }, priceMin: { type: "number", description: "Minimum price in cents", }, priceMax: { type: "number", description: "Maximum price in cents", }, }, required: ["query"], }, }, { name: "search_facebook", description: "Search Facebook Marketplace for listings matching a query", inputSchema: { type: "object", properties: { query: { type: "string", description: "Search query for Facebook Marketplace listings", }, location: { type: "string", description: "Location for search (e.g., 'toronto')", default: "toronto", }, maxItems: { type: "number", description: "Maximum number of items to return", default: 5, }, cookiesSource: { type: "string", description: "Optional Facebook session cookies source", }, }, required: ["query"], }, }, { name: "search_ebay", description: "Search eBay for listings matching a query (default: Buy It Now only, Canada only)", inputSchema: { type: "object", properties: { query: { type: "string", description: "Search query for eBay listings", }, minPrice: { type: "number", description: "Minimum price filter", }, maxPrice: { type: "number", description: "Maximum price filter", }, strictMode: { type: "boolean", description: "Enable strict search mode", default: false, }, exclusions: { type: "array", items: { type: "string" }, description: "Terms to exclude from results", }, keywords: { type: "array", items: { type: "string" }, description: "Keywords to include in search", }, buyItNowOnly: { type: "boolean", description: "Include only Buy It Now listings (exclude auctions)", default: true, }, canadaOnly: { type: "boolean", description: "Include only Canadian sellers/listings", default: true, }, maxItems: { type: "number", description: "Maximum number of items to return", default: 5, }, }, required: ["query"], }, }, ];