Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_jurisdictionsA

Per-country reference data dictionary. Two modes — pass EXACTLY ONE of: • jurisdiction: 'GB' — full schema for one country: registry name + URL, data license, company ID format with examples, native status values + mapping to the unified active/inactive/dissolved/unknown enum, list of supported tools, list of field names available in jurisdiction_data sub-objects (profile/filing/officer/shareholder/psc/charge), free-text quirks notes, and the global_search_excluded flag. • supports_tool: 'get_officers' — cross-country matrix for one tool: which jurisdictions implement it (with their registry names) and which don't. Calling with no parameters returns a structured 400 with both shapes documented. For server-level info (codes list, version, rate limits) call about instead.

search_companiesA

Search company registries. Two calling modes — pick EXACTLY ONE per call:

  1. jurisdiction: "GB" — single country, direct query, no confirmation screen. Use when the user has named a specific country.

  2. jurisdictions: ["GB","NO","FR"] — multi-country fan-out when you are unsure. On clients that support MCP elicitation the server asks the user to confirm / edit your list before running; on others it returns an error telling you to ask in chat.

Per-tier caps on how many distinct countries can be in jurisdictions (or searched in a 60-second window via repeated single calls): anonymous/free = 3, pro = 10, max = 30, enterprise = unlimited.

Prefer jurisdiction (singular) when in doubt; ask the user first. The confirmation dialog around jurisdictions is a safety net, not a way to fan out silently. Follow-up tools (get_company_profile, list_filings, get_officers, etc.) do NOT count against the fan-out cap.

Returns candidates with unified top-level fields (jurisdiction, company_id, company_name, status, status_detail, incorporation_date, registered_address) plus a jurisdiction_data object carrying the raw upstream fields verbatim. The status field is a coarse four-value enum (active / inactive / dissolved / unknown) safe for cross-country comparison; status_detail carries the registry's native status string.

Per-country caveats (ID format, accepted input shapes, filter options, paid-tier gates, status taxonomy) are available on demand — call list_jurisdictions({jurisdiction:"<code>"}) for full schema, or list_jurisdictions({supports_tool:"search_companies"}) for the full country-support matrix. All registries are official government sources.

search_companies_near_pointA

Search the French registry for companies whose siège social (registered office) lies within a given radius (km) of a latitude/longitude point. Maps to recherche-entreprises' /near_point endpoint. Useful for 'companies within 2km of the Eiffel Tower' style queries. Pricing: free. Returns the same UnifiedSearchCandidate shape as search_companies. Other jurisdictions return 501 — only FR exposes this endpoint.

get_specialised_recordA

Retrieve a record from one of ARES's specialised source registers — covers sector-specific data the basic profile doesn't include.

── CZ (Czechia ARES) ── Available source codes: • ros — Public Registers (Registr osob) summary state • res — Statistical Register of Economic Entities (Registr ekonomických subjektů) • rzp — Trade Licence Register (Registr živnostenského podnikání) — trade licences a sole trader / company holds • nrpzs — National Register of Healthcare Providers (Národní registr poskytovatelů zdravotních služeb) — for hospitals, clinics, pharmacies • rpsh — Register of Political Parties and Movements (Registr politických stran a hnutí) • rcns — Register of Churches and Religious Societies (Registr církví a náboženských společností) • szr — Farmers' Register (Registr zemědělských podnikatelů) • rs — Register of Schools (Registr škol) • ceu — Central Insolvency Record (Centrální evidence úpadců)

Each source returns its own response shape — refer to ARES API docs at https://ares.gov.cz/swagger-ui/ for field details. The full upstream record is returned verbatim under record. Use this when the basic get_company_profile or get_officers/get_psc/get_charges don't have the field you need (e.g. trade-licence specialisations for sole traders → rzp, school accreditation details → rs, healthcare facility list → nrpzs). Returns 404 if the IČO doesn't exist in that specific source register. Pricing: free.

Other jurisdictions return 501.

search_specialised_recordsA

Fetch raw records from one specific ARES source register in a single call, optionally filtered by a list of IČOs. This is the paired search endpoint for get_specialised_record (which fetches one record at a time). Uses POST /ekonomicke-subjekty-{source}/vyhledat upstream.

── CZ (Czechia ARES) ── Available source codes (same as get_specialised_record, plus 'vr'): • vr — Commercial register (Veřejný rejstřík) — the full company record with officers/PSCs/charges • ros — Public Registers summary (Registr osob) • res — Statistical Register (Registr ekonomických subjektů) • rzp — Trade Licence Register (Registr živnostenského podnikání) • nrpzs — Healthcare Providers (Národní registr poskytovatelů zdravotních služeb) • rpsh — Political Parties (Registr politických stran a hnutí) • rcns — Churches and Religious Societies (Registr církví) • szr — Farmers (Společný zemědělský registr) • rs — Schools (Registr škol) • ceu — Insolvency Record (Centrální evidence úpadců)

The upstream filter is intentionally narrow — ARES only accepts an optional list of IČOs plus pagination on these per-source endpoints. For rich name/address/legal-form search, use search_companies (which queries the main /ekonomicke-subjekty/vyhledat endpoint).

Returns { source, pocet_celkem, count, records[] } with each records[i] preserved verbatim from the upstream source — field set varies per source (refer to the ARES API docs at https://ares.gov.cz/swagger-ui/).

Pricing: free. Other jurisdictions return 501.

search_addressesA

Resolve a free-text or structured Czech address against the RÚIAN (Registr územní identifikace, adres a nemovitostí) register. Returns one or more normalised addresses with full geographic codes (kodAdresnihoMista, kodObce, kodOkresu, kodKraje, PSC). Powered by ARES's POST /standardizovane-adresy/vyhledat.

── Use cases ── • Normalise a messy address string before matching it against other data sources • Resolve an obec/street/house number to its canonical RÚIAN code • Validate whether an address exists in the Czech cadastre

── Standardisation mode ── • UPLNA_STANDARDIZACE (default): require full match (street + house number + locality) • VYHOVUJICI_ADRESY: accept partial matches (e.g. obec only)

At least one of (text, nazev_obce, kod_obce, kod_adresniho_mista) should be supplied. Response contains a stav_standardizace field reporting whether the match was UPLNA, CASTECNA_OBEC, or NEUSPESNA (no match).

Pricing: free. Other jurisdictions return 501.

list_change_batchesA

Access the change-batch feed — incremental delta batches listing every company ID that changed in a given source register during a given reporting period. Currently only available for CZ; other jurisdictions return 501.

Two modes:

  1. List mode (omit batch_id): returns the N latest batches, optionally filtered by source. Page forward via offset/limit until the returned array is empty — the upstream has no total-count field.

  2. Detail mode (supply batch_id + source): returns change records in that batch with typZmeny ∈ {INS, UPD, DEL} and the changed company ID. Response also carries total_changes (full batch size) and pagination: { limit, offset, has_more }. Client-side sliced — batches can exceed 1000 records.

Raw upstream fields come through verbatim under jurisdiction_data. Default page size 100, max 1000. Per-country source codes, capabilities and caveats — call list_jurisdictions({jurisdiction:"<code>"}).

list_establishmentsA

Return every establishment unit (vestigingseenheid / unité d'établissement) attached to a Belgian enterprise number, as exposed by the official KBO Public Search vestiginglijst.html page. Each unit is a physical location (office / shop / warehouse) operated by the enterprise and has its own 10-digit establishment number starting with the digit 2 (e.g. 2.143.775.125). The unit itself is NOT a legal entity — the enterprise is — but the KBO exposes per-unit name, address, start date, activity codes, contact details, and (where applicable) authorisations and entrepreneurial-skill registrations.

Returns an array of { establishment_id, establishment_id_digits, status, start_date, name, address }. Pricing: free. Other jurisdictions return 501.

check_name_availabilityA

Probe the Isle of Man Companies Registry 'Check Name Availability' endpoint (companynameavailability.iom). Returns { query, available, warning, similar_names[] } where available is true only when upstream does not emit the 'Name entered already exists' warning AND the similar-names table is empty. Each similar_names row carries the exact name, company number, registry type, status, and (when upstream linked it) the opaque Id of the existing company. Pricing: free; no login required. Other jurisdictions return 501.

list_actos_inscritosA

Scans BORME Section I (Empresarios — Actos inscritos) and Section B (Otros actos) province PDFs across a date range, returns every acto paragraph whose header line exactly matches the given denominación. Use this to recover current/historical directors, resignations, constitución details, sole-shareholder declarations, capital changes, dissolution, extinción — all statutory registered acts, which are NOT exposed by the per-company /buscar/anborme.php search (that indexes only Section II Anuncios y avisos legales).

Each hit includes the verbatim acto_numero (BOE's in-year sequential), borme_a_id (BORME-A-YYYY-NNN-PP province bulletin), provincia title, source_pdf_url, pagina_inicial/final, denominacion_upstream (as printed, including accent/punctuation drift), and texto_raw — the complete paragraph text from the {Nº} - {DENOMINACIÓN}. header to the next acto boundary. The adapter does NOT parse specific fields (Nombramientos / Ceses / Socio único / Capital / Datos registrales) — read texto_raw and extract inline.

Performance: each day in the range costs ~N province PDF fetches (N ≤ 52 provinces but typically 20–40). Default window: last 30 days. Hard cap: 90 days per call. Chunk longer windows client-side. Supported on ES only. Cached on the VM (PDFs are immutable once published).

get_code_descriptionA

Resolve a registry code-list to a human-readable code → description map. Useful for decoding values seen in jurisdiction_data fields.

── FI (Finland PRH) ── Codes: YRMU (company forms), KRTILA (trade-register status), TOIMI4 (TOL 2008 industries), ALUE (regions). lang: en | fi | sv (default en).

── CZ (Czechia ARES) ── Codes: PravniForma / FinancniUrad / TypAngazma / TypOrganu / StavZdroje / TypAkcie. Czech only.

── CH (Switzerland Zefix) ── Codes: legalForm (entity types — AG/Sàrl/Verein/...), registryOfCommerce (26 cantonal registries), community (Swiss communes by BFS ID). Multilingual (de/fr/it/en).

Returns a flat object: { code: description, … }. Pricing: free.

Other jurisdictions return 501.

count_companiesA

Return the total number of companies that would match a search, without fetching the candidates themselves. Useful before paginating very large result sets to decide whether to narrow the query.

⚠️ Performance note: this is NOT cheaper than search_companies — CRO's /companycount endpoint runs the same underlying query and takes ~2s on average (similar to a full search). Only use it when the raw count is what you actually need (e.g. 'how many Coffee business names exist in Ireland?'). For 'is this query narrow enough to paginate?', it's faster to call search_companies with limit=1 — you'll get the first hit AND a sense of recall in one round-trip.

── IE (Ireland CRO) ── Maps to the /companycount endpoint. Supports the same filters as search_companies (query, match_type, bus_ind, include_business_names, address, alpha). Returns a plain integer. Pricing: free.

Other jurisdictions return 501 — Companies House/Brreg/ABR don't expose a count-only endpoint.

search_officersA

Find people who hold or have held officer positions (director, secretary, member, partner) at companies registered in a jurisdiction, by name. Returns a list of officer candidates each with an officer_id, name, and (where the registry exposes it) the number of appointments held. Use the officer_id in get_officer_appointments to retrieve every company that person has been appointed to. This is the entry point for 'follow the human, not the company' investigations.

get_company_profileA

Fetch the full profile of a company by its registry-specific ID. Returns unified top-level fields (jurisdiction, company_id, company_name, status, status_detail, incorporation_date, registered_address) plus a jurisdiction_data object carrying the raw upstream fields verbatim. The status field is a coarse four-value enum (active / inactive / dissolved / unknown) safe for cross-country comparison; status_detail carries the registry's native status string. The registered_address top-level field is a flattened string; the original nested address (when upstream provides one) is preserved in jurisdiction_data.

Does NOT include filings, officers, PSCs, shareholders, or charges — call the dedicated tools (list_filings, get_officers, get_persons_with_significant_control, get_shareholders, get_charges) for those.

Input company_id is the registry's canonical identifier for the jurisdiction; shapes vary (8-digit numbers, prefixed alphanumerics, hyphenated forms, multi-shape routing by length, etc.) and many registries accept light normalisation (leading-zero padding, whitespace / hyphen stripping, alternate equivalents). Pull a company_id from search_companies whenever possible rather than guessing.

Optional flags include_vr, include_history, include_establishments enable extra upstream fetches on jurisdictions that support them and are ignored elsewhere. fresh: true bypasses the cache.

Per-country caveats (ID format, accepted input shapes, jurisdiction_data field catalogue, paid-tier gates, status taxonomy) are available on demand — call list_jurisdictions({jurisdiction:"<code>"}) for the full schema, or list_jurisdictions({supports_tool:"get_company_profile"}) for the country-support matrix. All registries are official government sources.

list_filingsA

Return a company's filing history. Each filing has a filing_id, filing_date, category, description, and (when upstream exposes one) a document_id that round-trips to get_document_metadata / fetch_document. Raw upstream fields come through verbatim under jurisdiction_data. Results are newest-first.

Use the optional category parameter to filter. Common normalized categories: 'accounts', 'annual-return', 'capital', 'charges', 'confirmation-statement', 'incorporation', 'insolvency', 'liquidation', 'mortgage', 'officers', 'persons-with-significant-control', 'resolution'. Some jurisdictions also accept native form codes directly — pass the upstream code through unchanged if you have one.

Pagination: limit (default 25, max 1000). Some adapters use cursor pagination — pass back next_cursor as cursor to continue. Others use numeric offset. has_document flags whether the body can actually be retrieved via fetch_document; some registries expose only the metadata listing with the body paywalled or unavailable.

Not every registry publishes a filing list; unsupported jurisdictions return 501. Per-country caveats (ID format, accepted category values, cursor vs offset, document availability and pricing, paid-tier gates) — call list_jurisdictions({jurisdiction:"<code>"}).

get_financialsA

Return annual-accounts filings (financial statements) for a company. Convenience wrapper over list_filings(category='accounts') that normalizes the fiscal-period shape across registries and pre-computes the download URL so callers don't need a second get_document_metadata round-trip.

Each item has period_end (fiscal-period end date, the primary sort key a user thinks in), optional period_start / registration_date, a document_id that can be passed to fetch_document, document_format (e.g. XBRL XML, XHTML, PDF — may be empty when the upstream negotiates format on fetch), source_url for direct download, and jurisdiction_data carrying raw upstream fields verbatim. Results are newest-first.

Filters: year=YYYY keeps periods ending in that calendar year; period_end=YYYY-MM-DD pinpoints a single period (takes precedence over year). limit caps the post-filter slice — omit to return all matches. The whole accounts history is walked per query because late-filed amendments can land out of order.

If the adapter doesn't implement list_filings at all, this returns 501. Per-country caveats (ID format, document format availability, whether bodies are paid) — call list_jurisdictions({jurisdiction:"<code>"}).

get_shareholdersA

Return the shareholders / members / quota-holders of a company — the legal-statutory equity roster published by the company registry, with no ownership-threshold filter.

When to call this tool. Use this whenever the user asks about 'shareholders', 'members', 'quota-holders', or equivalents in other languages ('股东', '股東', 'actionnaires', 'socios', 'Gesellschafter', 'aksjonærer', 'aandeelhouders' etc.). This is a DIFFERENT concept from get_persons_with_significant_control (PSC / beneficial owners / UBO), which returns only persons above a statutory control threshold (typically >25%) on a separate beneficial-ownership register. Do NOT substitute PSC for a plain shareholder question — the two registers can disagree (a 10% shareholder is on the members register but not the PSC register; a corporate trustee can be a PSC without appearing on the members register). Call PSC only when the user explicitly asks about 'beneficial owners', 'who controls', 'PSC', 'UBO', or the threshold register.

Public disclosure is strongly legal-form-conditional. Private-limited / LLC forms typically disclose quota-holders in the public register; joint-stock / public-limited forms typically keep shareholders in a private book, so this tool may return an empty list, a pointer to the relevant filing, or a statutory explanation. Response shape varies by jurisdiction: some return a structured array, some return the filing(s) that carry the roster (you then call fetch_document on the returned document_id to read the actual list), some return threshold-crossing events for listed issuers. Every response includes a disclosure flag and/or explanatory note.

Always returns a jurisdiction_data object with the raw upstream fields verbatim. fresh: true bypasses the cache. Jurisdictions without this capability return 501.

Per-country caveats (which legal forms disclose, response shape, how to reconstruct a current roster from delta filings) are available on demand — call list_jurisdictions({jurisdiction:"<code>"}) for the full schema, or list_jurisdictions({supports_tool:"get_shareholders"}) for the country-support matrix. All registries are official government sources.

get_officersA

Return the officers of a company — current directors, secretaries, members, partners, board members, procurists / authorised signatories, liquidators, and (by default, where upstream exposes them) historical resignations.

Each officer has a unified shape (jurisdiction, officer_id, name, role, appointed_on, resigned_on, is_active) plus a jurisdiction_data object carrying the raw upstream fields verbatim. Role labels are passed through in the registry's native language (e.g. Styremedlem, Předseda představenstva, Président, PREZES ZARZĄDU) — translate client-side as needed. Birth-date precision varies by jurisdiction (some registries publish YYYY-MM-DD, some only month + year, some nothing).

officer_id, when present, can be passed to get_officer_appointments to retrieve every other company this person has been appointed to — cross-company tracing is one of the most powerful uses of this tool. Not every jurisdiction issues stable person IDs; corporate officers are usually keyed by the corporate's own company_id, natural persons may be keyed by a synthetic index. Some registries mask officer names under GDPR / privacy rules — that masking is upstream, not server-side.

Flags: include_resigned (default true) toggles historical entries on jurisdictions that expose both; group_by_person deduplicates the same person across consecutive appointments on jurisdictions that support it; fresh: true bypasses the cache. Flags are ignored on registries that don't support them. Jurisdictions that don't publish officer data (or that gate it behind paid extracts) return 501.

Per-country caveats (role-label vocabulary, birth-date precision, resignation coverage, GDPR masking, 501 gating, delta-vs-snapshot semantics) are available on demand — call list_jurisdictions({jurisdiction:"<code>"}) for the full schema, or list_jurisdictions({supports_tool:"get_officers"}) for the country-support matrix. All registries are official government sources.

get_officer_appointmentsA

Given an officer_id (from get_officers or search_officers), return every company in the registry where that person has held an appointment, with role, appointed_on, and resigned_on dates. This is the cross-company tracing tool — use it to follow a person's full corporate footprint across the registry. Results are paginated.

get_persons_with_significant_controlA

Return the persons with significant control (PSCs / beneficial owners) of a company — persons on a statutory-threshold register (typically >25% ownership or voting rights).

When to call this tool. Only when the user explicitly asks about 'beneficial owners', 'UBO', 'PSC', 'who controls', or the >25% threshold register. For plain 'shareholders' / 'members' / '股东' / '持股人' questions, call get_shareholders instead — it is a DIFFERENT register (the full equity roster with no threshold). A 10% shareholder shows up on the members register but not here; a corporate trustee can show up here without being on the members register.

Each entry has name, kind (individual / corporate-entity / etc.), nature_of_control (e.g. ownership-of-shares-75-to-100-percent, voting-rights-25-to-50-percent), notified_on, and ceased_on if applicable. Raw upstream fields come through verbatim under jurisdiction_data. Returns an empty list (not an error) for companies whose registry supports PSCs but has no filing on record.

Many countries keep beneficial-ownership data in a separate register from the main company registry, or restrict it to authenticated / AML-obliged callers. Unsupported jurisdictions return 501, sometimes with alternative_tool='get_shareholders' when the caller probably wanted registered shareholders instead. Per-country availability, historical-entry behaviour, and paid-tier gates — call list_jurisdictions({jurisdiction:"<code>"}).

get_chargesA

Return charges (mortgages, fixed and floating charges, pledges, security interests) registered against a company. Primary tool for security-interest and lender analysis.

Each charge has charge_id, status (outstanding / satisfied / part-satisfied), classification (e.g. 'fixed charge', 'floating charge', 'pledge on share stake'), created_on, satisfied_on if applicable, and persons_entitled (lenders / chargeholders). Raw upstream fields come through verbatim under jurisdiction_data. Returns an empty list (not an error) for companies with no registered charges.

Scope is registry-specific: some jurisdictions keep real-estate mortgages, movable-asset pledges, or receivables in separate registers this tool does not reach. Unsupported jurisdictions return 501; some return 501 and suggest list_filings(category='charges') as an alternative. Per-country scope, classifications, and caveats — call list_jurisdictions({jurisdiction:"<code>"}).

get_document_metadataA

Retrieve metadata about a filing document by its document_id (obtained from list_filings). Returns available content formats with byte sizes (when known), page count, source URL, and creation date. Raw upstream fields come through verbatim under jurisdiction_data.

Call this before fetch_document when the document might be large or you don't yet know the format — it lets you decide whether to download inline or hand the source_url to the user.

Do NOT construct or guess document_id values — some registries use composite IDs (multi-part, colon- or slash-separated) that must come from a previous list_filings response. Synthesized IDs will 404 or 502.

available_formats may be empty when the body is paywalled or the registry doesn't publish bodies at all — in those cases fetch_document returns 501 / a purchase link. Unsupported jurisdictions return 501. Per-country ID format, pricing, and availability — call list_jurisdictions({jurisdiction:"<code>"}).

fetch_documentA

Primary tool for reading a filing's content. Pass a document_id from list_filings / get_financials. MANDATORY for any substantive answer — filing metadata (dates, form codes, descriptions) alone doesn't answer the user; the numbers and text live inside the document.

── RESPONSE SHAPES ── • kind='embedded' (PDF up to ~20 MB; structured text up to max_bytes): returns bytes_base64 with the full document, source_url_official (evergreen registry URL for citation, auto-resolved), and source_url_direct (short-TTL signed proxy URL). For PDFs the host converts bytes into a document content block — you read it natively including scans. • kind='resource_link' (document exceeds max_bytes): NO bytes_base64. Returns reason, next_steps, the two source URLs, plus index_preview for PDFs ({page_count, text_layer, outline_present, index_status}). Use the navigation tools below.

── WORKFLOW FOR kind='resource_link' ──

  1. Read index_preview.text_layer. Values: full (every page has real text), partial (mixed), none (scanned / image-only), oversized_skipped (indexing skipped), encrypted / failed.

  2. If full / partial: call get_document_navigation (outline + previews + landmarks) and/or search_document to locate pages. If none / oversized_skipped: skip search.

  3. Call fetch_document_pages(pages='N-M', format='pdf'|'text'|'png') to get actual content. Prefer pdf for citations, text for skim, png for scanned or oversized.

── CRITICAL RULES ── • Navigation-aids-only: previews, snippets, landmark matches, and outline titles returned by the navigation tools are for LOCATING pages. NEVER cite them as source material — quote only from fetch_document_pages output or this tool's inline bytes. • No fallback to memory: if this tool fails (rate limit, 5xx, disconnect), do NOT fill in names / numbers / dates from training data. Tell the user what failed and offer retry or source_url_official. • Don't reflexively retry with a larger max_bytes — for big PDFs the bytes are unreadable to you anyway. Use the navigation tools instead.

source_url_official is auto-resolved from a session-side cache populated by the most recent list_filings call. The optional company_id / transaction_id / filing_type / filing_description inputs are OVERRIDES for the rare case where document_id didn't come through list_filings. Per-country document availability, format, and pricing — call list_jurisdictions({jurisdiction:"<code>"}).

get_document_navigationA

For PDFs that don't fit in a single document block (>~20 MB or >100 pages) OR whenever you need to locate specific sections, call this FIRST before fetching content. Returns outline (PDF bookmarks), per-page text previews (first ~200 chars), keyword-matched landmarks (balance sheet, directors report, auditor report etc.), text_layer classification, and source URLs.

CRITICAL — these are NAVIGATION AIDS ONLY. Page previews, outline titles, landmark matches, and search snippets may be truncated, contain OCR errors, or match false positives. NEVER cite them as source material for numbers, quotes, legal text, financial figures, dates, or names. Always follow up with fetch_document_pages(pages=) to retrieve authoritative content before answering.

Requires the document bytes to already be cached — call fetch_document once first if this is a new document.

search_documentA

Locate pages containing a phrase. Returns matching page numbers + short context snippets for navigation. Useful when the outline/landmarks don't list your target (e.g. you want 'directors' remuneration' but only 'Directors Report' is a landmark). Up to max_hits pages (default 20) are returned; total_hits counts raw matches across the document.

CRITICAL — snippets are NAVIGATION AIDS ONLY and may contain OCR errors. Once you've identified target pages, call fetch_document_pages(pages=) to read the authoritative text / bytes before citing anything.

Requires get_document_navigation (or fetch_document on a PDF) to have run first so the per-page text index exists in R2.

fetch_document_pagesA

Return specific pages of a PDF in one of three formats: • format='pdf' — pdf-lib page slice, preserves the original text layer and fonts (no re-encoding). This is the ONLY format that gives you byte-exact, citation-grade content. Use this for financial numbers, legal quotes, and any answer requiring precision. • format='text' — raw extracted text from pdfjs. Machine-readable but NOT authoritative — OCR errors on bad-quality text layers can silently garble digits. Use only for summarisation / light reading, and cross-check numbers by re-fetching with format='pdf'. • format='png' — page rasterization via Cloudflare Browser Rendering, for documents with text_layer='none' (scanned PDFs). Phase 6 — may return 'not implemented' in current deployment.

The response includes at most 100 pages (Anthropic document-block hard cap). Split larger ranges into multiple calls.

Requires the document's bytes to already be cached — call fetch_document on the full document first if this is a new filing.

aboutA

Compact self-description (default response <1KB): server name, version, list of supported jurisdiction codes, list of tool names, pricing, rate limits. Pass section to expand a specific slice — 'principles', 'tools', 'data_licenses', 'jurisdictions' (compact capability map for every registered adapter), or 'jurisdiction' + jurisdiction (full metadata for one country). For the full per-jurisdiction schema (field lists, status mappings, ID formats, notes), prefer list_jurisdictions.

Prompts

Interactive templates invoked by user choice

NameDescription
kyc_cross_border_due_diligenceShip a full statutory due-diligence dossier in one prompt — profile, directors, UBO, shareholders, charges, latest accounts — across 27 national government registries. Live direct-to-government queries, unmodified responses, every fact source-linked.
ubo_cross_border_chain_walkerUnmask the real person behind any company. Walk ownership chains across jurisdictions — UK Ltd → Luxembourg SARL → Cayman LP → Jersey trust → individual — in one prompt. Every hop is a live direct-government query returning unmodified registry data with source identifiers preserved.
director_search_pep_screeningMap every company a person has been a director of — live, direct from government officer registers. Covers GB / FR / TW cross-company officer indexes. Returns unmodified registry records plus co-director network for second-order pattern detection.
live_company_accounts_xbrlFetch the most recent statutory financial statements for a company — live, direct from the government filing archive — as unmodified XBRL / iXBRL / PDF bytes. Extract turnover, operating profit, EBITDA, net income, total assets, equity, cash. Native XBRL on FI / KR, iXBRL on GB.
corporate_filing_monitorScan recent filings on a company and surface material events — director changes, new charges, capital events, insolvency markers, name/address changes. Live direct-registry filing stream, unmodified records. Works on GB / IE / CA / IS / FI / IM / LI / MX / KR.
global_company_name_availabilityCheck whether a proposed company name is free to register across multiple government registers — live, direct. Exact-match + fuzzy-similar + cooling-off breakdowns per jurisdiction. IoM native availability probe; others via search pattern-match.
industry_competitor_searchFind every company operating in a sector across multiple government registries in parallel. Returns live, unmodified registry records enriched with profile + latest accounts. M&A targeting, competitive analysis, market sizing.
shell_company_detectorScore shell-probability from live government registry data — single director, no accounts filed, overseas registered office, nominee-address patterns, no employees. Transparent signal-by-signal scoring. Every signal cited back to the government record.
phoenix_company_radarDetect phoenix-company fraud patterns — dissolved companies reborn with the same director(s) and same registered office at a new entity. Live cross-reference of dissolution + director history + address reuse. UK-focused (full coverage GB via get_officer_appointments).
sector_gatekeeper_listList every regulated / licensed entity in a sector — CIMA-authorised funds, listed issuers, regulated financial-services firms — pulled live from the regulator's register. Native support: Cayman CIMA (35 categories), Korea DART listed issuers, Canada CBCA federal corps.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sophymarine/openregistry'

If you have feedback or need assistance with the MCP directory API, please join our Discord server