Registrace nástrojů
Jak se nástroje registrují
CzechMedMCP používá dekorátor @mcp_app.tool() z FastMCP frameworku. Každý nástroj je async funkce vracející str (markdown).
from czechmedmcp.core import mcp_app
from typing import Annotated
from pydantic import Field
@mcp_app.tool()
async def czechmed_search_medicine(
query: Annotated[str, Field(description="Hledaný výraz")]
) -> str:
"""Vyhledání léčiv v SUKL registru."""
result = await _search_medicine(query)
return render.to_markdown(result)Konvence
- Všechny tool funkce vracejí
str— markdown přesrender.to_markdown()nebojson.dumps() - Parametry používají
Annotated[type, Field(description="...")]pro MCP schéma - Volitelný dekorátor
@track_performance()pro monitoring - Paginace:
compute_skip(page, page_size)zconstants.py
Kde se registrují
| Skupina | Soubor | Počet |
|---|---|---|
| Standardní | src/czechmedmcp/individual_tools.py | 33 |
| České | src/czechmedmcp/czech/czech_tools.py | 23 |
| Router | src/czechmedmcp/router.py | 2 |
| Think | src/czechmedmcp/thinking_tool.py | 1 |
| Metrics | src/czechmedmcp/metrics_handler.py | 1 |
Přidání nového nástroje
- Implementace v doménovém subpackage (
_my_tool()) - Registrace v
individual_tools.pyneboczech_tools.py - CLI příkaz v
cli/ - Aktualizace počtu 60 v
tests/tdd/test_mcp_integration.py - Registrace v
utils/endpoint_registry.py - Testy v
tests/tdd/(mockované) +tests/integration/(live)
Last updated on