From e2188e762b0552ea092ccd8717e0ebe46b87498a Mon Sep 17 00:00:00 2001 From: Valeriy Pavlovich Date: Sat, 6 Sep 2025 23:27:48 +0300 Subject: [PATCH 1/2] fix(server): change main to async def server.main was defined as a sync function returning None, which caused when executed with asyncio.run(). Updated to so the entrypoint works properly with asyncio. --- src/mcp_google_sheets/server.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mcp_google_sheets/server.py b/src/mcp_google_sheets/server.py index a3f926a..20f3a0c 100644 --- a/src/mcp_google_sheets/server.py +++ b/src/mcp_google_sheets/server.py @@ -928,6 +928,6 @@ def share_spreadsheet(spreadsheet_id: str, return {"successes": successes, "failures": failures} -def main(): +async def main(): # Run the server mcp.run() From 28d5323e5886fda6cfc49040c1c3dcc9e5464ab5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B0=D0=BB=D0=B5=D1=80=D0=B8=D0=B9=20=D0=9F=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=BE=D0=B2=D0=B8=D1=87?= Date: Sat, 6 Sep 2025 23:35:15 +0300 Subject: [PATCH 2/2] fix(server): run FastMCP in current asyncio loop Make main async and switch from mcp.run() (anyio.run) to await mcp.run_stdio_async(), avoiding nested event loop error: "RuntimeError: Already running asyncio in this thread". --- src/mcp_google_sheets/server.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mcp_google_sheets/server.py b/src/mcp_google_sheets/server.py index 20f3a0c..2a119a9 100644 --- a/src/mcp_google_sheets/server.py +++ b/src/mcp_google_sheets/server.py @@ -930,4 +930,4 @@ def share_spreadsheet(spreadsheet_id: str, async def main(): # Run the server - mcp.run() + await mcp.run_stdio_async()