26 lines
711 B
Python
26 lines
711 B
Python
|
|
from fastmcp import FastMCP
|
|
from main import application
|
|
from fastmcp.server.openapi import MCPType, HTTPRoute
|
|
from config.main import config
|
|
|
|
def custom_route_mapper(route: HTTPRoute, mcp_type: MCPType) -> MCPType | None:
|
|
"""Advanced route type mapping."""
|
|
# Convert all admin routes to tools regardless of HTTP method
|
|
if "/open/" in route.path and route.method in ["GET"]:
|
|
return MCPType.TOOL
|
|
else:
|
|
return MCPType.EXCLUDE
|
|
|
|
mcp = FastMCP.from_fastapi(
|
|
app=application,
|
|
name="Dcalc_MCP",
|
|
instructions="DNF相关的MCP服务",
|
|
timeout=60,
|
|
host="0.0.0.0",
|
|
port=config.MCPPORT,
|
|
route_map_fn=custom_route_mapper,
|
|
)
|
|
|
|
mcp.run(transport="streamable-http")
|