Skip to main content

MCP server for Serbian open data portal (data.gov.rs) with visualization capabilities

Project description

Serbian Data MCP Server

PyPI - Version Python - Version License: MIT

MCP server for accessing Serbian open data portal (data.gov.rs) with built-in visualization capabilities.

pip install serbian-data-mcp

Features

  • ๐Ÿ” Search 3,400+ datasets from Serbian government
  • ๐Ÿ“Š Create 6 types of charts (line, bar, pie, scatter, histogram, box)
  • ๐Ÿ“ฅ Download data in JSON, CSV, XML, XLSX formats
  • ๐ŸŽจ Export visualizations as HTML/PNG/JSON
  • ๐Ÿ‡ท๐Ÿ‡ธ Full Serbian language support (UTF-8)
  • ๐Ÿš€ Built-in rate limiting and caching
  • ๐Ÿ› ๏ธ Data transformation tools (filter, group, aggregate, sort, select)
  • ๐Ÿ”ง Git repository visualization and analysis

๐Ÿš€ Quick Start

Install from PyPI (Recommended)

pip install serbian-data-mcp

Then add to your MCP client configuration (see Usage below).

Install from Source

git clone https://github.com/acailic/serbian-data-mcp
cd serbian-data-mcp
uv sync

๐Ÿ“– Configuration

The server works out of the box with sensible defaults. To customize, create a config.json in your working directory (or next to the installed package):

{
  "api_base": "https://data.gov.rs",
  "rate_limit": 1.0,
  "timeout": 30,
  "cache_dir": ".cache",
  "export_dir": "exports"
}

See config.example.json in the source repo for all options.

๐Ÿš€ Usage

Claude Desktop Configuration

{
  "mcpServers": {
    "serbian-data": {
      "command": "serbian-data-mcp"
    }
  }
}

Or if you installed from source:

{
  "mcpServers": {
    "serbian-data": {
      "command": "python",
      "args": ["-m", "serbian_data_mcp"]
    }
  }
}

Available Tools

  • search_datasets - Search datasets with filters
  • get_dataset - Get complete dataset details
  • get_resource_data - Download and parse resource data
  • create_visualization - Create charts from data
  • list_organizations - Browse data providers
  • suggest_datasets - Autocomplete for search
  • get_git_stats - Get git repository statistics
  • get_git_history - Retrieve commit history
  • visualize_git_data - Create git repository visualizations

๐Ÿ“Š Visualization Gallery

The MCP server supports 6 types of interactive charts with automatic styling and Serbian language support.

Line Charts

Line chart showing trends over time

Perfect for time series data and trends

Bar Charts

Bar chart comparing categories

Compare values across categories

Horizontal Bar Charts

Horizontal bar chart for category comparison

Ideal for long category names

Pie Charts

Pie chart showing proportional distribution

Show parts of a whole

Scatter Plots

Scatter plot showing correlations

Explore relationships between variables

Histograms

Histogram showing distribution

Analyze frequency distributions

Box Plots

Box plot showing statistical distribution

Display statistical summaries and outliers

Examples

# Search datasets
datasets = await mcp.call_tool("search_datasets", {
    "query": "population",
    "format": "json",
    "page_size": 10
})

# Create visualization
chart = await mcp.call_tool("create_visualization", {
    "data": data,
    "chart_type": "line",
    "title": "Population Trends",
    "x_column": "year",
    "y_column": "population",
    "export_format": "html"
})

๐Ÿ“š Documentation

Development

Setup Development Environment

make install

Running Tests

make test       # Run all tests with coverage
make test-quick # Quick tests (no coverage)

Code Quality Checks

make check      # Run all quality checks (lint, format, type-check, security)
make check-quick # Quick checks (lint + format only)

Project Structure

serbian-data-mcp/
โ”œโ”€โ”€ src/serbian_data_mcp/
โ”‚   โ”œโ”€โ”€ api/              # API client and models
โ”‚   โ”œโ”€โ”€ catalog/          # Dataset catalog and search
โ”‚   โ”œโ”€โ”€ data/             # Data parsing and transformation
โ”‚   โ”œโ”€โ”€ intelligence/     # Query expansion and smart search
โ”‚   โ”œโ”€โ”€ viz/              # Visualization tools
โ”‚   โ”œโ”€โ”€ config.py         # Configuration management
โ”‚   โ”œโ”€โ”€ exceptions.py     # Custom exceptions
โ”‚   โ””โ”€โ”€ tools.py          # MCP tool definitions
โ”œโ”€โ”€ tests/                # Comprehensive test suite
โ”œโ”€โ”€ .github/workflows/    # CI/CD configuration
โ”œโ”€โ”€ pyproject.toml        # Project configuration
โ””โ”€โ”€ Makefile              # Development commands

License

MIT License - see LICENSE file

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

serbian_data_mcp-0.1.0.tar.gz (81.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

serbian_data_mcp-0.1.0-py3-none-any.whl (96.1 kB view details)

Uploaded Python 3

File details

Details for the file serbian_data_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: serbian_data_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 81.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for serbian_data_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0059561efba3fc59b2a2676c755ae5d21f1a0af016cc8743869e7809fe869a4d
MD5 d7c5509f89c2dee2abb02484145fd0c1
BLAKE2b-256 4741476f26873a4eb86775d351a8713a6bfdfaf5b2e97f3a823b36e3eb84f03d

See more details on using hashes here.

File details

Details for the file serbian_data_mcp-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for serbian_data_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8072500f704eeeb0ee2405406090ae85100cfd494fe4990faad10344e16b8aa3
MD5 f6b833d36382e89c8fd20c53003755fc
BLAKE2b-256 086a406f63765256697ad915fa3e1e59968bb0c63e4909cffcafdb4c5d84ff80

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page