About azstat
azstat is an MCP server for the State Statistical Committee of Azerbaijan’s open data API. It helps people query official aggregate statistics across topics such as population, labour, education, prices, and trade.
Key features
- 01Browse topics and table counts
- 02Search tables by title and topic
- 03Inspect dimensions, periods, and units
- 04Filter and paginate table data
Use cases
- 01Find Azerbaijan population statistics
- 02Retrieve an indicator for a given year
- 03Check a table’s categories and units
MCP support
The server exposes topic listing, table search and description, and data retrieval tools to MCP clients, using the Committee’s open data API.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEazerbaijan-mcp-azstat
MCP server for the State Statistical Committee of Azerbaijan (azstat.gov.az). It searches the Committee's statistical tables (about 1,800 in 31 topics: population, labour market, education, prices, trade and more) and reads their data through the Committee's open data API: no API key, no scraping.
Tools
| Tool | What it does |
|---|---|
list_topics(lang?) | The 31 topics with their table counts. |
search_tables(query?, topic?, limit?, offset?, lang?) | Searches table titles and descriptions. Every word must appear and title matches rank first. Without a query it lists the tables of a topic. |
describe_table(table_id, category_query?, lang?) | What a table holds: description, periods, units and each dimension's categories. category_query finds the exact category names. |
get_table_data(table_id, period_from?, period_to?, where?, limit?, offset?, lang?) | Rows in long format. where filters categories, for example {"Indicator": "Total population"}. limit is 1-500 (default 50) and next_offset pages on. |
A typical question, "what was the population of Azerbaijan in 2023?", takes search_tables("population"),
then describe_table("DT_AA_001"), then
get_table_data("DT_AA_001", period_from=2023, where={"Indicator": "Total population"}).
Things worth knowing:
langisenoraz; the API offers no other. Titles, categories and the words searched are in that language. Accents are ignored, sogelirfindsgəlir.- Data is in long format, one row per period and category combination.
columnsnames the cells:period, one column per dimension,value, andsymbolandunitwhen rows have them. Periods are written2023for years and202603for months. A nested category readsparent > child. - A
nullvalue with asymbol(seen:-and...) means the Committee published the symbol instead of a number. The symbol is returned as published, not interpreted. Many tables give their unit only in the title. - The API has no filters, so a table is read whole and cut here. At most 20 MB per table is read (a
larger one returns
statustoo_large), and it is cached for 30 minutes. The largest table in the sample checked was 9 MB. - Some tables seem to leave out a dimension. In a sample of 26 tables, 2 had several values for the
same period and categories with nothing to tell them apart. For those,
get_table_datareturnsstatusambiguous, no rows and the link to the table on the Committee's site;describe_tablestill shows what they hold.
Install
Add to your MCP client configuration (requires uv):
{
"mcpServers": {
"azstat": {
"command": "uvx",
"args": ["azerbaijan-mcp-azstat"]
}
}
}
In Claude Code: claude mcp add azstat -- uvx azerbaijan-mcp-azstat.
One optional setting goes in the client's env:
| Variable | Default | Meaning |
|---|---|---|
AZSTAT_API_BASE | https://www.azstat.gov.az/AsisOpenDataApi | API base URL, https only. |
Data source and terms
The data is published by the State Statistical Committee at https://www.azstat.gov.az. This server
reads its open data API, the tables and data actions of AsisOpenDataApi. The API has no public
documentation (no documentation page answers at the usual paths), so a live contract test pins the
shape of its answers. Answers to the checklist in the repository's
data policy, read on 2026-11-01:
- Terms: the Committee's own pages state no terms for the API and ask users to cite the source. The
national open data portal, opendata.az, lists
AsisOpenDataApiaddresses among the files of 1,426 of the Committee's 1,662 datasets there, and all 1,662 carry the CC0 licence. Its FAQ (https://opendata.az/page/faq, updated 8 April 2025) defines open data as data anyone can access, use and share again, and tells developers they can build applications on the data and the API. - robots.txt: none is published (
www.azstat.gov.az/robots.txtanswers 404). - Attribution: every response has
sourceandattributionfields and the link to the table's page. Cite the Committee when you use the numbers. - Rate limit and cache: the User-Agent is
azerbaijan-mcp-azstat/<version>, with at most one request per second, one retry for network errors and 5xx, and a stop on 403 or 429. The table list is cached for an hour and each table for 30 minutes. - Personal data: none. The tables are aggregate statistics.
- Publisher contacted: no.
- Decision: go, as an official, read-only API.
Unofficial project, not affiliated with or endorsed by the State Statistical Committee.
tests/fixtures/ holds trimmed copies of real answers from the API; DT_AA_001 and DT_BE_119 are
whole.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.