Open data: clinical trials, EU tenders, companies, fuel prices

Official open data as JSON: clinical trials, EU tenders, papers, apps, French firms, fuel, domains.

Should I use this

Quality & Safety

B
Description quality
100%
Schema completeness
90%
Naming quality
50%
Poisoning risk
0%
Permission match
100%
Protocol compliance
100%

Findings (15)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains URL to non-standard domainin app-store-search
  • MEDIUMTool description contains URL to non-standard domainin clinical-trials-monitor
  • MEDIUMTool description contains URL to non-standard domainin domain-availability
  • MEDIUMTool description contains URL to non-standard domainin eu-fuel-monitor
  • MEDIUMTool description contains URL to non-standard domainin fr-company-search
  • MEDIUMTool description contains URL to non-standard domainin scholarly-search
  • MEDIUMTool description contains URL to non-standard domainin ted-tender-monitor
  • LOWTool 'app-store-search' doesn't follow camelCase/snake_casein app-store-search
  • LOWTool 'clinical-trials-monitor' doesn't follow camelCase/snake_casein clinical-trials-monitor

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~5,012Tokens (tool definitions)
~6.3 KBTypical response size
Significant attention impact (3.92% 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": {
    "open-data": {
      "url": "https://api.gregswarm.duckdns.org/mcp"
    }
  }
}

Remote endpoints

https://api.gregswarm.duckdns.org/mcpstreamable-http

What it can do

Tool inventory

Tools (7)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢app-store-search(term, country, limit)

Search Apple's App Store by keyword in any storefront country and get each app's developer, price, rating, version, release date, genre, size, minimum OS and store URL. Read from itunes.apple.com when called. Each result: app_id, name, developer, developer_id, bundle_id, price, formatted_price, currency, average_rating, rating_count, average_rating_current_version, rating_count_current_version, version, version_release_date, release_date, primary_genre, size_bytes, minimum_os, content_rating, seller_name, store_url. Needs a RapidAPI key for this API (https://rapidapi.com/IanGregory/api/clinical-trials-eu-tenders-open-data-api), sent as the X-RapidAPI-Key header; the free plan has 50 requests a month.

Input Schema

{
  "type": "object",
  "properties": {
    "term": {
      "type": "string",
      "description": "Keyword to search for in the App Store (for example budget, photo editor, meditation). Example: \"budget\"."
    },
    "country": {
      "type": "string",
      "enum": [
        "us",
        "gb",
        "ca",
        "au",
        "nz",
        "ie",
        "fr",
        "de",
        "es",
        "it",
        "pt",
        "nl",
        "be",
        "at",
        "ch",
        "se",
        "no",
        "dk",
        "fi",
        "pl",
        "cz",
        "tr",
        "gr",
        "jp",
        "kr",
        "cn",
        "hk",
        "tw",
        "sg",
        "in",
        "id",
        "th",
        "vn",
        "ph",
        "my",
        "br",
        "mx",
        "ar",
        "cl",
        "co",
        "za",
        "ae",
        "sa",
        "il",
        "eg",
        "ng",
        "ua",
        "ro",
        "hu"
      ],
      "description": "Two-letter App Store country code, which sets the prices, currency and ratings returned. Example: \"us\"."
    },
    "limit": {
      "type": "integer",
      "description": "How many apps to return (Apple allows up to 200 per search). Example: 50."
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "product": {
      "type": "string"
    },
    "count": {
      "type": "integer",
      "description": "how many results came back"
    },
    "items": {
      "type": "array",
      "description": "the results, one object each",
      "items": {
        "type": "object",
        "properties": {
          "app_id": {
            "description": "app_id (id)"
          },
          "name": {
            "description": "name (text)"
          },
          "developer": {
            "description": "developer (text)"
          },
          "developer_id": {
            "description": "developer_id (id)"
          },
          "bundle_id": {
            "description": "bundle_id (text)"
          },
          "price": {
            "description": "price (price)"
          },
          "formatted_price": {
            "description": "formatted_price (text)"
          },
          "currency": {
            "description": "currency (currency)"
          },
          "average_rating": {
            "description": "average_rating (number)"
          },
          "rating_count": {
            "description": "rating_count (integer)"
          },
          "average_rating_current_version": {
            "description": "average_rating_current_version (number)"
          },
          "rating_count_current_version": {
            "description": "rating_count_current_version (integer)"
          },
          "version": {
            "description": "version (text)"
          },
          "version_release_date": {
            "description": "version_release_date (datetime)"
          },
          "release_date": {
            "description": "release_date (datetime)"
          },
          "primary_genre": {
            "description": "primary_genre (text)"
          },
          "size_bytes": {
            "description": "size_bytes (integer)"
          },
          "minimum_os": {
            "description": "minimum_os (text)"
          },
          "content_rating": {
            "description": "content_rating (text)"
          },
          "seller_name": {
            "description": "seller_name (text)"
          },
          "store_url": {
            "description": "store_url (url)"
          }
        }
      }
    },
    "fetched_at": {
      "type": "integer",
      "description": "when the source was read (Unix seconds)"
    },
    "partial": {
      "type": "boolean",
      "description": "some of the source's requests failed: the results are incomplete"
    },
    "truncated_from": {
      "type": "integer",
      "description": "the answer was cut to fit: this many results came back in all"
    },
    "sources": {
      "type": "array",
      "description": "where the data came from: each source's name, licence and the attribution to show with it",
      "items": {
        "type": "object"
      }
    }
  },
  "required": [
    "count",
    "items"
  ]
}
🟢clinical-trials-monitor(condition, phase, status, updated_since, limit)

Studies from the official ClinicalTrials.gov API v2 for a condition, phase and status, returning only the studies whose status, phase, enrollment or last update changed since your last run. Read from clinicaltrials.gov when called. Each result: nct_id, title, sponsor, phase, status, enrollment, start_date, completion_date, last_update_date, conditions, lead_intervention, first_country. Needs a RapidAPI key for this API (https://rapidapi.com/IanGregory/api/clinical-trials-eu-tenders-open-data-api), sent as the X-RapidAPI-Key header; the free plan has 50 requests a month.

Input Schema

{
  "type": "object",
  "properties": {
    "condition": {
      "type": "string",
      "description": "Disease or condition to follow (for example breast cancer, type 2 diabetes, Alzheimer). Example: \"breast cancer\"."
    },
    "phase": {
      "type": "string",
      "enum": [
        "EARLY_PHASE1",
        "PHASE1",
        "PHASE2",
        "PHASE3",
        "PHASE4"
      ],
      "description": "Study phase to follow. Example: \"PHASE2\"."
    },
    "status": {
      "type": "string",
      "enum": [
        "RECRUITING",
        "NOT_YET_RECRUITING",
        "ACTIVE_NOT_RECRUITING",
        "ENROLLING_BY_INVITATION",
        "COMPLETED",
        "TERMINATED",
        "WITHDRAWN",
        "SUSPENDED"
      ],
      "description": "Recruitment status to follow. Example: \"RECRUITING\"."
    },
    "updated_since": {
      "type": "string",
      "description": "Only studies whose record was last updated on or after this date (YYYY-MM-DD). Example: \"2025-01-01\"."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 1000,
      "description": "At most this many results (default 100)."
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "product": {
      "type": "string"
    },
    "count": {
      "type": "integer",
      "description": "how many results came back"
    },
    "items": {
      "type": "array",
      "description": "the results, one object each",
      "items": {
        "type": "object",
        "properties": {
          "nct_id": {
            "description": "nct_id (id)"
          },
          "title": {
            "description": "title (text)"
          },
          "sponsor": {
            "description": "sponsor (text)"
          },
          "phase": {
            "description": "phase (list)"
          },
          "status": {
            "description": "status (text)"
          },
          "enrollment": {
            "description": "enrollment (integer)"
          },
          "start_date": {
            "description": "start_date (date)"
          },
          "completion_date": {
            "description": "completion_date (date)"
          },
          "last_update_date": {
            "description": "last_update_date (date)"
          },
          "conditions": {
            "description": "conditions (list)"
          },
          "lead_intervention": {
            "description": "lead_intervention (text)"
          },
          "first_country": {
            "description": "first_country (text)"
          }
        }
      }
    },
    "fetched_at": {
      "type": "integer",
      "description": "when the source was read (Unix seconds)"
    },
    "partial": {
      "type": "boolean",
      "description": "some of the source's requests failed: the results are incomplete"
    },
    "truncated_from": {
      "type": "integer",
      "description": "the answer was cut to fit: this many results came back in all"
    },
    "sources": {
      "type": "array",
      "description": "where the data came from: each source's name, licence and the attribution to show with it",
      "items": {
        "type": "object"
      }
    }
  },
  "required": [
    "count",
    "items"
  ]
}
🟢domain-availability(domains, limit)

Check a list of .com domains in bulk and get the registrar, creation and expiry dates, status codes and nameservers straight from the Verisign registry's public RDAP service. Read from rdap.verisign.com when called. Each result: domain, registered, registrar_id, registrar_name, created_at, expires_at, status, nameserver_1, nameserver_2. Needs a RapidAPI key for this API (https://rapidapi.com/IanGregory/api/clinical-trials-eu-tenders-open-data-api), sent as the X-RapidAPI-Key header; the free plan has 50 requests a month.

Input Schema

{
  "type": "object",
  "properties": {
    "domains": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Registered .com domain names to look up, e.g. [\"example.com\", \"google.com\"]. A name the registry does not know (available) returns a 404 and no row. Example: [\"example.com\", \"google.com\", \"apify.com\"]."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 1000,
      "description": "At most this many results (default 100)."
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "product": {
      "type": "string"
    },
    "count": {
      "type": "integer",
      "description": "how many results came back"
    },
    "items": {
      "type": "array",
      "description": "the results, one object each",
      "items": {
        "type": "object",
        "properties": {
          "domain": {
            "description": "domain (text)"
          },
          "registered": {
            "description": "registered (bool)"
          },
          "registrar_id": {
            "description": "registrar_id (id)"
          },
          "registrar_name": {
            "description": "registrar_name (text)"
          },
          "created_at": {
            "description": "created_at (datetime)"
          },
          "expires_at": {
            "description": "expires_at (datetime)"
          },
          "status": {
            "description": "status (list)"
          },
          "nameserver_1": {
            "description": "nameserver_1 (text)"
          },
          "nameserver_2": {
            "description": "nameserver_2 (text)"
          }
        }
      }
    },
    "fetched_at": {
      "type": "integer",
      "description": "when the source was read (Unix seconds)"
    },
    "partial": {
      "type": "boolean",
      "description": "some of the source's requests failed: the results are incomplete"
    },
    "truncated_from": {
      "type": "integer",
      "description": "the answer was cut to fit: this many results came back in all"
    },
    "sources": {
      "type": "array",
      "description": "where the data came from: each source's name, licence and the attribution to show with it",
      "items": {
        "type": "object"
      }
    }
  },
  "required": [
    "count",
    "items"
  ]
}
🟢eu-fuel-monitor(country, postcode, limit)

Each run returns only the stations whose fuel prices changed since the last run, from the French and Spanish open government feeds, filtered by postcode prefix. Read from donnees.roulez-eco.fr, sedeaplicaciones.minetur.gob.es when called. Each result: country, station_id, postcode, address, city, lat, lon, diesel_eur_l, sp95_e5_eur_l, e10_eur_l, sp98_eur_l. Needs a RapidAPI key for this API (https://rapidapi.com/IanGregory/api/clinical-trials-eu-tenders-open-data-api), sent as the X-RapidAPI-Key header; the free plan has 50 requests a month.

Input Schema

{
  "type": "object",
  "properties": {
    "country": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "FR",
          "ES"
        ]
      },
      "description": "Which national feeds to read (empty: all). Example: [\"FR\", \"ES\"]."
    },
    "postcode": {
      "type": "string",
      "description": "Keep stations whose postcode starts with this (28 is Madrid in Spain, Eure-et-Loir in France; 75 Paris; empty keeps all). Example: \"28\"."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 1000,
      "description": "At most this many results (default 100)."
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "product": {
      "type": "string"
    },
    "count": {
      "type": "integer",
      "description": "how many results came back"
    },
    "items": {
      "type": "array",
      "description": "the results, one object each",
      "items": {
        "type": "object",
        "properties": {
          "country": {
            "description": "country (country)"
          },
          "station_id": {
            "description": "station_id (id)"
          },
          "postcode": {
            "description": "postcode (id)"
          },
          "address": {
            "description": "address (text)"
          },
          "city": {
            "description": "city (text)"
          },
          "lat": {
            "description": "lat (lat)"
          },
          "lon": {
            "description": "lon (lon)"
          },
          "diesel_eur_l": {
            "description": "diesel_eur_l (price)"
          },
          "sp95_e5_eur_l": {
            "description": "sp95_e5_eur_l (price)"
          },
          "e10_eur_l": {
            "description": "e10_eur_l (price)"
          },
          "sp98_eur_l": {
            "description": "sp98_eur_l (price)"
          }
        }
      }
    },
    "fetched_at": {
      "type": "integer",
      "description": "when the source was read (Unix seconds)"
    },
    "partial": {
      "type": "boolean",
      "description": "some of the source's requests failed: the results are incomplete"
    },
    "truncated_from": {
      "type": "integer",
      "description": "the answer was cut to fit: this many results came back in all"
    },
    "sources": {
      "type": "array",
      "description": "where the data came from: each source's name, licence and the attribution to show with it",
      "items": {
        "type": "object"
      }
    }
  },
  "required": [
    "count",
    "items"
  ]
}
🟢fr-company-search(activite_principale, departement, tranche_effectif_salarie, etat_administratif, limit)

Search France's official company register by NAF activity code, département, headcount band and status, and get typed legal-entity records with head-office address, coordinates and company size. Read from recherche-entreprises.api.gouv.fr when called. Each result: siren, siret_head_office, name, legal_name, naf_code, legal_form_code, address, postcode, city, departement, lat, lon, creation_date, headcount_band, company_category, establishments_total, establishments_open, status. Needs a RapidAPI key for this API (https://rapidapi.com/IanGregory/api/clinical-trials-eu-tenders-open-data-api), sent as the X-RapidAPI-Key header; the free plan has 50 requests a month.

Input Schema

{
  "type": "object",
  "properties": {
    "activite_principale": {
      "type": "string",
      "description": "Main activity code (NAF rev. 2) of the company, e.g. 62.01Z (computer programming), 56.10A (restaurants), 47.11D (supermarkets). Example: \"62.01Z\"."
    },
    "departement": {
      "type": "string",
      "description": "Département code of the head office, e.g. 75 Paris, 69 Rhône, 2A Corse-du-Sud. Leave empty for all of France. Example: \"75\"."
    },
    "tranche_effectif_salarie": {
      "type": "string",
      "description": "INSEE headcount band: 00 (0), 01 (1-2), 02 (3-5), 03 (6-9), 11 (10-19), 12 (20-49), 21 (50-99), 22 (100-199), 31 (200-249), 32 (250-499), 41 (500-999), 42 (1000-1999), 51 (2000-4999), 52 (5000-9999), 53 (10000+). Leave empty for any. Example: \"11\"."
    },
    "etat_administratif": {
      "type": "string",
      "enum": [
        "A",
        "C"
      ],
      "description": "A = active companies, C = ceased companies. Example: \"A\"."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 1000,
      "description": "At most this many results (default 100)."
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "product": {
      "type": "string"
    },
    "count": {
      "type": "integer",
      "description": "how many results came back"
    },
    "items": {
      "type": "array",
      "description": "the results, one object each",
      "items": {
        "type": "object",
        "properties": {
          "siren": {
            "description": "siren (id)"
          },
          "siret_head_office": {
            "description": "siret_head_office (id)"
          },
          "name": {
            "description": "name (text)"
          },
          "legal_name": {
            "description": "legal_name (text)"
          },
          "naf_code": {
            "description": "naf_code (id)"
          },
          "legal_form_code": {
            "description": "legal_form_code (id)"
          },
          "address": {
            "description": "address (text)"
          },
          "postcode": {
            "description": "postcode (id)"
          },
          "city": {
            "description": "city (text)"
          },
          "departement": {
            "description": "departement (id)"
          },
          "lat": {
            "description": "lat (lat)"
          },
          "lon": {
            "description": "lon (lon)"
          },
          "creation_date": {
            "description": "creation_date (date)"
          },
          "headcount_band": {
            "description": "headcount_band (id)"
          },
          "company_category": {
            "description": "company_category (text)"
          },
          "establishments_total": {
            "description": "establishments_total (integer)"
          },
          "establishments_open": {
            "description": "establishments_open (integer)"
          },
          "status": {
            "description": "status (id)"
          }
        }
      }
    },
    "fetched_at": {
      "type": "integer",
      "description": "when the source was read (Unix seconds)"
    },
    "partial": {
      "type": "boolean",
      "description": "some of the source's requests failed: the results are incomplete"
    },
    "truncated_from": {
      "type": "integer",
      "description": "the answer was cut to fit: this many results came back in all"
    },
    "sources": {
      "type": "array",
      "description": "where the data came from: each source's name, licence and the attribution to show with it",
      "items": {
        "type": "object"
      }
    }
  },
  "required": [
    "count",
    "items"
  ]
}
🟢scholarly-search(query, year_from, year_to, oa_status, limit)

Search the OpenAlex index of scholarly works by keyword, year range and open-access status, and get each paper's title, DOI, year, venue, type, citation count and open-access link. Read from api.openalex.org when called. Each result: openalex_id, title, doi, year, publication_date, venue, type, cited_by_count, is_open_access, oa_status, open_access_url, language. Needs a RapidAPI key for this API (https://rapidapi.com/IanGregory/api/clinical-trials-eu-tenders-open-data-api), sent as the X-RapidAPI-Key header; the free plan has 50 requests a month.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Keywords to search for in titles, abstracts and full text. Example: \"graph neural networks\"."
    },
    "year_from": {
      "type": "integer",
      "description": "First publication year to include. Example: 2020."
    },
    "year_to": {
      "type": "integer",
      "description": "Last publication year to include. Example: 2026."
    },
    "oa_status": {
      "type": "string",
      "enum": [
        "",
        "gold",
        "green",
        "hybrid",
        "bronze",
        "diamond",
        "closed"
      ],
      "description": "Keep only works with this open-access status (empty: all works). Example: \"green\"."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 1000,
      "description": "At most this many results (default 100)."
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "product": {
      "type": "string"
    },
    "count": {
      "type": "integer",
      "description": "how many results came back"
    },
    "items": {
      "type": "array",
      "description": "the results, one object each",
      "items": {
        "type": "object",
        "properties": {
          "openalex_id": {
            "description": "openalex_id (url)"
          },
          "title": {
            "description": "title (text)"
          },
          "doi": {
            "description": "doi (text)"
          },
          "year": {
            "description": "year (integer)"
          },
          "publication_date": {
            "description": "publication_date (date)"
          },
          "venue": {
            "description": "venue (text)"
          },
          "type": {
            "description": "type (text)"
          },
          "cited_by_count": {
            "description": "cited_by_count (integer)"
          },
          "is_open_access": {
            "description": "is_open_access (bool)"
          },
          "oa_status": {
            "description": "oa_status (text)"
          },
          "open_access_url": {
            "description": "open_access_url (url)"
          },
          "language": {
            "description": "language (text)"
          }
        }
      }
    },
    "fetched_at": {
      "type": "integer",
      "description": "when the source was read (Unix seconds)"
    },
    "partial": {
      "type": "boolean",
      "description": "some of the source's requests failed: the results are incomplete"
    },
    "truncated_from": {
      "type": "integer",
      "description": "the answer was cut to fit: this many results came back in all"
    },
    "sources": {
      "type": "array",
      "description": "where the data came from: each source's name, licence and the attribution to show with it",
      "items": {
        "type": "object"
      }
    }
  },
  "required": [
    "count",
    "items"
  ]
}
🟢ted-tender-monitor(cpv_prefix, country, keyword, published_since, limit)

New public procurement notices from the EU's official TED search API for a CPV code prefix, buyer country and keyword, returning only the notices that are new or changed since your last run. Read from api.ted.europa.eu when called. Each result: notice_id, publication_date, buyer, country_code, title, cpv_codes, procedure, deadline, estimated_value, currency, url. Needs a RapidAPI key for this API (https://rapidapi.com/IanGregory/api/clinical-trials-eu-tenders-open-data-api), sent as the X-RapidAPI-Key header; the free plan has 50 requests a month.

Input Schema

{
  "type": "object",
  "properties": {
    "cpv_prefix": {
      "type": "string",
      "description": "Start of the CPV code to follow (for example 72 for IT services, 45 for construction, 33 for medical equipment). Example: \"72\"."
    },
    "country": {
      "type": "string",
      "enum": [
        "AUT",
        "BEL",
        "BGR",
        "HRV",
        "CYP",
        "CZE",
        "DNK",
        "EST",
        "FIN",
        "FRA",
        "DEU",
        "GRC",
        "HUN",
        "IRL",
        "ITA",
        "LVA",
        "LTU",
        "LUX",
        "MLT",
        "NLD",
        "POL",
        "PRT",
        "ROU",
        "SVK",
        "SVN",
        "ESP",
        "SWE",
        "NOR",
        "ISL"
      ],
      "description": "Country of the buying organisation, as a three-letter ISO code. Example: \"FRA\"."
    },
    "keyword": {
      "type": "string",
      "description": "Optional word that the notice title must contain. Leave empty to keep all notices. Example: \"services\"."
    },
    "published_since": {
      "type": "string",
      "description": "Only notices published on or after this date, written YYYYMMDD. Example: \"20250101\"."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 1000,
      "description": "At most this many results (default 100)."
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "product": {
      "type": "string"
    },
    "count": {
      "type": "integer",
      "description": "how many results came back"
    },
    "items": {
      "type": "array",
      "description": "the results, one object each",
      "items": {
        "type": "object",
        "properties": {
          "notice_id": {
            "description": "notice_id (id)"
          },
          "publication_date": {
            "description": "publication_date (date)"
          },
          "buyer": {
            "description": "buyer (text)"
          },
          "country_code": {
            "description": "country_code (text)"
          },
          "title": {
            "description": "title (text)"
          },
          "cpv_codes": {
            "description": "cpv_codes (list)"
          },
          "procedure": {
            "description": "procedure (text)"
          },
          "deadline": {
            "description": "deadline (date)"
          },
          "estimated_value": {
            "description": "estimated_value (number)"
          },
          "currency": {
            "description": "currency (text)"
          },
          "url": {
            "description": "url (url)"
          }
        }
      }
    },
    "fetched_at": {
      "type": "integer",
      "description": "when the source was read (Unix seconds)"
    },
    "partial": {
      "type": "boolean",
      "description": "some of the source's requests failed: the results are incomplete"
    },
    "truncated_from": {
      "type": "integer",
      "description": "the answer was cut to fit: this many results came back in all"
    },
    "sources": {
      "type": "array",
      "description": "where the data came from: each source's name, licence and the attribution to show with it",
      "items": {
        "type": "object"
      }
    }
  },
  "required": [
    "count",
    "items"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded7 tools