Skip to main content
Glama

Cross a paper to a funded product

knos_cross
Destructive

Turns a paper id (DOI, arXiv, PubMed or OpenAlex) into a research card and a demand check, and returns each step with the Qloo call behind it.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "knos_cross"
  }
}

Input Schema

NameRequiredDescriptionDefault
ageNoWho wants it (F1): Who: age range(s) the answer is weighted to. Qloo: signal.demographics.age. comma-separated, of: 24_and_younger, 25_to_29, 30_to_34, 35_to_44, 45_to_54, 55_and_older
refNo
cityNoWhere to launch (F3): Exact city or town name. Qloo: filter.geocode.name.
ideaNo
nearNoWhere to launch (F3): Where: a city or region by name. Qloo: filter.location.query.
qlooNoAnything else in the guide (F8): Any other documented parameter for the call's filter.type, by its Qloo name. Qloo: *.
sortNoWho serves or stocks it (F5): Order places by. Qloo: sort_by.
placeNo
admin1NoWhere to launch (F3): Exact state or region. Qloo: filter.geocode.admin1_region.
admin2NoWhere to launch (F3): Exact county or borough. Qloo: filter.geocode.admin2_region.
genderNoWho wants it (F1): Who: gender the answer is weighted to. Qloo: signal.demographics.gender.
lookupNoLook up exact things (F7): Look up exact things: a name to find (Search Entities). Qloo: query.
radiusNoWhere to launch (F3): Where: radius around it, in meters (0 = strictly inside). Qloo: filter.location.radius.
addressNoWho serves or stocks it (F5): Address contains. Qloo: filter.address.
countryNoWhere to launch (F3): Two-letter country code. Qloo: filter.geocode.country_code.
excludeNoWhat is underserved (F2): Entity ids to leave out. Qloo: filter.exclude.entities.
geohashNoWhere to launch (F3): Only results whose geohash starts with this. Qloo: filter.location.geohash.
open_onNoWho serves or stocks it (F5): Open on this day. Qloo: filter.hours.
productNo
qualityNoWho serves or stocks it (F5): Lean the ranking toward quality places. Qloo: bias.quality.
born_maxNoMedia and people products (F6): Person: born on or before (YYYY-MM-DD). Qloo: filter.date_of_birth.max.
born_minNoMedia and people products (F6): Person: born on or after (YYYY-MM-DD). Qloo: filter.date_of_birth.min.
died_maxNoMedia and people products (F6): Person: died on or before (YYYY-MM-DD). Qloo: filter.date_of_death.max.
died_minNoMedia and people products (F6): Person: died on or after (YYYY-MM-DD). Qloo: filter.date_of_death.min.
externalNoWho serves or stocks it (F5): Listed on these (resy, michelin, tablet). Qloo: filter.external.exists. comma-separated, of: resy, michelin, tablet
locationNoWhere to launch (F3): A WKT POINT/POLYGON (longitude first) or a locality id. Qloo: filter.location.
price_toNoAt what price, where (F4): Hotel price range to (0-1,000,000). Qloo: filter.price_range.to.
year_maxNoMedia and people products (F6): Released up to this year (film/TV; books: publication year). Qloo: filter.release_year.max.
year_minNoMedia and people products (F6): Released from this year (film/TV; books: publication year). Qloo: filter.release_year.min.
audiencesNoWho wants it (F1): Audience segment ids (from /v2/audiences). Qloo: signal.demographics.audiences.
entity_idNoLook up exact things (F7): Look up exact things: paste a Qloo entity id (Search Entities by ID). Qloo: entity_ids.
price_fromNoAt what price, where (F4): Hotel price range from (0-1,000,000). Qloo: filter.price_range.from.
qloo_callsNoAnything else in the guide (F8): Calls to Qloo's other endpoints by path, each with its own documented parameters. Qloo: *.
rating_maxNoMedia and people products (F6): Film/TV Qloo rating at most (0-5). Qloo: filter.rating.max.
rating_minNoMedia and people products (F6): Film/TV Qloo rating at least (0-5). Qloo: filter.rating.min.
hide_leaderNoWhat is underserved (F2): Gaps: hide the market leader (its Qloo id is excluded). Qloo: filter.exclude.entities.
hotel_classNoAt what price, where (F4): Hotel classes 1-5, mapped where they are hot. Qloo: filter.dimensions.hotel_class. comma-separated, of: 1, 2, 3, 4, 5
lookup_nearNoLook up exact things (F7): Search near: lat,lon or WKT. Qloo: filter.location.
lookup_sortNoLook up exact things (F7): Order the search by. Qloo: sort_by.
price_levelNoAt what price, where (F4): Price tier: 1 (cheap) to 4 (dear), mapped where it is hot. Qloo: filter.dimensions.price_level. comma-separated, of: 1, 2, 3, 4
exclude_nearNoWhere to launch (F3): Leave out an area by name. Qloo: filter.exclude.location.query.
exclude_tagsNoWhat is underserved (F2): Tag ids to leave out. Qloo: filter.exclude.tags.
lookup_typesNoLook up exact things (F7): What kinds to search. Qloo: types. comma-separated, of: urn:entity:actor, urn:entity:album, urn:entity:artist, urn:entity:author, urn:entity:book, urn:entity:brand, urn:entity:destination, urn:entity:director, urn:entity:locality, urn:entity:movie, urn:entity:person, urn:entity:place, urn:entity:podcast, urn:entity:tv_show, urn:entity:videogame
product_kindNoMedia and people products (F6): Product kind: what the comparables are. Qloo: filter.type.
exclude_namesNoWhat is underserved (F2): Leave out things by name (Qloo resolves them; sent as JSON). Qloo: filter.exclude.entities.query. names, or one comma-separated string
lookup_radiusNoLook up exact things (F7): Search radius in miles (0-100). Qloo: filter.radius.
person_genderNoMedia and people products (F6): Person: gender. Qloo: filter.gender.
results_queryNoWhat is underserved (F2): Score only these named things (one name). Qloo: filter.results.entities.query.
content_ratingNoMedia and people products (F6): Film/TV content rating(s), MPAA. Qloo: filter.content_rating.
popularity_maxNoWhat is underserved (F2): Gaps: niche only, popularity at most this percentile (0-1). Qloo: filter.popularity.max.
popularity_minNoWhat is underserved (F2): Popularity at least this percentile (0-1). Qloo: filter.popularity.min.
resy_count_maxNoWho serves or stocks it (F5): Resy rating count at most. Qloo: filter.external.resy.count.max.
resy_count_minNoWho serves or stocks it (F5): Resy rating count at least. Qloo: filter.external.resy.count.min.
resy_party_maxNoWho serves or stocks it (F5): Resy party size at most. Qloo: filter.external.resy.party_size.max.
resy_party_minNoWho serves or stocks it (F5): Resy party size at least. Qloo: filter.external.resy.party_size.min.
exclude_geohashNoWhere to launch (F3): Leave out results whose geohash starts with this. Qloo: filter.exclude.location.geohash.
finale_year_maxNoMedia and people products (F6): TV: final season up to this year. Qloo: filter.finale_year.max.
finale_year_minNoMedia and people products (F6): TV: final season from this year. Qloo: filter.finale_year.min.
hotel_class_maxNoAt what price, where (F4): Hotel class at most (1-5). Qloo: filter.hotel_class.max.
hotel_class_minNoAt what price, where (F4): Hotel class at least (1-5). Qloo: filter.hotel_class.min.
interests_namesNoWho wants it (F1): Steer the answer by things you name (Qloo resolves them; sent as JSON). Qloo: signal.interests.entities.query. names, or one comma-separated string
latest_year_maxNoMedia and people products (F6): TV: released or updated up to this year. Qloo: filter.latest_known_year.max.
latest_year_minNoMedia and people products (F6): TV: released or updated from this year. Qloo: filter.latest_known_year.min.
price_level_maxNoAt what price, where (F4): Places at price level at most (1-4). Qloo: filter.price_level.max.
price_level_minNoAt what price, where (F4): Places at price level at least (1-4). Qloo: filter.price_level.min.
release_countryNoMedia and people products (F6): Film/TV released in these countries. Qloo: filter.release_country.
resy_rating_maxNoWho serves or stocks it (F5): Resy rating at most (1-5). Qloo: filter.external.resy.rating.max.
resy_rating_minNoWho serves or stocks it (F5): Resy rating at least (1-5). Qloo: filter.external.resy.rating.min.
audiences_weightNoWho wants it (F1): How much the segments steer the answer. Qloo: signal.demographics.audiences.weight.
exclude_locationNoWhere to launch (F3): Leave out a WKT area or locality id. Qloo: filter.exclude.location.
references_brandNoWho serves or stocks it (F5): Who serves it: a brand by name or id; only places tied to it. Qloo: filter.references_brand.
external_operatorNoWho serves or stocks it (F5): Any (union) or all (intersection) of those. Qloo: operator.filter.external.exists.
business_rating_maxNoAt what price, where (F4): Business rating at most. Qloo: filter.properties.business_rating.max.
business_rating_minNoAt what price, where (F4): Business rating at least. Qloo: filter.properties.business_rating.min.
exclude_tags_operatorNoWhat is underserved (F2): Leave out results with any (union) or all (intersection) of those tags. Qloo: operator.exclude.tags.
tripadvisor_count_maxNoWho serves or stocks it (F5): Tripadvisor reviews at most. Qloo: filter.external.tripadvisor.rating.count.max.
tripadvisor_count_minNoWho serves or stocks it (F5): Tripadvisor reviews at least. Qloo: filter.external.tripadvisor.rating.count.min.
tripadvisor_rating_maxNoWho serves or stocks it (F5): Tripadvisor rating at most. Qloo: filter.external.tripadvisor.rating.max.
tripadvisor_rating_minNoWho serves or stocks it (F5): Tripadvisor rating at least. Qloo: filter.external.tripadvisor.rating.min.
release_country_operatorNoMedia and people products (F6): Any (union) or all (intersection) of those. Qloo: operator.filter.release_country.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed76 schema fields changed
    • addedInput schema / properties / address
      Added value: +{
      +  "description": "Who serves or stocks it (F5): Address contains. Qloo: filter.address.",
      +  "examples": [
      +    "Congress Ave"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / admin1
      Added value: +{
      +  "description": "Where to launch (F3): Exact state or region. Qloo: filter.geocode.admin1_region.",
      +  "examples": [
      +    "Texas"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / admin2
      Added value: +{
      +  "description": "Where to launch (F3): Exact county or borough. Qloo: filter.geocode.admin2_region.",
      +  "examples": [
      +    "Travis County"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / age
      Added value: +{
      +  "description": "Who wants it (F1): Who: age range(s) the answer is weighted to. Qloo: signal.demographics.age. comma-separated, of: 24_and_younger, 25_to_29, 30_to_34, 35_to_44, 45_to_54, 55_and_older",
      +  "examples": [
      +    "35_to_44"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / audiences
      Added value: +{
      +  "description": "Who wants it (F1): Audience segment ids (from /v2/audiences). Qloo: signal.demographics.audiences.",
      +  "examples": [
      +    "urn:audience:hobbies_and_interests:running"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / audiences_weight
      Added value: +{
      +  "description": "Who wants it (F1): How much the segments steer the answer. Qloo: signal.demographics.audiences.weight.",
      +  "enum": [
      +    "low",
      +    "medium",
      +    "high",
      +    "higher"
      +  ],
      +  "examples": [
      +    "high"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / born_max
      Added value: +{
      +  "description": "Media and people products (F6): Person: born on or before (YYYY-MM-DD). Qloo: filter.date_of_birth.max.",
      +  "examples": [
      +    "1990-12-31"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / born_min
      Added value: +{
      +  "description": "Media and people products (F6): Person: born on or after (YYYY-MM-DD). Qloo: filter.date_of_birth.min.",
      +  "examples": [
      +    "1960-01-01"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / business_rating_max
      Added value: +{
      +  "description": "At what price, where (F4): Business rating at most. Qloo: filter.properties.business_rating.max.",
      +  "examples": [
      +    5
      +  ],
      +  "type": "number"
      +}
    • addedInput schema / properties / business_rating_min
      Added value: +{
      +  "description": "At what price, where (F4): Business rating at least. Qloo: filter.properties.business_rating.min.",
      +  "examples": [
      +    3.5
      +  ],
      +  "type": "number"
      +}
    • addedInput schema / properties / city
      Added value: +{
      +  "description": "Where to launch (F3): Exact city or town name. Qloo: filter.geocode.name.",
      +  "examples": [
      +    "Austin"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / content_rating
      Added value: +{
      +  "description": "Media and people products (F6): Film/TV content rating(s), MPAA. Qloo: filter.content_rating.",
      +  "examples": [
      +    "PG-13"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / country
      Added value: +{
      +  "description": "Where to launch (F3): Two-letter country code. Qloo: filter.geocode.country_code.",
      +  "examples": [
      +    "US"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / died_max
      Added value: +{
      +  "description": "Media and people products (F6): Person: died on or before (YYYY-MM-DD). Qloo: filter.date_of_death.max.",
      +  "examples": [
      +    "2020-12-31"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / died_min
      Added value: +{
      +  "description": "Media and people products (F6): Person: died on or after (YYYY-MM-DD). Qloo: filter.date_of_death.min.",
      +  "examples": [
      +    "2000-01-01"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / entity_id
      Added value: +{
      +  "description": "Look up exact things (F7): Look up exact things: paste a Qloo entity id (Search Entities by ID). Qloo: entity_ids.",
      +  "examples": [
      +    "B2A5BF4D-6D9A-4A8B-9E50-1A2B3C4D5E6F"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / exclude
      Added value: +{
      +  "description": "What is underserved (F2): Entity ids to leave out. Qloo: filter.exclude.entities.",
      +  "examples": [
      +    "4BBEF799-A0C4-4110-AB01-39216993C312"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / exclude_geohash
      Added value: +{
      +  "description": "Where to launch (F3): Leave out results whose geohash starts with this. Qloo: filter.exclude.location.geohash.",
      +  "examples": [
      +    "9v6kp"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / exclude_location
      Added value: +{
      +  "description": "Where to launch (F3): Leave out a WKT area or locality id. Qloo: filter.exclude.location.",
      +  "examples": [
      +    "POINT(-97.74 30.27)"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / exclude_names
      Added value: +{
      +  "description": "What is underserved (F2): Leave out things by name (Qloo resolves them; sent as JSON). Qloo: filter.exclude.entities.query. names, or one comma-separated string",
      +  "examples": [
      +    "Nike, Adidas"
      +  ],
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / exclude_near
      Added value: +{
      +  "description": "Where to launch (F3): Leave out an area by name. Qloo: filter.exclude.location.query.",
      +  "examples": [
      +    "Downtown Austin"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / exclude_tags
      Added value: +{
      +  "description": "What is underserved (F2): Tag ids to leave out. Qloo: filter.exclude.tags.",
      +  "examples": [
      +    "urn:tag:genre:media:horror"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / exclude_tags_operator
      Added value: +{
      +  "description": "What is underserved (F2): Leave out results with any (union) or all (intersection) of those tags. Qloo: operator.exclude.tags.",
      +  "enum": [
      +    "union",
      +    "intersection"
      +  ],
      +  "examples": [
      +    "union"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / external
      Added value: +{
      +  "description": "Who serves or stocks it (F5): Listed on these (resy, michelin, tablet). Qloo: filter.external.exists. comma-separated, of: resy, michelin, tablet",
      +  "examples": [
      +    "resy"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / external_operator
      Added value: +{
      +  "description": "Who serves or stocks it (F5): Any (union) or all (intersection) of those. Qloo: operator.filter.external.exists.",
      +  "enum": [
      +    "union",
      +    "intersection"
      +  ],
      +  "examples": [
      +    "union"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / finale_year_max
      Added value: +{
      +  "description": "Media and people products (F6): TV: final season up to this year. Qloo: filter.finale_year.max.",
      +  "examples": [
      +    2024
      +  ],
      +  "type": "integer"
      +}
    • addedInput schema / properties / finale_year_min
      Added value: +{
      +  "description": "Media and people products (F6): TV: final season from this year. Qloo: filter.finale_year.min.",
      +  "examples": [
      +    2018
      +  ],
      +  "type": "integer"
      +}
    • addedInput schema / properties / gender
      Added value: +{
      +  "description": "Who wants it (F1): Who: gender the answer is weighted to. Qloo: signal.demographics.gender.",
      +  "enum": [
      +    "male",
      +    "female"
      +  ],
      +  "examples": [
      +    "female"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / geohash
      Added value: +{
      +  "description": "Where to launch (F3): Only results whose geohash starts with this. Qloo: filter.location.geohash.",
      +  "examples": [
      +    "9v6k"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / hide_leader
      Added value: +{
      +  "description": "What is underserved (F2): Gaps: hide the market leader (its Qloo id is excluded). Qloo: filter.exclude.entities.",
      +  "examples": [
      +    true
      +  ],
      +  "type": "boolean"
      +}
    • addedInput schema / properties / hotel_class
      Added value: +{
      +  "description": "At what price, where (F4): Hotel classes 1-5, mapped where they are hot. Qloo: filter.dimensions.hotel_class. comma-separated, of: 1, 2, 3, 4, 5",
      +  "examples": [
      +    "4,5"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / hotel_class_max
      Added value: +{
      +  "description": "At what price, where (F4): Hotel class at most (1-5). Qloo: filter.hotel_class.max.",
      +  "examples": [
      +    5
      +  ],
      +  "type": "integer"
      +}
    • addedInput schema / properties / hotel_class_min
      Added value: +{
      +  "description": "At what price, where (F4): Hotel class at least (1-5). Qloo: filter.hotel_class.min.",
      +  "examples": [
      +    3
      +  ],
      +  "type": "integer"
      +}
    • addedInput schema / properties / interests_names
      Added value: +{
      +  "description": "Who wants it (F1): Steer the answer by things you name (Qloo resolves them; sent as JSON). Qloo: signal.interests.entities.query. names, or one comma-separated string",
      +  "examples": [
      +    "Hoka, Salomon"
      +  ],
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / latest_year_max
      Added value: +{
      +  "description": "Media and people products (F6): TV: released or updated up to this year. Qloo: filter.latest_known_year.max.",
      +  "examples": [
      +    2025
      +  ],
      +  "type": "integer"
      +}
    • addedInput schema / properties / latest_year_min
      Added value: +{
      +  "description": "Media and people products (F6): TV: released or updated from this year. Qloo: filter.latest_known_year.min.",
      +  "examples": [
      +    2020
      +  ],
      +  "type": "integer"
      +}
    • addedInput schema / properties / location
      Added value: +{
      +  "description": "Where to launch (F3): A WKT POINT/POLYGON (longitude first) or a locality id. Qloo: filter.location.",
      +  "examples": [
      +    "POINT(-97.7431 30.2672)"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / lookup
      Added value: +{
      +  "description": "Look up exact things (F7): Look up exact things: a name to find (Search Entities). Qloo: query.",
      +  "examples": [
      +    "Austin"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / lookup_near
      Added value: +{
      +  "description": "Look up exact things (F7): Search near: lat,lon or WKT. Qloo: filter.location.",
      +  "examples": [
      +    "30.2672,-97.7431"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / lookup_radius
      Added value: +{
      +  "description": "Look up exact things (F7): Search radius in miles (0-100). Qloo: filter.radius.",
      +  "examples": [
      +    10
      +  ],
      +  "type": "number"
      +}
    • addedInput schema / properties / lookup_sort
      Added value: +{
      +  "description": "Look up exact things (F7): Order the search by. Qloo: sort_by.",
      +  "enum": [
      +    "match",
      +    "distance",
      +    "popularity"
      +  ],
      +  "examples": [
      +    "match"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / lookup_types
      Added value: +{
      +  "description": "Look up exact things (F7): What kinds to search. Qloo: types. comma-separated, of: urn:entity:actor, urn:entity:album, urn:entity:artist, urn:entity:author, urn:entity:book, urn:entity:brand, urn:entity:destination, urn:entity:director, urn:entity:locality, urn:entity:movie, urn:entity:person, urn:entity:place, urn:entity:podcast, urn:entity:tv_show, urn:entity:videogame",
      +  "examples": [
      +    "urn:entity:locality"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / near
      Added value: +{
      +  "description": "Where to launch (F3): Where: a city or region by name. Qloo: filter.location.query.",
      +  "examples": [
      +    "Austin"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / open_on
      Added value: +{
      +  "description": "Who serves or stocks it (F5): Open on this day. Qloo: filter.hours.",
      +  "examples": [
      +    "Sunday"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / person_gender
      Added value: +{
      +  "description": "Media and people products (F6): Person: gender. Qloo: filter.gender.",
      +  "enum": [
      +    "male",
      +    "female"
      +  ],
      +  "examples": [
      +    "female"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / popularity_max
      Added value: +{
      +  "description": "What is underserved (F2): Gaps: niche only, popularity at most this percentile (0-1). Qloo: filter.popularity.max.",
      +  "examples": [
      +    0.5
      +  ],
      +  "type": "number"
      +}
    • addedInput schema / properties / popularity_min
      Added value: +{
      +  "description": "What is underserved (F2): Popularity at least this percentile (0-1). Qloo: filter.popularity.min.",
      +  "examples": [
      +    0.1
      +  ],
      +  "type": "number"
      +}
    • addedInput schema / properties / price_from
      Added value: +{
      +  "description": "At what price, where (F4): Hotel price range from (0-1,000,000). Qloo: filter.price_range.from.",
      +  "examples": [
      +    100
      +  ],
      +  "type": "integer"
      +}
    • addedInput schema / properties / price_level
      Added value: +{
      +  "description": "At what price, where (F4): Price tier: 1 (cheap) to 4 (dear), mapped where it is hot. Qloo: filter.dimensions.price_level. comma-separated, of: 1, 2, 3, 4",
      +  "examples": [
      +    "1"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / price_level_max
      Added value: +{
      +  "description": "At what price, where (F4): Places at price level at most (1-4). Qloo: filter.price_level.max.",
      +  "examples": [
      +    3
      +  ],
      +  "type": "integer"
      +}
    • addedInput schema / properties / price_level_min
      Added value: +{
      +  "description": "At what price, where (F4): Places at price level at least (1-4). Qloo: filter.price_level.min.",
      +  "examples": [
      +    2
      +  ],
      +  "type": "integer"
      +}
    • addedInput schema / properties / price_to
      Added value: +{
      +  "description": "At what price, where (F4): Hotel price range to (0-1,000,000). Qloo: filter.price_range.to.",
      +  "examples": [
      +    300
      +  ],
      +  "type": "integer"
      +}
    • addedInput schema / properties / product_kind
      Added value: +{
      +  "description": "Media and people products (F6): Product kind: what the comparables are. Qloo: filter.type.",
      +  "enum": [
      +    "film",
      +    "tv",
      +    "book",
      +    "person",
      +    "artist",
      +    "brand",
      +    "podcast",
      +    "game",
      +    "place",
      +    "destination"
      +  ],
      +  "examples": [
      +    "film"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / qloo
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Anything else in the guide (F8): Any other documented parameter for the call's filter.type, by its Qloo name. Qloo: *.",
      +  "examples": [
      +    {
      +      "bias.trends": "high"
      +    }
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / properties / qloo_calls
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Anything else in the guide (F8): Calls to Qloo's other endpoints by path, each with its own documented parameters. Qloo: *.",
      +  "examples": [
      +    {
      +      "/v2/tags": {
      +        "feature.semantic_search": "true",
      +        "filter.query": "trail running"
      +      }
      +    }
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / properties / quality
      Added value: +{
      +  "description": "Who serves or stocks it (F5): Lean the ranking toward quality places. Qloo: bias.quality.",
      +  "enum": [
      +    "low",
      +    "medium",
      +    "high"
      +  ],
      +  "examples": [
      +    "high"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / radius
      Added value: +{
      +  "description": "Where to launch (F3): Where: radius around it, in meters (0 = strictly inside). Qloo: filter.location.radius.",
      +  "examples": [
      +    5000
      +  ],
      +  "type": "integer"
      +}
    • addedInput schema / properties / rating_max
      Added value: +{
      +  "description": "Media and people products (F6): Film/TV Qloo rating at most (0-5). Qloo: filter.rating.max.",
      +  "examples": [
      +    5
      +  ],
      +  "type": "number"
      +}
    • addedInput schema / properties / rating_min
      Added value: +{
      +  "description": "Media and people products (F6): Film/TV Qloo rating at least (0-5). Qloo: filter.rating.min.",
      +  "examples": [
      +    3.5
      +  ],
      +  "type": "number"
      +}
    • addedInput schema / properties / references_brand
      Added value: +{
      +  "description": "Who serves or stocks it (F5): Who serves it: a brand by name or id; only places tied to it. Qloo: filter.references_brand.",
      +  "examples": [
      +    "Whole Foods Market"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / release_country
      Added value: +{
      +  "description": "Media and people products (F6): Film/TV released in these countries. Qloo: filter.release_country.",
      +  "examples": [
      +    "United States"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / release_country_operator
      Added value: +{
      +  "description": "Media and people products (F6): Any (union) or all (intersection) of those. Qloo: operator.filter.release_country.",
      +  "enum": [
      +    "union",
      +    "intersection"
      +  ],
      +  "examples": [
      +    "union"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / results_query
      Added value: +{
      +  "description": "What is underserved (F2): Score only these named things (one name). Qloo: filter.results.entities.query.",
      +  "examples": [
      +    "Fitbit"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / resy_count_max
      Added value: +{
      +  "description": "Who serves or stocks it (F5): Resy rating count at most. Qloo: filter.external.resy.count.max.",
      +  "examples": [
      +    10000
      +  ],
      +  "type": "integer"
      +}
    • addedInput schema / properties / resy_count_min
      Added value: +{
      +  "description": "Who serves or stocks it (F5): Resy rating count at least. Qloo: filter.external.resy.count.min.",
      +  "examples": [
      +    100
      +  ],
      +  "type": "integer"
      +}
    • addedInput schema / properties / resy_party_max
      Added value: +{
      +  "description": "Who serves or stocks it (F5): Resy party size at most. Qloo: filter.external.resy.party_size.max.",
      +  "examples": [
      +    8
      +  ],
      +  "type": "integer"
      +}
    • addedInput schema / properties / resy_party_min
      Added value: +{
      +  "description": "Who serves or stocks it (F5): Resy party size at least. Qloo: filter.external.resy.party_size.min.",
      +  "examples": [
      +    2
      +  ],
      +  "type": "integer"
      +}
    • addedInput schema / properties / resy_rating_max
      Added value: +{
      +  "description": "Who serves or stocks it (F5): Resy rating at most (1-5). Qloo: filter.external.resy.rating.max.",
      +  "examples": [
      +    5
      +  ],
      +  "type": "number"
      +}
    • addedInput schema / properties / resy_rating_min
      Added value: +{
      +  "description": "Who serves or stocks it (F5): Resy rating at least (1-5). Qloo: filter.external.resy.rating.min.",
      +  "examples": [
      +    4
      +  ],
      +  "type": "number"
      +}
    • addedInput schema / properties / sort
      Added value: +{
      +  "description": "Who serves or stocks it (F5): Order places by. Qloo: sort_by.",
      +  "enum": [
      +    "affinity",
      +    "distance",
      +    "rating",
      +    "quality"
      +  ],
      +  "examples": [
      +    "quality"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / tripadvisor_count_max
      Added value: +{
      +  "description": "Who serves or stocks it (F5): Tripadvisor reviews at most. Qloo: filter.external.tripadvisor.rating.count.max.",
      +  "examples": [
      +    5000
      +  ],
      +  "type": "integer"
      +}
    • addedInput schema / properties / tripadvisor_count_min
      Added value: +{
      +  "description": "Who serves or stocks it (F5): Tripadvisor reviews at least. Qloo: filter.external.tripadvisor.rating.count.min.",
      +  "examples": [
      +    100
      +  ],
      +  "type": "integer"
      +}
    • addedInput schema / properties / tripadvisor_rating_max
      Added value: +{
      +  "description": "Who serves or stocks it (F5): Tripadvisor rating at most. Qloo: filter.external.tripadvisor.rating.max.",
      +  "examples": [
      +    5
      +  ],
      +  "type": "number"
      +}
    • addedInput schema / properties / tripadvisor_rating_min
      Added value: +{
      +  "description": "Who serves or stocks it (F5): Tripadvisor rating at least. Qloo: filter.external.tripadvisor.rating.min.",
      +  "examples": [
      +    4
      +  ],
      +  "type": "number"
      +}
    • addedInput schema / properties / year_max
      Added value: +{
      +  "description": "Media and people products (F6): Released up to this year (film/TV; books: publication year). Qloo: filter.release_year.max.",
      +  "examples": [
      +    2024
      +  ],
      +  "type": "integer"
      +}
    • addedInput schema / properties / year_min
      Added value: +{
      +  "description": "Media and people products (F6): Released from this year (film/TV; books: publication year). Qloo: filter.release_year.min.",
      +  "examples": [
      +    2015
      +  ],
      +  "type": "integer"
      +}
  2. First observed

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=false and openWorldHint=true, so the safety profile is carried structurally. The description adds that each step is returned alongside the underlying Qloo call, which is useful provenance the agent would not otherwise know, but it says nothing about what the destructive hint means here, whether the card is persisted, or that calls fan out to an external Qloo API.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One front-loaded sentence with zero filler: input, transformation, and returned artifact are all stated before any elaboration. Nothing in it is redundant with the title or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 80-parameter, destructive, open-world tool with no output schema and zero required parameters, a single sentence leaves major gaps: nothing says which parameter group (F1–F8) matters for the cross operation, whether `ref` is effectively required, what the card and demand check contain, or how this relates to the sibling tools it duplicates. The complexity-to-description ratio is badly unbalanced.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 95%, so the baseline is 3, and the description earns an extra point by documenting the format of the paper-id input (DOI, arXiv, PubMed, OpenAlex) — notably the `ref` parameter itself carries no schema description. The remaining 79 Qloo-derived filter parameters get no mention in the description, but the schema documents them thoroughly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb-and-resource transform: a paper id in, a research card plus a demand check out, with accepted id formats (DOI, arXiv, PubMed, OpenAlex) spelled out. It implicitly positions itself as the composite of the knos_research_card and knos_demand_check siblings, but never names those siblings or states the distinction explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the function itself: use it when you have a paper identifier and want both a research card and a demand check in one pass. There is no explicit when-to-use/when-not, no mention of choosing this over calling knos_research_card and knos_demand_check separately, and no prerequisites (such as knos_sign_in) are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.