Python MCP servers exposing Swiss Open Data to compatible LLM clients.
Project description
Open Swiss Model Context Protocol
Open Swiss MCP connects Large Language Models to Switzerland's open data infrastructure through Anthropic's Open Source Model Context Protocol. This enables any LLMs to provide real-time, data-grounded responses about Swiss public services and informations.
Why Open Swiss MCP?
- Rich Data Source: Access to 12,000+ high-quality datasets from opendata.swiss, Switzerland's official open data platform.
- Real-Time Insights: Get accurate answers about Swiss public services (weather, transport, etc.)
- Simple Integration: Built on Anthropic's Model Context Protocol for seamless LLM integration with any supported clients.
- Open Architecture: Designed for community contribution and dataset expansion.
Key Features
- One-Command setup
- Access to Swiss public datasets (incl. SBB real-time train informations, Weather updates...)
- Compatible with Claude and other MCP-enabled LLMs Application
We maintain a strong focus on reliability, simplicity, and extensibility. Contributions to expand the supported datasets are welcome!
Usage
Prerequisites
If you want to use Open Swiss MCP with Claude Desktop app client you need to install the Claude Desktop app.
You will also need uv to easily run our CLI and MCP servers.
macOS & Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Open Swiss MCP - CLI Tool
Overview
# show available commands
uvx osmcp
# show available providers
uvx osmcp list
# show info about a provider
uvx osmcp info $PROVIDER_NAME
# setup a provider's MCP server on your Claude Desktop app
uvx osmcp setup $PROVIDER_NAME
# remove a provider's MCP server from your Claude Desktop app
uvx osmcp remove $PROVIDER_NAME
Example
Quickstart for the SBB provider:
uvx setup sbb
Contributing
We want to scale!
- keep things as simple as possible -> toward AI generated pages keep things in single file
- keep things as standard as possible (TOOLS, TOOLS_HANDLER) and follow the guidelines for what should be a tool, what should be a resource...
- keep it as low as possible in external dependencies (weigh always pros / cons of integrating a new dependency with always a bias toward not adding it)
- keep things formatted with ruff
- keep things tested with pytest
- use typehints and pydantic model for input output of api requests
Concretly: brew install uv / or other mean to install uv git clone uv venv uv sync pre-commit install
Roadmap
data extension
- integrate as many sources as possible from opendata.swiss
framework extension
- add support for
Limitations
- please oblige to the license must be quoted in commercial application
- please oblige to the license of the data providers
References
- Model Context Protocol (Anthropic)
License
This project is licensed under the MIT License - see the LICENSE file for details
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
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 osmcp-0.1.8.tar.gz.
File metadata
- Download URL: osmcp-0.1.8.tar.gz
- Upload date:
- Size: 25.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
002cb6d542b39b28124f75af9219c8438b2b6ee3323ffc89672d886561ca0faa
|
|
| MD5 |
0501f3c1825d296ca4f756b1573719e3
|
|
| BLAKE2b-256 |
18c96f63504bd2754993c05939e6b7665664e17efee6758ef160ddb6e11be329
|
Provenance
The following attestation bundles were made for osmcp-0.1.8.tar.gz:
Publisher:
release.yml on grll/OpenSwissMCP
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
osmcp-0.1.8.tar.gz -
Subject digest:
002cb6d542b39b28124f75af9219c8438b2b6ee3323ffc89672d886561ca0faa - Sigstore transparency entry: 152684904
- Sigstore integration time:
-
Permalink:
grll/OpenSwissMCP@44ca324ed50c2d24c299406ec9507f14c4155edf -
Branch / Tag:
refs/tags/v0.1.8 - Owner: https://github.com/grll
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@44ca324ed50c2d24c299406ec9507f14c4155edf -
Trigger Event:
release
-
Statement type:
File details
Details for the file osmcp-0.1.8-py3-none-any.whl.
File metadata
- Download URL: osmcp-0.1.8-py3-none-any.whl
- Upload date:
- Size: 11.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f4e3202b3d76fe28d507f871bc9809fea0c94fcd4b44b6445d05f3ae1e13008e
|
|
| MD5 |
04b44615ac604085bd82ec1d4ec2bd41
|
|
| BLAKE2b-256 |
621ccfd6f6961e6e512c722af1db5e69614dfb4efe0fc3b9285f8c141638d64a
|
Provenance
The following attestation bundles were made for osmcp-0.1.8-py3-none-any.whl:
Publisher:
release.yml on grll/OpenSwissMCP
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
osmcp-0.1.8-py3-none-any.whl -
Subject digest:
f4e3202b3d76fe28d507f871bc9809fea0c94fcd4b44b6445d05f3ae1e13008e - Sigstore transparency entry: 152684905
- Sigstore integration time:
-
Permalink:
grll/OpenSwissMCP@44ca324ed50c2d24c299406ec9507f14c4155edf -
Branch / Tag:
refs/tags/v0.1.8 - Owner: https://github.com/grll
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@44ca324ed50c2d24c299406ec9507f14c4155edf -
Trigger Event:
release
-
Statement type: