import json

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("Sample inventory")
INVENTORY = {"keyboard": 8, "monitor": 3}


@mcp.tool()
def get_stock(sku: str) -> dict[str, str | int]:
    """Look up a product in fictional sample inventory; no live data."""
    key = sku.strip().lower()
    if key not in INVENTORY:
        return {"status": "not_found", "sku": key}
    return {"status": "found", "sku": key, "quantity": INVENTORY[key]}


@mcp.resource("inventory://catalog")
def catalog() -> str:
    """Describe the available fictional inventory."""
    return json.dumps({"sample_data": True, "skus": sorted(INVENTORY)})


@mcp.prompt()
def stock_question(sku: str) -> str:
    """Prepare a question about the sample inventory."""
    return f"Check sample stock for {sku}. Do not describe it as live data."


if __name__ == "__main__":
    mcp.run(transport="stdio")
