Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SQLITE_PATHNoPath to SQLite database file (used when sqlite is in DATABASE_TARGET).
POSTGRES_DSNNoPostgreSQL connection string (used when postgres is in DATABASE_TARGET).
DATABASE_TARGETYesOrdered, comma-separated list of sink ids; order decides which sink serves reads. Valid ids: postgres, mysql, sqlite, mongodb, mariadb, neo4j, clickhouse, duckdb, surrealdb.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_server_infoA

Use this first to learn the server version, configured sinks, and read sink.

Use include="config" for the raw configuration values or list_sinks for per-sink detail. include is one of: summary (server metadata only, default), sinks (also returns the list_sinks payload), or config (also returns the configuration payload) — so you can pull the summary and the detail in a single call. Returns server metadata only; it reads no filings. include="sinks" is an alias for the list_sinks payload — call list_sinks directly when sinks are the only thing you need. This tool is read-only.

list_sinksA

Use this when the user asks which databases are configured or their capabilities.

Use get_server_info (with include="config") for the raw DATABASE_TARGET string or a one-line summary instead. Pass sink_id to inspect one sink without the full list. Returns every known sink id with its license, optional extra, configured/available status, per-sink capabilities, and which sink serves reads. Reads no filings. get_server_info with include="sinks" returns this same payload; call this tool directly when per-sink detail is all you need.

describe_schemaA

Use this before filtering or interpreting results to learn the canonical fields.

Use search_filings or search_documents to query filings once you know the field names. Pass section to return just one section (saves tokens); default returns everything: filing and document fields, the known filing types/categories/statuses/types, graph edge kinds, and the supported query filters. Reads no filings.

list_companiesA

Use this to list companies, or just their ticker codes, that have filings.

view="companies" (default) returns each company's ticker, name, and filing count, ordered by filing count descending (ties broken by ticker ascending). view="tickers" returns only the distinct ticker codes, alphabetically sorted and paged. ticker is a case-insensitive substring match (e.g. '0700' matches '0700.HK'). Not for a company's filings (use search_filings) or for aggregate counts (use get_statistics with group_by="company_ticker"). This tool is read-only.

search_filingsA

Use this to find filings by ticker, type, status, date range, or title text.

Prefer search_documents for full-text search over extracted text, and get_filing or get_filings to read filings whose ids you already have. Filters are optional and combinable; comma-separate a value to match several (e.g. filing_type="Annual Report,Dividend"). document_status accepts the real statuses plus unprocessed (no document yet). document_type accepts pdf, html, xlsx, docx, or unknown, and source is a free-text origin like HKEx. date_from/date_to are YYYY-MM-DD inclusive. order_by is one of filing_date_desc (default), filing_date_asc, title_asc, filing_id_asc. Returns paged filing rows (no document text); call get_filing for the document. This tool is read-only.

search_documentsA

Use this for full-text search over extracted document text.

Use search_filings instead to filter by metadata without a text query. Matches text_query case-insensitively inside document_text and returns filing rows with a snippet when the sink supports it (see snippets_supported). document_type accepts pdf, html, xlsx, docx, or unknown; source is a free-text origin like HKEx. All filters combine with AND semantics (a filing must match every filter you set). Returns nothing until documents are processed. This tool is read-only.

get_statisticsA

Use this to count filings grouped by one dimension, or per sink.

Choose between: this tool gives a grouped breakdown of one population (or per-sink totals when group_by="sink"); get_coverage reports scrape coverage by month; verify_sinks compares across sinks. group_by is one of: company_ticker (default), filing_type, filing_category, document_status, exchange, or sink. Optional filters narrow the population and combine with AND semantics (a filing must match every filter you set); group_by="sink" honours only ticker, filing_type, filing_category, document_status, date_from, and date_to, and returns per-sink totals (relational sinks only). top_n caps the returned buckets and min_count drops small buckets, but total still counts every matching filing. Buckets are sorted by count descending. This tool is read-only.

get_filingA

Use this to read one filing's metadata and extracted document content.

Returns the canonical filing and document fields. document_text is a window of max_text_chars from text_offset; when text_truncated is true, call again with next_text_offset for more. Tables (document_tables) are included only when include_tables is true. Obtain ids from search_filings. This tool is read-only.

get_filingsA

Use this to read several filings in one call (up to 50 ids).

Use get_filing instead to read a single filing. Returns each filing's metadata plus, when include_text is true, a bounded text window. Ids not found are listed in not_found. Text is off by default. Parameter relationships: filing_ids must come from search_filings (1..50 ids); max_text_chars applies per filing and only takes effect when include_text is true; include_tables is independent of the text window. Read-only.

get_coverageA

Use this to report scrape coverage per monthly chunk, with totals.

Use get_statistics for filing counts grouped by a dimension, or verify_sinks for cross-sink comparison. date_from/date_to (YYYY-MM-DD) filter by chunk month. limit caps how many chunks are returned, but totals always aggregate the full filtered range. Rows are newest-first. Read-only.

verify_sinksA

Use this to check that configured sinks agree on their filings.

mode="hashes" (default) compares (filing_id, document_sha256) sets across comparable sinks and returns a bounded sample of any missing/extra/mismatched ids. mode="counts" runs a faster count-only parity check, returning per-sink counts and the spread (parity is OK when the spread is zero). For a per-sink total or a grouped breakdown use get_statistics, and for monthly scrape coverage use get_coverage. Parameter relationships: sinks must list two or more comparable sink ids from list_sinks (empty compares every comparable pair); sample_size bounds the examples returned per problem bucket, not the comparison itself, and is ignored by mode="counts". This tool is read-only.

list_referencesA

Use this to explore the graph edges between companies and filings.

Use search_filings(ticker=...) for a company's own filings or search_filings( referenced_ticker=...) to find mentions via the filing column. This reads the canonical edge tables keyed on ticker (format like 0700.HK; discover valid values via list_companies(view="tickers")): kind="referenced_by" returns filings whose title mentions the company (cross-references), kind="owned" returns the company's own filings. Results are paged via limit/offset and stay empty until graph linking has been run. This tool is read-only.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
schema_resource
coverage_resource

TDQS

A4.7/5.0

Scored across 12 tools

Disambiguation4/5

Most tools are clearly separated by resource and action, and descriptions explicitly cross-reference alternatives. The main overlap is list_sinks versus get_server_info(include="sinks"), which return the same payload; get_server_info also overlaps with describe_schema and the sink-listing behavior.

Naming Consistency5/5

All tool names use consistent snake_case verb_noun patterns (list_sinks, get_statistics, search_filings, get_filing, verify_sinks, etc.). Singular/plural distinctions like get_filing vs get_filings are handled cleanly and predictably.

Tool Count5/5

Twelve tools is well-scoped for a filing-data server covering discovery, search, retrieval, statistics, coverage, sink verification, and references. Each tool has an apparent role, and the set avoids both thinness and bloat.

Completeness5/5

For a read-only HKEX filing server, the surface covers the full exploration lifecycle: schema discovery, sink inspection, company lookup, metadata search, full-text search, single/bulk filing retrieval, statistics, coverage checks, sink parity, and graph references. No obvious core read operation is missing.

Maintenance

ActivityMaintained
ResponsivenessNo issues