MCP server for TERMDAT — official multilingual terminology of the Swiss Federal Administration (DE/FR/IT/EN). Validated authority names, legal act titles and abbreviations for AI agents.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http · sse
verified
reported
listed in the official MCP registry counts 7 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
api_status
-
check_terms
-
get_entries
-
list_classifications
-
list_collections
-
search_terms
-
translate_term
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit d81ab70 · analyzer v33 · 1w ago
skills & prompt files 1
- agent-rules malkreide-termdat-mcp-d81ab70/CLAUDE.md
danger signals1
- suspicious endpoint 169.254.169.254 (cloud metadata) malkreide-termdat-mcp-d81ab70/tests/test_client.py :244
"https://169.254.169.254/latest/meta-data", # cloud metadata
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 20
filesystem 7
- fs (weak) malkreide-termdat-mcp-d81ab70/scripts/check_ruff_pin.py :35
import shutil - fs (weak) malkreide-termdat-mcp-d81ab70/scripts/check_version_sync.py :35
from pathlib import Path - fs (weak) malkreide-termdat-mcp-d81ab70/scripts/classify_live_run.py :55
from pathlib import Path - fs (weak) malkreide-termdat-mcp-d81ab70/scripts/record_fixtures.py :24
from pathlib import Path - fs (weak) malkreide-termdat-mcp-d81ab70/tests/fixture_data.py :18
from pathlib import Path - fs (weak) malkreide-termdat-mcp-d81ab70/tests/test_classify_live_run.py :21
from pathlib import Path - fs (weak) malkreide-termdat-mcp-d81ab70/tests/test_recorded_fixtures.py :249
from pathlib import Path
shell / exec 1
- shell (weak) malkreide-termdat-mcp-d81ab70/scripts/check_ruff_pin.py :36
import subprocess
network 6
- net (weak) malkreide-termdat-mcp-d81ab70/scripts/record_fixtures.py :26
from urllib.parse import urlencode - net malkreide-termdat-mcp-d81ab70/src/termdat_mcp/client.py :16
from urllib.parse import urlsplit - net (weak) malkreide-termdat-mcp-d81ab70/tests/test_client.py :3
import httpx - net (weak) malkreide-termdat-mcp-d81ab70/tests/test_recorded_fixtures.py :20
import httpx - net (weak) malkreide-termdat-mcp-d81ab70/tests/test_retry_policy.py :16
import httpx - net (weak) malkreide-termdat-mcp-d81ab70/tests/test_server.py :5
import httpx
tool registrations 7
- search_terms malkreide-termdat-mcp-d81ab70/src/termdat_mcp/server.py :89
- get_entries malkreide-termdat-mcp-d81ab70/src/termdat_mcp/server.py :159
- translate_term malkreide-termdat-mcp-d81ab70/src/termdat_mcp/server.py :179
- check_terms malkreide-termdat-mcp-d81ab70/src/termdat_mcp/server.py :275
- list_collections malkreide-termdat-mcp-d81ab70/src/termdat_mcp/server.py :311
- list_classifications malkreide-termdat-mcp-d81ab70/src/termdat_mcp/server.py :325
- api_status malkreide-termdat-mcp-d81ab70/src/termdat_mcp/server.py :339
declared dependencies 9
- mcp@>=2.0.0,<3
- httpx@>=0.27
- pydantic@>=2.7
- pydantic-settings@>=2.0
- structlog@>=24.1,<27
- pytest@>=8
- pytest-asyncio@>=0.23
- respx@>=0.21
- ruff@==0.16.1
transport_posture 1
- network-listening, binds all interfaces, no auth detected malkreide-termdat-mcp-d81ab70/tests/test_transport_security.py :40
assert build_transport_security(_cfg(host="0.0.0.0")) is None