🚀 The fast, Pythonic way to build MCP servers and clients.
6620 matches across 20 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | fastmcp_slim/fastmcp/mcp_config.py | 54 | def infer_transport_type_from_url( |
| LOW | fastmcp_slim/fastmcp/mcp_config.py | 74 | def _coerce_tool_transform_configs(tools: dict[str, Any]) -> dict[str, Any]: |
| LOW | fastmcp_slim/fastmcp/mcp_config.py | 103 | def _require_at_least_one_transform_field( |
| LOW | fastmcp_slim/fastmcp/mcp_config.py | 122 | def _to_server_and_underlying_transport( |
| LOW | …tmcp_slim/fastmcp/experimental/transforms/code_mode.py | 566 | def _build_execute_description(self) -> str: |
| LOW | fastmcp_slim/fastmcp/tools/tool_transform.py | 616 | def _create_forwarding_transform( |
| LOW | fastmcp_slim/fastmcp/tools/tool_transform.py | 832 | def _merge_schema_with_precedence( |
| LOW | fastmcp_slim/fastmcp/tools/tool_transform.py | 1006 | def apply_transformations_to_tools( |
| LOW | fastmcp_slim/fastmcp/tools/base.py | 495 | def _convert_to_single_content_block( |
| LOW | fastmcp_slim/fastmcp/resources/types.py | 91 | def set_binary_from_mime_type(cls, is_binary: bool, info: ValidationInfo) -> bool: |
| LOW | fastmcp_slim/fastmcp/server/server.py | 600 | def remove_tool_transformation(self, _tool_name: str) -> None: |
| LOW | fastmcp_slim/fastmcp/server/telemetry.py | 31 | def get_session_span_attributes() -> dict[str, str]: |
| LOW | fastmcp_slim/fastmcp/server/telemetry.py | 45 | def _get_parent_trace_context() -> Context | None: |
| LOW | fastmcp_slim/fastmcp/server/low_level.py | 55 | def client_supports_extension(self, extension_id: str) -> bool: |
| LOW | fastmcp_slim/fastmcp/server/low_level.py | 176 | def create_initialization_options( |
| LOW | fastmcp_slim/fastmcp/server/context.py | 587 | def client_supports_extension(self, extension_id: str) -> bool: |
| LOW | fastmcp_slim/fastmcp/server/context.py | 1425 | async def _log_to_server_and_client( |
| LOW | fastmcp_slim/fastmcp/server/http.py | 269 | def create_streamable_http_app( |
| LOW | fastmcp_slim/fastmcp/server/elicitation.py | 132 | def parse_elicit_response_type( |
| LOW | fastmcp_slim/fastmcp/server/elicitation.py | 387 | def validate_elicitation_json_schema(schema: dict[str, Any]) -> None: |
| LOW | fastmcp_slim/fastmcp/server/dependencies.py | 180 | def transform_context_annotations(fn: Callable[..., Any]) -> Callable[..., Any]: |
| LOW | fastmcp_slim/fastmcp/server/dependencies.py | 539 | def without_injected_parameters( |
| LOW | fastmcp_slim/fastmcp/server/dependencies.py | 631 | async def _resolve_fastmcp_dependencies( |
| LOW | fastmcp_slim/fastmcp/server/middleware/dereference.py | 33 | async def on_list_resource_templates( |
| LOW | fastmcp_slim/fastmcp/server/middleware/dereference.py | 58 | def _dereference_resource_template(template: ResourceTemplate) -> ResourceTemplate: |
| LOW | fastmcp_slim/fastmcp/server/middleware/authorization.py | 234 | async def on_list_resource_templates( |
| LOW | fastmcp_slim/fastmcp/server/middleware/timing.py | 146 | async def on_list_resource_templates( |
| LOW | fastmcp_slim/fastmcp/server/middleware/caching.py | 513 | def _matches_tool_cache_settings(self, tool_name: str) -> bool: |
| LOW | fastmcp_slim/fastmcp/server/middleware/caching.py | 572 | def _make_call_tool_cache_key( |
| LOW | fastmcp_slim/fastmcp/server/middleware/caching.py | 580 | def _make_read_resource_cache_key( |
| LOW | fastmcp_slim/fastmcp/server/middleware/caching.py | 588 | def _make_get_prompt_cache_key( |
| LOW | fastmcp_slim/fastmcp/server/middleware/middleware.py | 191 | async def on_list_resource_templates( |
| LOW | fastmcp_slim/fastmcp/server/tasks/subscriptions.py | 31 | async def subscribe_to_task_updates( |
| LOW | fastmcp_slim/fastmcp/server/tasks/subscriptions.py | 93 | async def _send_status_notification( |
| LOW | fastmcp_slim/fastmcp/server/tasks/subscriptions.py | 163 | async def _send_progress_notification( |
| LOW | fastmcp_slim/fastmcp/server/tasks/keys.py | 137 | def get_client_task_id_from_key(task_key: str) -> str: |
| LOW | fastmcp_slim/fastmcp/server/tasks/notifications.py | 76 | async def notification_subscriber_loop( |
| LOW | fastmcp_slim/fastmcp/server/tasks/notifications.py | 246 | async def ensure_subscriber_running( |
| LOW | fastmcp_slim/fastmcp/server/mixins/mcp_operations.py | 143 | async def _list_resource_templates_mcp( |
| LOW | fastmcp_slim/fastmcp/server/mixins/transport.py | 151 | def _get_additional_http_routes(self: FastMCP) -> list[BaseRoute]: |
| LOW | fastmcp_slim/fastmcp/server/mixins/lifespan.py | 240 | def _setup_task_protocol_handlers(self: FastMCP) -> None: |
| LOW | fastmcp_slim/fastmcp/server/auth/cimd.py | 631 | def _extract_public_key_from_jwks(self, token: str, jwks: dict) -> str: |
| LOW | fastmcp_slim/fastmcp/server/auth/oidc_proxy.py | 456 | def _uses_alternate_verification(self) -> bool: |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 683 | def _create_upstream_oauth_client(self) -> AsyncOAuth2Client: |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1240 | def _prepare_scopes_for_token_exchange(self, scopes: list[str]) -> list[str]: |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1032 | async def exchange_authorization_code( |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1254 | def _translate_scopes_from_idp(self, scopes: list[str]) -> list[str]: |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1283 | def _prepare_scopes_for_upstream_refresh(self, scopes: list[str]) -> list[str]: |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1614 | def _uses_alternate_verification(self) -> bool: |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/consent.py | 225 | def _set_consent_binding_cookie( |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/consent.py | 242 | def _clear_consent_binding_cookie( |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/consent.py | 253 | def _verify_consent_binding_cookie( |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/consent.py | 266 | def _build_upstream_authorize_url( |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/supabase.py | 153 | async def oauth_authorization_server_metadata(request): |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/azure.py | 433 | def _translate_scopes_from_idp(self, scopes: list[str]) -> list[str]: |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/azure.py | 453 | def _build_upstream_authorize_url( |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/azure.py | 478 | def _prepare_scopes_for_token_exchange(self, scopes: list[str]) -> list[str]: |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/azure.py | 504 | def _prepare_scopes_for_upstream_refresh(self, scopes: list[str]) -> list[str]: |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/oci.py | 186 | def _prepare_scopes_for_token_exchange(self, scopes: list[str]) -> list[str]: |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/descope.py | 181 | async def oauth_authorization_server_metadata(request): |
| 4602 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | …tmcp_slim/fastmcp/experimental/transforms/code_mode.py | 25 | # --------------------------------------------------------------------------- |
| MEDIUM | …tmcp_slim/fastmcp/experimental/transforms/code_mode.py | 27 | # --------------------------------------------------------------------------- |
| MEDIUM | …tmcp_slim/fastmcp/experimental/transforms/code_mode.py | 39 | # --------------------------------------------------------------------------- |
| MEDIUM | …tmcp_slim/fastmcp/experimental/transforms/code_mode.py | 41 | # --------------------------------------------------------------------------- |
| MEDIUM | …tmcp_slim/fastmcp/experimental/transforms/code_mode.py | 72 | # --------------------------------------------------------------------------- |
| MEDIUM | …tmcp_slim/fastmcp/experimental/transforms/code_mode.py | 74 | # --------------------------------------------------------------------------- |
| MEDIUM | …tmcp_slim/fastmcp/experimental/transforms/code_mode.py | 201 | # --------------------------------------------------------------------------- |
| MEDIUM | …tmcp_slim/fastmcp/experimental/transforms/code_mode.py | 203 | # --------------------------------------------------------------------------- |
| MEDIUM | …tmcp_slim/fastmcp/experimental/transforms/code_mode.py | 488 | # --------------------------------------------------------------------------- |
| MEDIUM | …tmcp_slim/fastmcp/experimental/transforms/code_mode.py | 490 | # --------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/server.py | 528 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/server.py | 530 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/server.py | 2423 | # ----------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/server.py | 2425 | # ----------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/context.py | 1314 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/context.py | 1316 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/tasks/notifications.py | 232 | # ============================================================================= |
| MEDIUM | fastmcp_slim/fastmcp/server/tasks/notifications.py | 234 | # ============================================================================= |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/models.py | 20 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/models.py | 22 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/models.py | 36 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/models.py | 38 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 679 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 681 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1236 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1238 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1878 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1880 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 612 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 614 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 638 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 640 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 722 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 724 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 741 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 743 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 856 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 858 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 979 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 981 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1599 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1601 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 2056 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 2058 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/aggregate.py | 186 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/aggregate.py | 188 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/aggregate.py | 238 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/aggregate.py | 240 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/aggregate.py | 260 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/aggregate.py | 262 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/aggregate.py | 284 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/aggregate.py | 286 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/aggregate.py | 306 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/aggregate.py | 308 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/aggregate.py | 318 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/aggregate.py | 320 | # ------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/proxy.py | 934 | # ----------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/proxy.py | 936 | # ----------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/proxy.py | 116 | # ----------------------------------------------------------------------------- |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/proxy.py | 118 | # ----------------------------------------------------------------------------- |
| 476 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | fastmcp_slim/fastmcp/server/providers/proxy.py | 0 | gets a client instance by calling the sync or async factory. |
| HIGH | fastmcp_slim/fastmcp/server/providers/proxy.py | 0 | gets a client instance by calling the sync or async factory. |
| HIGH | fastmcp_slim/fastmcp/server/providers/proxy.py | 0 | gets a client instance by calling the sync or async factory. |
| HIGH | fastmcp_slim/fastmcp/server/providers/proxy.py | 0 | gets a client instance by calling the sync or async factory. |
| HIGH | fastmcp_slim/fastmcp/server/providers/proxy.py | 0 | gets a client instance by calling the sync or async factory. |
| HIGH | fastmcp_slim/fastmcp/utilities/types.py | 0 | get mime type from format or guess from file extension. |
| HIGH | fastmcp_slim/fastmcp/utilities/types.py | 0 | get mime type from format or guess from file extension. |
| HIGH | fastmcp_slim/fastmcp/utilities/types.py | 0 | get mime type from format or guess from file extension. |
| HIGH | tests/test_mcp_config.py | 0 | from fastmcp import fastmcp mcp = fastmcp() @mcp.tool def add(a: int, b: int) -> int: return a + b if __name__ == '__mai |
| HIGH | tests/test_mcp_config.py | 0 | from fastmcp import fastmcp mcp = fastmcp() @mcp.tool def add(a: int, b: int) -> int: return a + b if __name__ == '__mai |
| HIGH | tests/test_mcp_config.py | 0 | from fastmcp import fastmcp mcp = fastmcp() @mcp.tool def add(a: int, b: int) -> int: return a + b if __name__ == '__mai |
| HIGH | tests/test_mcp_config.py | 0 | from fastmcp import fastmcp mcp = fastmcp() @mcp.tool def add(a: int, b: int) -> int: return a + b if __name__ == '__mai |
| HIGH | tests/test_mcp_config.py | 0 | from fastmcp import fastmcp mcp = fastmcp() @mcp.tool def add(a: int, b: int) -> int: return a + b if __name__ == '__mai |
| HIGH | tests/test_mcp_config.py | 0 | from fastmcp import fastmcp mcp = fastmcp() @mcp.tool def add(a: int, b: int) -> int: return a + b if __name__ == '__mai |
| HIGH | tests/cli/test_run.py | 0 | from fastmcp import fastmcp mcp = fastmcp() @mcp.tool def add(a: int, b: int) -> int: return a + b if __name__ == '__mai |
| HIGH | tests/tools/test_standalone_decorator.py | 0 | decorated function should still be directly callable. |
| HIGH | tests/resources/test_standalone_decorator.py | 0 | decorated function should still be directly callable. |
| HIGH | tests/prompts/test_standalone_decorator.py | 0 | decorated function should still be directly callable. |
| HIGH | tests/tools/tool/test_callable.py | 0 | test that callable objects with sync __call__ work. |
| HIGH | tests/resources/test_function_resources.py | 0 | test that callable objects with sync __call__ work. |
| HIGH | tests/prompts/test_prompt.py | 0 | test that callable objects with sync __call__ work. |
| HIGH | tests/tools/tool/test_callable.py | 0 | test that callable objects with async __call__ work. |
| HIGH | tests/resources/test_function_resources.py | 0 | test that callable objects with async __call__ work. |
| HIGH | tests/prompts/test_prompt.py | 0 | test that callable objects with async __call__ work. |
| HIGH | tests/resources/test_resource_template.py | 0 | test that match_uri_template uses the slash delimiter. |
| HIGH | tests/resources/test_resource_template.py | 0 | test that match_uri_template uses the slash delimiter. |
| HIGH | tests/resources/test_resource_template.py | 0 | test that match_uri_template uses the slash delimiter. |
| HIGH | tests/resources/test_resource_template.py | 0 | test that match_uri_template uses the slash delimiter. |
| HIGH | tests/server/middleware/test_middleware.py | 0 | middleware is applied when run_middleware=true (default). |
| HIGH | tests/server/middleware/test_middleware.py | 0 | middleware is applied when run_middleware=true (default). |
| HIGH | tests/server/middleware/test_middleware.py | 0 | middleware is applied when run_middleware=true (default). |
| HIGH | tests/server/middleware/test_middleware.py | 0 | middleware is not applied when run_middleware=false. |
| HIGH | tests/server/middleware/test_middleware.py | 0 | middleware is not applied when run_middleware=false. |
| HIGH | tests/server/middleware/test_middleware.py | 0 | middleware is not applied when run_middleware=false. |
| HIGH | tests/server/middleware/test_caching.py | 0 | test that caching works with a real fastmcp server. |
| HIGH | tests/server/middleware/test_caching.py | 0 | test that caching works with a real fastmcp server. |
| HIGH | tests/server/middleware/test_caching.py | 0 | test that caching works with a real fastmcp server. |
| HIGH | tests/server/auth/test_oidc_proxy.py | 0 | create a valid oidc configuration dict for testing. |
| HIGH | tests/server/auth/test_oidc_proxy_token.py | 0 | create a valid oidc configuration dict for testing. |
| HIGH | tests/server/auth/providers/test_auth0.py | 0 | create a valid oidc configuration dict for testing. |
| HIGH | tests/server/auth/test_oidc_proxy.py | 0 | test default configuration with explicit false strict setting. |
| HIGH | tests/server/auth/test_oidc_proxy.py | 0 | test default configuration with explicit false strict setting. |
| HIGH | tests/server/auth/test_oidc_proxy.py | 0 | test default configuration with explicit false strict setting. |
| HIGH | tests/server/auth/providers/test_github.py | 0 | provide a memorystore for tests to avoid sqlite initialization on windows. |
| HIGH | tests/server/auth/providers/test_workos.py | 0 | provide a memorystore for tests to avoid sqlite initialization on windows. |
| HIGH | tests/server/auth/providers/test_discord.py | 0 | provide a memorystore for tests to avoid sqlite initialization on windows. |
| HIGH | tests/server/auth/providers/test_clerk.py | 0 | provide a memorystore for tests to avoid sqlite initialization on windows. |
| HIGH | tests/server/auth/providers/test_azure_scopes.py | 0 | provide a memorystore for tests to avoid sqlite initialization on windows. |
| HIGH | tests/server/auth/providers/test_azure.py | 0 | provide a memorystore for tests to avoid sqlite initialization on windows. |
| HIGH | tests/server/auth/providers/test_google.py | 0 | provide a memorystore for tests to avoid sqlite initialization on windows. |
| HIGH | tests/server/auth/providers/test_workos.py | 0 | test that oauth endpoints are configured correctly. |
| HIGH | tests/server/auth/providers/test_discord.py | 0 | test that oauth endpoints are configured correctly. |
| HIGH | tests/server/auth/providers/test_azure.py | 0 | test that oauth endpoints are configured correctly. |
| HIGH | tests/server/auth/providers/test_google.py | 0 | test that oauth endpoints are configured correctly. |
| HIGH | tests/server/auth/providers/test_workos.py | 0 | client with headless oauth that bypasses browser interaction. |
| HIGH | tests/server/auth/providers/test_supabase.py | 0 | client with headless oauth that bypasses browser interaction. |
| HIGH | tests/server/auth/providers/test_descope.py | 0 | client with headless oauth that bypasses browser interaction. |
| HIGH | tests/server/auth/providers/test_scalekit.py | 0 | client with headless oauth that bypasses browser interaction. |
| HIGH | tests/client/auth/test_oauth_client.py | 0 | client with headless oauth that bypasses browser interaction. |
| HIGH | tests/server/auth/providers/test_supabase.py | 0 | test that environment variables are loaded correctly. |
| 61 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | fastmcp_slim/fastmcp/types.py | 19 | |
| LOW | fastmcp_slim/fastmcp/settings.py | 1 | |
| LOW | fastmcp_slim/fastmcp/exceptions.py | 6 | |
| LOW | fastmcp_slim/fastmcp/mcp_config.py | 25 | |
| LOW | fastmcp_slim/fastmcp/dependencies.py | 11 | |
| LOW | fastmcp_slim/fastmcp/dependencies.py | 11 | |
| LOW | fastmcp_slim/fastmcp/dependencies.py | 11 | |
| LOW | fastmcp_slim/fastmcp/dependencies.py | 13 | |
| LOW | fastmcp_slim/fastmcp/dependencies.py | 13 | |
| LOW | fastmcp_slim/fastmcp/dependencies.py | 13 | |
| LOW | fastmcp_slim/fastmcp/dependencies.py | 13 | |
| LOW | fastmcp_slim/fastmcp/dependencies.py | 13 | |
| LOW | fastmcp_slim/fastmcp/dependencies.py | 13 | |
| LOW | fastmcp_slim/fastmcp/dependencies.py | 13 | |
| LOW | fastmcp_slim/fastmcp/dependencies.py | 13 | |
| LOW | fastmcp_slim/fastmcp/dependencies.py | 13 | |
| LOW | fastmcp_slim/fastmcp/dependencies.py | 13 | |
| LOW | fastmcp_slim/fastmcp/decorators.py | 3 | |
| LOW | …lim/fastmcp/experimental/sampling/handlers/__init__.py | 3 | |
| LOW | …_slim/fastmcp/experimental/sampling/handlers/openai.py | 3 | |
| LOW | …p_slim/fastmcp/experimental/server/openapi/__init__.py | 16 | |
| LOW | …p_slim/fastmcp/experimental/server/openapi/__init__.py | 17 | |
| LOW | …p_slim/fastmcp/experimental/server/openapi/__init__.py | 17 | |
| LOW | …p_slim/fastmcp/experimental/server/openapi/__init__.py | 17 | |
| LOW | …p_slim/fastmcp/experimental/server/openapi/__init__.py | 17 | |
| LOW | …p_slim/fastmcp/experimental/server/openapi/__init__.py | 17 | |
| LOW | …p_slim/fastmcp/experimental/server/openapi/__init__.py | 17 | |
| LOW | …p_slim/fastmcp/experimental/server/openapi/__init__.py | 17 | |
| LOW | …p_slim/fastmcp/experimental/server/openapi/__init__.py | 26 | |
| LOW | …p_slim/fastmcp/experimental/server/openapi/__init__.py | 26 | |
| LOW | …lim/fastmcp/experimental/utilities/openapi/__init__.py | 7 | |
| LOW | …lim/fastmcp/experimental/utilities/openapi/__init__.py | 7 | |
| LOW | …lim/fastmcp/experimental/utilities/openapi/__init__.py | 7 | |
| LOW | …lim/fastmcp/experimental/utilities/openapi/__init__.py | 7 | |
| LOW | …lim/fastmcp/experimental/utilities/openapi/__init__.py | 7 | |
| LOW | …lim/fastmcp/experimental/utilities/openapi/__init__.py | 7 | |
| LOW | …lim/fastmcp/experimental/utilities/openapi/__init__.py | 7 | |
| LOW | …lim/fastmcp/experimental/utilities/openapi/__init__.py | 7 | |
| LOW | …lim/fastmcp/experimental/utilities/openapi/__init__.py | 7 | |
| LOW | fastmcp_slim/fastmcp/tools/__init__.py | 3 | |
| LOW | fastmcp_slim/fastmcp/tools/__init__.py | 3 | |
| LOW | fastmcp_slim/fastmcp/tools/__init__.py | 4 | |
| LOW | fastmcp_slim/fastmcp/tools/__init__.py | 4 | |
| LOW | fastmcp_slim/fastmcp/tools/__init__.py | 5 | |
| LOW | fastmcp_slim/fastmcp/tools/__init__.py | 5 | |
| LOW | fastmcp_slim/fastmcp/tools/function_parsing.py | 3 | |
| LOW | fastmcp_slim/fastmcp/resources/__init__.py | 3 | |
| LOW | fastmcp_slim/fastmcp/resources/__init__.py | 3 | |
| LOW | fastmcp_slim/fastmcp/resources/__init__.py | 4 | |
| LOW | fastmcp_slim/fastmcp/resources/__init__.py | 4 | |
| LOW | fastmcp_slim/fastmcp/resources/__init__.py | 4 | |
| LOW | fastmcp_slim/fastmcp/resources/__init__.py | 5 | |
| LOW | fastmcp_slim/fastmcp/resources/__init__.py | 6 | |
| LOW | fastmcp_slim/fastmcp/resources/__init__.py | 6 | |
| LOW | fastmcp_slim/fastmcp/resources/__init__.py | 6 | |
| LOW | fastmcp_slim/fastmcp/resources/__init__.py | 6 | |
| LOW | fastmcp_slim/fastmcp/resources/__init__.py | 6 | |
| LOW | fastmcp_slim/fastmcp/resources/types.py | 3 | |
| LOW | fastmcp_slim/fastmcp/server/proxy.py | 8 | |
| LOW | fastmcp_slim/fastmcp/server/proxy.py | 21 | |
| 405 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | fastmcp_slim/fastmcp/server/server.py | 2464 | # Create a proxy to a remote server |
| MEDIUM | fastmcp_slim/fastmcp/server/server.py | 2467 | # Create a proxy to another FastMCP server |
| MEDIUM | fastmcp_slim/fastmcp/server/low_level.py | 123 | # Create the middleware context. |
| MEDIUM | fastmcp_slim/fastmcp/server/http.py | 303 | # Create the ASGI app wrapper (session manager is set each lifespan cycle) |
| MEDIUM | fastmcp_slim/fastmcp/server/http.py | 359 | # Create a lifespan manager to start and stop the session manager |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 817 | # Create a ProxyDCRClient with configured redirect URI validation |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/proxy.py | 586 | # Create a proxy provider for a remote server |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/proxy.py | 879 | # Create a proxy server using create_proxy (recommended) |
| MEDIUM | …tmcp/server/providers/local_provider/local_provider.py | 11 | # Create a reusable provider with tools |
| MEDIUM | …slim/fastmcp/server/providers/skills/skill_provider.py | 130 | # Create a SkillFileResource that can read the file |
| MEDIUM | fastmcp_slim/fastmcp/cli/install/__init__.py | 13 | # Create a cyclopts app for install subcommands |
| MEDIUM | fastmcp_slim/fastmcp/cli/install/cursor.py | 35 | # Create the configuration structure expected by Cursor |
| MEDIUM | fastmcp_slim/fastmcp/cli/install/cursor.py | 128 | # Create the config file if it doesn't exist |
| MEDIUM | fastmcp_slim/fastmcp/utilities/logging.py | 66 | # Create a standard StreamHandler for stderr |
| MEDIUM | fastmcp_slim/fastmcp/utilities/json_schema_type.py | 501 | # Create a copy of the schema for each type, but keep all constraints |
| MEDIUM | fastmcp_slim/fastmcp/utilities/types.py | 206 | # Create a copy of annotations without the excluded parameters |
| MEDIUM | fastmcp_slim/fastmcp/utilities/json_schema.py | 282 | # Create a new schema by copying the referenced definition |
| MEDIUM | fastmcp_slim/fastmcp/utilities/cli.py | 207 | # Create the logo text |
| MEDIUM | fastmcp_slim/fastmcp/utilities/cli.py | 211 | # Create the main title |
| MEDIUM | fastmcp_slim/fastmcp/utilities/cli.py | 214 | # Create the information table |
| MEDIUM | fastmcp_slim/fastmcp/utilities/openapi/schemas.py | 160 | # Create a new schema that allows null in addition to the original type |
| MEDIUM | fastmcp_slim/fastmcp/utilities/openapi/schemas.py | 570 | # Create a wrapped schema that contains the original schema under a "result" key |
| MEDIUM | fastmcp_slim/fastmcp/utilities/openapi/director.py | 209 | # Create a mapping from parameter names to their locations |
| MEDIUM | fastmcp_slim/fastmcp/client/client.py | 434 | # Create a fresh client for each concurrent operation |
| MEDIUM | fastmcp_slim/fastmcp/client/client.py | 450 | # Create a fresh session kwargs dict so the clone doesn't share |
| MEDIUM | fastmcp_slim/fastmcp/client/auth/oauth.py | 280 | # Create the full static client info directly which will avoid DCR. |
| MEDIUM | fastmcp_slim/fastmcp/client/transports/config.py | 49 | # Create a config with multiple servers |
| MEDIUM | fastmcp_slim/fastmcp/client/transports/config.py | 63 | # Create a client with the config |
| MEDIUM | tests/test_mcp_config.py | 955 | # Create a config with multiple servers |
| MEDIUM | tests/tools/test_tool_future_annotations.py | 47 | # Create a simple 1x1 white pixel PNG |
| MEDIUM | tests/tools/test_tool_future_annotations.py | 141 | # Define a tool with modern union syntax |
| MEDIUM | tests/server/test_auth_integration.py | 116 | # Create a RefreshToken object that matches what is expected in later code |
| MEDIUM | tests/server/test_auth_integration.py | 829 | # Create a test client with the token |
| MEDIUM | tests/server/test_auth_integration_errors.py | 115 | # Create a RefreshToken object that matches what is expected in later code |
| MEDIUM | tests/server/test_server.py | 200 | # Create a server with resources |
| MEDIUM | tests/server/test_server.py | 215 | # Create a main server and mount the resource server |
| MEDIUM | tests/server/test_context.py | 344 | # Create a mock meta object with attributes |
| MEDIUM | tests/server/test_event_store.py | 207 | # Create a realistic JSON-RPC request wrapped in JSONRPCMessage |
| MEDIUM | tests/server/middleware/test_timing.py | 287 | # Create a custom logger that writes to a string buffer |
| MEDIUM | tests/server/tasks/test_task_methods.py | 81 | # Create a task that won't complete until signaled |
| MEDIUM | tests/server/auth/test_oauth_consent_page.py | 146 | # Create a transaction manually |
| MEDIUM | tests/server/auth/test_oauth_consent_page.py | 208 | # Create a transaction |
| MEDIUM | tests/server/auth/test_oauth_consent_page.py | 274 | # Create a transaction |
| MEDIUM | tests/server/auth/test_auth_provider.py | 41 | # Create a static token verifier with a test token |
| MEDIUM | tests/server/auth/test_oauth_consent_flow.py | 213 | # Create a test app with OAuth routes |
| MEDIUM | tests/server/auth/test_oauth_consent_flow.py | 673 | # Create a tampered cookie (invalid signature) |
| MEDIUM | tests/server/auth/test_jwt_provider.py | 382 | # Create a token with a different secret |
| MEDIUM | tests/server/auth/test_jwt_provider_bearer.py | 400 | # Create a token with a different key pair |
| MEDIUM | tests/server/auth/test_ssrf_protection.py | 274 | # Create a dummy token to trigger JWKS fetch |
| MEDIUM | tests/server/auth/test_enhanced_error_responses.py | 259 | # Create a valid token with wrong scopes |
| MEDIUM | tests/server/auth/oauth_proxy/test_ui.py | 67 | # Create a minimal OAuth proxy |
| MEDIUM | tests/server/auth/oauth_proxy/test_tokens.py | 259 | # Create a mock 401 response like the SDK returns for auth failures |
| MEDIUM | tests/server/auth/oauth_proxy/test_tokens.py | 304 | # Create a mock 400 response like the SDK returns for invalid_grant |
| MEDIUM | tests/server/providers/test_skills_provider.py | 648 | # Create a file outside the skill directory |
| MEDIUM | tests/server/providers/test_skills_provider.py | 275 | # Create a simple skill |
| MEDIUM | tests/server/providers/test_skills_provider.py | 290 | # Create a skill with supporting files |
| MEDIUM | tests/server/providers/proxy/test_proxy_client.py | 407 | # Create a disconnected client (should use fresh sessions per request) |
| MEDIUM | …s/server/providers/openapi/test_openapi_performance.py | 75 | # Create a medium-sized synthetic schema |
| MEDIUM | tests/server/providers/openapi/test_comprehensive.py | 477 | # Create a mock client that tracks requests |
| MEDIUM | tests/server/http/test_custom_routes.py | 40 | # Create the app by calling the constructor function directly |
| 78 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | fastmcp_slim/fastmcp/tools/tool_transform.py | 47 | Forward to parent tool with argument transformation applied. This function can only be called from within a transfo |
| HIGH | fastmcp_slim/fastmcp/tools/tool_transform.py | 77 | Forward directly to parent tool without transformation. This function bypasses all argument transformation and vali |
| HIGH | fastmcp_slim/fastmcp/tools/tool_transform.py | 386 | Create a transformed tool from a parent tool. Args: tool: The parent tool to transform. |
| HIGH | fastmcp_slim/fastmcp/server/server.py | 1173 | Call a tool by name. This is the public API for executing tools. By default, middleware is applied. Ar |
| HIGH | fastmcp_slim/fastmcp/server/server.py | 1334 | Read a resource by URI. This is the public API for reading resources. By default, middleware is applied. |
| HIGH | fastmcp_slim/fastmcp/server/server.py | 1514 | Render a prompt by name. This is the public API for rendering prompts. By default, middleware is applied. |
| HIGH | fastmcp_slim/fastmcp/server/context.py | 1210 | Send an elicitation request from a background task (SEP-1686). This method handles elicitation when running in |
| HIGH | fastmcp_slim/fastmcp/server/dependencies.py | 1357 | Get a specific claim from the access token. This dependency extracts a single claim value from the current access t |
| HIGH | fastmcp_slim/fastmcp/server/lifespan.py | 91 | Compose with another lifespan using the | operator. Args: other: Another Lifespan instance. |
| HIGH | fastmcp_slim/fastmcp/server/tasks/keys.py | 47 | Build Docket task key with embedded metadata. When ``task_scope`` is ``None`` the task is anonymous and lives in th |
| HIGH | fastmcp_slim/fastmcp/server/tasks/keys.py | 81 | Parse Docket task key to extract metadata. Args: task_key: Encoded task key from Docket Returns: |
| HIGH | fastmcp_slim/fastmcp/server/tasks/keys.py | 138 | Extract just the client task ID from a task key. Args: task_key: Full encoded task key Returns: |
| HIGH | fastmcp_slim/fastmcp/server/tasks/routing.py | 32 | Check task mode and submit to background if requested. Args: component: The MCP component task_type |
| HIGH | fastmcp_slim/fastmcp/server/tasks/elicitation.py | 54 | Send an elicitation request from a background task. This function handles the complexity of eliciting user input wh |
| HIGH | fastmcp_slim/fastmcp/server/tasks/requests.py | 77 | Look up task execution and metadata from Redis. Consolidates the common pattern of fetching task metadata from Redi |
| HIGH | fastmcp_slim/fastmcp/server/auth/ssrf.py | 99 | Resolve hostname to IP addresses using DNS. Args: hostname: Hostname to resolve port: Port number ( |
| HIGH | fastmcp_slim/fastmcp/server/auth/ssrf.py | 148 | Validate URL for SSRF and resolve to IPs. Args: url: URL to validate require_path: If True, require |
| HIGH | fastmcp_slim/fastmcp/server/auth/ssrf.py | 204 | Fetch URL with comprehensive SSRF protection and DNS pinning. Security measures: 1. HTTPS only 2. DNS resol |
| HIGH | fastmcp_slim/fastmcp/server/auth/cimd.py | 300 | Fetch and validate a CIMD document with SSRF protection. Uses ssrf_safe_fetch_response for the HTTP layer, whic |
| HIGH | fastmcp_slim/fastmcp/server/auth/cimd.py | 512 | Validate JWT assertion from client. Args: assertion: The JWT assertion string client_id |
| HIGH | fastmcp_slim/fastmcp/server/auth/cimd.py | 632 | Extract public key from inline JWKS. Args: token: JWT token to extract kid from jwks: J |
| HIGH | fastmcp_slim/fastmcp/server/auth/cimd.py | 781 | Validate JWT assertion for private_key_jwt auth. Args: assertion: JWT assertion string from client |
| HIGH | fastmcp_slim/fastmcp/server/auth/jwt_issuer.py | 223 | Verify and decode a FastMCP token. Validates JWT signature, expiration, issuer, audience, and token type. |
| HIGH | fastmcp_slim/fastmcp/server/auth/providers/azure.py | 608 | Get a cached or new OnBehalfOfCredential for OBO token exchange. Credentials are cached by user assertion so th |
| HIGH | fastmcp_slim/fastmcp/server/auth/providers/azure.py | 841 | Exchange the user's Entra token for a downstream API token via OBO. This dependency performs a Microsoft Entra On-B |
| HIGH | …_slim/fastmcp/server/providers/filesystem_discovery.py | 122 | Import a Python file as a module. If the file is part of a package (directory has __init__.py), imports it as a |
| HIGH | fastmcp_slim/fastmcp/server/sampling/run.py | 142 | Determine whether to use fallback handler or client for sampling. Args: context: The MCP context. n |
| HIGH | fastmcp_slim/fastmcp/server/sampling/sampling_tool.py | 92 | Create a SamplingTool from a function. The function's signature is analyzed to generate a JSON schema for |
| HIGH | fastmcp_slim/fastmcp/utilities/auth.py | 11 | Decode a JWT part (header or payload) without signature verification. Args: token: JWT token string (header |
| HIGH | fastmcp_slim/fastmcp/utilities/auth.py | 33 | Decode JWT header without signature verification. Useful for extracting the key ID (kid) for JWKS lookup. Args |
| HIGH | fastmcp_slim/fastmcp/utilities/auth.py | 50 | Decode JWT payload without signature verification. Use only for tokens received directly from trusted sources (e.g. |
| HIGH | fastmcp_slim/fastmcp/utilities/skills.py | 88 | Get the manifest for a specific skill. Args: client: Connected FastMCP client skill_name: Name of t |
| HIGH | fastmcp_slim/fastmcp/utilities/skills.py | 134 | Download a skill and all its files to a local directory. Creates a subdirectory named after the skill containing al |
| HIGH | fastmcp_slim/fastmcp/utilities/json_schema_type.py | 168 | Convert JSON schema to appropriate Python type with validation. Args: schema: A JSON Schema dictionary defi |
| HIGH | fastmcp_slim/fastmcp/utilities/pagination.py | 55 | Paginate a sequence of items. Args: items: The full sequence to paginate. cursor: Optional cursor f |
| HIGH | fastmcp_slim/fastmcp/utilities/openapi/parser.py | 592 | Extract only the schema definitions needed for input (parameters and request body). Args: |
| HIGH | fastmcp_slim/fastmcp/utilities/openapi/schemas.py | 78 | Replace openapi $ref with jsonschema $defs recursively. Examples: - {"type": "object", "properties": {"$re |
| HIGH | …cp/utilities/mcp_server_config/v1/mcp_server_config.py | 224 | Load configuration from a JSON file. Args: file_path: Path to the configuration file Retur |
| HIGH | fastmcp_slim/fastmcp/apps/file_upload.py | 233 | Read a file's contents by name. Args: name: The filename to read. ctx: The current requ |
| HIGH | fastmcp_slim/fastmcp/client/tasks.py | 213 | Wait for task to reach a specific state or complete. Uses event-based waiting when notifications are available |
| HIGH | fastmcp_slim/fastmcp/client/client.py | 487 | Send an initialize request to the server. This method performs the MCP initialization handshake with the server |
| HIGH | fastmcp_slim/fastmcp/client/client.py | 714 | Await a coroutine while monitoring the session task for errors. When using HTTP transports, server errors (4xx/ |
| HIGH | fastmcp_slim/fastmcp/client/client.py | 854 | Send a completion request and return the complete MCP protocol result. Args: ref (mcp.types.Resourc |
| HIGH | fastmcp_slim/fastmcp/client/client.py | 885 | Send a completion request to the server. Args: ref (mcp.types.ResourceTemplateReference | mcp.types |
| HIGH | fastmcp_slim/fastmcp/client/mixins/tools.py | 43 | Send a tools/list request and return the complete MCP protocol result. Args: cursor: Optional pagin |
| HIGH | fastmcp_slim/fastmcp/client/mixins/tools.py | 73 | Retrieve all tools available on the server. This method automatically fetches all pages if the server paginates |
| HIGH | fastmcp_slim/fastmcp/client/mixins/tools.py | 126 | Send a tools/call request and return the complete MCP protocol result. This method returns the raw CallToolResu |
| HIGH | fastmcp_slim/fastmcp/client/mixins/tools.py | 254 | Call a tool on the server. Unlike call_tool_mcp, this method raises a ToolError if the tool call results in an |
| HIGH | fastmcp_slim/fastmcp/client/mixins/prompts.py | 39 | Send a prompts/list request and return the complete MCP protocol result. Args: cursor: Optional pag |
| HIGH | fastmcp_slim/fastmcp/client/mixins/prompts.py | 69 | Retrieve all prompts available on the server. This method automatically fetches all pages if the server paginat |
| HIGH | fastmcp_slim/fastmcp/client/mixins/prompts.py | 119 | Send a prompts/get request and return the complete MCP protocol result. Args: name (str): The name |
| HIGH | fastmcp_slim/fastmcp/client/mixins/prompts.py | 217 | Retrieve a rendered prompt message list from the server. Args: name (str): The name of the prompt t |
| HIGH | fastmcp_slim/fastmcp/client/mixins/task_management.py | 34 | Query the status of a background task. Sends a 'tasks/get' MCP protocol request over the existing transport. |
| HIGH | fastmcp_slim/fastmcp/client/mixins/task_management.py | 57 | Retrieve the raw result of a completed background task. Sends a 'tasks/result' MCP protocol request over the ex |
| HIGH | fastmcp_slim/fastmcp/client/mixins/task_management.py | 90 | List background tasks. Sends a 'tasks/list' MCP protocol request to the server. If the server returns a |
| HIGH | fastmcp_slim/fastmcp/client/mixins/task_management.py | 136 | Cancel a task, transitioning it to cancelled state. Sends a 'tasks/cancel' MCP protocol request. Task will halt |
| HIGH | fastmcp_slim/fastmcp/client/mixins/resources.py | 38 | Send a resources/list request and return the complete MCP protocol result. Args: cursor: Optional p |
| HIGH | fastmcp_slim/fastmcp/client/mixins/resources.py | 68 | Retrieve all resources available on the server. This method automatically fetches all pages if the server pagin |
| HIGH | fastmcp_slim/fastmcp/client/mixins/resources.py | 114 | Send a resources/listResourceTemplates request and return the complete MCP protocol result. Args: c |
| HIGH | fastmcp_slim/fastmcp/client/mixins/resources.py | 144 | Retrieve all resource templates available on the server. This method automatically fetches all pages if the ser |
| 2 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 751 | if (d && typeof d === "object") return d.msg || d.message || JSON.stringify(d); |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 751 | if (d && typeof d === "object") return d.msg || d.message || JSON.stringify(d); |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 752 | return d || b.params.level || ""; |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 756 | if (b.error) return "error: " + (b.error.message || JSON.stringify(b.error)); |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 757 | if (b.result && typeof b.result === "object") { |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 763 | if (first && first.text) { |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 340 | const transport = new PostMessageTransport(iframe.contentWindow, null); |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 610 | if (activeFilters[allFilterKeys[i]]) on.push(allFilterKeys[i]); |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 622 | var qs = params.toString(); |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 624 | history.replaceState(null, "", url); |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 693 | if (fp !== null) { |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 732 | if (lv && levelOrder.indexOf(lv) < minLevel) return false; |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 782 | && (entry.body.error || (entry.body.result && entry.body.result.isError)); |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 811 | if (entry.direction === "notification" && entry.body && entry.body.params) { |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 833 | navigator.clipboard.writeText(JSON.stringify(entry.body, null, 2)); |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 853 | detail.textContent = JSON.stringify(entry.body, null, 2); |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 873 | var atBottom = !panelVisible || entries.scrollHeight - entries.scrollTop - entries.clientHeight < 40; |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 880 | if (atBottom || (firstPoll && panelVisible)) entries.scrollTop = entries.scrollHeight; |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 892 | if (!data || typeof data !== "object") return; |
| HIGH | fastmcp_slim/fastmcp/utilities/json_schema_type.py | 6 | - Basic types (string, number, integer, boolean, null) |
| HIGH | fastmcp_slim/fastmcp/utilities/json_schema_type.py | 479 | # Check if one of the types is None (null) |
| HIGH | fastmcp_slim/fastmcp/utilities/openapi/schemas.py | 156 | # If it's already nullable (type includes null), don't modify |
| HIGH | fastmcp_slim/fastmcp/apps/file_upload.py | 313 | with If(STATE.stored.length()): |
| HIGH | fastmcp_slim/fastmcp/apps/file_upload.py | 315 | STATE.stored.length(), # ty:ignore[invalid-argument-type] |
| HIGH | fastmcp_slim/fastmcp/apps/file_upload.py | 334 | with If(STATE.pending.length()), Column(gap=2): |
| HIGH | fastmcp_slim/fastmcp/apps/file_upload.py | 365 | with If(STATE.stored.length()): |
| HIGH | fastmcp_slim/fastmcp/apps/file_upload.py | 390 | with If(STATE.stored.length()): |
| HIGH | fastmcp_slim/fastmcp/apps/file_upload.py | 392 | f"{STATE.stored.length()}" |
| HIGH | fastmcp_slim/fastmcp/apps/file_upload.py | 393 | f" {STATE.stored.length().pluralize('file')}" |
| HIGH | tests/tools/tool/test_content.py | 58 | ([None], "[null]"), |
| HIGH | tests/tools/tool/test_content.py | 59 | ([None, None], "[null,null]"), |
| HIGH | tests/tools/tool/test_content.py | 78 | ([1, "two", None, {"c": 3}, False], '[1,"two",null,{"c":3},false]'), |
| HIGH | tests/server/middleware/test_logging.py | 146 | "payload": '{"method":"tools/call","params":{"task":null,"_meta":null,"name":"test_method","argument |
| HIGH | tests/server/middleware/test_logging.py | 301 | '{"event": "request_start", "method": "test_method", "source": "client", "payload": "{\\"method\\":\\"re |
| HIGH | tests/server/middleware/test_logging.py | 329 | '{"event": "request_start", "method": "test_method", "source": "client", "payload": "{\\"name\\":\\"tmpl |
| HIGH | tests/server/middleware/test_logging.py | 361 | '{"event": "request_start", "method": "test_method", "source": "client", "payload": "{\\"method\\":\\"to |
| HIGH | tests/server/middleware/test_logging.py | 536 | 'event=request_start method=tools/call source=client payload={"task":null,"_meta":null,"name":"simple_op |
| HIGH | tests/server/middleware/test_logging.py | 559 | '{"event": "request_start", "method": "tools/call", "source": "client", "payload": "{\\"task\\":null,\\" |
| HIGH | tests/server/middleware/test_logging.py | 652 | event=request_start method=tools/call source=client payload={"task":null,"_meta":null,"name":"simple_operation","argumen |
| HIGH | tests/utilities/openapi/test_nullable_fields.py | 440 | """Test that nullable enum validates null, enum values, and rejects invalid values.""" |
| HIGH | tests/deprecated/test_tool_injection_middleware.py | 72 | text='[{"name":"greeting","title":null,"description":"Generate a greeting message.","arguments":[{"n |
| HIGH | tests/deprecated/test_tool_injection_middleware.py | 118 | text='{"_meta":null,"description":"Generate a greeting message.","messages":[{"role":"user","content |
| HIGH | tests/deprecated/test_tool_injection_middleware.py | 234 | text='{"contents":[{"content":"debug=true","mime_type":"text/plain","meta":null}],"meta":null}', |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | fastmcp_slim/fastmcp/tools/tool_transform.py | 360 | except Exception: |
| LOW | fastmcp_slim/fastmcp/tools/function_parsing.py | 235 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/tools/base.py | 485 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/resources/types.py | 109 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/resources/types.py | 172 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/resources/types.py | 187 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/server.py | 1288 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/server.py | 1422 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/server.py | 1466 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/server.py | 1585 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/telemetry.py | 97 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/telemetry.py | 132 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/context.py | 1278 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/http.py | 388 | except Exception: |
| LOW | fastmcp_slim/fastmcp/server/dependencies.py | 210 | except Exception: |
| LOW | fastmcp_slim/fastmcp/server/dependencies.py | 528 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/dependencies.py | 612 | except Exception: |
| LOW | fastmcp_slim/fastmcp/server/dependencies.py | 683 | except Exception as error: |
| LOW | fastmcp_slim/fastmcp/server/middleware/logging.py | 41 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/middleware/logging.py | 141 | except Exception as e: |
| LOW | …stmcp_slim/fastmcp/server/middleware/error_handling.py | 78 | except Exception as callback_error: |
| LOW | …stmcp_slim/fastmcp/server/middleware/error_handling.py | 124 | except Exception as error: |
| LOW | …stmcp_slim/fastmcp/server/middleware/error_handling.py | 209 | except Exception as error: |
| LOW | fastmcp_slim/fastmcp/server/middleware/timing.py | 51 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/middleware/timing.py | 103 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/tasks/subscriptions.py | 89 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/tasks/handlers.py | 216 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/tasks/context.py | 271 | except Exception: |
| LOW | fastmcp_slim/fastmcp/server/tasks/elicitation.py | 161 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/tasks/elicitation.py | 176 | except Exception: |
| LOW | fastmcp_slim/fastmcp/server/tasks/elicitation.py | 210 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/tasks/elicitation.py | 226 | except Exception as cleanup_error: |
| LOW | fastmcp_slim/fastmcp/server/tasks/elicitation.py | 274 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/tasks/notifications.py | 132 | except Exception as send_error: |
| LOW | fastmcp_slim/fastmcp/server/tasks/notifications.py | 158 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/tasks/requests.py | 190 | except Exception as error: |
| LOW | fastmcp_slim/fastmcp/server/tasks/requests.py | 295 | except Exception as error: |
| LOW | fastmcp_slim/fastmcp/server/mixins/lifespan.py | 112 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/auth/auth.py | 603 | except Exception: |
| LOW | fastmcp_slim/fastmcp/server/auth/cimd.py | 395 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/auth/oidc_proxy.py | 128 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/auth/oidc_proxy.py | 167 | except Exception: |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/models.py | 187 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1874 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 769 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1378 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1417 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1816 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1833 | except Exception: |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1921 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 2199 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 2252 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/consent.py | 110 | except Exception: |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/consent.py | 138 | except Exception: |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/consent.py | 190 | except Exception: |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/supabase.py | 163 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/clerk.py | 203 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/clerk.py | 235 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/azure.py | 603 | except Exception as e: |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/azure.py | 671 | except Exception: |
| 126 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | fastmcp_slim/fastmcp/tools/tool_transform.py | 270 | |
| LOW | fastmcp_slim/fastmcp/tools/tool_transform.py | 371 | |
| LOW | fastmcp_slim/fastmcp/tools/tool_transform.py | 616 | |
| LOW | fastmcp_slim/fastmcp/tools/tool_transform.py | 832 | |
| LOW | fastmcp_slim/fastmcp/tools/tool_transform.py | 717 | |
| LOW | fastmcp_slim/fastmcp/tools/function_parsing.py | 131 | |
| LOW | fastmcp_slim/fastmcp/tools/function_tool.py | 284 | |
| LOW | fastmcp_slim/fastmcp/tools/base.py | 86 | |
| LOW | fastmcp_slim/fastmcp/resources/template.py | 80 | |
| LOW | fastmcp_slim/fastmcp/resources/template.py | 453 | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 615 | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 695 | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 749 | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 834 | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 884 | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 966 | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 1020 | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 1092 | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 1164 | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 1326 | |
| LOW | fastmcp_slim/fastmcp/server/low_level.py | 74 | |
| LOW | fastmcp_slim/fastmcp/server/elicitation.py | 132 | |
| LOW | fastmcp_slim/fastmcp/server/elicitation.py | 387 | |
| LOW | fastmcp_slim/fastmcp/server/dependencies.py | 180 | |
| LOW | fastmcp_slim/fastmcp/server/dependencies.py | 467 | |
| LOW | fastmcp_slim/fastmcp/server/dependencies.py | 631 | |
| LOW | fastmcp_slim/fastmcp/server/middleware/dereference.py | 67 | |
| LOW | …stmcp_slim/fastmcp/server/middleware/error_handling.py | 81 | |
| LOW | fastmcp_slim/fastmcp/server/tasks/notifications.py | 76 | |
| LOW | fastmcp_slim/fastmcp/server/tasks/requests.py | 220 | |
| LOW | fastmcp_slim/fastmcp/server/mixins/lifespan.py | 91 | |
| LOW | fastmcp_slim/fastmcp/server/auth/ssrf.py | 239 | |
| LOW | fastmcp_slim/fastmcp/server/auth/cimd.py | 224 | |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/models.py | 168 | |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 746 | |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1717 | |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1928 | |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/consent.py | 446 | |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/clerk.py | 94 | |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/jwt.py | 313 | |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/jwt.py | 399 | |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/jwt.py | 416 | |
| LOW | fastmcp_slim/fastmcp/server/auth/handlers/authorize.py | 196 | |
| LOW | fastmcp_slim/fastmcp/server/providers/aggregate.py | 118 | |
| LOW | fastmcp_slim/fastmcp/server/providers/aggregate.py | 156 | |
| LOW | fastmcp_slim/fastmcp/server/providers/proxy.py | 166 | |
| LOW | fastmcp_slim/fastmcp/server/providers/proxy.py | 289 | |
| LOW | fastmcp_slim/fastmcp/server/providers/filesystem.py | 149 | |
| LOW | …_slim/fastmcp/server/providers/filesystem_discovery.py | 119 | |
| LOW | …_slim/fastmcp/server/providers/filesystem_discovery.py | 235 | |
| LOW | …tmcp/server/providers/local_provider/local_provider.py | 113 | |
| LOW | …tmcp/server/providers/local_provider/local_provider.py | 178 | |
| LOW | …cp/server/providers/local_provider/decorators/tools.py | 126 | |
| LOW | …tmcp_slim/fastmcp/server/providers/openapi/provider.py | 71 | |
| LOW | …stmcp_slim/fastmcp/server/providers/openapi/routing.py | 86 | |
| LOW | …cp_slim/fastmcp/server/providers/openapi/components.py | 180 | |
| LOW | …cp_slim/fastmcp/server/providers/openapi/components.py | 287 | |
| LOW | …slim/fastmcp/server/providers/skills/skill_provider.py | 228 | |
| LOW | …slim/fastmcp/server/providers/skills/skill_provider.py | 331 | |
| LOW | fastmcp_slim/fastmcp/server/sampling/run.py | 118 | |
| 123 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | fastmcp_slim/fastmcp/mcp_config.py | 309 | # Check if any values look like server configs |
| LOW | fastmcp_slim/fastmcp/tools/tool_transform.py | 291 | # Check if this parameter has a default_factory from transform_args |
| LOW | fastmcp_slim/fastmcp/tools/tool_transform.py | 498 | # Check if function returns ToolResult (or subclass) - if so, don't fall back to parent. |
| LOW | fastmcp_slim/fastmcp/tools/tool_transform.py | 529 | # Check if function is missing any parameters required after transformation |
| LOW | fastmcp_slim/fastmcp/tools/tool_transform.py | 649 | # Check if parameter is in transform_args |
| LOW | fastmcp_slim/fastmcp/tools/function_parsing.py | 290 | # Check if schema is an object type, resolving $ref references |
| LOW | fastmcp_slim/fastmcp/resources/template.py | 615 | # Check if required parameters are a subset of the path parameters |
| LOW | fastmcp_slim/fastmcp/resources/template.py | 621 | # Check if all URI parameters are valid function parameters (skip if **kwargs present) |
| LOW | fastmcp_slim/fastmcp/server/elicitation.py | 61 | # Check if items are enum/Literal |
| LOW | fastmcp_slim/fastmcp/server/elicitation.py | 73 | # Check if items are Literal (which Pydantic represents differently) |
| LOW | fastmcp_slim/fastmcp/server/elicitation.py | 503 | # Check if it's a primitive type |
| LOW | fastmcp_slim/fastmcp/server/dependencies.py | 767 | # Check if we're in a Docket worker context |
| LOW | …cp_slim/fastmcp/server/middleware/response_limiting.py | 113 | # Check if we should limit this tool |
| LOW | fastmcp_slim/fastmcp/server/tasks/elicitation.py | 113 | # Set status to "waiting" |
| LOW | fastmcp_slim/fastmcp/server/tasks/elicitation.py | 326 | # Check if there's a pending elicitation |
| LOW | fastmcp_slim/fastmcp/server/tasks/elicitation.py | 331 | # Push response to list - this wakes up the BLPOP in elicit_for_task |
| LOW | fastmcp_slim/fastmcp/server/tasks/notifications.py | 263 | # Check if subscriber already running for this session |
| LOW | fastmcp_slim/fastmcp/server/tasks/notifications.py | 266 | # Check if task is still running AND session is still alive |
| LOW | fastmcp_slim/fastmcp/server/tasks/requests.py | 281 | # Check if completed |
| LOW | fastmcp_slim/fastmcp/server/auth/redirect_validation.py | 236 | # Check if URI matches any allowed pattern |
| LOW | fastmcp_slim/fastmcp/server/auth/cimd.py | 603 | # Check if JTI was already used (and hasn't expired from cache) |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1000 | # Check if code expired |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/discord.py | 99 | # Check if token is expired (Discord returns ISO timestamp) |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/oci.py | 53 | # Check if the signer exists for the token ID in memory cache |
| LOW | …cp_slim/fastmcp/server/auth/providers/introspection.py | 245 | # Check if token is active (required field per RFC 7662) |
| LOW | fastmcp_slim/fastmcp/server/auth/handlers/authorize.py | 212 | # Check if this is a client not found error |
| LOW | fastmcp_slim/fastmcp/server/auth/handlers/authorize.py | 229 | # Check if response body contains "not found" error |
| LOW | …_slim/fastmcp/server/providers/filesystem_discovery.py | 146 | # Check if this file is part of a package |
| LOW | …_slim/fastmcp/server/providers/filesystem_discovery.py | 274 | # Check if this object is a component type |
| LOW | …slim/fastmcp/server/providers/skills/skill_provider.py | 369 | # Check if it's a known supporting file |
| LOW | fastmcp_slim/fastmcp/server/sampling/run.py | 348 | # Check if any tool requires sequential execution |
| LOW | fastmcp_slim/fastmcp/server/sampling/run.py | 575 | # Check if this is a tool use response |
| LOW | …stmcp_slim/fastmcp/server/transforms/tool_transform.py | 79 | # Check if this name is a transformed name |
| LOW | fastmcp_slim/fastmcp/cli/run.py | 176 | # Check if it's an MCPConfig first (has canonical mcpServers key) |
| LOW | fastmcp_slim/fastmcp/cli/cli.py | 306 | # Set marker to prevent infinite loops when subprocess calls FastMCP |
| LOW | fastmcp_slim/fastmcp/cli/cli.py | 603 | # Check if we were spawned by uv (or user explicitly set --skip-env) |
| LOW | fastmcp_slim/fastmcp/cli/cli.py | 706 | # Check if we need to use uv run (but skip if we're already in uv or user said to skip) |
| LOW | fastmcp_slim/fastmcp/cli/cli.py | 743 | # Set marker to prevent infinite loops when subprocess calls FastMCP again |
| LOW | fastmcp_slim/fastmcp/cli/cli.py | 863 | # Check if we were spawned by uv (or user explicitly set --skip-env) |
| LOW | fastmcp_slim/fastmcp/cli/cli.py | 877 | # Check if it's an MCPConfig (which inspect doesn't support) |
| LOW | fastmcp_slim/fastmcp/cli/cli.py | 892 | # Check if we need to use uv run (but skip if we're already in uv or user said to skip) |
| LOW | fastmcp_slim/fastmcp/cli/install/shared.py | 80 | # Check if it's an MCPConfig (has mcpServers key) |
| LOW | fastmcp_slim/fastmcp/cli/install/gemini_cli.py | 97 | # Check if Gemini CLI is available |
| LOW | fastmcp_slim/fastmcp/cli/install/claude_code.py | 101 | # Check if Claude Code CLI is available |
| LOW | fastmcp_slim/fastmcp/utilities/logging.py | 43 | # Check if logging is disabled in settings |
| LOW | fastmcp_slim/fastmcp/utilities/skills.py | 173 | # Check if directory exists |
| LOW | fastmcp_slim/fastmcp/utilities/json_schema_type.py | 479 | # Check if one of the types is None (null) |
| LOW | fastmcp_slim/fastmcp/utilities/types.py | 67 | # Check if this is Annotated[Type, "string"] and convert to Annotated[Type, Field(description="string")] |
| LOW | fastmcp_slim/fastmcp/utilities/json_schema.py | 209 | # Check if original had a $ref |
| LOW | fastmcp_slim/fastmcp/utilities/json_schema.py | 613 | # Check if any definition that references this one is itself used |
| LOW | fastmcp_slim/fastmcp/utilities/cli.py | 79 | # Check if it's an MCPConfig first (has canonical mcpServers key) |
| LOW | …lim/fastmcp/utilities/openapi/json_schema_converter.py | 220 | # Check if any schema in the map needs conversion |
| LOW | …lim/fastmcp/utilities/openapi/json_schema_converter.py | 242 | # Check if nested schema needs conversion |
| LOW | …lim/fastmcp/utilities/openapi/json_schema_converter.py | 268 | # Check if any list item needs conversion |
| LOW | fastmcp_slim/fastmcp/utilities/openapi/director.py | 219 | # Check if it's a suffixed parameter (e.g., id__path) |
| LOW | fastmcp_slim/fastmcp/utilities/openapi/director.py | 233 | # Check if it's a known parameter |
| LOW | …tmcp/utilities/mcp_server_config/v1/environments/uv.py | 117 | # Check if uv is available |
| LOW | …p/utilities/mcp_server_config/v1/sources/filesystem.py | 36 | # Check if it's a Windows path (e.g., C:\...) |
| LOW | …p/utilities/mcp_server_config/v1/sources/filesystem.py | 48 | # Check if path contains an object specification |
| LOW | …p/utilities/mcp_server_config/v1/sources/filesystem.py | 51 | # Check if it's a Windows path (e.g., C:\...) |
| 23 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | fastmcp_slim/fastmcp/server/auth/providers/clerk.py | 112 | # Step 1: Validate token via introspection (RFC 7662). |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/clerk.py | 187 | # Step 2: Fetch user profile via userinfo. |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/google.py | 106 | # Step 1: Verify token via tokeninfo endpoint. |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/google.py | 158 | # Step 2: Fetch user profile from v2 userinfo endpoint. |
| LOW | …fastmcp/contrib/component_manager/component_manager.py | 101 | # We need to check if it's a template (contains {}) and use "template" if so |
| LOW | fastmcp_slim/fastmcp/utilities/json_schema_type.py | 522 | # Step 1: replace everything except [0-9a-zA-Z_] with underscores |
| LOW | fastmcp_slim/fastmcp/utilities/json_schema_type.py | 524 | # Step 2: deduplicate underscores |
| LOW | fastmcp_slim/fastmcp/utilities/json_schema_type.py | 526 | # Step 3: if the first char of original name isn't a letter or underscore, prepend field_ |
| LOW | fastmcp_slim/fastmcp/utilities/json_schema_type.py | 529 | # Step 4: deduplicate again |
| LOW | fastmcp_slim/fastmcp/utilities/json_schema_type.py | 531 | # Step 5: only strip trailing underscores if they weren't in the original name |
| LOW | fastmcp_slim/fastmcp/utilities/json_schema_type.py | 534 | # Step 6: if result is a Python keyword, append an underscore (PEP 8 convention) |
| LOW | …lim/fastmcp/utilities/openapi/json_schema_converter.py | 91 | # Step 1: Handle nullable field conversion (OpenAPI 3.0 only) |
| LOW | …lim/fastmcp/utilities/openapi/json_schema_converter.py | 95 | # Step 2: Convert oneOf to anyOf if requested |
| LOW | …lim/fastmcp/utilities/openapi/json_schema_converter.py | 99 | # Step 3: Remove OpenAPI-specific fields |
| LOW | …lim/fastmcp/utilities/openapi/json_schema_converter.py | 103 | # Step 4: Handle readOnly/writeOnly property removal |
| LOW | …lim/fastmcp/utilities/openapi/json_schema_converter.py | 109 | # Step 5: Recursively process nested schemas |
| LOW | fastmcp_slim/fastmcp/utilities/openapi/director.py | 57 | # Step 1: Un-flatten arguments into path, query, body, etc. using parameter map |
| LOW | fastmcp_slim/fastmcp/utilities/openapi/director.py | 66 | # Step 2: Serialize query parameters according to OpenAPI style/explode |
| LOW | fastmcp_slim/fastmcp/utilities/openapi/director.py | 69 | # Step 3: Build base URL with path parameters |
| LOW | fastmcp_slim/fastmcp/utilities/openapi/director.py | 72 | # Step 4: Prepare request data |
| LOW | fastmcp_slim/fastmcp/utilities/openapi/director.py | 79 | # Step 5: Determine the declared content type from the OpenAPI spec. |
| LOW | fastmcp_slim/fastmcp/utilities/openapi/director.py | 96 | # Step 6: Handle request body — dispatch on declared content type. |
| LOW | fastmcp_slim/fastmcp/utilities/openapi/director.py | 143 | # Step 7: Create httpx.Request |
| LOW | …gration_tests/auth/test_github_provider_integration.py | 220 | # Step 1: Register OAuth client (DCR) |
| LOW | …gration_tests/auth/test_github_provider_integration.py | 240 | # Step 2: Test authorization endpoint redirects to consent page |
| LOW | …gration_tests/auth/test_github_provider_integration.py | 260 | # Step 3: Visit consent page to get CSRF token |
| LOW | …gration_tests/auth/test_github_provider_integration.py | 278 | # Step 4: Approve consent |
| LOW | tests/server/test_auth_integration.py | 548 | # Step 1: First, let's create a token and refresh token at the current time |
| LOW | tests/server/test_auth_integration.py | 567 | # Step 2: Time travel forward 4 hours (tokens expire in 1 hour by default) |
| LOW | tests/server/providers/test_prefab_roundtrip.py | 70 | # Step 1: call UI tool, get structured_content with hashed ref |
| LOW | tests/server/providers/test_prefab_roundtrip.py | 73 | # Step 2: call the backend tool by its hashed name |
| LOW | examples/search/client_regex.py | 73 | # Step 1: list_tools shows only synthetic tools |
| LOW | examples/search/client_regex.py | 91 | # Step 2: regex patterns discover tools |
| LOW | examples/search/client_regex.py | 127 | # Step 3: call discovered tools |
| LOW | examples/search/client_bm25.py | 73 | # Step 1: list_tools shows only synthetic tools + pinned tools |
| LOW | examples/search/client_bm25.py | 92 | # Step 2: natural language search discovers tools by relevance |
| LOW | examples/search/client_bm25.py | 128 | # Step 3: call a discovered tool |
| LOW | examples/code_mode/client.py | 76 | # Step 1: list_tools only returns two synthetic meta-tools |
| LOW | examples/code_mode/client.py | 94 | # Step 2: search discovers available tools |
| LOW | examples/code_mode/client.py | 111 | # Step 3: execute chains tool calls in one round-trip |
| LOW | .github/scripts/mention/gh-resolve-review-thread.sh | 28 | # Step 1: Post comment if provided |
| LOW | .github/scripts/mention/gh-resolve-review-thread.sh | 48 | # Step 2: Resolve the thread |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | fastmcp_slim/fastmcp/server/tasks/requests.py | 59 | - "user@example.com@1.0" → ("user@example.com", "1.0") # @ in URI |
| LOW | fastmcp_slim/fastmcp/utilities/openapi/formatters.py | 163 | return "user@example.com" |
| LOW | tests/resources/test_resource_template.py | 503 | quoted_name = quote("John Doe", safe="") |
| LOW | tests/resources/test_resource_template.py | 507 | assert result == {"name": "John Doe", "email": "john@example.com"} |
| LOW | tests/server/tasks/test_task_elicitation_relay.py | 172 | assert result.data == "Jane Doe" |
| LOW | tests/server/auth/providers/test_workos.py | 352 | "email": "user@example.com", |
| LOW | tests/server/auth/providers/test_workos.py | 374 | "email": "user@example.com", |
| LOW | tests/server/auth/providers/test_clerk.py | 269 | json={"email": "user@example.com"}, |
| LOW | tests/server/auth/providers/test_clerk.py | 209 | "email": "user@example.com", |
| LOW | tests/server/auth/providers/test_clerk.py | 241 | assert result.claims["email"] == "user@example.com" |
| LOW | tests/server/auth/providers/test_clerk.py | 478 | "email": "user@example.com", |
| LOW | tests/server/auth/providers/test_google.py | 138 | extra_authorize_params={"login_hint": "user@example.com"}, |
| LOW | tests/server/auth/providers/test_google.py | 143 | assert provider._extra_authorize_params["login_hint"] == "user@example.com" |
| LOW | tests/server/auth/providers/test_google.py | 284 | "email": "user@example.com", |
| LOW | tests/server/auth/providers/test_google.py | 294 | "email": "user@example.com", |
| LOW | tests/server/auth/providers/test_google.py | 367 | "email": "user@example.com", |
| LOW | tests/server/auth/providers/test_google.py | 374 | json={"sub": "12345", "email": "user@example.com"}, |
| LOW | tests/server/auth/providers/test_google.py | 312 | assert result.claims["email"] == "user@example.com" |
| LOW | …ver/providers/openapi/test_end_to_end_compatibility.py | 178 | "name": "John Doe", # Body parameter |
| LOW | tests/utilities/openapi/test_director.py | 210 | "name": "John Doe", |
| LOW | tests/utilities/openapi/test_director.py | 221 | assert body_data["name"] == "John Doe" |
| LOW | tests/utilities/openapi/test_director.py | 301 | "name": "John Doe", |
| LOW | tests/utilities/openapi/test_director.py | 310 | assert body_data["name"] == "John Doe" |
| LOW | tests/utilities/openapi/test_director.py | 1016 | flat_args = {path_param_name: 123, "name": "John Doe"} |
| LOW | tests/conformance/server.py | 166 | name: str = Field(default="John Doe", description="User name") |
| LOW | tests/deprecated/test_import_server.py | 411 | quoted_name = quote("John Doe", safe="") |
| LOW | tests/deprecated/test_import_server.py | 417 | assert content["name"] == "John Doe" |
| LOW | docs/apps/demos/dashboard.py | 21 | {"account": "Acme Corp", "value": "$84,000", "stage": "Won"}, |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | fastmcp_slim/fastmcp/server/lifespan.py | 132 | # self._fn is already a context manager factory, just call it |
| MEDIUM | fastmcp_slim/fastmcp/server/middleware/logging.py | 149 | """Middleware that provides comprehensive request and response logging. |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/ssrf.py | 204 | """Fetch URL with comprehensive SSRF protection and DNS pinning. |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/providers/in_memory.py | 111 | # The AuthorizationHandler already does robust validation using client.validate_redirect_uri |
| LOW | fastmcp_slim/fastmcp/server/auth/handlers/authorize.py | 240 | # If we can't parse the response, just return the original |
| LOW | …_slim/fastmcp/server/providers/filesystem_discovery.py | 49 | # If root is a file, just return it (if it's a .py file) |
| LOW | fastmcp_slim/fastmcp/cli/cli.py | 60 | return "npx" # On Unix-like systems, just use npx |
| LOW | fastmcp_slim/fastmcp/utilities/json_schema_type.py | 762 | # Otherwise just use the data |
| LOW | fastmcp_slim/fastmcp/utilities/cli.py | 81 | # MCPConfig - we don't process these here, just pass through |
| LOW | fastmcp_slim/fastmcp/utilities/cli.py | 94 | # Not a valid MCPServerConfig, just pass through |
| LOW | fastmcp_slim/fastmcp/utilities/cli.py | 97 | # Not a valid JSON file, just pass through |
| LOW | fastmcp_slim/fastmcp/client/tasks.py | 421 | # Unknown type - just return it |
| MEDIUM | tests/conftest.py | 198 | """Fixture that creates a FastMCP server with comprehensive tool set for provider tests.""" |
| MEDIUM | tests/server/providers/openapi/test_comprehensive.py | 371 | """Test server initialization with comprehensive spec.""" |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 881 | # |
| LOW | …tmcp/server/providers/local_provider/local_provider.py | 461 | # Note: Decorator methods (tool, resource, prompt, add_tool, add_resource, |
| LOW | fastmcp_slim/fastmcp/cli/apps_dev.py | 321 | // Find the tool and its UI resource URI |
| LOW | fastmcp_slim/fastmcp/utilities/json_schema.py | 161 | |
| LOW | fastmcp_slim/fastmcp/client/transports/config.py | 181 | transport = config.to_transport() |
| LOW | …/utilities/json_schema_type/test_real_world_schemas.py | 341 | _record_failure("other_errors", _name, schema, e) |
| LOW | examples/skills/server.py | 21 | mcp = FastMCP("Skills Server") |
| LOW | examples/skills/server.py | 41 | # - VSCodeSkillsProvider() → ~/.copilot/skills/ |
| LOW | .github/workflows/require-issue-link.yml | 1 | # Require external PRs to reference an issue with an auto-close keyword |
| LOW | .github/workflows/require-issue-link.yml | 21 | # the linked issue reopens previously closed PRs automatically. |
| LOW | .github/workflows/require-issue-link.yml | 101 | // ENFORCE_ISSUE_LINK=false means strictly read-only. |
| LOW | .github/scripts/mention/gh-get-review-threads.sh | 1 | #!/usr/bin/env bash |
| LOW | .github/scripts/mention/gh-resolve-review-thread.sh | 1 | #!/usr/bin/env bash |
| LOW | .github/scripts/pr-review/pr-comment.sh | 1 | #!/bin/bash |
| LOW | .github/scripts/pr-review/pr-comment.sh | 21 | # if err != nil { |
| LOW | .github/scripts/pr-review/pr-diff.sh | 1 | #!/bin/bash |
| LOW | .github/scripts/pr-review/pr-remove-comment.sh | 1 | #!/bin/bash |
| LOW | .github/scripts/pr-review/pr-existing-comments.sh | 1 | #!/bin/bash |
| LOW | .github/scripts/pr-review/pr-review.sh | 1 | #!/bin/bash |
| LOW | .github/actions/run-claude/action.yml | 1 | # Composite Action for running Claude Code Action |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tests/tools/test_standalone_decorator.py | 162 | def my_method(cls) -> str: |
| LOW | tests/server/test_dependencies.py | 201 | def process_data(value: int, config: str = Depends(fetch_config)) -> str: |
| LOW | tests/server/test_input_validation.py | 213 | def process_data(count: int, name: str) -> str: |
| LOW | tests/server/test_input_validation.py | 237 | def process_data(count: int, name: str) -> str: |
| LOW | tests/server/test_icons.py | 79 | def my_function(x: int) -> int: |
| LOW | tests/server/test_icons.py | 130 | def my_function() -> str: |
| LOW | tests/server/test_icons.py | 185 | def my_function(id: str) -> str: |
| LOW | tests/server/test_icons.py | 240 | def my_function(topic: str): |
| LOW | tests/server/tasks/test_server_tasks_parameter.py | 336 | async def my_function() -> str: |
| LOW | tests/server/providers/test_local_provider_prompts.py | 290 | def my_function() -> str: |
| LOW | tests/server/providers/test_local_provider_prompts.py | 237 | def my_function() -> str: |
| LOW | …erver/providers/local_provider_tools/test_decorator.py | 313 | def my_function(x: int) -> str: |
| LOW | …erver/providers/local_provider_tools/test_decorator.py | 324 | def my_function(x: int) -> str: |
| LOW | …erver/providers/local_provider_tools/test_decorator.py | 292 | def my_function(x: int) -> str: |
| LOW | tests/server/sampling/test_sampling_tool.py | 237 | def my_function(): |
| LOW | tests/utilities/test_typeadapter.py | 41 | def do_something(self, x: int) -> int: |
| LOW | tests/prompts/test_prompt.py | 240 | def process_data( |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | …stmcp_slim/fastmcp/contrib/component_manager/README.md | 108 | -H "Authorization: Bearer YOUR_TOKEN_HERE" \ |
| HIGH | …stmcp_slim/fastmcp/contrib/component_manager/README.md | 134 | -H "Authorization: Bearer YOUR_TOKEN_HERE" \ |
| HIGH | …stmcp_slim/fastmcp/contrib/component_manager/README.md | 140 | -H "Authorization: Bearer YOUR_TOKEN_HERE" \ |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | .github/scripts/mention/gh-get-review-threads.sh | 6 | # Usage: |
| LOW | .github/scripts/mention/gh-resolve-review-thread.sh | 6 | # Usage: |
| LOW | .github/scripts/pr-review/pr-comment.sh | 4 | # Usage: |
| LOW | .github/scripts/pr-review/pr-diff.sh | 4 | # Usage: |
| LOW | .github/scripts/pr-review/pr-remove-comment.sh | 4 | # Usage: |
| LOW | .github/scripts/pr-review/pr-existing-comments.sh | 4 | # Usage: |
| LOW | .github/actions/run-claude/action.yml | 6 | # Usage: |
| Severity | File | Line | Snippet |
|---|---|---|---|
| CRITICAL | tests/test_mcp_config.py | 546 | assert client.transport.transport.auth.token.get_secret_value() == "test_token" |
| CRITICAL | tests/test_mcp_config.py | 561 | assert client.transport.transport.auth.token.get_secret_value() == "test_token" |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | fastmcp_slim/fastmcp/client/transports/base.py | 67 | |
| MEDIUM | tests/client/auth/test_oauth_static_client.py | 144 | |
| MEDIUM | tests/client/transports/test_transports.py | 24 |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | docs/prefab-demo-payloads.js | 1 | window.__FASTMCP_PREFAB_DEMOS__ = {"bar-chart":"<!doctype html>\n<html lang=\"en\">\n<head>\n <title>Prefab</title>\n |
| LOW | docs/apps/demos/hitchhikers.py | 99 | Text("Don't forget to bring it.") |
| LOW | examples/apps/showcase_server.py | 49 | f"Thanks, {owner_input.rx}. Don't forget to bring it." |
| LOW | examples/apps/showcase_server.py | 52 | Text("Anonymous, I see? Don't forget to bring it.") |
| MEDIUM | .github/workflows/martian-triage-issue.yml | 155 | You may not be able to do all of these things, sometimes you may find that all you can do is provide in-dept |