Fix async/await issues in MCP server entry point
- Change create_mcp_server() from async to sync function - Replace httpx.AsyncClient with httpx.Client for OpenAPI spec fetching - Make main() function synchronous for proper console script entry point - Remove unsupported capture_keyboard_interrupt parameter from mcp.run() - Fix "coroutine 'main' was never awaited" RuntimeWarning 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
31c71c1c5d
commit
bcc4cd4327
@ -689,7 +689,7 @@ def create_mailu_client(base_url: str, api_token: str) -> httpx.AsyncClient:
|
||||
)
|
||||
|
||||
|
||||
async def create_mcp_server() -> FastMCP:
|
||||
def create_mcp_server() -> FastMCP:
|
||||
"""Create the MCP server with Mailu API integration."""
|
||||
|
||||
# Get configuration from environment variables
|
||||
@ -707,8 +707,8 @@ async def create_mcp_server() -> FastMCP:
|
||||
logger.info(f"Fetching OpenAPI spec from: {spec_url}")
|
||||
|
||||
try:
|
||||
async with httpx.AsyncClient() as fetch_client:
|
||||
response = await fetch_client.get(spec_url)
|
||||
with httpx.Client() as fetch_client:
|
||||
response = fetch_client.get(spec_url)
|
||||
response.raise_for_status()
|
||||
spec = response.json()
|
||||
|
||||
@ -789,17 +789,16 @@ async def create_mcp_server() -> FastMCP:
|
||||
return mcp
|
||||
|
||||
|
||||
async def main():
|
||||
def main():
|
||||
"""Main entry point for the MCP server."""
|
||||
logger.info("Starting Mailu MCP Server")
|
||||
|
||||
try:
|
||||
# Create and run the MCP server
|
||||
mcp = await create_mcp_server()
|
||||
mcp = create_mcp_server()
|
||||
|
||||
await mcp.run(
|
||||
transport="stdio",
|
||||
capture_keyboard_interrupt=True
|
||||
mcp.run(
|
||||
transport="stdio"
|
||||
)
|
||||
|
||||
except Exception as e:
|
||||
@ -808,4 +807,4 @@ async def main():
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(main())
|
||||
main()
|
||||
|
Loading…
x
Reference in New Issue
Block a user