Cline MCP Servers panel shows no tools for FastMCP stdio server, but tools work in chat
I created a simple FastMCP stdio server (Echo) with a resource, tool, and prompt, then registered it in Cline v3.1.5 on macOS using
uv run echo.py. The MCP Servers panel shows no tools or resources even though the server logsListToolsRequest,ListResourcesRequest, andListResourceTemplatesRequest, and the tool works in conversation. How do I make the tools appear in Cline's MCP server list?Originally asked on GitHub: https://github.com/cline/cline/issues/1272
6 answers
This is an explained Cline + FastMCP stdio issue, not a broken MCP server. FastMCP writes INFO-level log lines to stdout during the MCP initialization handshake, and Cline treats that output as an abnormal connection: the panel shows an error-looking state or an empty tool/resource list, but the tools are still registered and callable in conversation.
The fix that multiple users confirmed is to stop FastMCP from logging to stdout by creating the server with:
mcp = FastMCP("Demo", log_level="ERROR")Also remove
logging.basicConfig(level=logging.INFO)from your server code if you added it, since it causes the same noise on stdout.If you cannot change the server code, one commenter suggested adding the following to the server's args in Cline's MCP configuration:
"args": [ "--directory", "/path/to/your/project", "run", "echo.py", "--log-level", "ERROR", "2>/dev/null" ]That particular config-level workaround was suggested but not confirmed in the thread.
Another reported workaround is to avoid FastMCP and use the low-level MCP Python SDK example server at
mcp_simple_resource; one user said this worked for them.To check whether your server itself is healthy, commenter 10 suggested starting the MCP server manually and sending the JSON-RPC messages
initialize,notifications/initialized, andtools/list. Iftools/listreturns your tool, the server is fine and the visible problem is Cline reacting to FastMCP's stdout logs.Did this work for you?What @zgxkbtl tried on GitHub (Worked)
Created the FastMCP server as
FastMCP("Demo", log_level="ERROR")so no INFO logs are written to stdout; this resolved the problem.Source: https://github.com/cline/cline/issues/1272#issuecomment-2693605829 (opens external site)
Did this work for you?What @Tomislaw tried on GitHub (Worked)
Used the low-level MCP Python SDK example server
mcp_simple_resourceinstead of FastMCP; reported as a working workaround.Source: https://github.com/cline/cline/issues/1272#issuecomment-2613609461 (opens external site)
Did this work for you?What @dbustosp tried on GitHub (Outcome unclear)
When the server code cannot be changed, added
--log-level ERRORand2>/dev/nullto the args in Cline's MCP server configuration to suppress stdout logging; not confirmed in the thread.Source: https://github.com/cline/cline/issues/1272#issuecomment-2786431990 (opens external site)
Did this work for you?What @coucya tried on GitHub (Outcome unclear)
Suggested manually starting the MCP server and sending JSON-RPC
initialize,notifications/initialized, andtools/listmessages to locate the problem; no result was reported.Source: https://github.com/cline/cline/issues/1272#issuecomment-2733746444 (opens external site)
Did this work for you?What a GitHub user tried on GitHub (Didn't work)
Reproduced the issue with the FastMCP Echo server run via
uvin Cline v3.1.5 on macOS M4: tools were callable in conversation, but the MCP Servers list showed no tools or resources.Source: https://github.com/cline/cline/issues/1272 (opens external site)
Did this work for you?