arcade-mcp/examples/serving_tools/modal/run-arcade-worker.py
Eric Gustin d7107c107d
Update examples (#601)
* Reorganize the examples folder
* Add two mcp server examples. A local filesystem server and a simple
'starter' server.
2025-10-03 17:37:22 -07:00

34 lines
892 B
Python

import os
from modal import App, Image, asgi_app
# Define the FastAPI app
app = App("arcade-worker")
toolkits = ["arcade_gmail", "arcade_slack"]
image = (
Image.debian_slim().pip_install("arcade_tdk").pip_install("arcade_serve").pip_install(toolkits)
)
@app.function(image=image)
@asgi_app()
def fastapi_app():
from arcade_serve.fastapi.worker import FastAPIWorker
from arcade_tdk import Toolkit
from fastapi import FastAPI
web_app = FastAPI()
# Initialize app and Arcade FastAPIWorker
worker_secret = os.environ.get("ARCADE_WORKER_SECRET", "dev")
worker = FastAPIWorker(web_app, secret=worker_secret)
# Register toolkits we've installed
installed_toolkits = Toolkit.find_all_arcade_toolkits()
for toolkit in installed_toolkits:
if toolkit.package_name in toolkits:
worker.register_toolkit(toolkit)
return web_app