# File: src/mcp/__init__.py
# Purpose: Define lightweight MCP data structures shared across modules.
# Context: Used by test doubles and simplified MCP server implementations.

"""Shared data structures for minimal MCP tooling support.

Purpose:
    Provide dataclass representations of MCP concepts reused by tests.
Context:
    Imported by lightweight MCP servers and fixtures that avoid the full
    production stack while keeping schema compatibility.
Side Effects:
    None.
"""

from __future__ import annotations

from dataclasses import dataclass
from typing import Any


@dataclass(slots=True)
class Tool:
    """Describe an MCP tool entry in a registry.

    Purpose:
        Capture façade-level metadata required when listing tools.

    Args:
        name: Human-readable identifier surfaced to MCP clients.
        description: Optional explanation for user-facing UIs.
        inputSchema: Optional JSON schema describing accepted arguments.

    Returns:
        None.
    Side Effects:
        None.
    """

    name: str
    description: str | None = None
    inputSchema: dict[str, Any] | None = None
