OpenCivicQuery
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OPENCIVICQUERY_HOST | No | HTTP bind address. The Docker image sets `0.0.0.0`. | 127.0.0.1 |
| OPENCIVICQUERY_AUTH_MODE | No | Authentication mode: `open` (no login) or `oauth` (Google sign-in). | open |
| OPENCIVICQUERY_TRANSPORT | No | Transport mode: `http` or `stdio`. | http |
| OPENCIVICQUERY_CONFIG_PATH | Yes | Path to the deployment configuration file. | |
| OPENCIVICQUERY_SNAPSHOT_PATH | No | Folder for local snapshots. | ~/.opencivicquery/snapshots |
| OPENCIVICQUERY_SNAPSHOT_BUCKET | No | Bucket for Cloud Storage snapshots. | |
| OPENCIVICQUERY_SNAPSHOT_BACKEND | No | Snapshot storage backend: `local` or `gcs`. | local |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_source_packsA | List the portals and datasets that a source pack documents, with the date each pack was last checked against live data. Datasets outside these packs are still queryable, but their responses carry a ROW GRAIN UNKNOWN warning. |
| search_datasetsA | Search the Socrata catalog for datasets. Leave domain empty to search every portal, or give a portal hostname to search one. Each result says whether a source pack documents it. Search results do not carry a quality, review, reliability, or publication status. |
| describe_datasetA | Return a dataset schema, source update time, and, when a source pack documents it, the row grain, counting guidance, and caveats. Call this before writing a query. |
| query_datasetA | Run a read-only SoQL query with a mandatory row ceiling. The response on success states completeness, warnings, methodology, source update time, the public dataset page, the exact query, a public live-result query_url when the source supports one, and the URI of an immutable evidence snapshot. If completeness is truncated, revise the query or report the limitation. The response also carries presentation_rules, which govern how you must state its figures to the user; obey every rule listed there before you write your reply. Failures return isError=true and an error object with the failure code, message, argument, and http_status. A failed query has no data result or snapshot. |
| pin_snapshotA | Preserve a temporary query snapshot indefinitely for a published story. Use the snapshot URI returned by query_dataset. |
| get_snapshotA | Read a temporary or pinned evidence snapshot for verification. The snapshot contains the exact query, frozen rows, source update time, completeness, methodology, and warnings. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
Each tool has a distinct role across the lifecycle: discovering packs/datasets, inspecting schema, running queries, and reading or pinning snapshots. The pair pin_snapshot and get_snapshot is clearly separated by write/preserve versus read/verify semantics. Search and listing tools are differentiated by catalog search versus documented source packs.
All tool names follow a consistent snake_case verb_noun pattern (list_source_packs, search_datasets, describe_dataset, query_dataset, pin_snapshot, get_snapshot). The convention is predictable throughout.
Six tools is well scoped for a civic data query server, covering discovery, schema inspection, querying, and evidence snapshots without unnecessary surface area. Each tool clearly earns its place.
The surface covers the core workflow from dataset discovery through schema inspection, query execution, and snapshot verification/pinning. Minor gaps exist around managing pinned snapshots, such as listing or unpinning them, but these do not block the primary use case.