Skip to main content

MCP server for Swedish statistical data discovery and export

Project description

Utforska Data MCP Server

MCP server package for discovering datasets, fetching filtered data, creating deep links, and generating reports from Utforska Data.

Package: utforska-data-mcp

Tooling Surface

  • discover_datasets
  • get_dataset_details
  • fetch_data
  • build_export_link
  • build_session_link
  • generate_report
  • build_session_export_link

discover_datasets and generate_report also support Apps SDK output templates (widget resources).

Run Modes

1) MCP stdio (client launches via uvx)

{
  "mcpServers": {
    "utforska-data": {
      "command": "uvx",
      "args": ["utforska-data-mcp"]
    }
  }
}

2) Streamable HTTP (standalone)

cd backend/mcp-server
uv run utforska-data-mcp-http

Defaults:

  • MCP endpoint: http://localhost:8080/mcp/
  • Health: http://localhost:8080/health

3) Embedded in main API server

backend/api_server.py mounts MCP on /mcp.

Configuration

  • MCP_BACKEND_URL (default: https://utforskadata.se)
  • MCP_APP_URL (default: https://utforskadata.se)
  • MCP_SESSION_API_URL (optional override for session create/load API)
  • MCP_DEFAULT_LANG (sv or en, default sv)

HTTP mode options:

  • MCP_HTTP_HOST (default 0.0.0.0)
  • MCP_HTTP_PORT (default 8080)
  • MCP_HTTP_PATH (default /mcp)
  • MCP_HTTP_STATELESS (default true)
  • MCP_HTTP_JSON_RESPONSE (default false)

Local Development

cd backend/mcp-server
pip install -e .

or run package scripts directly via uv run.

Switching from a Kolada-only MCP Server

If someone already has a Kolada MCP server, migration can be minimal if they keep the same interaction pattern.

Fastest path (endpoint swap)

  1. Keep their MCP client/tooling layer.
  2. Point backend calls to Utforska endpoints instead:
    • discovery: POST /api/ai/discover
    • details: GET /api/v2/datasets/{id}
    • data: GET /api/v2/datasets/{id}/data
    • export: GET /api/v2/datasets/{id}/export
  3. Restrict to Kolada when needed via source filters (sources: ["kolada"]).
  4. Keep existing response contract in their MCP wrapper if they need backward compatibility.

If they adopt this MCP package directly

  • Replace MCP server command with uvx utforska-data-mcp.
  • Optionally set:
    • MCP_BACKEND_URL to their Utforska backend host
    • MCP_APP_URL to their app host

Data model differences to account for

Compared with a Kolada-only service, Utforska adds:

  • Multi-source dataset IDs (not only Kolada IDs)
  • Normalized content_measures and breakdowns
  • Optional session creation/loading deep links

If they currently use direct DB access instead of HTTP APIs, they would need mapping to:

  • datasets
  • dataset_values
  • dimension_mappings
  • metric_aggregations

Using HTTP endpoints is usually much faster and safer than binding to internal tables directly.

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

utforska_data_mcp-1.0.4.tar.gz (46.6 kB view details)

Uploaded Source

Built Distribution

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

utforska_data_mcp-1.0.4-py3-none-any.whl (54.8 kB view details)

Uploaded Python 3

File details

Details for the file utforska_data_mcp-1.0.4.tar.gz.

File metadata

  • Download URL: utforska_data_mcp-1.0.4.tar.gz
  • Upload date:
  • Size: 46.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for utforska_data_mcp-1.0.4.tar.gz
Algorithm Hash digest
SHA256 928c8adeeebb5df4beaec00aa29e2bcebf1d43eb4fee663d2bcdc889b8f26cba
MD5 7ea2328235a3e84e7686bccbdbfb00dd
BLAKE2b-256 5a78b6a166193d7d25c139715e87d3958799786059dc7061ed268f487df2f7ec

See more details on using hashes here.

File details

Details for the file utforska_data_mcp-1.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for utforska_data_mcp-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 2eb72ab90c349b31d0064834aa7319588c94ed4343739b55f6fd6447ea544adf
MD5 aa2e4bd7a16d39f233071ba99c8d0d21
BLAKE2b-256 fc5add5e0c8069c4358cfb6ba7ac6f5d77e63b61ffd06e4c30bc84b5a8f117b0

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