main.py•1.28 kB
from fastmcp import FastMCP
from models.add_product_input import AddProductInput
from models.get_product_input import GetProductInput
from models.search_Input import SearchInput
from models.product import Product
import uuid
app = FastMCP(
name="product-mcp-server")
# In-memory DB
PRODUCTS = []
@app.tool()
def add_product(data: AddProductInput):
"""Add a new product to the catalog"""
new_product = Product(
id=str(uuid.uuid4()),
name=data.name,
category=data.category,
price=data.price,
stock=data.stock,
description=data.description,
)
PRODUCTS.append(new_product)
return {"message": "Product added", "product": new_product.dict()}
@app.tool()
def search_product(data: SearchInput):
"""Search products by name or category"""
q = data.query.lower()
results = [p.dict() for p in PRODUCTS if q in p.name.lower() or q in p.category.lower()]
return {"results": results}
@app.tool()
def get_product(data: GetProductInput):
"""Get product by ID"""
for p in PRODUCTS:
if p.id == data.product_id:
return {"product": p.dict()}
return {"error": "Product not found"}
# RUN SERVER
if __name__ == "__main__":
app.run(transport="http", port=8000)