Estou tentando executar um exemplo do repositório oficial do Model Context Protocol para Python ( https://github.com/modelcontextprotocol/python-sdk ). Mas ele continua me dando Error in /message route: Error: SSE connection not established"
erro quando clico no botão "Conectar" na página do Inspetor MCP. O problema é que nem estou tentando usar a conexão SSE, então estou realmente confuso com o erro e os logs.
Aqui está o código (localizado na pasta src/) :
# server.py
from mcp.server.fastmcp import FastMCP
# Create an MCP server
mcp = FastMCP("Demo")
# Add an addition tool
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers"""
return a + b
# Add a dynamic greeting resource
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
"""Get a personalized greeting"""
return f"Hello, {name}!"
Foi assim que preparei o projeto : inicializei uv
o ambiente virtual na pasta raiz. Instalei as dependências do projeto com uv add "mcp[cli]"
, como indicado no guia do repositório. Informações sobre as versões do programa:
- Node.js v22.14.0
- [email protected]
- C:\Usuários...\AppData\Roaming\npm ├── @modelcontextprotocol/ [email protected] ├── @modelcontextprotocol/ [email protected] ├── @modelcontextprotocol/ [email protected] └── @modelcontextprotocol/ [email protected]
Minhas ações para executar o servidor são :
mcp dev src/server.py
no Powershell enquanto estiver no diretório raiz do projeto.- Então eu vejo
⚙️ Proxy server listening on port 6277
🔍 MCP Inspector is up and running at http://127.0.0.1:6274 🚀
No console, acesse a página http://127.0.0.1:6274 . 3. Na página, o método de transporte STDIO já está definido. Há também um comando uv
com argumentos run --with mcp mcp run src/server.py
(veja a captura de tela em anexo), então clico no botão "Conectar". Nada acontece na interface, mas nos logs do console, vejo
New SSE connection
Query parameters: [Object: null prototype] {
transportType: 'stdio',
command: 'uv',
args: 'run --with mcp mcp run src/server.py',
env: '{ ... # all my env variables, PATH and etc.}'
}
Stdio transport: command=C:\Users\...\.local\bin\uv.exe, args=run,--with,mcp,mcp,run,src/server.py
Spawned stdio transport
Connected MCP client to backing server transport
Created web app transport
Created web app transport
Set up MCP proxy
- Clico no botão "Conectar" novamente (veja a captura de tela anexada) e vejo a mensagem "Erro de conexão, seu servidor MCP está em execução?" na interface do usuário e o seguinte nos logs:
New SSE connection
Query parameters: [Object: null prototype] {
transportType: 'stdio',
command: 'uv',
args: 'run --with mcp mcp run src/server.py',
env: '{...}'
}
Stdio transport: command=C:\Users\...\.local\bin\uv.exe, args=run,--with,mcp,mcp,run,src/server.py
Spawned stdio transport
Connected MCP client to backing server transport
Created web app transport
Created web app transport
Set up MCP proxy
Received message for sessionId 5ed68d2c-6c0f-47e7-9972-3fe99c43a630
Error in /message route: Error: SSE connection not established
at SSEServerTransport.handlePostMessage (file:///C:/Users/.../AppData/Roaming/npm/node_modules/@modelcontextprotocol/inspector/node_modules/@modelcontextprotocol/sdk/dist/esm/server/sse.js:61:19)
at file:///C:/Users/.../AppData/Roaming/npm/node_modules/@modelcontextprotocol/inspector/server/build/index.js:130:25
at Layer.handleRequest (C:\Users\...\AppData\Roaming\npm\node_modules\@modelcontextprotocol\inspector\node_modules\router\lib\layer.js:152:17)
at next (C:\Users\...\AppData\Roaming\npm\node_modules\@modelcontextprotocol\inspector\node_modules\router\lib\route.js:157:13)
at Route.dispatch (C:\Users\...\AppData\Roaming\npm\node_modules\@modelcontextprotocol\inspector\node_modules\router\lib\route.js:117:3)
at handle (C:\Users\...\AppData\Roaming\npm\node_modules\@modelcontextprotocol\inspector\node_modules\router\index.js:435:11)
at Layer.handleRequest (C:\Users\...\AppData\Roaming\npm\node_modules\@modelcontextprotocol\inspector\node_modules\router\lib\layer.js:152:17)
at C:\Users\...\AppData\Roaming\npm\node_modules\@modelcontextprotocol\inspector\node_modules\router\index.js:295:15
at processParams (C:\Users\...\AppData\Roaming\npm\node_modules\@modelcontextprotocol\inspector\node_modules\router\index.js:582:12)
at next (C:\Users\...\AppData\Roaming\npm\node_modules\@modelcontextprotocol\inspector\node_modules\router\index.js:291:5)
Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
at ServerResponse.setHeader (node:_http_outgoing:699:11)
at ServerResponse.header (C:\Users\...\AppData\Roaming\npm\node_modules\@modelcontextprotocol\inspector\node_modules\express\lib\response.js:684:10)
at ServerResponse.json (C:\Users\...\AppData\Roaming\npm\node_modules\@modelcontextprotocol\inspector\node_modules\express\lib\response.js:247:10)
at file:///C:/Users/.../AppData/Roaming/npm/node_modules/@modelcontextprotocol/inspector/server/build/index.js:134:25
at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
PS Eu tentei adicionar
if __name__ == "__main__":
mcp.run(transport='stdio')
No final do server.py, como alguns exemplos propõem, mas não afetou nada.
Qualquer ajuda é bem-vinda! Obrigado!
Captura de tela da página da interface do usuário do MCP Inspector