请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

streamable MCP Server状态刷新失败

MCP Server状态刷新失败,提示如下:

E:\mcp_study\mcp-chatbot\.venv\Scripts\python.exe E:\mcp_study\mcp-chatbot\main.py 
INFO:     Started server process [17592]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
INFO:     127.0.0.1:5587 - "OPTIONS /api/mcp_server HTTP/1.1" 200 OK
INFO:     127.0.0.1:5587 - "GET /api/mcp_server HTTP/1.1" 200 OK
INFO:     127.0.0.1:5587 - "OPTIONS /api/mcp_server/1/refresh HTTP/1.1" 200 OK
ERROR:    Exception in ASGI application
Traceback (most recent call last):
  File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\anyio\streams\memory.py", line 111, in receive
    return self.receive_nowait()
           ^^^^^^^^^^^^^^^^^^^^^
  File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\anyio\streams\memory.py", line 106, in receive_nowait
    raise WouldBlock
anyio.WouldBlock

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "E:\mcp_study\mcp-chatbot\app\mcp_client.py", line 34, in connect_to_server
    await self.session.initialize()
  File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\mcp\client\session.py", line 151, in initialize
    result = await self.send_request(
             ^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\mcp\shared\session.py", line 272, in send_request
    response_or_error = await response_stream_reader.receive()
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\anyio\streams\memory.py", line 119, in receive
    await receive_event.wait()
  File "C:\Users\Clip\AppData\Local\Programs\Python\Python311\Lib\asyncio\locks.py", line 213, in wait
    await fut
asyncio.exceptions.CancelledError: Cancelled by cancel scope 1bfe83e6f10

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\uvicorn\protocols\http\h11_impl.py", line 403, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\uvicorn\middleware\proxy_headers.py", line 60, in __call__
    return await self.app(scope, receive, send)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\fastapi\applications.py", line 1054, in __call__
    await super().__call__(scope, receive, send)
  File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\starlette\applications.py", line 113, in __call__
    await self.middleware_stack(scope, receive, send)
  File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\starlette\middleware\errors.py", line 164, in __call__
    await self.app(scope, receive, _send)
  File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\starlette\middleware\cors.py", line 93, in __call__
    await self.simple_response(scope, receive, send, request_headers=headers)
  File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\starlette\middleware\cors.py", line 144, in simple_response
    await self.app(scope, receive, send)
  File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\starlette\middleware\exceptions.py", line 63, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\starlette\_exception_handler.py", line 42, in wrapped_app
    await app(scope, receive, sender)
  File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\starlette\routing.py", line 716, in __call__
    await self.middleware_stack(scope, receive, send)
  File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\starlette\routing.py", line 736, in app
    await route.handle(scope, receive, send)
  File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\starlette\routing.py", line 290, in handle
    await self.app(scope, receive, send)
  File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\starlette\routing.py", line 78, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\starlette\_exception_handler.py", line 42, in wrapped_app
    await app(scope, receive, sender)
  File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\starlette\routing.py", line 75, in app
    response = await f(request)
               ^^^^^^^^^^^^^^^^
  File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\fastapi\routing.py", line 302, in app
    raw_response = await run_endpoint_function(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\fastapi\routing.py", line 213, in run_endpoint_function
    return await dependant.call(**values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\mcp_study\mcp-chatbot\main.py", line 123, in refresh_mcp_server_status
    is_online = await connect_and_cache_client(mcp_server)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\mcp_study\mcp-chatbot\main.py", line 38, in connect_and_cache_client
    await client.connect_to_server()
  File "E:\mcp_study\mcp-chatbot\app\mcp_client.py", line 50, in connect_to_server
    await self.cleanup()
  File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\anyio\_backends\_asyncio.py", line 776, in __aexit__
    raise exc_val
  File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\anyio\_backends\_asyncio.py", line 744, in __aexit__
    await self._on_completed_fut
asyncio.exceptions.CancelledError: Cancelled by cancel scope 1bfe83e7f50
Exception in callback _ProactorBasePipeTransport._call_connection_lost(None)
handle: <Handle _ProactorBasePipeTransport._call_connection_lost(None)>
Traceback (most recent call last):
  File "C:\Users\Clip\AppData\Local\Programs\Python\Python311\Lib\asyncio\events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
  File "C:\Users\Clip\AppData\Local\Programs\Python\Python311\Lib\asyncio\proactor_events.py", line 165, in _call_connection_lost
    self._sock.shutdown(socket.SHUT_RDWR)
ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。
INFO:     127.0.0.1:5587 - "PUT /api/mcp_server/1/refresh HTTP/1.1" 500 Internal Server Error
Task exception was never retrieved
future: <Task finished name='Task-15' coro=<<async_generator_athrow without __name__>()> exception=RuntimeError('Attempted to exit cancel scope in a different task than it was entered in')>
  + Exception Group Traceback (most recent call last):
  |   File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\anyio\_backends\_asyncio.py", line 772, in __aexit__
  |     raise BaseExceptionGroup(
  | BaseExceptionGroup: unhandled errors in a TaskGroup (2 sub-exceptions)
  +-+---------------- 1 ----------------
    | Traceback (most recent call last):
    |   File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\mcp\client\streamable_http.py", line 409, in handle_request_async
    |     await self._handle_post_request(ctx)
    |   File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\mcp\client\streamable_http.py", line 278, in _handle_post_request
    |     response.raise_for_status()
    |   File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\httpx\_models.py", line 829, in raise_for_status
    |     raise HTTPStatusError(message, request=request, response=self)
    | httpx.HTTPStatusError: Server error '503 Service Unavailable' for url 'http://localhost:8001/mcp?key=9c7028084b061e2e3ec42f85fda10378'
    | For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/503
    +---------------- 2 ----------------
    | Traceback (most recent call last):
    |   File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\mcp\client\streamable_http.py", line 502, in streamablehttp_client
    |     yield (
    | GeneratorExit
    +------------------------------------

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\mcp\client\streamable_http.py", line 478, in streamablehttp_client
    async with anyio.create_task_group() as tg:
  File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\anyio\_backends\_asyncio.py", line 778, in __aexit__
    if self.cancel_scope.__exit__(type(exc), exc, exc.__traceback__):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\mcp_study\mcp-chatbot\.venv\Lib\site-packages\anyio\_backends\_asyncio.py", line 457, in __exit__
    raise RuntimeError(
RuntimeError: Attempted to exit cancel scope in a different task than it was entered in

AI初步分析是weather mcp服务不可用:

https://img1.sycdn.imooc.com/szimg/07830b6809cba63d14590618.jpg

https://img1.sycdn.imooc.com/szimg/0bca0f6809cba7df08470953.jpg

https://img1.sycdn.imooc.com/szimg/f6a2f96809cba87216750902.jpg

但weather mcp这边看输出,是没有收到请求:

https://img1.sycdn.imooc.com/szimg/3fa89e6809cba72913940548.jpg

但cherry studio确实是可以使用该服务的

https://img1.sycdn.imooc.com/szimg/08b40c6809cba64e12180867.jpg

https://img1.sycdn.imooc.com/szimg/ff48fc6809cba77214350964.jpg

https://img1.sycdn.imooc.com/szimg/43406c6809cba78115641114.jpg

这样对比分析,是不是有可能是client这块没有发出请求

正在回答 回答被采纳积分+3

1回答

暮闲 2025-09-18 20:44:45

weather mcpserver是stdio的方式启动的吗

0 回复 有任何疑惑可以回复我~
  • 提问者 曲别针010 #1
    是streamable方式启动的,老师可以看看上面cherry studio的连接方式,确实是可以连接上的
    回复 有任何疑惑可以回复我~ 2025-09-19 09:11:04
  • 暮闲 回复 提问者 曲别针010 #2
    好的 我给你远程看看
    回复 有任何疑惑可以回复我~ 2025-09-19 19:18:56
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号