modelcontextprotocol / modelcontextprotocol/python-sdk
Improve exception tracebacks for easier debugging
Aberta
Ninguém assumiu esta issue ainda.
enhancement
P2
v2
- Linguagem predominante
- Python
- Estrelas
- 24.3k
- Forks
- 4k
- Merge médio
- 1d 1h
- PRs com merge (30d)
- 31
Descrição
Summary
Make exception tracebacks clearer and easier to understand by reducing asyncio/anyio wrapper noise.
Problem
- Exceptions are often wrapped in multiple layers of asyncio/anyio task group machinery
- Tracebacks are hard to read and don't clearly point to the root cause
- The
raise_exceptionflag is not consistently respected - Errors from deep inside task groups obscure the actual failure point
Goal
- Cleaner tracebacks that point to user code, not SDK internals
- Raise exceptions from the main context where possible
- Reduce nesting of exception wrappers
Related
- #743 - RuntimeError but the actual root cause is not logged correctly
- #396 - MCP Server: Inconsistent Exception Handling in @app.call_tool
- #1401 - ClientSession Error Handling
- #1742 - Introduce typed error classes with metadata
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Direção de pesquisa
Nenhum arquivo ou teste é identificado na issue. Comece rastreando os caminhos dos grupos de tarefas de asyncio/anyio e todo uso do sinalizador raise_exception; depois, revise as issues vinculadas sobre tratamento de exceções. O trabalho estará concluído quando os tracebacks expuserem a falha no nível do usuário, o aninhamento de wrappers for reduzido e raise_exception for respeitado de forma consistente.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- python
- Domínio
- backend-api-design
- Tipo de issue
- Funcionalidade
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Status de atividade
- Ativa
- Clareza
- Precisa de esclarecimento
- Facilidade para iniciantes
- 35/100