tmds-mcp
[!WARNING]
This project is being discontinued in favor of a server-side MCP API.
An MCP server wrapping tmdsclient, exposing read-only TMDS master data to AI assistants (e.g. Claude Desktop) for debugging.
Requires Python 3.11+.
Tools
| Tool | Description |
|---|---|
get_messlokation |
Messlokation (meter location) master data by MeLo-ID |
get_marktlokation |
Marktlokation (market location) master data by MaLo-ID |
get_zaehler |
Zähler (meter) data by UUID, optionally at a historical keydate |
get_netzvertraege_for_melo |
All Netzverträge for a MeLo-ID |
get_netzvertraege_for_malo |
All Netzverträge for a MaLo-ID |
get_netzvertrag_by_id |
Single Netzvertrag by UUID |
Installation
pip install tmds-mcp
For use with Claude Desktop or another MCP client, pipx installs the server as a standalone executable:
pipx install tmds-mcp
Configuration
Set environment variables or place them in a .env file in the working directory from which the MCP server is launched:
| Variable | Required | Description |
|---|---|---|
TMDS_URL |
Yes | Base URL of the TMDS server, e.g. https://techmasterdata.example.de/ |
TMDS_AUTH_TYPE |
No (default: basic) |
basic or oauth |
TMDS_USER |
If basic auth | Username |
TMDS_PASSWORD |
If basic auth | Password |
TMDS_CLIENT_ID |
If OAuth | OAuth client ID |
TMDS_CLIENT_SECRET |
If OAuth | OAuth client secret |
TMDS_TOKEN_URL |
If OAuth | Token endpoint URL |
Usage
Run the server directly:
tmds-mcp
Or add to your MCP client config (e.g. Claude Desktop):
{
"mcpServers": {
"tmds": {
"command": "tmds-mcp",
"env": {
"TMDS_URL": "https://techmasterdata.example.de/",
"TMDS_AUTH_TYPE": "basic",
"TMDS_USER": "...",
"TMDS_PASSWORD": "..."
}
}
}
}
Development
This project follows the Hochfrequenz Python template and uses uv for dependency management.
Install the full dev environment with:
uv sync --group dev
Run the individual checks exactly as CI does (each --group pulls in only what it needs):
# tests
PYTHONPATH=src uv run --group tests pytest
# type_check (mypy --strict)
PYTHONPATH=src uv run --group type_check mypy --show-error-codes src/tmds_mcp --strict
PYTHONPATH=src uv run --group type_check mypy --show-error-codes unittests --strict
# linting (ruff)
PYTHONPATH=src uv run --group linting ruff check .
# coverage ≥ 80 %
PYTHONPATH=src uv run --group coverage coverage run -m pytest
PYTHONPATH=src uv run --group coverage coverage report --fail-under 80 --omit "unittests/*"
# formatting (ruff)
uv run --group linting ruff format --check .
Metadata
Release files for tmds-mcp 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tmds_mcp-0.0.2.tar.gz | 180.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tmds_mcp-0.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 186.5 kB
Release files / tmds_mcp-0.0.2.tar.gz
| Download URL | tmds_mcp-0.0.2.tar.gz |
|---|---|
| Size | 180.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d34b4438e372c056279ae83ed69c2b3cf6a8d90527500e11206c58c9829d75aa
|
|
BLAKE2b-256 checksum How to use checksums |
41fb6ddb4ecb891869041db0dedb5aa999e681cf50a6c44fbd5d2eb144d84b3a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.
Transparency logRelease files / tmds_mcp-0.0.2-py3-none-any.whl
| Download URL | tmds_mcp-0.0.2-py3-none-any.whl |
|---|---|
| Size | 6.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d3d6cd93c035aac5cdb78842d8db0e7e083c09ff881af0c86779f8641178bc85
|
|
BLAKE2b-256 checksum How to use checksums |
4b750cdaa102ab8bebc989082bdba6383359255f7d85d7519895c69308197abb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.
Transparency log