]>
us-delaporte.pagekite.me Git - matrix-shop-bot.git/blob - skill.py
3a1b1cbde80b015c99434702d557c289543391e1
1 from fastmcp
import FastMCP
2 from matrix_shop_bot
.db
import Data
7 from starlette
.middleware
import Middleware
8 from starlette
.middleware
.cors
import CORSMiddleware
11 from starlette
.applications
import Starlette
12 from starlette
.routing
import Mount
15 MY_IP
=os
.environ
.get('MY_IP')
16 mcp
= FastMCP("Shop Bot")
19 def add_item(name
: str) -> str:
20 return '\n'.join(Data().add_item(name
))
23 def buy(items
:str) -> str:
24 return '\n'.join(Data().purchase_items(items
))
27 def list_bought(store
:str) -> str:
28 return '\n'.join(Data().list_purchases(store
))
31 #def clear(store_name: str, clear_all:bool=False) -> 'list[str]':
32 # return Data().clear_list(store_name, clear_all)
36 def shop_at(store_name
:str) -> str:
37 '''Select store to shop at'''
38 return '\n'.join(Data().get_shopping_list(store_name
))
43 '''Use previous store'''
44 return '\n'.join(Data().get_last_shopping_list())
48 #def list_stores() -> 'list[str]':
49 # return Data().get_stores()
53 #def list_purchases(store: str) -> 'list[str]':
54 # return Data().list_purchases(store)
56 # Configure CORS for browser-based clients
60 allow_origins
=["*"], # Allow all origins; use specific origins for security
61 allow_methods
=["GET", "POST", "DELETE", "OPTIONS"],
63 "mcp-protocol-version",
68 expose_headers
=["mcp-session-id"],
74 if __name__
== "__main__":
77 mcp_app
= mcp
.http_app(
79 # middleware=middleware
82 # Create a Starlette app and mount the MCP server
85 Mount("/mcp-server", app
=mcp_app
),
86 # Add other routes as needed
88 lifespan
=mcp_app
.lifespan
,
91 # http_app = mcp.http_app(transport="streamable-http",path="/",middleware=custom_middleware)
92 http_app
= mcp
.http_app(transport
="streamable-http",path
="/",middleware
=middleware
)
93 # http_app = mcp.http_app(transport="streamable-http",path="/")
94 uvicorn
.run(http_app
, host
=MY_IP
, port
=9000)