Skip to main content

TEDDI Tool

PyPI Python License: MIT CI Docs

Search the ETSI TEDDI terminology database from the terminal or expose it to AI agents as an MCP server. One async client, one parser and one output layer serve both interfaces.

uv tool install teddi-tool
teddi search-term "QoS" --pattern exactmatch

Features

  • CLI — search-term (term, scope, pattern, technical-body filter) and list-bodies, with table, JSON, ISON and TOON output.
  • MCP server — search_teddi, get_term_info and list_technical_bodies tools over stdio; no extra service to deploy.
  • All TEDDI technical bodies — filters are matched case-insensitively and validated against the code list published by the TEDDI search form (fetched live, cached for 90 days, so new codes need no release).
  • Local HTTP cache — hishel/SQLite store (2-hour search TTL, 90-day technical-body menu TTL), so repeated lookups do not hit ETSI; both TTLs are configurable.
  • Typed core — dataclasses and StrEnum enums with full annotations, plus a TeddiSource protocol that keeps the client mockable.
  • Async-first — an async httpx2 core shared by the CLI and MCP server.

Requirements

Python 3.13 or newer. TEDDI itself is a public ETSI web application; no account or API key is required.

Installation

# with uv (recommended)
uv tool install teddi-tool

# or with pipx
pipx install teddi-tool

From a checkout (requires mise):

git clone https://github.com/jr2804/teddi-tool.git
cd teddi-tool
mise install     # pinned toolchain: ruff, ty, rumdl, pyreorder, ...
mise dev         # uv sync -U --dev --all-extras --all-groups

Usage

teddi search-term "QoS"                              # rich table (default)
teddi search-term "QoS" --pattern exactmatch         # exact match
teddi search-term "QoS" --scope definitions -o json  # definitions only, JSON
teddi search-term "test" -t "3gpp,stq"               # filter technical bodies
teddi list-bodies                                    # valid TB codes from TEDDI
teddi-mcp                                            # MCP server on stdio

Scope values: abbreviations, definitions, both (default). Pattern values: alloccurrences (default), exactmatch, startingwith, endingwith. Output formats: table, json, ison, toon. Cache lifetimes are tuned with --cache-ttl/--menu-cache-ttl (seconds). Every option can also be set through the TEDDI_TOOL_ environment variables of the same name — TEDDI_TOOL_SCOPE, TEDDI_TOOL_PATTERN, TEDDI_TOOL_TECHNICAL_BODIES, TEDDI_TOOL_OUTPUT, TEDDI_TOOL_CACHE_TTL and TEDDI_TOOL_MENU_CACHE_TTL.

teddi-tool and teddi are the same CLI; teddi-cli is an alias kept for existing scripts, and teddi-mcp/teddi server start the MCP server directly.

MCP client configuration

{
  "mcpServers": {
    "teddi": {
      "command": "teddi-mcp",
      "env": {
        "TEDDI_TOOL_CACHE_TTL": "3600",
        "TEDDI_TOOL_MENU_CACHE_TTL": "604800"
      }
    }
  }
}

The env block is optional; it tunes the search-response and technical-body menu cache lifetimes in seconds.

Documentation

  • Usage — CLI options, output formats, MCP tools
  • API reference — models, client, parser
  • Development — setup, project layout, tasks and release process

Contributing

Issues and pull requests are welcome; see docs/contributing.md and the Code of Conduct.

License

MIT — see LICENSE.

Metadata

Release files for teddi-tool 2026.11.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for teddi-tool 2026.11.5
File Size Uploaded Provenance Actions
teddi_tool-2026.11.5.tar.gz 57.0 kB With provenance Details for teddi_tool-2026.11.5.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for teddi-tool 2026.11.5
File Interpreter ABI Platform Actions
teddi_tool-2026.11.5-py3-none-any.whl Python 3 none any Details for teddi_tool-2026.11.5-py3-none-any.whl

Total release size: 77.8 kB

Release files / teddi_tool-2026.11.5.tar.gz

Download URL teddi_tool-2026.11.5.tar.gz
Size 57.0 kB
Tags Source
SHA-256 checksum
How to use checksums
1966b5a457a62f4100f3c3a3ddcccc7378f1b2710ea5e20ef56dc52794013975
BLAKE2b-256 checksum
How to use checksums
ee34ea445f8f959e345d6abeea9eb4a8f07ed5e477124cceb2f71c022a058510
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 11, 2026.

Transparency log

Release files / teddi_tool-2026.11.5-py3-none-any.whl

Download URL teddi_tool-2026.11.5-py3-none-any.whl
Size 20.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f9e3db770870d3edb3c99c91459caf246e82438c294f9e7f6a2d09b50ca57014
BLAKE2b-256 checksum
How to use checksums
96b2803bae8079d5aaa54f5f3a72d96f2ba1bb5c093efa3c0a30bd129f904d28
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 11, 2026.

Transparency log

Security for teddi-tool 2026.11.5

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.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for teddi_tool-2026.11.5.tar.gz

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 Nov 11, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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