AgentWeb

Free web search, 130M+ business records, local search, weather and travel data for AI agents.

Should I use this

Quality & Safety

A
Description quality
98%
Schema completeness
85%
Naming quality
84%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~6,615Tokens (tool definitions)
~1.2 KBTypical response size
Significant attention impact (5.17% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "agentweb": {
      "url": "https://api.agentweb.live/mcp"
    }
  }
}

Remote endpoints

https://api.agentweb.live/mcpstreamable-http

What it can do

Tool inventory

Tools (37)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_businesses(q, category, city, country, lat, ...)

Search the AgentWeb global business directory. Use agentweb_health for current counts. If a business is not in the database yet, AgentWeb tries to discover it from the web in real time (~3s) and saves it. Returns markdown prose by default. Supports text search (q), category, city/country, and geographic search (lat+lng+radius_km). ONE CALL RETURNS EVERYTHING: name, phone, email, hours, website, address, geo, trust score. Use format='json' for structured JSON.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "Text search query, e.g. 'noma', 'thai restaurant', 'dentist near me'"
    },
    "category": {
      "type": "string",
      "description": "Business category filter (e.g., 'restaurant', 'hotel', 'pharmacy')"
    },
    "city": {
      "type": "string",
      "description": "City name for location filter"
    },
    "country": {
      "type": "string",
      "description": "Country code (ISO 3166-1 alpha-2, e.g., 'US', 'GB', 'DK')"
    },
    "lat": {
      "type": "number",
      "description": "Latitude for geographic search (requires lng and radius_km)"
    },
    "lng": {
      "type": "number",
      "description": "Longitude for geographic search (requires lat and radius_km)"
    },
    "radius_km": {
      "type": "number",
      "description": "Search radius in kilometers (used with lat/lng)"
    },
    "limit": {
      "type": "number",
      "description": "Maximum number of results (default: 10, max: 100)",
      "default": 10
    },
    "cursor": {
      "type": "string",
      "description": "Pagination cursor from a previous response's meta.next_cursor"
    },
    "format": {
      "type": "string",
      "enum": [
        "text",
        "json"
      ],
      "description": "Response format. 'text' (default) returns markdown prose; 'json' returns structured JSON.",
      "default": "text"
    }
  }
}
🟢local_search(query, location, limit)

Search local businesses from external sources; availability and freshness vary. Returns name, star rating, review count, phone, today's opening hours, website, full address, category, and geo coordinates for each result. Use when you need CURRENT info (today's hours, latest ratings) or when search_businesses doesn't have the business yet. Use for location-based business queries. Results may be cached.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "What to look for, e.g. 'coffee shops', 'dentist', 'thai restaurant'"
    },
    "location": {
      "type": "string",
      "description": "City, area, or 'near me': e.g. 'Copenhagen', 'Shibuya Tokyo'"
    },
    "limit": {
      "type": "number",
      "description": "Maximum number of results (default: 15)",
      "default": 15
    }
  },
  "required": [
    "query"
  ]
}
🟢get_business(id, format)

Fetch a single business by slug or UUID. Returns markdown prose by default (~60% fewer tokens than JSON). Slugs look like 'noma-copenhagen-abc12345'. Use when you already have an identifier from a previous search. Set format='json' for structured data.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Business slug (e.g. 'noma-copenhagen-abc12345') or UUID. Slugs preferred."
    },
    "format": {
      "type": "string",
      "enum": [
        "text",
        "json"
      ],
      "description": "'text' (default) markdown prose; 'json' structured JSON.",
      "default": "text"
    }
  },
  "required": [
    "id"
  ]
}
🟢agentweb_get_short(id)

Fetch a business in the AgentWeb compact shorthand format (~320 bytes vs 3-5 KB). Single-letter keys (n=name, p=phone, e=email, w=website, h=hours, g=[lat,lng]…). ~80% fewer tokens. Use when you just need contact info. Schema: https://api.agentweb.live/v1/schema/short

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The unique business ID from AgentWeb"
    }
  },
  "required": [
    "id"
  ]
}
🟢agentweb_health

Check the health status of the AgentWeb API, including total businesses and countries available.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢agentweb_capabilities

Get the machine-readable description of the entire AgentWeb API: every endpoint, tool, data source, and current live counts. Use to discover what AgentWeb can do.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢contribute_business(name, phone, website, email, category, ...)

Contribute a new business to AgentWeb, OR enrich an existing one with missing data (phone, email, website, hours, address). Deduplicates automatically: same name within 100m, or a matching phone, merges into the existing record. Use whenever you find structured business data AgentWeb doesn't have yet.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Business name (required, min 2 chars)"
    },
    "phone": {
      "type": "string",
      "description": "Phone number (any format; will be cleaned)"
    },
    "website": {
      "type": "string",
      "description": "Business website URL"
    },
    "email": {
      "type": "string",
      "description": "Business email address"
    },
    "category": {
      "type": "string",
      "description": "Business category, e.g. 'restaurant', 'dentist', 'hotel'"
    },
    "country_code": {
      "type": "string",
      "description": "ISO 3166-1 alpha-2 country code, e.g. 'US', 'DE'"
    },
    "lat": {
      "type": "number",
      "description": "Latitude (recommended for accurate dedup)"
    },
    "lng": {
      "type": "number",
      "description": "Longitude (recommended for accurate dedup)"
    },
    "address": {
      "type": "object",
      "description": "Address fields: { street, city, postcode, country, full }",
      "properties": {
        "street": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "postcode": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "full": {
          "type": "string"
        }
      }
    },
    "hours": {
      "type": "object",
      "description": "Opening hours (e.g. { monday: '09:00-17:00', ... })"
    }
  },
  "required": [
    "name"
  ]
}
⚪report_business(business_id, report_type, details)

Report a business as closed, having wrong info, or being spam. Three or more 'closed' reports automatically lower its confidence score. Use when you discover a business is permanently closed, has wrong phone/address/hours, is spam, or is a duplicate.

Input Schema

{
  "type": "object",
  "properties": {
    "business_id": {
      "type": "string",
      "description": "The unique business ID from AgentWeb (required)"
    },
    "report_type": {
      "type": "string",
      "description": "Type of issue",
      "enum": [
        "closed",
        "wrong_phone",
        "wrong_address",
        "wrong_hours",
        "spam",
        "duplicate",
        "other"
      ]
    },
    "details": {
      "type": "string",
      "description": "Optional free-text explanation, max 500 chars"
    }
  },
  "required": [
    "business_id",
    "report_type"
  ]
}
🟢agentweb_leaderboard(limit)

Get the public leaderboard of top contributing AI agents (most creates, enrichments, reports).

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "description": "Number of top contributors (default: 10, max: 50)",
      "default": 10
    }
  }
}
🟢suggest(q, type, country, limit)

Autocomplete / type-ahead for business names, cities, or categories. Use to disambiguate user input before searching. Returns up to 15 suggestions by relevance. Fast (<20ms).

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "Query prefix, min 2 characters (e.g. 'nom', 'copenh')"
    },
    "type": {
      "type": "string",
      "enum": [
        "business",
        "city",
        "category"
      ],
      "description": "What to autocomplete (default: 'business').",
      "default": "business"
    },
    "country": {
      "type": "string",
      "description": "Optional ISO country code to narrow suggestions"
    },
    "limit": {
      "type": "number",
      "description": "Max suggestions (default: 10, max: 15)",
      "default": 10
    }
  },
  "required": [
    "q"
  ]
}
🟢batch_get_businesses(ids, format)

Fetch up to 50 businesses in a single call by IDs or slugs. Saves N round-trips. Supports prose (markdown), JSON, and shorthand formats.

Input Schema

{
  "type": "object",
  "properties": {
    "ids": {
      "type": "string",
      "description": "Comma-separated business IDs or slugs (max 50)"
    },
    "format": {
      "type": "string",
      "enum": [
        "text",
        "json",
        "short"
      ],
      "description": "'text' (default) markdown; 'json' structured; 'short' compact shorthand.",
      "default": "text"
    }
  },
  "required": [
    "ids"
  ]
}
🟢trending_businesses(period, limit)

Get the most searched/popular businesses on AgentWeb right now (last 24h or all time).

Input Schema

{
  "type": "object",
  "properties": {
    "period": {
      "type": "string",
      "enum": [
        "24h",
        "alltime"
      ],
      "description": "Time period (default: '24h').",
      "default": "24h"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Max results (default: 10)",
      "default": 10
    }
  }
}
🟢agent_history(limit, offset)

Retrieve this agent's interaction history: every business it searched for, viewed, or contributed to. Persists 90 days, up to 500 interactions. Recall past lookups without re-searching.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "description": "Max entries (default: 50, max: 500)",
      "default": 50
    },
    "offset": {
      "type": "number",
      "description": "Skip N entries (default: 0)",
      "default": 0
    }
  }
}
🟢agent_favorites(limit)

Get this agent's implicit favorites: businesses it interacted with more than once, by frequency.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "description": "Max favorites (default: 20, max: 100)",
      "default": 20
    }
  }
}
🟢agent_profile

Get this agent's identity and stats: API key info, tier, contribution count, request totals, remembered interactions.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢search_flights(from, to, depart, return, adults, ...)

Search flights across multiple sources (booking.com + kiwi.com) and return the cheapest. Returns airlines, prices, times, stops, duration, source, and booking links. ~3s.

Input Schema

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "description": "Origin airport IATA code (e.g. 'CPH', 'JFK', 'LHR')"
    },
    "to": {
      "type": "string",
      "description": "Destination airport IATA code (e.g. 'FCO', 'CDG', 'NRT')"
    },
    "depart": {
      "type": "string",
      "description": "Departure date YYYY-MM-DD"
    },
    "return": {
      "type": "string",
      "description": "Return date YYYY-MM-DD (omit for one-way)"
    },
    "adults": {
      "type": "number",
      "description": "Adult passengers (default: 2)",
      "default": 2
    },
    "cabin": {
      "type": "string",
      "enum": [
        "ECONOMY",
        "BUSINESS",
        "FIRST"
      ],
      "description": "Cabin class (default: ECONOMY)",
      "default": "ECONOMY"
    },
    "sort": {
      "type": "string",
      "enum": [
        "cheapest",
        "fastest",
        "direct"
      ],
      "description": "Sort order",
      "default": "cheapest"
    },
    "limit": {
      "type": "number",
      "description": "Max results (default: 10)",
      "default": 10
    }
  },
  "required": [
    "from",
    "to",
    "depart"
  ]
}
🟢search_hotels(destination, checkin, checkout, adults, sort, ...)

Search hotels across multiple sources (booking.com + kiwi.com) and return the cheapest. Returns name, price, stars, rating, reviews, source, booking links. ~2s.

Input Schema

{
  "type": "object",
  "properties": {
    "destination": {
      "type": "string",
      "description": "City or destination (e.g. 'Rome', 'Tokyo')"
    },
    "checkin": {
      "type": "string",
      "description": "Check-in date YYYY-MM-DD"
    },
    "checkout": {
      "type": "string",
      "description": "Check-out date YYYY-MM-DD"
    },
    "adults": {
      "type": "number",
      "description": "Adult guests (default: 2)",
      "default": 2
    },
    "sort": {
      "type": "string",
      "enum": [
        "cheapest",
        "expensive"
      ],
      "description": "Sort by price",
      "default": "cheapest"
    },
    "max_price": {
      "type": "number",
      "description": "Maximum price per night filter"
    },
    "limit": {
      "type": "number",
      "description": "Max results (default: 10)",
      "default": 10
    }
  },
  "required": [
    "destination",
    "checkin",
    "checkout"
  ]
}
🟢search_cars(location, pickup_date, dropoff_date, dropoff, pickup_time, ...)

Search real-time car rental availability and prices on booking.com via AgentWeb. Returns vehicle, supplier (Avis, Hertz, Sixt…), price, transmission, doors, mileage, pickup location, booking links. Works with any airport IATA code. ~1s.

Input Schema

{
  "type": "object",
  "properties": {
    "location": {
      "type": "string",
      "description": "Pickup: airport IATA code or city name"
    },
    "pickup_date": {
      "type": "string",
      "description": "Pickup date YYYY-MM-DD"
    },
    "dropoff_date": {
      "type": "string",
      "description": "Drop-off date YYYY-MM-DD"
    },
    "dropoff": {
      "type": "string",
      "description": "Drop-off location if different from pickup"
    },
    "pickup_time": {
      "type": "string",
      "description": "Pickup time HH:MM (default: 10:00)",
      "default": "10:00"
    },
    "dropoff_time": {
      "type": "string",
      "description": "Drop-off time HH:MM (default: 10:00)",
      "default": "10:00"
    },
    "driver_age": {
      "type": "number",
      "description": "Driver age (default: 30)",
      "default": 30
    },
    "transmission": {
      "type": "string",
      "enum": [
        "automatic",
        "manual"
      ],
      "description": "Filter by transmission type"
    },
    "sort": {
      "type": "string",
      "enum": [
        "cheapest",
        "expensive"
      ],
      "description": "Sort by price",
      "default": "cheapest"
    },
    "limit": {
      "type": "number",
      "description": "Max results (default: 15)",
      "default": 15
    }
  },
  "required": [
    "location",
    "pickup_date",
    "dropoff_date"
  ]
}
🟢kiwi_search_flights(from, to, depart, return, adults, ...)

Search flights on Kiwi.com: aggregates all airlines, often cheaper than airline sites. Returns prices, airlines, times, stops, duration, booking links. ~1.5s.

Input Schema

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "description": "Origin airport IATA code"
    },
    "to": {
      "type": "string",
      "description": "Destination airport IATA code"
    },
    "depart": {
      "type": "string",
      "description": "Departure date YYYY-MM-DD"
    },
    "return": {
      "type": "string",
      "description": "Return date YYYY-MM-DD (omit for one-way)"
    },
    "adults": {
      "type": "number",
      "description": "Adult passengers (default: 1)",
      "default": 1
    },
    "cabin": {
      "type": "string",
      "enum": [
        "ECONOMY",
        "BUSINESS",
        "FIRST"
      ],
      "description": "Cabin class (default: ECONOMY)",
      "default": "ECONOMY"
    },
    "sort": {
      "type": "string",
      "enum": [
        "price",
        "duration",
        "quality"
      ],
      "description": "Sort (default: price)",
      "default": "price"
    },
    "limit": {
      "type": "number",
      "description": "Max results (default: 10)",
      "default": 10
    }
  },
  "required": [
    "from",
    "to",
    "depart"
  ]
}
🟢flixbus_search(from, to, date, adults, sort, ...)

Search FlixBus bus and train routes between cities in Europe. Returns prices, times, duration, transfers, booking links. ~1s.

Input Schema

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "description": "Origin city (e.g. 'Copenhagen', 'Berlin')"
    },
    "to": {
      "type": "string",
      "description": "Destination city (e.g. 'Berlin', 'Rome')"
    },
    "date": {
      "type": "string",
      "description": "Travel date YYYY-MM-DD"
    },
    "adults": {
      "type": "number",
      "description": "Passengers (default: 1)",
      "default": 1
    },
    "sort": {
      "type": "string",
      "enum": [
        "cheapest",
        "fastest",
        "earliest"
      ],
      "description": "Sort (default: cheapest)",
      "default": "cheapest"
    },
    "limit": {
      "type": "number",
      "description": "Max results (default: 10)",
      "default": 10
    }
  },
  "required": [
    "from",
    "to",
    "date"
  ]
}
🟢currency_convert(amount, from, to)

Convert between currencies using live ECB exchange rates. 30+ currencies. Returns converted amount and rate. ~0.5s.

Input Schema

{
  "type": "object",
  "properties": {
    "amount": {
      "type": "number",
      "description": "Amount to convert"
    },
    "from": {
      "type": "string",
      "description": "Source currency code (e.g. 'USD', 'EUR')"
    },
    "to": {
      "type": "string",
      "description": "Target currency code (e.g. 'EUR', 'JPY')"
    }
  },
  "required": [
    "amount",
    "from",
    "to"
  ]
}
🟢time_now(location, timezone)

Get the current date and time in a country (e.g. Denmark), supported city, or IANA timezone. Returns UTC offset, DST, Unix timestamp and timezone-data version. Fresh every call. Countries with multiple zones return choices; select one and retry. Use this for 'What time is it in Denmark right now?'.

Input Schema

{
  "type": "object",
  "properties": {
    "location": {
      "type": "string",
      "description": "Country name/code or supported city, e.g. Denmark, DK, Tokyo. Use either location or timezone."
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone, e.g. Europe/Copenhagen. Defaults to UTC if neither field is supplied."
    }
  },
  "additionalProperties": false
}
🟢time_convert(from, to, time, fold)

Convert a local date/time between IANA zones, supported cities or countries. Rejects nonexistent clock-change times. Repeated local times require fold=0/1 or an explicit UTC offset. HH:MM uses today's date in the source zone.

Input Schema

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "description": "Source IANA timezone, supported city or country."
    },
    "to": {
      "type": "string",
      "description": "Destination IANA timezone, supported city or country."
    },
    "time": {
      "type": "string",
      "description": "ISO datetime, YYYY-MM-DD HH:MM, HH:MM or now (default)."
    },
    "fold": {
      "type": "integer",
      "enum": [
        0,
        1
      ],
      "description": "First (0) or second (1) occurrence during a backward clock change."
    }
  },
  "required": [
    "from",
    "to"
  ],
  "additionalProperties": false
}
🟢weather_forecast(city, days, units)

Get weather forecast for any city worldwide. Returns current conditions plus daily forecast up to 14 days (high/low, rain chance, UV, sunrise/sunset, packing advisories). ~1s.

Input Schema

{
  "type": "object",
  "properties": {
    "city": {
      "type": "string",
      "description": "City name (e.g. 'Rome', 'Tokyo', 'New York')"
    },
    "days": {
      "type": "number",
      "description": "Forecast days (1-14, default: 3)",
      "default": 3
    },
    "units": {
      "type": "string",
      "enum": [
        "celsius",
        "fahrenheit"
      ],
      "description": "Temperature unit (default: celsius)",
      "default": "celsius"
    }
  },
  "required": [
    "city"
  ]
}
🟢search_attractions(destination, date, end_date, sort, limit)

Search real-time attractions, tours, and activities on booking.com via AgentWeb. Returns name, price, description, rating, duration, free-cancellation, discounts, booking links. ~2s.

Input Schema

{
  "type": "object",
  "properties": {
    "destination": {
      "type": "string",
      "description": "City name (e.g. 'Rome', 'Tokyo', 'Barcelona')"
    },
    "date": {
      "type": "string",
      "description": "Date YYYY-MM-DD"
    },
    "end_date": {
      "type": "string",
      "description": "End date YYYY-MM-DD (defaults to date)"
    },
    "sort": {
      "type": "string",
      "enum": [
        "popular",
        "cheapest",
        "rating"
      ],
      "description": "Sort (default: popular)",
      "default": "popular"
    },
    "limit": {
      "type": "number",
      "description": "Max results (default: 15)",
      "default": 15
    }
  },
  "required": [
    "destination",
    "date"
  ]
}
🟢list_recipes

Discover every public recipe and its parameters, authentication and cache policy. Includes news, holidays, Wikipedia, Amazon products and provider-specific travel. A listed recipe is not a guarantee of upstream availability.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢execute_recipe(domain, recipe_name, params)

Execute a public recipe discovered with list_recipes. Pass its exact domain, recipe_name and named params. Covers all public recipes, including those without a dedicated tool. Upstream errors are returned as tool errors. Authentication follows the selected recipe.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "description": "Catalog key, e.g. news, holidays, wikipedia.org or amazon.com"
    },
    "recipe_name": {
      "type": "string",
      "description": "Recipe name, e.g. search, list or search_products"
    },
    "params": {
      "type": "object",
      "additionalProperties": {
        "type": [
          "string",
          "number",
          "boolean"
        ]
      },
      "description": "Named parameters from list_recipes. Do not include authentication credentials."
    }
  },
  "required": [
    "domain",
    "recipe_name",
    "params"
  ]
}
🟢web_search(q, num, mode)

General web search. mode=index searches AgentWeb's own indexed pages with a short time budget; mode=hybrid also queries external sources (the default). Returns the top web results (title, URL, snippet) for a query: general web pages, not just businesses. Use for research, finding pages, and current info. Pair with web_fetch to read a result.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "Search query"
    },
    "num": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "description": "Number of results (default 10, max 20)",
      "default": 10
    },
    "mode": {
      "type": "string",
      "enum": [
        "index",
        "hybrid"
      ],
      "default": "hybrid"
    }
  },
  "required": [
    "q"
  ]
}
🟢web_research(q, num, max_chars, idempotency_key, max_duration_ms, ...)

Web search PLUS the cleaned text of the top pages in one call (pages are fetched in parallel). Prefer this over web_search + web_fetch whenever you need to read the results, not just list them.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "Search query"
    },
    "num": {
      "type": "integer",
      "minimum": 1,
      "maximum": 5,
      "description": "Pages to read (default 3)",
      "default": 3
    },
    "max_chars": {
      "type": "integer",
      "minimum": 300,
      "maximum": 8000,
      "description": "Characters per page (default 2500)",
      "default": 2500
    },
    "idempotency_key": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Reuse for a retry of exactly the same operation/input."
    },
    "max_duration_ms": {
      "type": "integer",
      "minimum": 1000,
      "maximum": 20000,
      "default": 10000
    },
    "max_units": {
      "type": "integer",
      "minimum": 1,
      "maximum": 6,
      "default": 4
    },
    "intent": {
      "type": "string",
      "enum": [
        "general",
        "official_website"
      ]
    },
    "entity": {
      "type": "string",
      "description": "Explicit entity for official_website candidate identification; ownership is not verified."
    }
  },
  "required": [
    "q"
  ]
}
🟢web_fetch(url, max_chars)

Page fetch. Fetches a public URL and returns its cleaned text content (title + body) ready to read.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "The page URL to fetch"
    },
    "max_chars": {
      "type": "number",
      "description": "Truncate content (default 8000)",
      "default": 8000
    }
  },
  "required": [
    "url"
  ]
}
🟢evidence_get(evidence_id)

Retrieve an exact evidence passage and its immutable capture metadata. Evidence is scoped to this application's user/workspace and retained for seven days.

Input Schema

{
  "type": "object",
  "properties": {
    "evidence_id": {
      "type": "string"
    }
  },
  "required": [
    "evidence_id"
  ]
}
🟢research_status(request_id)

Get the status, evidence and usage receipt of an accepted research request.

Input Schema

{
  "type": "object",
  "properties": {
    "request_id": {
      "type": "string",
      "format": "uuid"
    }
  },
  "required": [
    "request_id"
  ]
}
🔴research_cancel(request_id)

Request cancellation of an accepted research execution. In-flight usage can remain pending; retrying cancellation does not start new work.

Input Schema

{
  "type": "object",
  "properties": {
    "request_id": {
      "type": "string",
      "format": "uuid"
    }
  },
  "required": [
    "request_id"
  ]
}
🟡watch_create(url, query, kind, terms, price, ...)

Create an expiring, resource-limited watch for URL text changes, text appearance or an unambiguous structured product price. Baselines are silent by default. An optional webhook receives signed changes; without it, poll watch_events.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "anyOf": [
        {
          "maxLength": 2048,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Url"
    },
    "query": {
      "anyOf": [
        {
          "maxLength": 500,
          "minLength": 1,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Query"
    },
    "kind": {
      "enum": [
        "content_changed",
        "text_appeared",
        "price_below",
        "price_dropped"
      ],
      "title": "Kind",
      "type": "string"
    },
    "terms": {
      "items": {
        "type": "string"
      },
      "maxItems": 5,
      "title": "Terms",
      "type": "array"
    },
    "price": {
      "anyOf": [
        {
          "exclusiveMinimum": 0,
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Price"
    },
    "currency": {
      "anyOf": [
        {
          "pattern": "^[A-Z]{3}$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Currency"
    },
    "interval_seconds": {
      "default": 1800,
      "maximum": 86400,
      "minimum": 300,
      "title": "Interval Seconds",
      "type": "integer"
    },
    "expires_in_seconds": {
      "default": 86400,
      "maximum": 604800,
      "minimum": 300,
      "title": "Expires In Seconds",
      "type": "integer"
    },
    "max_checks": {
      "default": 48,
      "maximum": 288,
      "minimum": 1,
      "title": "Max Checks",
      "type": "integer"
    },
    "max_units": {
      "default": 192,
      "maximum": 1000,
      "minimum": 1,
      "title": "Max Units",
      "type": "integer"
    },
    "max_pages": {
      "default": 3,
      "maximum": 3,
      "minimum": 1,
      "title": "Max Pages",
      "type": "integer"
    },
    "notify_initial": {
      "default": false,
      "title": "Notify Initial",
      "type": "boolean"
    },
    "webhook_url": {
      "anyOf": [
        {
          "maxLength": 2048,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Webhook Url"
    },
    "idempotency_key": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Reuse for a retry of exactly the same operation/input."
    }
  },
  "required": [
    "kind"
  ],
  "additionalProperties": false,
  "title": "WatchRequest"
}
🟢watch_list

List change watches in the current application/user/workspace scope.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢watch_events(watch_id, after)

Read detected changes, supporting evidence and delivery status for a watch in the current scope.

Input Schema

{
  "type": "object",
  "properties": {
    "watch_id": {
      "type": "string",
      "format": "uuid"
    },
    "after": {
      "type": "string",
      "description": "next_cursor from the previous page"
    }
  },
  "required": [
    "watch_id"
  ]
}
🔴watch_cancel(watch_id)

Cancel a watch and its queued callback deliveries. An already in-flight delivery may still arrive.

Input Schema

{
  "type": "object",
  "properties": {
    "watch_id": {
      "type": "string",
      "format": "uuid"
    }
  },
  "required": [
    "watch_id"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded37 tools