Skip to main content

tmds-mcp

License: MIT Python Versions (officially) supported Pypi status badge Unittests status badge Coverage status badge Linting status badge Black status badge

[!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)

Source distribution for tmds-mcp 0.0.2
File Size Uploaded
tmds_mcp-0.0.2.tar.gz 180.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tmds-mcp 0.0.2
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page