{
 "$schema": "https://modelcontextprotocol.io/schemas/server-card/v1.0",
 "version": "1.0",
 "protocolVersion": "2025-06-18",
 "serverInfo": {
  "name": "factdock",
  "title": "Factdock",
  "version": "1.0.0",
  "description": "Multilingual search engine for primary sources: each country's official sites, papers, patents and medicine databases, searched in their own language and returned with source URLs and dates.",
  "homepage": "https://fact-dock.com",
  "documentation": "https://fact-dock.com/en/product/personal-api/"
 },
 "transport": {
  "type": "streamable-http",
  "url": "https://fact-dock.com/mcp"
 },
 "capabilities": {
  "tools": true,
  "resources": false,
  "prompts": false
 },
 "auth": {
  "required": true,
  "type": "oauth2",
  "description": "Sign in with a Factdock account (OAuth 2.1 with dynamic client registration and PKCE). A personal API key from https://fact-dock.com/api-hub can also be sent as Authorization: Bearer. Every tool call requires sign-in; paid tools use the account holder's Factdock credits.",
  "protectedResourceMetadata": "https://fact-dock.com/.well-known/oauth-protected-resource/mcp"
 },
 "pricing": {
  "note": "Each paid tool uses Factdock credits at the same price as in the Factdock app. The free get_prices tool returns current prices, and every result returns credits_used."
 },
 "tools": [
  {
   "name": "web_search",
   "title": "Web intelligence search",
   "description": "For what a country's own websites say (laws, regulators, prices, local news, local voices), searched in that country's language. Factdock standard search: searches ONE country (in that country's language) or ONE language sphere, with source tiers, translated titles and summaries. IMPORTANT: before calling, always ask the user which country (or language sphere) to search, and pass it as `zone` — never guess it from the query or the user's language. Use \"cc_\" + ISO 3166-1 alpha-2 for one country (e.g. cc_DE, cc_US, cc_JP, cc_BR), or a language sphere: en_global, zh-CN, zh-TW, es, pt, fr, ar. \"worldwide\" is not available. A language sphere searches each of its countries and costs more than one country. Give a natural-language query and optionally up to 8 search keywords. page>=2 loads more results for the same query and the same zone: pass the hostnames already shown in exclude_hosts so the next page returns NEW sites (each page is charged). Uses your Factdock credits at the same price as in the app (results are translated into `lang`). Factdock only searches and shows published information for reference. It is not legal, medical, veterinary, financial or investment advice and does not replace a professional's judgement: decisions should be made with a qualified professional, or by professionals using their own judgement.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "query": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500
     },
     "keywords": {
      "type": "array",
      "items": {
       "type": "string",
       "maxLength": 80
      },
      "maxItems": 8
     },
     "zone": {
      "type": "string",
      "minLength": 2,
      "maxLength": 20,
      "description": "Required. The country or language sphere the user chose (ask them first). Use \"cc_\" + ISO 3166-1 alpha-2 for one country (e.g. cc_DE, cc_US, cc_JP, cc_BR), or a language sphere: en_global, zh-CN, zh-TW, es, pt, fr, ar. \"worldwide\" is not available."
     },
     "intent": {
      "type": "string",
      "enum": [
       "official",
       "commercial",
       "local_voice",
       "academic"
      ],
      "default": "local_voice"
     },
     "time_range": {
      "type": "string",
      "enum": [
       "any",
       "year",
       "month",
       "week"
      ],
      "default": "any"
     },
     "exclude_terms": {
      "type": "array",
      "items": {
       "type": "string",
       "maxLength": 60
      },
      "maxItems": 10,
      "description": "Words to exclude from results."
     },
     "page": {
      "type": "integer",
      "minimum": 1,
      "maximum": 5,
      "default": 1
     },
     "exclude_hosts": {
      "type": "array",
      "items": {
       "type": "string",
       "maxLength": 100
      },
      "maxItems": 120,
      "description": "For page>=2: hostnames already returned (e.g. example.com)."
     },
     "lang": {
      "type": "string",
      "default": "en",
      "description": "BCP 47 code of the USER'S language (e.g. 'ja', 'de', 'th', 'zh-TW'); results are translated into it. Always set it to the language the user writes in (ask if unclear) — if omitted, results come back in English."
     }
    },
    "required": [
     "query",
     "zone"
    ],
    "additionalProperties": false
   },
   "annotations": {
    "title": "Web intelligence search",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": true
   }
  },
  {
   "name": "academic_search",
   "title": "Academic paper search",
   "description": "For peer-reviewed papers from scholarly databases, with titles and abstracts translated. Search scholarly literature across multiple academic databases, ranked by evidence tier. The top 10 results come with translated titles and summaries; the remaining results are returned in their original language (title and abstract as published). `query` = search keywords (English works best); `purpose` = what you want to find out (optional). Uses your Factdock credits at the same price as in the app (results are translated into `lang`). Factdock only searches and shows published information for reference. It is not legal, medical, veterinary, financial or investment advice and does not replace a professional's judgement: decisions should be made with a qualified professional, or by professionals using their own judgement.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "query": {
      "type": "string",
      "minLength": 2,
      "maxLength": 500
     },
     "purpose": {
      "type": "string",
      "maxLength": 1000
     },
     "max_results": {
      "type": "integer",
      "enum": [
       30,
       60
      ],
      "default": 60
     },
     "exclude_terms": {
      "type": "array",
      "items": {
       "type": "string",
       "maxLength": 60
      },
      "maxItems": 10,
      "description": "Words to exclude from results."
     },
     "lang": {
      "type": "string",
      "default": "en",
      "description": "BCP 47 code of the USER'S language (e.g. 'ja', 'de', 'th', 'zh-TW'); results are translated into it. Always set it to the language the user writes in (ask if unclear) — if omitted, results come back in English."
     }
    },
    "required": [
     "query"
    ],
    "additionalProperties": false
   },
   "annotations": {
    "title": "Academic paper search",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": true
   }
  },
  {
   "name": "patent_search",
   "title": "Patent search",
   "description": "For patent publications by office (country tags from the publication number). Search patents at ONE patent office, or at the 5 major offices together (exactly US, JP, CN, KR, EP). Factdock first builds search queries from your description, then searches. Country tags come from the publication number. One flat price per search (one office or the 5-office set), checked against your balance before starting. Before calling, always ask the user which country (or countries / patent office) to use — never guess it from the query or from the user's language. Uses your Factdock credits at the same price as in the app (results are translated into `lang`). Factdock only searches and shows published information for reference. It is not legal, medical, veterinary, financial or investment advice and does not replace a professional's judgement: decisions should be made with a qualified professional, or by professionals using their own judgement.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "query": {
      "type": "string",
      "minLength": 3,
      "maxLength": 9000,
      "description": "Description of the invention or technology."
     },
     "countries": {
      "type": "array",
      "items": {
       "type": "string",
       "description": "ISO2 office code, e.g. JP, US, EP, CN, KR, WO"
      },
      "minItems": 1,
      "maxItems": 5,
      "description": "Either one office (e.g. [\"JP\"]) or exactly the 5 major offices [\"US\",\"JP\",\"CN\",\"KR\",\"EP\"]."
     },
     "period": {
      "type": "string",
      "enum": [
       "recent",
       "mid",
       "wide"
      ],
      "default": "wide"
     },
     "cpc": {
      "type": "string",
      "maxLength": 120
     },
     "exclude_terms": {
      "type": "array",
      "items": {
       "type": "string",
       "maxLength": 60
      },
      "maxItems": 10,
      "description": "Words to exclude from results."
     },
     "lang": {
      "type": "string",
      "default": "en",
      "description": "BCP 47 code of the USER'S language (e.g. 'ja', 'de', 'th', 'zh-TW'); results are translated into it. Always set it to the language the user writes in (ask if unclear) — if omitted, results come back in English."
     }
    },
    "required": [
     "query",
     "countries"
    ],
    "additionalProperties": false
   },
   "annotations": {
    "title": "Patent search",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": true
   }
  },
  {
   "name": "patent_detail",
   "title": "Patent detail (translated)",
   "description": "Translated title, detailed summary and claims overview of one patent URL returned by patent_search. Uses your Factdock credits at the same price as in the app (results are translated into `lang`). Factdock only searches and shows published information for reference. It is not legal, medical, veterinary, financial or investment advice and does not replace a professional's judgement: decisions should be made with a qualified professional, or by professionals using their own judgement.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "url": {
      "type": "string",
      "maxLength": 2000
     },
     "query": {
      "type": "string",
      "maxLength": 2000
     },
     "lang": {
      "type": "string",
      "default": "en",
      "description": "BCP 47 code of the USER'S language (e.g. 'ja', 'de', 'th', 'zh-TW'); results are translated into it. Always set it to the language the user writes in (ask if unclear) — if omitted, results come back in English."
     }
    },
    "required": [
     "url"
    ],
    "additionalProperties": false
   },
   "annotations": {
    "title": "Patent detail (translated)",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": true
   }
  },
  {
   "name": "company_identify",
   "title": "Find a company (candidates)",
   "description": "First step to investigate a company (registry, sanctions, risk). Find candidate companies by name and country (or by website URL). Charges the flat price of the whole investigation and returns a ticket: pass it to company_report (no extra charge). Passing the ticket back to company_identify gives one free retry (retry_left). Before calling, always ask the user which country (or countries / patent office) to use — never guess it from the query or from the user's language. Uses your Factdock credits at the same price as in the app (results are translated into `lang`). Factdock only searches and shows published information for reference. It is not legal, medical, veterinary, financial or investment advice and does not replace a professional's judgement: decisions should be made with a qualified professional, or by professionals using their own judgement.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "name": {
      "type": "string",
      "maxLength": 200
     },
     "country": {
      "type": "string",
      "description": "Country name in English",
      "maxLength": 80
     },
     "country_code": {
      "type": "string"
     },
     "url": {
      "type": "string",
      "maxLength": 500
     },
     "ticket": {
      "type": "string",
      "description": "Ticket from a previous company_identify: one free retry"
     },
     "lang": {
      "type": "string",
      "default": "en",
      "description": "BCP 47 code of the USER'S language (e.g. 'ja', 'de', 'th', 'zh-TW'); results are translated into it. Always set it to the language the user writes in (ask if unclear) — if omitted, results come back in English."
     }
    },
    "required": [],
    "additionalProperties": false
   },
   "annotations": {
    "title": "Find a company (candidates)",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": true
   }
  },
  {
   "name": "company_report",
   "title": "Company risk report",
   "description": "Company due-diligence report: basic facts, structure, legal, misconduct and reputation pillars with sources and an overall risk level. Optionally also officers and ownership. Pass the ticket from company_identify (no extra charge); without one, the flat price is charged here. Before calling, always ask the user which country (or countries / patent office) to use — never guess it from the query or from the user's language. Uses your Factdock credits at the same price as in the app (results are translated into `lang`). Factdock only searches and shows published information for reference. It is not legal, medical, veterinary, financial or investment advice and does not replace a professional's judgement: decisions should be made with a qualified professional, or by professionals using their own judgement.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "name": {
      "type": "string",
      "maxLength": 200
     },
     "country": {
      "type": "string",
      "maxLength": 80
     },
     "country_code": {
      "type": "string"
     },
     "url": {
      "type": "string",
      "maxLength": 500
     },
     "location": {
      "type": "string",
      "maxLength": 200
     },
     "scope": {
      "type": "string",
      "enum": [
       "domestic",
       "global"
      ],
      "default": "domestic"
     },
     "include_governance": {
      "type": "boolean",
      "default": false
     },
     "ticket": {
      "type": "string",
      "description": "Ticket from company_identify"
     },
     "lang": {
      "type": "string",
      "default": "en",
      "description": "BCP 47 code of the USER'S language (e.g. 'ja', 'de', 'th', 'zh-TW'); results are translated into it. Always set it to the language the user writes in (ask if unclear) — if omitted, results come back in English."
     }
    },
    "required": [
     "name",
     "country",
     "country_code"
    ],
    "additionalProperties": false
   },
   "annotations": {
    "title": "Company risk report",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": true
   }
  },
  {
   "name": "sourcing_search",
   "title": "Sales channel / OEM manufacturer search",
   "description": "To find buyers, distributors, trade events or manufacturers in a specific country. mode=sell: find distributors, buyers or trade events in a country for your product. mode=oem: find manufacturers / OEM partners. page 2-5 loads more (charged again) — pass the hosts of the results you already have in exclude_hosts, otherwise the same companies come back. Before calling, always ask the user which country (or countries / patent office) to use — never guess it from the query or from the user's language. Uses your Factdock credits at the same price as in the app (results are translated into `lang`). Factdock only searches and shows published information for reference. It is not legal, medical, veterinary, financial or investment advice and does not replace a professional's judgement: decisions should be made with a qualified professional, or by professionals using their own judgement.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "mode": {
      "type": "string",
      "enum": [
       "sell",
       "oem"
      ]
     },
     "country_code": {
      "type": "string"
     },
     "target": {
      "type": "string",
      "enum": [
       "company",
       "event"
      ],
      "default": "company",
      "description": "event is only for mode=sell"
     },
     "text": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Product or category"
     },
     "page": {
      "type": "integer",
      "minimum": 1,
      "maximum": 5,
      "default": 1
     },
     "exclude_terms": {
      "type": "array",
      "items": {
       "type": "string",
       "maxLength": 60
      },
      "maxItems": 10,
      "description": "Words to exclude from results."
     },
     "lang": {
      "type": "string",
      "default": "en",
      "description": "BCP 47 code of the USER'S language (e.g. 'ja', 'de', 'th', 'zh-TW'); results are translated into it. Always set it to the language the user writes in (ask if unclear) — if omitted, results come back in English."
     },
     "exclude_hosts": {
      "type": "array",
      "items": {
       "type": "string",
       "maxLength": 100
      },
      "maxItems": 40,
      "description": "Website hosts already shown (e.g. example.com) — used with page 2-5 to get NEW companies."
     }
    },
    "required": [
     "mode",
     "country_code",
     "text"
    ],
    "additionalProperties": false
   },
   "annotations": {
    "title": "Sales channel / OEM manufacturer search",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": true
   }
  },
  {
   "name": "finance_search",
   "title": "Country finance & investment indicators",
   "description": "For official economic and market statistics with sources, per country. Official macro and market indicators with sources for 1-3 countries (charged per country). Before calling, always ask the user which country (or countries / patent office) to use — never guess it from the query or from the user's language. Uses your Factdock credits at the same price as in the app (results are translated into `lang`). Factdock only searches and shows published information for reference. It is not legal, medical, veterinary, financial or investment advice and does not replace a professional's judgement: decisions should be made with a qualified professional, or by professionals using their own judgement.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "countries": {
      "type": "array",
      "minItems": 1,
      "maxItems": 3,
      "items": {
       "type": "object",
       "properties": {
        "code": {
         "type": "string",
         "description": "ISO 3166-1 alpha-2"
        },
        "name": {
         "type": "string",
         "description": "Country name in English"
        }
       },
       "required": [
        "code",
        "name"
       ]
      }
     },
     "categories": {
      "type": "array",
      "items": {
       "type": "string",
       "enum": [
        "gdp",
        "inflation",
        "employment",
        "policy_rate",
        "fx",
        "rating",
        "ipo",
        "index",
        "political",
        "sanctions",
        "capital",
        "env_reg"
       ]
      },
      "minItems": 1,
      "maxItems": 12
     },
     "period": {
      "type": "string",
      "enum": [
       "auto",
       "recent",
       "custom"
      ],
      "default": "auto"
     },
     "date_from": {
      "type": "string",
      "description": "YYYY-MM-DD (only with period=custom)"
     },
     "date_to": {
      "type": "string",
      "description": "YYYY-MM-DD (only with period=custom)"
     },
     "lang": {
      "type": "string",
      "default": "en",
      "description": "BCP 47 code of the USER'S language (e.g. 'ja', 'de', 'th', 'zh-TW'); results are translated into it. Always set it to the language the user writes in (ask if unclear) — if omitted, results come back in English."
     }
    },
    "required": [
     "countries",
     "categories"
    ],
    "additionalProperties": false
   },
   "annotations": {
    "title": "Country finance & investment indicators",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": true
   }
  },
  {
   "name": "gov_infra_search",
   "title": "Government & infrastructure projects",
   "description": "For government and infrastructure projects, tenders and state-owned companies in a country. Public infrastructure plans, tenders and projects in a country (optionally a city), with project phase. Before calling, always ask the user which country (or countries / patent office) to use — never guess it from the query or from the user's language. Uses your Factdock credits at the same price as in the app (results are translated into `lang`). Factdock only searches and shows published information for reference. It is not legal, medical, veterinary, financial or investment advice and does not replace a professional's judgement: decisions should be made with a qualified professional, or by professionals using their own judgement.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "country": {
      "type": "string",
      "description": "Country name in English"
     },
     "country_code": {
      "type": "string"
     },
     "categories": {
      "type": "array",
      "items": {
       "type": "string",
       "maxLength": 80
      },
      "minItems": 1,
      "maxItems": 20,
      "description": "Sectors, e.g. 'railway', 'water', 'energy'"
     },
     "city": {
      "type": "string",
      "maxLength": 120
     },
     "period": {
      "type": "string",
      "enum": [
       "auto",
       "recent",
       "custom"
      ],
      "default": "auto"
     },
     "date_from": {
      "type": "string",
      "description": "YYYY-MM-DD (only with period=custom)"
     },
     "date_to": {
      "type": "string",
      "description": "YYYY-MM-DD (only with period=custom)"
     },
     "lang": {
      "type": "string",
      "default": "en",
      "description": "BCP 47 code of the USER'S language (e.g. 'ja', 'de', 'th', 'zh-TW'); results are translated into it. Always set it to the language the user writes in (ask if unclear) — if omitted, results come back in English."
     }
    },
    "required": [
     "country",
     "country_code",
     "categories"
    ],
    "additionalProperties": false
   },
   "annotations": {
    "title": "Government & infrastructure projects",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": true
   }
  },
  {
   "name": "realestate_market",
   "title": "Real estate market & regulations",
   "description": "For official real-estate rules and market data per country. Real estate rules and market data (foreign ownership, tax, yields, prices…) with sources for 1-3 countries (charged per country). Before calling, always ask the user which country (or countries / patent office) to use — never guess it from the query or from the user's language. Uses your Factdock credits at the same price as in the app (results are translated into `lang`). Factdock only searches and shows published information for reference. It is not legal, medical, veterinary, financial or investment advice and does not replace a professional's judgement: decisions should be made with a qualified professional, or by professionals using their own judgement.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "countries": {
      "type": "array",
      "minItems": 1,
      "maxItems": 3,
      "items": {
       "type": "object",
       "properties": {
        "code": {
         "type": "string",
         "description": "ISO 3166-1 alpha-2"
        },
        "name": {
         "type": "string",
         "description": "Country name in English"
        }
       },
       "required": [
        "code",
        "name"
       ]
      }
     },
     "categories": {
      "type": "array",
      "items": {
       "type": "string",
       "enum": [
        "foreign",
        "tenure",
        "tax",
        "tenancy",
        "remit",
        "yield",
        "mortgage",
        "permit",
        "sez",
        "price_index",
        "price_trend",
        "rent",
        "volume",
        "demo"
       ]
      },
      "minItems": 1,
      "maxItems": 14
     },
     "city": {
      "type": "string",
      "maxLength": 120
     },
     "period": {
      "type": "string",
      "enum": [
       "auto",
       "recent",
       "custom"
      ],
      "default": "auto"
     },
     "date_from": {
      "type": "string",
      "description": "YYYY-MM-DD (only with period=custom)"
     },
     "date_to": {
      "type": "string",
      "description": "YYYY-MM-DD (only with period=custom)"
     },
     "lang": {
      "type": "string",
      "default": "en",
      "description": "BCP 47 code of the USER'S language (e.g. 'ja', 'de', 'th', 'zh-TW'); results are translated into it. Always set it to the language the user writes in (ask if unclear) — if omitted, results come back in English."
     }
    },
    "required": [
     "countries",
     "categories"
    ],
    "additionalProperties": false
   },
   "annotations": {
    "title": "Real estate market & regulations",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": true
   }
  },
  {
   "name": "realestate_registry",
   "title": "Property registry lookup",
   "description": "Official land/property registry lookup or an access guide for an address (what is available depends on the country). Before calling, always ask the user which country (or countries / patent office) to use — never guess it from the query or from the user's language. Uses your Factdock credits at the same price as in the app (results are translated into `lang`). Factdock only searches and shows published information for reference. It is not legal, medical, veterinary, financial or investment advice and does not replace a professional's judgement: decisions should be made with a qualified professional, or by professionals using their own judgement.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "country_code": {
      "type": "string"
     },
     "country": {
      "type": "string"
     },
     "address": {
      "type": "string",
      "maxLength": 300
     },
     "lang": {
      "type": "string",
      "default": "en",
      "description": "BCP 47 code of the USER'S language (e.g. 'ja', 'de', 'th', 'zh-TW'); results are translated into it. Always set it to the language the user writes in (ask if unclear) — if omitted, results come back in English."
     }
    },
    "required": [
     "country_code",
     "country",
     "address"
    ],
    "additionalProperties": false
   },
   "annotations": {
    "title": "Property registry lookup",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": true
   }
  },
  {
   "name": "trade_compliance_check",
   "title": "Trade & compliance check",
   "description": "For HS codes, tariffs, export controls and sanctions screening with official sources. mode=trade: tariffs, regulations, documents and certifications to import a product (product or HS code) into dest_country. mode=screening: sanctions / denied-party screening of a company. Before calling, always ask the user for the destination country (and the origin country for mode=trade, or the company's country for screening) — never guess them. Uses your Factdock credits at the same price as in the app (results are translated into `lang`). Factdock only searches and shows published information for reference. It is not legal, medical, veterinary, financial or investment advice and does not replace a professional's judgement: decisions should be made with a qualified professional, or by professionals using their own judgement.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "mode": {
      "type": "string",
      "enum": [
       "trade",
       "screening"
      ]
     },
     "product": {
      "type": "string",
      "maxLength": 200
     },
     "hs_code": {
      "type": "string",
      "maxLength": 20
     },
     "origin_country": {
      "type": "string"
     },
     "origin_code": {
      "type": "string"
     },
     "dest_country": {
      "type": "string"
     },
     "dest_code": {
      "type": "string"
     },
     "company": {
      "type": "string",
      "maxLength": 200
     },
     "company_local": {
      "type": "string",
      "maxLength": 200
     },
     "company_url": {
      "type": "string",
      "maxLength": 500
     },
     "company_country": {
      "type": "string"
     },
     "company_code": {
      "type": "string"
     },
     "lang": {
      "type": "string",
      "default": "en",
      "description": "BCP 47 code of the USER'S language (e.g. 'ja', 'de', 'th', 'zh-TW'); results are translated into it. Always set it to the language the user writes in (ask if unclear) — if omitted, results come back in English."
     }
    },
    "required": [
     "mode"
    ],
    "additionalProperties": false
   },
   "annotations": {
    "title": "Trade & compliance check",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": true
   }
  },
  {
   "name": "medical_db_search",
   "title": "Medical database search",
   "description": "For drug labels, adverse events and literature from official medicine databases (human and veterinary). Search Factdock's curated official databases: drug_human / drug_animal (regulator drug labels), adverse_events (U.S. FDA report counts) or literature (PubMed). Use offset (step 10) for more. Empty results mean 'not covered', never 'safe'. Uses your Factdock credits at the same price as in the app (results are translated into `lang`). Factdock only searches and shows published information for reference. It is not legal, medical, veterinary, financial or investment advice and does not replace a professional's judgement: decisions should be made with a qualified professional, or by professionals using their own judgement. Requires a one-time consent in the Factdock app (check the box when you first open Medical database search at https://fact-dock.com).",
   "inputSchema": {
    "type": "object",
    "properties": {
     "db": {
      "type": "string",
      "enum": [
       "drug_human",
       "drug_animal",
       "adverse_events",
       "literature"
      ]
     },
     "q": {
      "type": "string",
      "minLength": 2,
      "maxLength": 200
     },
     "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 200,
      "default": 0
     },
     "species": {
      "type": "string",
      "enum": [
       "dog",
       "cat",
       "rabbit",
       "cattle",
       "pig",
       "horse",
       "chicken",
       "sheep",
       "goat",
       "ferret",
       "bird",
       "fish"
      ]
     },
     "ae_target": {
      "type": "string",
      "enum": [
       "human",
       "animal"
      ]
     },
     "year_from": {
      "type": "integer",
      "minimum": 1800,
      "maximum": 2100
     },
     "year_to": {
      "type": "integer",
      "minimum": 1800,
      "maximum": 2100
     },
     "lang": {
      "type": "string",
      "default": "en",
      "description": "BCP 47 code of the USER'S language (e.g. 'ja', 'de', 'th', 'zh-TW'); results are translated into it. Always set it to the language the user writes in (ask if unclear) — if omitted, results come back in English."
     }
    },
    "required": [
     "db",
     "q"
    ],
    "additionalProperties": false
   },
   "annotations": {
    "title": "Medical database search",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": true
   }
  },
  {
   "name": "medical_db_detail",
   "title": "Drug label detail",
   "description": "Full label of one drug record (id from medical_db_search, db drug_human or drug_animal), translated. Dosage is quoted from that product's own label. Uses your Factdock credits at the same price as in the app (results are translated into `lang`). Factdock only searches and shows published information for reference. It is not legal, medical, veterinary, financial or investment advice and does not replace a professional's judgement: decisions should be made with a qualified professional, or by professionals using their own judgement. Requires a one-time consent in the Factdock app (check the box when you first open Medical database search at https://fact-dock.com).",
   "inputSchema": {
    "type": "object",
    "properties": {
     "db": {
      "type": "string",
      "enum": [
       "drug_human",
       "drug_animal"
      ]
     },
     "id": {
      "type": "integer",
      "minimum": 1
     },
     "lang": {
      "type": "string",
      "default": "en",
      "description": "BCP 47 code of the USER'S language (e.g. 'ja', 'de', 'th', 'zh-TW'); results are translated into it. Always set it to the language the user writes in (ask if unclear) — if omitted, results come back in English."
     }
    },
    "required": [
     "db",
     "id"
    ],
    "additionalProperties": false
   },
   "annotations": {
    "title": "Drug label detail",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": true
   }
  },
  {
   "name": "vet_intake_crosscheck",
   "title": "Veterinary allergy / intake cross-check",
   "description": "For veterinary professionals: cross-checks an animal's current foods/drugs/supplements and past intake history against findings, for allergen overlaps and cross-reactions with sources. Supports, never replaces, professional judgement. English sources are always the base. The user's home country's authorities and products are checked first: before calling, ask the user which country they are in (or whose authorities/products to check) and pass it as `home_country` — do not guess it. If omitted, it is derived from `lang` (e.g. ja→Japan, es→Spain, en→US); the response's `home_country_used` shows which country was used. Set `lang` to the user's language. Uses your Factdock credits at the same price as in the app (results are translated into `lang`). Factdock only searches and shows published information for reference. It is not legal, medical, veterinary, financial or investment advice and does not replace a professional's judgement: decisions should be made with a qualified professional, or by professionals using their own judgement. Requires a one-time veterinary-professional confirmation in the Factdock app (check the box when you first open a veterinary tool at https://fact-dock.com).",
   "inputSchema": {
    "type": "object",
    "properties": {
     "species": {
      "type": "string",
      "maxLength": 40
     },
     "breed": {
      "type": "string",
      "maxLength": 80
     },
     "age_stage": {
      "type": "string",
      "maxLength": 40
     },
     "sex": {
      "type": "string",
      "maxLength": 40
     },
     "findings": {
      "type": "string",
      "maxLength": 2000
     },
     "current_items": {
      "type": "array",
      "maxItems": 40,
      "items": {
       "type": "object",
       "properties": {
        "category": {
         "type": "string",
         "enum": [
          "dogfood",
          "supplement",
          "drug",
          "food",
          "meat",
          "other"
         ]
        },
        "name": {
         "type": "string",
         "maxLength": 200
        }
       },
       "required": [
        "category",
        "name"
       ]
      }
     },
     "history_items": {
      "type": "array",
      "maxItems": 20,
      "items": {
       "type": "object",
       "properties": {
        "date": {
         "type": "string"
        },
        "items": {
         "type": "array",
         "maxItems": 40,
         "items": {
          "type": "object",
          "properties": {
           "category": {
            "type": "string"
           },
           "name": {
            "type": "string"
           }
          },
          "required": [
           "category",
           "name"
          ]
         }
        }
       },
       "required": [
        "items"
       ]
      }
     },
     "home_country": {
      "type": "string",
      "description": "ISO 3166-1 alpha-2 of the user's country (e.g. MX, GB, BR, JP) — ask the user. Its authorities and products are checked first; English sources are always included."
     },
     "lang": {
      "type": "string",
      "default": "en",
      "description": "BCP 47 code of the USER'S language (e.g. 'ja', 'de', 'th', 'zh-TW'); results are translated into it. Always set it to the language the user writes in (ask if unclear) — if omitted, results come back in English."
     }
    },
    "required": [
     "species"
    ],
    "additionalProperties": false
   },
   "annotations": {
    "title": "Veterinary allergy / intake cross-check",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": true
   }
  },
  {
   "name": "vet_drug_risk_check",
   "title": "Veterinary drug / ingredient risk check",
   "description": "For veterinary professionals: checks target drugs or products for an animal against concurrent medications and comorbidities (interactions, side effects, disease contraindications, label dosage for the species, alternatives) with sources. English sources are always the base. The user's home country's authorities and products are checked first: before calling, ask the user which country they are in (or whose authorities/products to check) and pass it as `home_country` — do not guess it. If omitted, it is derived from `lang` (e.g. ja→Japan, es→Spain, en→US); the response's `home_country_used` shows which country was used. Set `lang` to the user's language. Uses your Factdock credits at the same price as in the app (results are translated into `lang`). Factdock only searches and shows published information for reference. It is not legal, medical, veterinary, financial or investment advice and does not replace a professional's judgement: decisions should be made with a qualified professional, or by professionals using their own judgement. Requires a one-time veterinary-professional confirmation in the Factdock app (check the box when you first open a veterinary tool at https://fact-dock.com).",
   "inputSchema": {
    "type": "object",
    "properties": {
     "species": {
      "type": "string",
      "maxLength": 40
     },
     "breed": {
      "type": "string",
      "maxLength": 80
     },
     "age": {
      "type": "string",
      "maxLength": 40
     },
     "neutered": {
      "type": "string",
      "maxLength": 20
     },
     "comorbidities": {
      "type": "array",
      "items": {
       "type": "string",
       "maxLength": 80
      },
      "maxItems": 10
     },
     "current_items": {
      "type": "array",
      "minItems": 1,
      "maxItems": 20,
      "items": {
       "type": "object",
       "properties": {
        "category": {
         "type": "string",
         "enum": [
          "dogfood",
          "supplement",
          "drug",
          "food",
          "meat",
          "other"
         ]
        },
        "name": {
         "type": "string",
         "maxLength": 200
        }
       },
       "required": [
        "category",
        "name"
       ]
      },
      "description": "Target drugs/products to check"
     },
     "concurrent_items": {
      "type": "array",
      "maxItems": 20,
      "items": {
       "type": "object",
       "properties": {
        "category": {
         "type": "string"
        },
        "name": {
         "type": "string",
         "maxLength": 200
        }
       },
       "required": [
        "category",
        "name"
       ]
      },
      "description": "Concurrent medications"
     },
     "home_country": {
      "type": "string",
      "description": "ISO 3166-1 alpha-2 of the user's country (e.g. MX, GB, BR, JP) — ask the user. Its authorities and products are checked first; English sources are always included."
     },
     "lang": {
      "type": "string",
      "default": "en",
      "description": "BCP 47 code of the USER'S language (e.g. 'ja', 'de', 'th', 'zh-TW'); results are translated into it. Always set it to the language the user writes in (ask if unclear) — if omitted, results come back in English."
     }
    },
    "required": [
     "species",
     "current_items"
    ],
    "additionalProperties": false
   },
   "annotations": {
    "title": "Veterinary drug / ingredient risk check",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": true
   }
  },
  {
   "name": "clinical_fact_search",
   "title": "Clinical fact-matching literature search",
   "description": "For veterinary/medical professionals: finds literature matching observed facts only (no AI disease guessing). Give findings by slot (appearance, imaging, labs, memo, history). Uses your Factdock credits at the same price as in the app (results are translated into `lang`). Factdock only searches and shows published information for reference. It is not legal, medical, veterinary, financial or investment advice and does not replace a professional's judgement: decisions should be made with a qualified professional, or by professionals using their own judgement. Requires a one-time veterinary-professional confirmation in the Factdock app (check the box when you first open a veterinary tool at https://fact-dock.com).",
   "inputSchema": {
    "type": "object",
    "properties": {
     "query": {
      "type": "string",
      "minLength": 2,
      "maxLength": 500,
      "description": "Short case summary / keywords"
     },
     "species": {
      "type": "string",
      "maxLength": 60
     },
     "findings": {
      "type": "array",
      "minItems": 1,
      "maxItems": 10,
      "items": {
       "type": "object",
       "properties": {
        "slot": {
         "type": "string",
         "enum": [
          "appearance",
          "imaging",
          "labs",
          "memo",
          "history"
         ]
        },
        "text": {
         "type": "string",
         "maxLength": 1000
        }
       },
       "required": [
        "slot",
        "text"
       ]
      }
     },
     "exclude_terms": {
      "type": "array",
      "items": {
       "type": "string",
       "maxLength": 60
      },
      "maxItems": 10,
      "description": "Words to exclude from results."
     },
     "lang": {
      "type": "string",
      "default": "en",
      "description": "BCP 47 code of the USER'S language (e.g. 'ja', 'de', 'th', 'zh-TW'); results are translated into it. Always set it to the language the user writes in (ask if unclear) — if omitted, results come back in English."
     }
    },
    "required": [
     "query",
     "findings"
    ],
    "additionalProperties": false
   },
   "annotations": {
    "title": "Clinical fact-matching literature search",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": true
   }
  },
  {
   "name": "clinical_hypothesis_search",
   "title": "Clinical hypothesis & evidence search",
   "description": "For veterinary/medical professionals: estimates candidate conditions from a case description and retrieves supporting literature. Two charged steps (analysis + evidence search), checked against your balance first. Not a diagnosis. Uses your Factdock credits at the same price as in the app (results are translated into `lang`). Factdock only searches and shows published information for reference. It is not legal, medical, veterinary, financial or investment advice and does not replace a professional's judgement: decisions should be made with a qualified professional, or by professionals using their own judgement. Requires a one-time veterinary-professional confirmation in the Factdock app (check the box when you first open a veterinary tool at https://fact-dock.com).",
   "inputSchema": {
    "type": "object",
    "properties": {
     "case_description": {
      "type": "string",
      "minLength": 10,
      "maxLength": 1000
     },
     "lang": {
      "type": "string",
      "default": "en",
      "description": "BCP 47 code of the USER'S language (e.g. 'ja', 'de', 'th', 'zh-TW'); results are translated into it. Always set it to the language the user writes in (ask if unclear) — if omitted, results come back in English."
     }
    },
    "required": [
     "case_description"
    ],
    "additionalProperties": false
   },
   "annotations": {
    "title": "Clinical hypothesis & evidence search",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": true
   }
  },
  {
   "name": "clinical_web_context",
   "title": "Clinical trusted-web context",
   "description": "For veterinary/medical professionals: searches trusted institutional web sources (universities, regulators, specialty colleges) for a clinical query. English is always included; each extra language is charged separately. Sources are searched by LANGUAGE, not by country: English is always searched, and each extra language searches trusted sources written in that language (any country). Before calling, ask the user whether to add languages (for example their own language or the language of the region concerned); without them only English sources are searched. Uses your Factdock credits at the same price as in the app (results are translated into `lang`). Factdock only searches and shows published information for reference. It is not legal, medical, veterinary, financial or investment advice and does not replace a professional's judgement: decisions should be made with a qualified professional, or by professionals using their own judgement. Requires a one-time veterinary-professional confirmation in the Factdock app (check the box when you first open a veterinary tool at https://fact-dock.com).",
   "inputSchema": {
    "type": "object",
    "properties": {
     "query": {
      "type": "string",
      "minLength": 2,
      "maxLength": 280
     },
     "case_context": {
      "type": "string",
      "maxLength": 400
     },
     "species": {
      "type": "string",
      "maxLength": 60
     },
     "extra_languages": {
      "type": "array",
      "items": {
       "type": "string"
      },
      "maxItems": 4,
      "description": "Additional source languages, e.g. ['ja','de']"
     },
     "lane": {
      "type": "string",
      "enum": [
       "fact",
       "hypothesis"
      ],
      "default": "fact"
     },
     "exclude_terms": {
      "type": "array",
      "items": {
       "type": "string",
       "maxLength": 60
      },
      "maxItems": 10,
      "description": "Words to exclude from results."
     },
     "lang": {
      "type": "string",
      "default": "en",
      "description": "BCP 47 code of the USER'S language (e.g. 'ja', 'de', 'th', 'zh-TW'); results are translated into it. Always set it to the language the user writes in (ask if unclear) — if omitted, results come back in English."
     }
    },
    "required": [
     "query"
    ],
    "additionalProperties": false
   },
   "annotations": {
    "title": "Clinical trusted-web context",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": true
   }
  },
  {
   "name": "epidemic_diseases",
   "title": "Epidemic map: supported diseases",
   "description": "Lists the disease ids supported by epidemic_risk. Free (no credits). Requires a one-time veterinary-professional confirmation in the Factdock app (check the box when you first open a veterinary tool at https://fact-dock.com).",
   "inputSchema": {
    "type": "object",
    "properties": {},
    "required": [],
    "additionalProperties": false
   },
   "annotations": {
    "title": "Epidemic map: supported diseases",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": true
   }
  },
  {
   "name": "epidemic_risk",
   "title": "Epidemic (zoonosis) risk briefing",
   "description": "Zoonotic disease history and risk briefing for a country/place (disease id from epidemic_diseases). Before calling, always ask the user which country (or countries / patent office) to use — never guess it from the query or from the user's language. Uses your Factdock credits at the same price as in the app (results are translated into `lang`). Factdock only searches and shows published information for reference. It is not legal, medical, veterinary, financial or investment advice and does not replace a professional's judgement: decisions should be made with a qualified professional, or by professionals using their own judgement. Requires a one-time veterinary-professional confirmation in the Factdock app (check the box when you first open a veterinary tool at https://fact-dock.com).",
   "inputSchema": {
    "type": "object",
    "properties": {
     "disease": {
      "type": "string",
      "maxLength": 60
     },
     "disease_name": {
      "type": "string",
      "maxLength": 120
     },
     "country_name": {
      "type": "string",
      "maxLength": 80
     },
     "country_code": {
      "type": "string"
     },
     "place_name": {
      "type": "string",
      "maxLength": 120
     },
     "lat": {
      "type": "number",
      "minimum": -90,
      "maximum": 90
     },
     "lng": {
      "type": "number",
      "minimum": -180,
      "maximum": 180
     },
     "lang": {
      "type": "string",
      "default": "en",
      "description": "BCP 47 code of the USER'S language (e.g. 'ja', 'de', 'th', 'zh-TW'); results are translated into it. Always set it to the language the user writes in (ask if unclear) — if omitted, results come back in English."
     }
    },
    "required": [
     "disease",
     "country_name",
     "country_code"
    ],
    "additionalProperties": false
   },
   "annotations": {
    "title": "Epidemic (zoonosis) risk briefing",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": true
   }
  },
  {
   "name": "contract_review",
   "title": "Contract review",
   "description": "To review a contract text clause by clause, in the user's language. Reviews contract text against the law of the selected country: summary, impact level, clause findings and regulatory notes. Text only. Optional add-ons (extra credits each): required_clauses=true lists clauses commonly expected for this contract type in that country and whether they appear, each with an official legal source; counterparty_name + counterparty_country_code checks the other party against company registries and 5 sanctions lists. Ask the user for the counterparty's exact legal name and country; never guess them. Before calling, always ask the user which country (or countries / patent office) to use — never guess it from the query or from the user's language. Uses your Factdock credits at the same price as in the app (results are translated into `lang`). Factdock only searches and shows published information for reference. It is not legal, medical, veterinary, financial or investment advice and does not replace a professional's judgement: decisions should be made with a qualified professional, or by professionals using their own judgement.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "text": {
      "type": "string",
      "minLength": 50,
      "maxLength": 60000
     },
     "country": {
      "type": "string",
      "maxLength": 80
     },
     "country_code": {
      "type": "string"
     },
     "translate_first": {
      "type": "boolean",
      "default": false
     },
     "required_clauses": {
      "type": "boolean",
      "default": false,
      "description": "Add-on: clauses worth checking for this contract type in the country (official sources only)."
     },
     "counterparty_name": {
      "type": "string",
      "maxLength": 200,
      "description": "Add-on: the other party's legal name, as given by the user."
     },
     "counterparty_country": {
      "type": "string",
      "maxLength": 80,
      "description": "Country of the other party (English name)."
     },
     "counterparty_country_code": {
      "type": "string",
      "description": "ISO 3166-1 alpha-2 code of the other party's country."
     },
     "lang": {
      "type": "string",
      "default": "en",
      "description": "BCP 47 code of the USER'S language (e.g. 'ja', 'de', 'th', 'zh-TW'); results are translated into it. Always set it to the language the user writes in (ask if unclear) — if omitted, results come back in English."
     }
    },
    "required": [
     "text",
     "country",
     "country_code"
    ],
    "additionalProperties": false
   },
   "annotations": {
    "title": "Contract review",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": true
   }
  },
  {
   "name": "contract_bilingual_compare",
   "title": "Contract: compare two language versions",
   "description": "Compares two language versions of the same contract clause by clause and returns discrepancies (amounts, dates, liability, strength of obligations, governing language clause). Numbers are also compared without AI. Price depends on the combined length of both versions. Text only. Uses your Factdock credits at the same price as in the app (results are translated into `lang`). Factdock only searches and shows published information for reference. It is not legal, medical, veterinary, financial or investment advice and does not replace a professional's judgement: decisions should be made with a qualified professional, or by professionals using their own judgement.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "text_a": {
      "type": "string",
      "minLength": 50,
      "maxLength": 120000,
      "description": "Version 1 (e.g. the Japanese version)."
     },
     "text_b": {
      "type": "string",
      "minLength": 50,
      "maxLength": 120000,
      "description": "Version 2 (e.g. the English version)."
     },
     "lang": {
      "type": "string",
      "default": "en",
      "description": "BCP 47 code of the USER'S language (e.g. 'ja', 'de', 'th', 'zh-TW'); results are translated into it. Always set it to the language the user writes in (ask if unclear) — if omitted, results come back in English."
     }
    },
    "required": [
     "text_a",
     "text_b"
    ],
    "additionalProperties": false
   },
   "annotations": {
    "title": "Contract: compare two language versions",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": true
   }
  },
  {
   "name": "contract_draft_outline",
   "title": "Contract draft: outline",
   "description": "Step 1 of contract drafting: turns your requirements into an editable outline. Pass the (edited) outline to contract_draft_generate. Uses your Factdock credits at the same price as in the app (results are translated into `lang`). Factdock only searches and shows published information for reference. It is not legal, medical, veterinary, financial or investment advice and does not replace a professional's judgement: decisions should be made with a qualified professional, or by professionals using their own judgement.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "requirements": {
      "type": "string",
      "minLength": 10,
      "maxLength": 8000
     },
     "lang": {
      "type": "string",
      "default": "en",
      "description": "BCP 47 code of the USER'S language (e.g. 'ja', 'de', 'th', 'zh-TW'); results are translated into it. Always set it to the language the user writes in (ask if unclear) — if omitted, results come back in English."
     }
    },
    "required": [
     "requirements"
    ],
    "additionalProperties": false
   },
   "annotations": {
    "title": "Contract draft: outline",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": true
   }
  },
  {
   "name": "contract_draft_generate",
   "title": "Contract draft: generate",
   "description": "Step 2 of contract drafting: generates clauses in the local language of the country, with references, from the outline object returned by contract_draft_outline. Before calling, always ask the user which country (or countries / patent office) to use — never guess it from the query or from the user's language. Uses your Factdock credits at the same price as in the app (results are translated into `lang`). Factdock only searches and shows published information for reference. It is not legal, medical, veterinary, financial or investment advice and does not replace a professional's judgement: decisions should be made with a qualified professional, or by professionals using their own judgement.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "draft": {
      "type": "object",
      "description": "The `draft` object from contract_draft_outline (optionally edited)."
     },
     "country": {
      "type": "string"
     },
     "country_code": {
      "type": "string"
     },
     "lang": {
      "type": "string",
      "default": "en",
      "description": "BCP 47 code of the USER'S language (e.g. 'ja', 'de', 'th', 'zh-TW'); results are translated into it. Always set it to the language the user writes in (ask if unclear) — if omitted, results come back in English."
     }
    },
    "required": [
     "draft",
     "country",
     "country_code"
    ],
    "additionalProperties": false
   },
   "annotations": {
    "title": "Contract draft: generate",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": true
   }
  },
  {
   "name": "insights_feed",
   "title": "Factdock Insights feed",
   "description": "The Global Insights shown in the Factdock app: official/regulatory news (track=official) and company & pipeline news (track=pipeline), optionally by category or country. Titles and summaries are returned in `lang` only when a stored translation exists (translated=true); otherwise they are in the original language (translated=false) — translate them yourself. Does not use your Factdock credits; each call counts toward your plan's monthly Insights call limit.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "track": {
      "type": "string",
      "enum": [
       "official",
       "pipeline"
      ],
      "default": "official"
     },
     "category": {
      "type": "string",
      "description": "official: medical, veterinary, food, science, cyber, energy, ip, trade, economy, approvals, safety, litigation… / pipeline: medical, veterinary, ip, economy, cyber, trade, trials, industry, preprint, filings, vuln"
     },
     "country": {
      "type": "string",
      "description": "ISO 3166-1 alpha-2 (e.g. JP, US, EU). Ignored when category is set."
     },
     "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 40,
      "default": 0
     },
     "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "default": 10
     },
     "lang": {
      "type": "string",
      "default": "en",
      "description": "BCP 47 code of the USER'S language (e.g. 'ja', 'de', 'th', 'zh-TW'); results are translated into it. Always set it to the language the user writes in (ask if unclear) — if omitted, results come back in English."
     }
    },
    "required": [],
    "additionalProperties": false
   },
   "annotations": {
    "title": "Factdock Insights feed",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": true
   }
  },
  {
   "name": "insights_videos",
   "title": "Factdock Insights video briefings",
   "description": "Daily video briefings from official channels shown in the Factdock app (title, short summary, link). Stored translations only; otherwise original language. Does not use your Factdock credits; each call counts toward your plan's monthly Insights call limit.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "default": 5
     },
     "lang": {
      "type": "string",
      "default": "en",
      "description": "BCP 47 code of the USER'S language (e.g. 'ja', 'de', 'th', 'zh-TW'); results are translated into it. Always set it to the language the user writes in (ask if unclear) — if omitted, results come back in English."
     }
    },
    "required": [],
    "additionalProperties": false
   },
   "annotations": {
    "title": "Factdock Insights video briefings",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": true
   }
  },
  {
   "name": "get_prices",
   "title": "Credit prices",
   "description": "Free (uses no credits). Returns the current Factdock credit price of every paid tool, for the user's result language (prices depend on the language the results are translated into), so the cost can be shown before a paid tool runs. Optionally pass `tool` for one tool only. Prices are the same as in the Factdock app.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "lang": {
      "type": "string",
      "default": "en",
      "description": "BCP 47 code of the USER'S language (e.g. 'ja', 'de', 'th', 'zh-TW'); results are translated into it. Always set it to the language the user writes in (ask if unclear) — if omitted, results come back in English."
     },
     "tool": {
      "type": "string",
      "maxLength": 60,
      "description": "Optional: one tool name (e.g. web_search)."
     }
    },
    "required": [],
    "additionalProperties": false
   },
   "annotations": {
    "title": "Credit prices",
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": true
   }
  }
 ]
}
