Model Context Protocol

Hlídač státu MCP Server

Přístup k otevřeným datům Hlídače státu - smlouvy ve státním sektoru, dotace, politici, firmy a propojení s veřejnou správou - z libovolného MCP klienta (Claude, ChatGPT, Cursor, mcp-inspector…).

Server URL

https://mcp.api.hlidacstatu.cz

Musíte být na Hlídači registrováni. MCP server je dostupný pouze pro registrované uživatele.

Vložte tuto URL do MCP klienta níže. Discovery, registraci klienta, zalogování do Hlídače i obnovu tokenu si moderní klienti zařídí automaticky (většinou). Podrobnější návody najdete níže.

Podporovaní AI agenti

Server byl otestován s následujícími MCP klienty. Většina podporuje OAuth discovery - stačí jim předat URL výše. U klientů bez podpory OAuth pošlete legacy API token v hlavičce Authorization: Bearer ….

Claude Desktop

Otestováno · OAuth

Anthropic desktop aplikace s nativní podporou MCP.
Jak zprovoznit najděte níže.

Konfigurace →

Claude.ai (web)

Otestováno · OAuth

Webová verze Claude.ai - Settings → Connectors → Add custom connector. Stejný flow jako u desktop klienta.

Konfigurace →

ChatGPT

Otestováno · OAuth

Custom Connectors a Deep Research. ChatGPT vyřeší discovery i registraci klienta automaticky.

Konfigurace →

ChatGPT Codex CLI

Otestováno · Bearer token

Codex agent ve verzi 0.135.0 a nižší (verze před 28.5.2026 podporuje pouze Bearer token, nikoliv OAuth.

Konfigurace →

Cursor

Otestováno · OAuth

AI editor založený na VS Code. Konfigurace přes ~/.cursor/mcp.json.

Konfigurace →

VS Code (GitHub Copilot)

Otestováno · OAuth

Copilot Agent mode. V Command Palette spusťte MCP: Open User Configuration a vložte stejný JSON jako pro Cursor.

Konfigurace →

Windsurf

OAuth · MCP JSON

AI editor od Codeia. V ~/.codeium/windsurf/mcp_config.json přidejte sekci mcpServers s URL serveru.

Konfigurace →

Cline

OAuth · VS Code rozšíření

Open-source agent v VS Code. V Cline panelu otevřete MCP Servers → Configure MCP Servers.

Konfigurace →

Continue

OAuth · VS Code / JetBrains

Open-source AI asistent. Přidejte server do ~/.continue/config.yaml v sekci mcpServers.

Konfigurace →

mcp-inspector

Otestováno · debug

Oficiální debug nástroj pro MCP. Spusťte přes npx -y @modelcontextprotocol/inspector a krokujte protokol ručně.

Konfigurace →

STDIO

Otestováno · local

MCP server přes STDIO je proces, který komunikuje s klientem (např. Claude Desktop) přes standardní vstup a výstup (stdin/stdout) místo síťového protokolu jako HTTP

Konfigurace →

Autentizace

Server podporuje dvě metody - moderní MCP klienti by měli použít OAuth, starší skripty mohou nadále posílat statický API token.

OAuth 2.0 (doporučené)

Klient automaticky objeví autorizační server přes /.well-known/oauth-protected-resource, provede dynamickou registraci (RFC 7591) a otevře přihlášení. Uživatel se přihlásí svým běžným účtem na hlidacstatu.cz a odsouhlasí scope mcp:tools. Tokeny jsou krátkodobé JWT (RS256) podepsané klíčem oauth.api.hlidacstatu.cz.

Bearer API token

Na www.hlidacstatu.cz/api získejte osobní API token a posílejte ho v hlavičce každého požadavku:

Authorization: Bearer 1a2b3c4de5f67890abcdef1234567890

Příklad API token based MCP serveru s STDIO


{
"mcpServers":
  {     
    "hlidac-statu": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://mcp.api.hlidacstatu.cz",
        "--header",
        "Authorization: Token 1a2b3c4de5f67890abcdef1234567890"
      ]
    }
 }

Příklady konfigurace

Claude Desktop

Varianta 1 (doporučená)

  1. V Claude Desktop otevřete Settings → Connectors → Add custom connector.
  2. Do pole "MCP server URL" vložte https://mcp.api.hlidacstatu.cz.
  3. ‼️ Při prvním použití se NEOTEVŘE prohlížeč k přihlášení. Najděte Hlídač státu v seznamu "Connectors" a klikněte "Disconnect".
  4. Poté na stejném místě zvolte "Connect" - tím se spustí přihlášení (OAuth flow). Po úspěšném přihlášení je MCP server připraven k použití.

Varianta 2

Otevřete %APPDATA%\Claude\claude_desktop_config.json (Windows) nebo ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) a vložte:

{
  "mcpServers": {
    "hlidac-statu": {
      "url": "https://mcp.api.hlidacstatu.cz"
    }
  }
}

Při prvním použití se otevře prohlížeč k přihlášení; další tokeny se obnovují automaticky.

ChatGPT (Custom Connectors / Deep Research)

Settings → Connectors → Add custom connector:

ChatGPT Codex CLI

Nutné spustit codex mcp add --bearer-token-env-var HLIDAC_STATU_API_TOKEN hlidac-statu --url https://mcp.api.hlidacstatu.cz

do .env nebo to enviroment proměnné HLIDAC_STATU_API_TOKEN dejte API klíč, který (po zalogování do hlídače) najdete na https://api.hlidacstatu.cz.

Trik: snadnější je nastavit MCP server s Bearer tokenem pomocí Codex Desktop aplikace. Settings → MCP Servers. Sdílí konfiguraci s CLI verzí.

Codex CLI do verze 0.135.0 (do 28.5.2026) bohužel nepodporuje OAuth, takže je nutné použít Bearer token.

Cursor / VS Code / Windsurf / Cline / Continue

V ~/.cursor/mcp.json (případně ekvivalentní config IDE):

{
  "mcpServers": {
    "hlidac-statu": {
      "url": "https://mcp.api.hlidacstatu.cz"
    }
  }
}

mcp-inspector (debugování)

npx -y @modelcontextprotocol/inspector https://mcp.api.hlidacstatu.cz

Jako auth metodu vyberte OAuth nebo Bearer Token.

STDIO

MCP server přes STDIO je proces, který komunikuje s AI agentem (např. Claude Desktop) přes standardní vstup a výstup (stdin/stdout) místo síťového protokolu jako HTTP.

Je to starší metoda, která se používá hlavně pro lokální integrace a vyžaduje práva na lokální spuštění aplikace na počítači.

Definice STDIO serveru naleznete v dokumentaci Agenta, např. u Claude Desktop šlo o soubor ~/Library/Application\ Support/Claude/claude_desktop_config.json na MacOS a %APPDATA%\Claude\claude_desktop_config.json na Windows.

V konfiguračním souboru obvykle najdete sekci "mcpServers", kam přidejte definici pro Hlídač státu. Příklad konfigurace pro STDIO server s legacy API tokenem může vypadat takto:

{
    ...předchozí konfigurace...

    "mcpServers":
    {
        "hlidac-statu":
        {
            "command": "npx",
            "args":
            [
                "mcp-remote",
                "https://mcp.api.hlidacstatu.cz",
                "--header",
                "Authorization: Token api-token-hlidace"
            ]
        }
    }

        ...další ...
}

curl s legacy tokenem

curl -sS https://mcp.api.hlidacstatu.cz \
  -H "Authorization: Bearer <váš-api-token>" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Dostupné nástroje

Úplný a aktuální seznam získáte voláním tools/list ze svého klienta.

Smlouvy

Registr smluv - smlouvy mezi státem a třetími stranami.

get_contract_detail
Returns the full detail of a single contract from the Czech Register of Contracts by its ID. Use 'search_contracts' to obtain the ID.
list_contract_categories
Lists all contract classification categories. 'Value' is accepted by the 'categories' filter of 'search_contracts'; numeric 'Code' of main categories is accepted by the 'category_code' argument of the top-contract-increases tools.
search_contracts
Searches contracts from the Czech Register of Contracts (Registr smluv) - agreements between Czech public institutions and other parties. At least one filter is required; filters combine with AND. Returns a paginated list; use 'get_contract_detail' for full data of a single contract.
Firmy a státní instituce

Subjekty (firmy, ministerstva, obce, neziskovky) a jejich vazby na stát.

find_legal_entity_by_name
Finds a Czech legal entity (company, state institution, municipality, NGO, ...) by name or partial name. Returns its IČO, name and entity type; null when nothing matches. Use the IČO with 'get_legal_entity_business_info' or 'get_business_with_government' for details.
get_beneficial_owners_of_legal_entity
Returns beneficial owners (skuteční majitelé) of a Czech legal entity by IČO from the Czech registry of beneficial owners (evidence skutečných majitelů): current and deleted owners with registration/deletion dates, position, shares in profit and voting rights, and person_id when Hlídač státu tracks the person. Snapshot as of 2025-12-15 - the Ministry of Justice closed the registry to the public on 2025-12-17, newer data is not available. Restricted to the 'Admin' or 'novinar' role.
Dostupné pouze vybraným rolím (Admin, novinar) - viz komerční licence.
get_business_with_government
Returns aggregated information about contracts, subsidies, K-Index and risks of a Czech legal entity (by IČO) in relation to the Czech state. Use 'find_legal_entity_by_name' to obtain the IČO.
get_legal_entity_business_info
Returns basic business and financial information about a Czech legal entity by IČO - restrictions of activity, employees, turnover, VAT status, related persons, subsidiaries. For its business with the Czech state use 'get_business_with_government'.
get_subsidiaries_of_legal_entity
Returns IČO and name of all subsidiaries of a Czech legal entity (by IČO).
list_government_offices_by_type
Lists Czech public institutions of a given type (e.g. Nemocnice = hospitals, Krajske_soudy = regional courts, Kraje_Praha = regions, Statni_fondy = state funds, Obce_III_stupne = municipalities). Returns IČO, name and region for each, paginated. Use 'list_government_office_types' for all available types.
Osoby a politici

Politici a další veřejně sledované osoby; sponzorské vazby a životopisná data.

find_persons_by_name
Finds persons tracked by Hlídač státu (politicians and other public figures) by full name in 'first last' order. Use the returned person_id with 'get_person_detail' for full data.
find_politicians_by_name
Finds Czech politicians (current and former) by full name in 'first last' order. For non-politicians use 'find_persons_by_name'. Use the returned person_id with 'get_person_detail' for full data.
get_person_detail
Returns the full detail of a person (politician or other public figure) tracked by Hlídač státu, by person_id. Use 'find_persons_by_name' or 'find_politicians_by_name' to obtain the person_id. For legal entities use 'get_legal_entity_business_info'.
Dotace

České a EU dotace, jejich příjemci a poskytovatelé.

get_subsidy_detail
Returns the full detail of a single Czech state or EU subsidy by its ID. Use 'search_subsidies' to obtain the ID.
search_subsidies
Searches Czech state and EU subsidies. At least one filter is required; filters combine with AND. Returns a paginated list; use 'get_subsidy_detail' for full data of a single subsidy. The 'keywords' parameter supports search prefixes (ico:, jmeno:, projekt:, program:, castka:, typ:, oblast:, ...) - see its description.
search_subsidy_programs
Searches Czech state and EU subsidies by full-text query and returns the results GROUPED BY subsidy program: for every matching program its name, code, provider and the number and total amount of the matching subsidies. Ordered by the total amount (descending). Use 'search_subsidies' with program:"..." or kodProgramu:"..." in 'keywords' to list the individual subsidies of a program.
VeKLEP - legislativní proces

Elektronická knihovna legislativního procesu - návrhy zákonů, novel a jejich připomínky ve schvalovacím procesu.

get_veklep_legislation_detail
Returns the full detail of a single VeKLEP legislative document by its ID. Use 'search_veklep_legislation' to obtain the ID.
search_veklep_legislation
Searches VeKLEP (Elektronická knihovna legislativního procesu) - the Czech government's electronic library of legislative documents in the approval process: bills, amendments, government regulations and the related comments and submissions from ministries. Returns a paginated list with summary fields only; at most the first 1000 records are accessible - refine the query for narrower results. Use 'get_veklep_legislation_detail' for full data of a single record (incl. attachments, versions and comments).
Rozhodnutí ÚOHS

Sbírka rozhodnutí Úřadu pro ochranu hospodářské soutěže od roku 1999 (hospodářská soutěž, veřejné zakázky, veřejná podpora).

get_uohs_decision_detail
Returns the full detail of a single ÚOHS decision by its ID. Use 'search_uohs_decisions' to obtain the ID.
search_uohs_decisions
Searches the collection of decisions of ÚOHS (Czech Office for the Protection of Competition / Úřad pro ochranu hospodářské soutěže) since 1999, covering competition law, public procurement, state aid and significant market power. Returns a paginated list. Use 'get_uohs_decision_detail' for full data of a single decision.
Trendy

Trendy a neobvyklé nárůsty objemu smluv subjektů se státem. Dostupné pouze pro testery (role Admin, BetaTester a novinar).

get_top_contract_increases_by_percentage
Same as 'get_top_contract_increases_by_value', but ranked by the RELATIVE (percentage) increase. Percent_Change is a fraction (0.85 = +85 %); the absolute CZK increase is included for context. Restricted to the 'Admin', 'BetaTester' or 'novinar' role.
Dostupné pouze vybraným rolím (Admin, KomercniLicence) - viz komerční licence.
get_top_contract_increases_by_value
Ranked list of Czech legal entities whose volume of contracts with the public sector grew the most in ABSOLUTE CZK terms during a selected period (data behind https://www.hlidacstatu.cz/report/33). Per entity: name, IČO, CZK increase and per-year contract volumes. Paginated; optional restriction to one main contract category. Restricted to the 'Admin', 'BetaTester' or 'novinar' role.
Dostupné pouze vybraným rolím (Admin, KomercniLicence) - viz komerční licence.
Univerzální vyhledávání (ChatGPT / OpenAI deep research)

Povinné rozhraní pro ChatGPT MCP - full-text napříč všemi typy záznamů.

fetch
Fetches the full document for a single result previously returned by 'search'. The id must be in the form 'smlouva-<id>', 'dotace-<id>', 'firma-<ico>' or 'osoba-<personId>'. Intended for deep-research clients; prefer the specialized get_*_detail tools when you know the data type.
search
Full-text search across contracts, subsidies, legal entities and persons at once. Returns up to 50 items with id, title, snippet and url; use 'fetch' with the returned id for full content. Intended for deep-research clients (OpenAI/ChatGPT MCP spec); prefer the specialized search_*/find_* tools when you know the data type.
Ostatní

Pomocné nástroje.

list_government_office_types
Lists all types (sectors) of Czech public institutions tracked by Hlidac statu, grouped into thematic areas (healthcare, justice, municipalities, state offices, ...). 'Value' is accepted by the 'type' filter of 'list_government_offices_by_type' and by the 'sector' filter of 'list_legal_entities_with_kindex'.
ping
Returns the supplied text prefixed with "Pong:". Use to verify the server is reachable.
send_feedback
Sends a feedback message from the user to the Hlídač státu support team by e-mail. Ask the user for their e-mail address before calling; when missing or invalid, the feedback is sent anonymously and support cannot reply.
Insolvence
find_insolvency_records_by_ico
Returns insolvency proceedings from the Czech Insolvency Register (ISIR) related to a Czech legal entity by IČO - as debtor, creditor or administrator, most recent first. Use 'find_legal_entity_by_name' to obtain the IČO.
KIndex
get_kindex_detail_for_legal_entity
Returns the detailed K-Index (Index of key contracting risks) of a Czech public institution by IČO, including the breakdown of the individual risk metrics the K-Index is calculated from, their weights and summary contract statistics. Returns one year when 'year' is specified, otherwise all calculated years. Use 'get_kindex_for_legal_entity' for a compact summary and 'find_legal_entity_by_name' to obtain the IČO. Available only with a commercial licence - see https://www.hlidacstatu.cz/api/v1/komercni-licence.
Dostupné pouze vybraným rolím (Admin, KomercniLicence) - viz komerční licence.
get_kindex_for_legal_entity
Returns the K-Index summary (Index of key contracting risks) of a Czech public institution by IČO: for every calculated year the resulting grade A (best) to F (worst), the numeric K-Index value and the rank in the overall ranking out of all ranked entities. No breakdown of the individual risk metrics - use 'get_kindex_detail_for_legal_entity' for that. Calculated from the Register of Contracts. Available only for the ~200 largest government bodies - null means not available. Use 'find_legal_entity_by_name' to obtain the IČO.
list_legal_entities_with_kindex
Lists Czech public institutions with a calculated K-Index (Index of key contracting risks) for the given year, ordered from the best (lowest risk) to the worst. Per entity: rank, IČO, name, grade A (best) to F (worst) and the numeric K-Index value. Optionally restricted to one sector of public institutions (ministries, hospitals, regions, ...) - use 'list_government_office_types' for all sectors. Use 'get_kindex_detail_for_legal_entity' for the full detail of one entity.
NespolehlivyPlatceDPH
get_unreliable_vat_payer_status
Returns the status of a Czech legal entity (by IČO) in the official registry of unreliable VAT payers (Registr nespolehlivých plátců DPH): whether it is currently unreliable, was ever listed, and the listing dates. Always returns a record (Was_Ever_Listed = false when never listed).
PlatyPolitiku
get_politician_salaries
Returns salaries (income, bonuses and allowances) of a single Czech politician for a given year, broken down by organization. Identify the politician by person_id (preferred) or name.
RejstrikTrestu
find_criminal_records_by_ico
Returns entries from the Czech criminal register of legal entities (Rejstřík trestů právnických osob) by IČO - violated paragraphs, courts, punishments and severity. Empty list = no records. Use 'find_legal_entity_by_name' to obtain the IČO.
Sponzoring
find_party_sponsoring_by_company
Returns all donations (financial and non-financial) made by a single Czech legal entity to Czech political parties - date, amount, donation type and receiving party. Identify the entity by IČO (preferred) or name. For donations by natural persons use 'find_party_sponsoring_by_person'.
find_party_sponsoring_by_person
Returns all donations (financial and non-financial) made by a single Czech natural person to Czech political parties - date, amount, donation type and receiving party. Identify the person by person_id (preferred) or name. For donations by companies use 'find_party_sponsoring_by_company'.
find_party_sponsoring_records
Returns individual donation records RECEIVED by a single Czech political party - one row per donation with donor, exact date, amount and donation type. Ordered by date descending, paginated. For aggregated per-donor/per-year totals use 'find_party_sponsors'.
find_party_sponsors
Returns the donors of a single Czech political party aggregated per donor and calendar year (how much each person or company gave in each year), covering roughly the last 10 years. Ordered by amount descending, paginated. For individual donation records with exact dates use 'find_party_sponsoring_records'; for donations made BY a person/company use 'find_party_sponsoring_by_person' / 'find_party_sponsoring_by_company'.
StenozaznamyPsp
get_psp_stenographic_record_detail
Returns the full detail of a single PSP stenographic record by its ID, including the complete speech text and the politicians mentioned in it. Use 'search_psp_stenographic_records' to obtain the ID.
search_psp_stenographic_records
Searches stenographic records (verbatim transcripts) of the Czech Chamber of Deputies (Poslanecká sněmovna, PSP). Each record is one speech from a plenary session: speaker, date, electoral period, session number, topic and full speech text. Returns a paginated list with summary fields only (without the full speech text); at most the first 1000 records are accessible - refine the query for narrower results. Use 'get_psp_stenographic_record_detail' for the full record including the complete speech text.
VerejneZakazky
get_public_tender_detail
Returns the full detail of a single Czech public tender (veřejná zakázka) by its ID, including official forms and tender documents. Use 'search_public_tenders' to obtain the ID.
list_public_tender_cpv_groups
Lists all CPV code groups (oblasti) used to classify Czech public tenders. 'Value' or 'Code' is accepted by the 'cpv_group' filter of 'search_public_tenders'.
search_public_tenders
Searches Czech public tenders (veřejné zakázky) - public procurement procedures of Czech public institutions. At least one filter is required; filters combine with AND. Returns a paginated list; use 'get_public_tender_detail' for full data of a single tender.

OAuth 2.0. Discovery endpointy

Changelog