Python 接口转mcp

33 阅读1分钟
import uvicorn
import sys,asyncio,os
from pathlib import Path
sys.path.append(str(Path(__file__).parent))
from fastapi import FastAPI

from fastapi_mcp import FastApiMCP


from fastapi.middleware.cors import CORSMiddleware
from controller.main_router import main_router
# from service.plc_data_service import get_plc_data
# from service.iot_data_service import set_record_data_list
app = FastAPI(
    title="opc服务调用",
    version="1.0"
)




app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)


async def fetch_plc_data():
    print("...")
    # plc_data=get_plc_data()
    # print(plc_data)
    # await asyncio.sleep(0.5)  # 每0.5秒请求一次

app.include_router(main_router)

mcp = FastApiMCP(
    app,
    name="My API MCP",
    description="My API description",
)

mcp.mount_sse()

if __name__ == '__main__':
    asyncio.run(fetch_plc_data())
    uvicorn.run(app, host="0.0.0.0", port=8000)
    # uvicorn mcp-fastapi-hello:app --reload
    # run_server()

参考:快速接入MCP服务!将 MCP 服务与 FastAPI 集成_fastapi mcp-CSDN博客