"""
Testowy serwer MCP używany w testach integracyjnych.

Udostępnia kilka prostych narzędzi do weryfikacji ConnectionPool i Executor.
Uruchamiany jako fixture pytest (w tle, na losowym porcie).
"""

import uvicorn
from fastmcp import FastMCP

mcp = FastMCP(name="test_server")


@mcp.tool()
def echo(message: str) -> str:
    """Zwraca podany tekst."""
    return message


@mcp.tool()
def add(a: int, b: int) -> int:
    """Dodaje dwie liczby."""
    return a + b


@mcp.tool()
def fail() -> str:
    """Zawsze rzuca wyjątek — do testowania obsługi błędów."""
    raise RuntimeError("intentional error")


@mcp.resource("test://greeting", mime_type="text/plain")
def greeting() -> str:
    """Statyczny tekstowy resource."""
    return "Hello from test server"


@mcp.resource("test://config.json", mime_type="application/json")
def config() -> str:
    """Statyczny resource JSON."""
    return '{"version": 1}'


def create_app():
    return mcp.http_app(transport="streamable-http")
