Append fastMCP model

This commit is contained in:
Даниил Грабарь
2026-05-27 17:13:42 +03:00
parent 4916648f03
commit 02e0c25847
5 changed files with 27 additions and 3 deletions
+13 -2
View File
@@ -4,6 +4,7 @@ from contextlib import asynccontextmanager
import rclpy
import uvicorn
from fastapi import FastAPI
from fastmcp import FastMCP
from sensor_msgs.msg import JointState
from .dynamic_router import build_dynamic_router
@@ -22,15 +23,25 @@ def main():
endpoints_path = node.get_parameter('endpoints_path').value or None
joint_limits_path = node.get_parameter('joint_limits_path').value or None
_schema_app = FastAPI()
_schema_app.include_router(build_dynamic_router(endpoints_path, joint_limits_path))
_schema_app.include_router(runner.router)
_schema_app.include_router(trajectory.router)
mcp = FastMCP.from_fastapi(app=_schema_app)
mcp_http = mcp.http_app(path='/mcp')
@asynccontextmanager
async def lifespan(_: FastAPI):
get_bridge().subscribe("/joint_states", JointState)
yield
async with mcp_http.router.lifespan_context(_):
get_bridge().subscribe("/joint_states", JointState)
yield
app = FastAPI(lifespan=lifespan)
app.include_router(build_dynamic_router(endpoints_path, joint_limits_path))
app.include_router(runner.router)
app.include_router(trajectory.router)
app.mount("/mcp", mcp_http)
uvicorn.run(app, host=host, port=port)
+1
View File
@@ -16,6 +16,7 @@ setup(
'fastapi',
'uvicorn[standard]',
'python-multipart',
'fastmcp',
],
zip_safe=True,
maintainer='daniel',