Type annotation gaps and unhandled FileNotFoundError in src/mcp/cli/cli.py
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
- #3687 par @Sak3th2004 — fermée sans fusion
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 84/100
Piste de recherche
Lis src/mcp/cli/cli.py, en te concentrant sur _get_npx_command, _import_server et _check_server_object. Vérifie comment la vérification de npx sous Windows gère l’absence de l’exécutable, puis exécute les tests CLI pertinents ainsi que les vérifications Ruff et Pyright indiquées. Le travail est terminé lorsque l’exception est gérée et que les annotations demandées passent ces vérifications.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Environment / Context
While running static analysis (ruff check --select ANN and pyright) on src/mcp/cli/cli.py during local development, I noticed a few missing type annotations and an uncaught exception edge case on Windows.
Description
-
Unhandled
FileNotFoundErrorin_get_npx_command:
Insrc/mcp/cli/cli.py,_get_npx_command()attempts to probe fornpxexecutables on Windows inside atry...except subprocess.CalledProcessError:block. Ifnpx.cmdornpx.exeis missing from the system entirely,subprocess.runraisesFileNotFoundErrorbeforeCalledProcessErrorcan be raised, causing an unexpected crash instead of returningNone. -
Missing Return Type Annotations (
ANN202):_get_npx_command()lacks a return type annotation (returnsstr | None)._import_server()lacks a return type annotation._check_server_object()lacks a return type annotation (-> bool).
-
AnyType Usage (ANN401):_check_server_object()usesserver_object: Any, which can be tightened toobjectsince it performs runtimeisinstancechecks.
Proposed Fix
- Update
_get_npx_command()to catch(subprocess.CalledProcessError, FileNotFoundError)and returnstr | None. - Add explicit return type annotations to
_import_serverand_check_server_object. - Replace
server_object: Anywithserver_object: object.
I would be happy to submit a PR for this if a maintainer is willing to assign the issue to me!
I know that the contributing guidelines for this project forbid direct PRs about formatting and such without assigning, so just putting this out there.
(Note: Disclosing per guidelines that AI tools were used to assist in local testing and analysis; I am ready to own, test, and answer questions on the proposed changes).
- Langage dominant
- Python
- Étoiles
- 24.5k
- Forks
- 4k
- Merge moyen
- 18 h 19 min
- PR mergées (30 j)
- 36
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de modelcontextprotocol/python-sdk
-
bug v2
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
modelcontextprotocol/python-sdk#3685 ·
Les mainteneurs répondent en général sous 1 jour
-
Streamable HTTP server rejects a mixed-case Content-Type with 415Peut-être pris @CRYPTONIKAV l’a pris il y a 2 jours. Ouvertebug v1 v2
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
modelcontextprotocol/python-sdk#3670 · 4 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Bug in the MCP Apps documentation.Peut-être pris @Kludex l’a pris il y a 1 jour. Ouvertedocumentation v2
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
modelcontextprotocol/python-sdk#3662 ·
Les mainteneurs répondent en général sous 1 jour
-
Audio(data=b"") raises "Either path or data can be provided", while Image(data=b"") worksPeut-être pris @ajay206 l’a pris il y a 1 jour. Ouvertebug v1 v2
Difficulté 1/5 Moins d'une heure Accessibilité débutants 85/100
modelcontextprotocol/python-sdk#3656 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
modelcontextprotocol/python-sdk#3655 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de modelcontextprotocol/python-sdk
Issues similaires
-
area: agents area: docs good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
openapi/gknowledge#23 ·
-
get() for StrEnumPeut-être pris @FeJo5952 l’a pris aujourd’hui. Ouvertegood first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
collective/icalendar#1921 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Improvement Python Spans
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
getsentry/sentry-python#7994 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
alphagov/notifications-api#5004 ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
equinor/radix-flux#3922 ·
Les mainteneurs répondent en général sous 1 jour