Title: Prevent stdio connection hang for missing server path. by TimChild · Pull Request #401 · modelcontextprotocol/python-sdk · GitHub
Open Graph Title: Prevent stdio connection hang for missing server path. by TimChild · Pull Request #401 · modelcontextprotocol/python-sdk
X Title: Prevent stdio connection hang for missing server path. by TimChild · Pull Request #401 · modelcontextprotocol/python-sdk
Description: Ensure that read/write streams are always closed (even if it is the process that ends first) Check whether the stdio process ended prematurely Raise an error if that was the case Motivation and Context The stdio connection was hanging indefinitely for a bad server file path (e.g. command uv, args run non-existing-file.py). I think because the read/write streams were not being closed properly in that case. This makes it so that errors due to the underlying mcp server stopping early raises a ProcessTerminatedEarlyError. How Has This Been Tested? Added a test (including catching if it does hang for more than 1s) Breaking Changes Should not be a breaking change. Types of changes [ x ] Bug fix (non-breaking change which fixes an issue) New feature (non-breaking change which adds functionality) Breaking change (fix or feature that would cause existing functionality to change) Documentation update Checklist [ x ] I have read the MCP Documentation [ x ] My code follows the repository's style guidelines [ x ] New and existing tests pass locally [ x ] I have added appropriate error handling [ x ] I have added or updated documentation as needed -- Did not update docs (but error is self-explanatory) Additional context
Open Graph Description: Ensure that read/write streams are always closed (even if it is the process that ends first) Check whether the stdio process ended prematurely Raise an error if that was the case Motivation and Co...
X Description: Ensure that read/write streams are always closed (even if it is the process that ends first) Check whether the stdio process ended prematurely Raise an error if that was the case Motivation and Co...
Opengraph URL: https://github.com/modelcontextprotocol/python-sdk/pull/401
X: @github
Domain: github.com
| route-pattern | /:user_id/:repository/pull/:id/files(.:format) |
| route-controller | pull_requests |
| route-action | files |
| fetch-nonce | v2:88c6e2e0-4b9b-49af-3233-6ebf37b65245 |
| current-catalog-service-hash | ae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b |
| request-id | A9EE:3424AE:E86E25:135C1FF:6A5B64B1 |
| html-safe-nonce | ddb6734077b40fce4c4caf99491a6b89e825da73815bd70f27195107e3757d7b |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBOUVFOjM0MjRBRTpFODZFMjU6MTM1QzFGRjo2QTVCNjRCMSIsInZpc2l0b3JfaWQiOiI0NDY4ODQ4NjkyMjgwNjQ4ODgxIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | 9f932cdb44390ec0a95700fda71dc7db3f88fa5b95b18a5c9b6a0cb7c0337689 |
| hovercard-subject-tag | pull_request:2429952503 |
| github-keyboard-shortcuts | repository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/modelcontextprotocol/python-sdk/pull/401/files |
| twitter:image | https://avatars.githubusercontent.com/u/48571510?s=400&v=4 |
| twitter:card | summary_large_image |
| og:image | https://avatars.githubusercontent.com/u/48571510?s=400&v=4 |
| og:image:alt | Ensure that read/write streams are always closed (even if it is the process that ends first) Check whether the stdio process ended prematurely Raise an error if that was the case Motivation and Co... |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | 5290d7e14309ad1e76106a9c4237bd1041517e83ea182c8ab756752cb0c6940b |
| turbo-cache-control | no-preview |
| diff-view | unified |
| go-import | github.com/modelcontextprotocol/python-sdk git https://github.com/modelcontextprotocol/python-sdk.git |
| octolytics-dimension-user_id | 182288589 |
| octolytics-dimension-user_login | modelcontextprotocol |
| octolytics-dimension-repository_id | 862584018 |
| octolytics-dimension-repository_nwo | modelcontextprotocol/python-sdk |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 862584018 |
| octolytics-dimension-repository_network_root_nwo | modelcontextprotocol/python-sdk |
| turbo-body-classes | logged-out env-production page-responsive full-width |
| disable-turbo | true |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 9c975978430e9ad293956f2bbdaf153b1bd84a99 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width