MCP server for Serbian open data portal (data.gov.rs) with visualization capabilities
Project description
Serbian Data MCP Server
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 filtersget_dataset- Get complete dataset detailsget_resource_data- Download and parse resource datacreate_visualization- Create charts from datalist_organizations- Browse data providerssuggest_datasets- Autocomplete for searchget_git_stats- Get git repository statisticsget_git_history- Retrieve commit historyvisualize_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
Perfect for time series data and trends
Bar Charts
Compare values across categories
Horizontal Bar Charts
Ideal for long category names
Pie Charts
Show parts of a whole
Scatter Plots
Explore relationships between variables
Histograms
Analyze frequency distributions
Box Plots
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
- Quick Start Guide - Get started in 5 minutes
- Usage Examples - 24+ real-world examples and use cases
- API Reference - Complete tool documentation with parameters
- Troubleshooting - Common issues and solutions
- Contributing Guide - Developer contribution guidelines
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0059561efba3fc59b2a2676c755ae5d21f1a0af016cc8743869e7809fe869a4d
|
|
| MD5 |
d7c5509f89c2dee2abb02484145fd0c1
|
|
| BLAKE2b-256 |
4741476f26873a4eb86775d351a8713a6bfdfaf5b2e97f3a823b36e3eb84f03d
|
File details
Details for the file serbian_data_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: serbian_data_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 96.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8072500f704eeeb0ee2405406090ae85100cfd494fe4990faad10344e16b8aa3
|
|
| MD5 |
f6b833d36382e89c8fd20c53003755fc
|
|
| BLAKE2b-256 |
086a406f63765256697ad915fa3e1e59968bb0c63e4909cffcafdb4c5d84ff80
|