Citizen Space MCP server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CITIZENSPACE_API_KEY | No | The Key of an API key from Site Settings > API (needed for the Data API tools; the two Public API tools work without it). Must be set together with the secret. | |
| CITIZENSPACE_BASE_URL | No | Overrides the site URL, e.g. `https://demo.citizenspace.com`. | |
| CITIZENSPACE_INSTANCE | No | The subdomain of your site: `demo` for `https://demo.citizenspace.com`. Letters, digits and hyphens only. Required unless CITIZENSPACE_BASE_URL is set. | |
| CITIZENSPACE_API_SECRET | No | The Secret of that API key (needed for the Data API tools). Must be set together with the key. |
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_public_activitiesA | Published, public consultations and other activities on the site, from the unauthenticated Public API (json_search_results). Every documented search argument is passed through: free text, postcode, state, audience, interest, department, area, a date range on the open or close date, activity type. fields=basic gives id, title, url, status, overview and dates; extended adds department, type and participation URL; all adds the 'why' and 'what happens next' text, contact details, related links, documents, audiences, areas and interests. Officer contact phone and email are only returned with include_contact_details. |
| get_public_activityA | Overview of one published activity by department id and activity id (the two slugs in its URL), from the unauthenticated Public API (json_consultation_details). Same fields as search_public_activities. |
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 2 tools
The two tools are cleanly separated: search_public_activities performs a bulk/query lookup and get_public_activity retrieves a single record by department id and activity id. There is no plausible way to confuse them.
Both names follow a strict verb_noun snake_case pattern (search_public_activities, get_public_activity) and the resource noun is identical modulo pluralization, which is exactly what makes a set predictable.
Two tools is defensible for a read-only wrapper over an unauthenticated public API, but it is at the thin end: the descriptions hint at a much larger underlying surface (departments, areas, interests, contact details) that has no dedicated tool.
Search plus detail covers the core read lifecycle and the field-level flags are rich, but there is no way to enumerate reference data (departments, areas, interests), no explicit paging control, and no authenticated or submission-oriented operations, leaving agents at a dead end for discovery tasks.