141 lines
3.7 KiB
TypeScript
141 lines
3.7 KiB
TypeScript
/**
|
|
* 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"],
|
|
},
|
|
},
|
|
];
|