gitextract_oto7xmdg/ ├── .claude/ │ └── commands/ │ └── review-pr.md ├── .git-blame-ignore-revs ├── .gitattribute ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug.yaml │ │ ├── config.yaml │ │ ├── feature-request.yaml │ │ └── question.yaml │ ├── actions/ │ │ └── conformance/ │ │ ├── client.py │ │ └── run-server.sh │ ├── dependabot.yml │ └── workflows/ │ ├── claude-code-review.yml │ ├── claude.yml │ ├── comment-on-release.yml │ ├── conformance.yml │ ├── main.yml │ ├── publish-docs-manually.yml │ ├── publish-pypi.yml │ ├── shared.yml │ └── weekly-lockfile-update.yml ├── .gitignore ├── .pre-commit-config.yaml ├── CLAUDE.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── README.v2.md ├── RELEASE.md ├── SECURITY.md ├── docs/ │ ├── authorization.md │ ├── concepts.md │ ├── experimental/ │ │ ├── index.md │ │ ├── tasks-client.md │ │ ├── tasks-server.md │ │ └── tasks.md │ ├── hooks/ │ │ └── gen_ref_pages.py │ ├── index.md │ ├── installation.md │ ├── low-level-server.md │ ├── migration.md │ └── testing.md ├── examples/ │ ├── README.md │ ├── clients/ │ │ ├── simple-auth-client/ │ │ │ ├── README.md │ │ │ ├── mcp_simple_auth_client/ │ │ │ │ ├── __init__.py │ │ │ │ └── main.py │ │ │ └── pyproject.toml │ │ ├── simple-chatbot/ │ │ │ ├── README.MD │ │ │ ├── mcp_simple_chatbot/ │ │ │ │ ├── main.py │ │ │ │ ├── requirements.txt │ │ │ │ └── servers_config.json │ │ │ └── pyproject.toml │ │ ├── simple-task-client/ │ │ │ ├── README.md │ │ │ ├── mcp_simple_task_client/ │ │ │ │ ├── __init__.py │ │ │ │ ├── __main__.py │ │ │ │ └── main.py │ │ │ └── pyproject.toml │ │ ├── simple-task-interactive-client/ │ │ │ ├── README.md │ │ │ ├── mcp_simple_task_interactive_client/ │ │ │ │ ├── __init__.py │ │ │ │ ├── __main__.py │ │ │ │ └── main.py │ │ │ └── pyproject.toml │ │ └── sse-polling-client/ │ │ ├── README.md │ │ ├── mcp_sse_polling_client/ │ │ │ ├── __init__.py │ │ │ └── main.py │ │ └── pyproject.toml │ ├── mcpserver/ │ │ ├── complex_inputs.py │ │ ├── desktop.py │ │ ├── direct_call_tool_result_return.py │ │ ├── echo.py │ │ ├── icons_demo.py │ │ ├── logging_and_progress.py │ │ ├── memory.py │ │ ├── parameter_descriptions.py │ │ ├── readme-quickstart.py │ │ ├── screenshot.py │ │ ├── simple_echo.py │ │ ├── text_me.py │ │ ├── unicode_example.py │ │ └── weather_structured.py │ ├── servers/ │ │ ├── everything-server/ │ │ │ ├── README.md │ │ │ ├── mcp_everything_server/ │ │ │ │ ├── __init__.py │ │ │ │ ├── __main__.py │ │ │ │ └── server.py │ │ │ └── pyproject.toml │ │ ├── simple-auth/ │ │ │ ├── README.md │ │ │ ├── mcp_simple_auth/ │ │ │ │ ├── __init__.py │ │ │ │ ├── __main__.py │ │ │ │ ├── auth_server.py │ │ │ │ ├── legacy_as_server.py │ │ │ │ ├── py.typed │ │ │ │ ├── server.py │ │ │ │ ├── simple_auth_provider.py │ │ │ │ └── token_verifier.py │ │ │ └── pyproject.toml │ │ ├── simple-pagination/ │ │ │ ├── README.md │ │ │ ├── mcp_simple_pagination/ │ │ │ │ ├── __init__.py │ │ │ │ ├── __main__.py │ │ │ │ └── server.py │ │ │ └── pyproject.toml │ │ ├── simple-prompt/ │ │ │ ├── README.md │ │ │ ├── mcp_simple_prompt/ │ │ │ │ ├── __init__.py │ │ │ │ ├── __main__.py │ │ │ │ └── server.py │ │ │ └── pyproject.toml │ │ ├── simple-resource/ │ │ │ ├── README.md │ │ │ ├── mcp_simple_resource/ │ │ │ │ ├── __init__.py │ │ │ │ ├── __main__.py │ │ │ │ └── server.py │ │ │ └── pyproject.toml │ │ ├── simple-streamablehttp/ │ │ │ ├── README.md │ │ │ ├── mcp_simple_streamablehttp/ │ │ │ │ ├── __init__.py │ │ │ │ ├── __main__.py │ │ │ │ ├── event_store.py │ │ │ │ └── server.py │ │ │ └── pyproject.toml │ │ ├── simple-streamablehttp-stateless/ │ │ │ ├── README.md │ │ │ ├── mcp_simple_streamablehttp_stateless/ │ │ │ │ ├── __init__.py │ │ │ │ ├── __main__.py │ │ │ │ └── server.py │ │ │ └── pyproject.toml │ │ ├── simple-task/ │ │ │ ├── README.md │ │ │ ├── mcp_simple_task/ │ │ │ │ ├── __init__.py │ │ │ │ ├── __main__.py │ │ │ │ └── server.py │ │ │ └── pyproject.toml │ │ ├── simple-task-interactive/ │ │ │ ├── README.md │ │ │ ├── mcp_simple_task_interactive/ │ │ │ │ ├── __init__.py │ │ │ │ ├── __main__.py │ │ │ │ └── server.py │ │ │ └── pyproject.toml │ │ ├── simple-tool/ │ │ │ ├── README.md │ │ │ ├── mcp_simple_tool/ │ │ │ │ ├── __init__.py │ │ │ │ ├── __main__.py │ │ │ │ └── server.py │ │ │ └── pyproject.toml │ │ ├── sse-polling-demo/ │ │ │ ├── README.md │ │ │ ├── mcp_sse_polling_demo/ │ │ │ │ ├── __init__.py │ │ │ │ ├── __main__.py │ │ │ │ ├── event_store.py │ │ │ │ └── server.py │ │ │ └── pyproject.toml │ │ └── structured-output-lowlevel/ │ │ ├── mcp_structured_output_lowlevel/ │ │ │ ├── __init__.py │ │ │ └── __main__.py │ │ └── pyproject.toml │ └── snippets/ │ ├── clients/ │ │ ├── __init__.py │ │ ├── completion_client.py │ │ ├── display_utilities.py │ │ ├── oauth_client.py │ │ ├── pagination_client.py │ │ ├── parsing_tool_results.py │ │ ├── stdio_client.py │ │ ├── streamable_basic.py │ │ └── url_elicitation_client.py │ ├── pyproject.toml │ └── servers/ │ ├── __init__.py │ ├── basic_prompt.py │ ├── basic_resource.py │ ├── basic_tool.py │ ├── completion.py │ ├── direct_call_tool_result.py │ ├── direct_execution.py │ ├── elicitation.py │ ├── images.py │ ├── lifespan_example.py │ ├── lowlevel/ │ │ ├── __init__.py │ │ ├── basic.py │ │ ├── direct_call_tool_result.py │ │ ├── lifespan.py │ │ └── structured_output.py │ ├── mcpserver_quickstart.py │ ├── notifications.py │ ├── oauth_server.py │ ├── pagination_example.py │ ├── sampling.py │ ├── streamable_config.py │ ├── streamable_http_basic_mounting.py │ ├── streamable_http_host_mounting.py │ ├── streamable_http_multiple_servers.py │ ├── streamable_http_path_config.py │ ├── streamable_starlette_mount.py │ ├── structured_output.py │ └── tool_progress.py ├── mkdocs.yml ├── pyproject.toml ├── scripts/ │ ├── test │ └── update_readme_snippets.py ├── src/ │ └── mcp/ │ ├── __init__.py │ ├── cli/ │ │ ├── __init__.py │ │ ├── claude.py │ │ └── cli.py │ ├── client/ │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── _memory.py │ │ ├── _transport.py │ │ ├── auth/ │ │ │ ├── __init__.py │ │ │ ├── exceptions.py │ │ │ ├── extensions/ │ │ │ │ ├── __init__.py │ │ │ │ └── client_credentials.py │ │ │ ├── oauth2.py │ │ │ └── utils.py │ │ ├── client.py │ │ ├── context.py │ │ ├── experimental/ │ │ │ ├── __init__.py │ │ │ ├── task_handlers.py │ │ │ └── tasks.py │ │ ├── session.py │ │ ├── session_group.py │ │ ├── sse.py │ │ ├── stdio.py │ │ ├── streamable_http.py │ │ └── websocket.py │ ├── os/ │ │ ├── __init__.py │ │ ├── posix/ │ │ │ ├── __init__.py │ │ │ └── utilities.py │ │ └── win32/ │ │ ├── __init__.py │ │ └── utilities.py │ ├── py.typed │ ├── server/ │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── auth/ │ │ │ ├── __init__.py │ │ │ ├── errors.py │ │ │ ├── handlers/ │ │ │ │ ├── __init__.py │ │ │ │ ├── authorize.py │ │ │ │ ├── metadata.py │ │ │ │ ├── register.py │ │ │ │ ├── revoke.py │ │ │ │ └── token.py │ │ │ ├── json_response.py │ │ │ ├── middleware/ │ │ │ │ ├── __init__.py │ │ │ │ ├── auth_context.py │ │ │ │ ├── bearer_auth.py │ │ │ │ └── client_auth.py │ │ │ ├── provider.py │ │ │ ├── routes.py │ │ │ └── settings.py │ │ ├── context.py │ │ ├── elicitation.py │ │ ├── experimental/ │ │ │ ├── __init__.py │ │ │ ├── request_context.py │ │ │ ├── session_features.py │ │ │ ├── task_context.py │ │ │ ├── task_result_handler.py │ │ │ └── task_support.py │ │ ├── lowlevel/ │ │ │ ├── __init__.py │ │ │ ├── experimental.py │ │ │ ├── helper_types.py │ │ │ └── server.py │ │ ├── mcpserver/ │ │ │ ├── __init__.py │ │ │ ├── context.py │ │ │ ├── exceptions.py │ │ │ ├── prompts/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base.py │ │ │ │ └── manager.py │ │ │ ├── resources/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base.py │ │ │ │ ├── resource_manager.py │ │ │ │ ├── templates.py │ │ │ │ └── types.py │ │ │ ├── server.py │ │ │ ├── tools/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base.py │ │ │ │ └── tool_manager.py │ │ │ └── utilities/ │ │ │ ├── __init__.py │ │ │ ├── context_injection.py │ │ │ ├── func_metadata.py │ │ │ ├── logging.py │ │ │ └── types.py │ │ ├── models.py │ │ ├── session.py │ │ ├── sse.py │ │ ├── stdio.py │ │ ├── streamable_http.py │ │ ├── streamable_http_manager.py │ │ ├── transport_security.py │ │ ├── validation.py │ │ └── websocket.py │ ├── shared/ │ │ ├── __init__.py │ │ ├── _context.py │ │ ├── _httpx_utils.py │ │ ├── auth.py │ │ ├── auth_utils.py │ │ ├── exceptions.py │ │ ├── experimental/ │ │ │ ├── __init__.py │ │ │ └── tasks/ │ │ │ ├── __init__.py │ │ │ ├── capabilities.py │ │ │ ├── context.py │ │ │ ├── helpers.py │ │ │ ├── in_memory_task_store.py │ │ │ ├── message_queue.py │ │ │ ├── polling.py │ │ │ ├── resolver.py │ │ │ └── store.py │ │ ├── memory.py │ │ ├── message.py │ │ ├── metadata_utils.py │ │ ├── response_router.py │ │ ├── session.py │ │ ├── tool_name_validation.py │ │ └── version.py │ └── types/ │ ├── __init__.py │ ├── _types.py │ └── jsonrpc.py └── tests/ ├── __init__.py ├── cli/ │ ├── __init__.py │ ├── test_claude.py │ └── test_utils.py ├── client/ │ ├── __init__.py │ ├── auth/ │ │ └── extensions/ │ │ └── test_client_credentials.py │ ├── conftest.py │ ├── test_auth.py │ ├── test_client.py │ ├── test_http_unicode.py │ ├── test_list_methods_cursor.py │ ├── test_list_roots_callback.py │ ├── test_logging_callback.py │ ├── test_notification_response.py │ ├── test_output_schema_validation.py │ ├── test_resource_cleanup.py │ ├── test_sampling_callback.py │ ├── test_scope_bug_1630.py │ ├── test_session.py │ ├── test_session_group.py │ ├── test_stdio.py │ ├── test_transport_stream_cleanup.py │ └── transports/ │ ├── __init__.py │ └── test_memory.py ├── conftest.py ├── experimental/ │ ├── __init__.py │ └── tasks/ │ ├── __init__.py │ ├── client/ │ │ ├── __init__.py │ │ ├── test_capabilities.py │ │ ├── test_handlers.py │ │ ├── test_poll_task.py │ │ └── test_tasks.py │ ├── server/ │ │ ├── __init__.py │ │ ├── test_context.py │ │ ├── test_integration.py │ │ ├── test_run_task_flow.py │ │ ├── test_server.py │ │ ├── test_server_task_context.py │ │ ├── test_store.py │ │ └── test_task_result_handler.py │ ├── test_capabilities.py │ ├── test_elicitation_scenarios.py │ ├── test_message_queue.py │ ├── test_request_context.py │ └── test_spec_compliance.py ├── issues/ │ ├── test_100_tool_listing.py │ ├── test_1027_win_unreachable_cleanup.py │ ├── test_129_resource_templates.py │ ├── test_1338_icons_and_metadata.py │ ├── test_1363_race_condition_streamable_http.py │ ├── test_141_resource_templates.py │ ├── test_152_resource_mime_type.py │ ├── test_1574_resource_uri_validation.py │ ├── test_1754_mime_type_parameters.py │ ├── test_176_progress_token.py │ ├── test_188_concurrency.py │ ├── test_192_request_id.py │ ├── test_342_base64_encoding.py │ ├── test_355_type_error.py │ ├── test_552_windows_hang.py │ ├── test_88_random_error.py │ ├── test_973_url_decoding.py │ └── test_malformed_input.py ├── server/ │ ├── __init__.py │ ├── auth/ │ │ ├── __init__.py │ │ ├── middleware/ │ │ │ ├── __init__.py │ │ │ ├── test_auth_context.py │ │ │ └── test_bearer_auth.py │ │ ├── test_error_handling.py │ │ ├── test_protected_resource.py │ │ ├── test_provider.py │ │ └── test_routes.py │ ├── lowlevel/ │ │ ├── __init__.py │ │ ├── test_helper_types.py │ │ ├── test_server_listing.py │ │ └── test_server_pagination.py │ ├── mcpserver/ │ │ ├── __init__.py │ │ ├── auth/ │ │ │ ├── __init__.py │ │ │ └── test_auth_integration.py │ │ ├── prompts/ │ │ │ ├── __init__.py │ │ │ ├── test_base.py │ │ │ └── test_manager.py │ │ ├── resources/ │ │ │ ├── __init__.py │ │ │ ├── test_file_resources.py │ │ │ ├── test_function_resources.py │ │ │ ├── test_resource_manager.py │ │ │ ├── test_resource_template.py │ │ │ └── test_resources.py │ │ ├── servers/ │ │ │ ├── __init__.py │ │ │ └── test_file_server.py │ │ ├── test_elicitation.py │ │ ├── test_func_metadata.py │ │ ├── test_integration.py │ │ ├── test_parameter_descriptions.py │ │ ├── test_server.py │ │ ├── test_title.py │ │ ├── test_tool_manager.py │ │ ├── test_url_elicitation.py │ │ ├── test_url_elicitation_error_throw.py │ │ └── tools/ │ │ ├── __init__.py │ │ └── test_base.py │ ├── test_cancel_handling.py │ ├── test_completion_with_context.py │ ├── test_lifespan.py │ ├── test_lowlevel_exception_handling.py │ ├── test_lowlevel_tool_annotations.py │ ├── test_read_resource.py │ ├── test_session.py │ ├── test_session_race_condition.py │ ├── test_sse_security.py │ ├── test_stateless_mode.py │ ├── test_stdio.py │ ├── test_streamable_http_manager.py │ ├── test_streamable_http_security.py │ └── test_validation.py ├── shared/ │ ├── __init__.py │ ├── test_auth.py │ ├── test_auth_utils.py │ ├── test_exceptions.py │ ├── test_httpx_utils.py │ ├── test_progress_notifications.py │ ├── test_session.py │ ├── test_sse.py │ ├── test_streamable_http.py │ ├── test_tool_name_validation.py │ ├── test_win32_utils.py │ └── test_ws.py ├── test_examples.py ├── test_helpers.py └── test_types.py