Repository Analysis

PrefectHQ/fastmcp

🚀 The fast, Pythonic way to build MCP servers and clients.

42.3 Strong AI signal View on GitHub
42.3
Adjusted Score
42.3
Raw Score
100%
Time Factor
2026-05-27
Last Push
25,397
Stars
Python
Language
214,238
Lines of Code
908
Files
6620
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 2HIGH 229MEDIUM 695LOW 5694

Pattern Findings

6620 matches across 20 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers4662 hits · 4535 pts
SeverityFileLineSnippet
LOWfastmcp_slim/fastmcp/mcp_config.py54def infer_transport_type_from_url(
LOWfastmcp_slim/fastmcp/mcp_config.py74def _coerce_tool_transform_configs(tools: dict[str, Any]) -> dict[str, Any]:
LOWfastmcp_slim/fastmcp/mcp_config.py103 def _require_at_least_one_transform_field(
LOWfastmcp_slim/fastmcp/mcp_config.py122 def _to_server_and_underlying_transport(
LOW…tmcp_slim/fastmcp/experimental/transforms/code_mode.py566 def _build_execute_description(self) -> str:
LOWfastmcp_slim/fastmcp/tools/tool_transform.py616 def _create_forwarding_transform(
LOWfastmcp_slim/fastmcp/tools/tool_transform.py832 def _merge_schema_with_precedence(
LOWfastmcp_slim/fastmcp/tools/tool_transform.py1006def apply_transformations_to_tools(
LOWfastmcp_slim/fastmcp/tools/base.py495def _convert_to_single_content_block(
LOWfastmcp_slim/fastmcp/resources/types.py91 def set_binary_from_mime_type(cls, is_binary: bool, info: ValidationInfo) -> bool:
LOWfastmcp_slim/fastmcp/server/server.py600 def remove_tool_transformation(self, _tool_name: str) -> None:
LOWfastmcp_slim/fastmcp/server/telemetry.py31def get_session_span_attributes() -> dict[str, str]:
LOWfastmcp_slim/fastmcp/server/telemetry.py45def _get_parent_trace_context() -> Context | None:
LOWfastmcp_slim/fastmcp/server/low_level.py55 def client_supports_extension(self, extension_id: str) -> bool:
LOWfastmcp_slim/fastmcp/server/low_level.py176 def create_initialization_options(
LOWfastmcp_slim/fastmcp/server/context.py587 def client_supports_extension(self, extension_id: str) -> bool:
LOWfastmcp_slim/fastmcp/server/context.py1425async def _log_to_server_and_client(
LOWfastmcp_slim/fastmcp/server/http.py269def create_streamable_http_app(
LOWfastmcp_slim/fastmcp/server/elicitation.py132def parse_elicit_response_type(
LOWfastmcp_slim/fastmcp/server/elicitation.py387def validate_elicitation_json_schema(schema: dict[str, Any]) -> None:
LOWfastmcp_slim/fastmcp/server/dependencies.py180def transform_context_annotations(fn: Callable[..., Any]) -> Callable[..., Any]:
LOWfastmcp_slim/fastmcp/server/dependencies.py539def without_injected_parameters(
LOWfastmcp_slim/fastmcp/server/dependencies.py631async def _resolve_fastmcp_dependencies(
LOWfastmcp_slim/fastmcp/server/middleware/dereference.py33 async def on_list_resource_templates(
LOWfastmcp_slim/fastmcp/server/middleware/dereference.py58def _dereference_resource_template(template: ResourceTemplate) -> ResourceTemplate:
LOWfastmcp_slim/fastmcp/server/middleware/authorization.py234 async def on_list_resource_templates(
LOWfastmcp_slim/fastmcp/server/middleware/timing.py146 async def on_list_resource_templates(
LOWfastmcp_slim/fastmcp/server/middleware/caching.py513 def _matches_tool_cache_settings(self, tool_name: str) -> bool:
LOWfastmcp_slim/fastmcp/server/middleware/caching.py572def _make_call_tool_cache_key(
LOWfastmcp_slim/fastmcp/server/middleware/caching.py580def _make_read_resource_cache_key(
LOWfastmcp_slim/fastmcp/server/middleware/caching.py588def _make_get_prompt_cache_key(
LOWfastmcp_slim/fastmcp/server/middleware/middleware.py191 async def on_list_resource_templates(
LOWfastmcp_slim/fastmcp/server/tasks/subscriptions.py31async def subscribe_to_task_updates(
LOWfastmcp_slim/fastmcp/server/tasks/subscriptions.py93async def _send_status_notification(
LOWfastmcp_slim/fastmcp/server/tasks/subscriptions.py163async def _send_progress_notification(
LOWfastmcp_slim/fastmcp/server/tasks/keys.py137def get_client_task_id_from_key(task_key: str) -> str:
LOWfastmcp_slim/fastmcp/server/tasks/notifications.py76async def notification_subscriber_loop(
LOWfastmcp_slim/fastmcp/server/tasks/notifications.py246async def ensure_subscriber_running(
LOWfastmcp_slim/fastmcp/server/mixins/mcp_operations.py143 async def _list_resource_templates_mcp(
LOWfastmcp_slim/fastmcp/server/mixins/transport.py151 def _get_additional_http_routes(self: FastMCP) -> list[BaseRoute]:
LOWfastmcp_slim/fastmcp/server/mixins/lifespan.py240 def _setup_task_protocol_handlers(self: FastMCP) -> None:
LOWfastmcp_slim/fastmcp/server/auth/cimd.py631 def _extract_public_key_from_jwks(self, token: str, jwks: dict) -> str:
LOWfastmcp_slim/fastmcp/server/auth/oidc_proxy.py456 def _uses_alternate_verification(self) -> bool:
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py683 def _create_upstream_oauth_client(self) -> AsyncOAuth2Client:
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py1240 def _prepare_scopes_for_token_exchange(self, scopes: list[str]) -> list[str]:
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py1032 async def exchange_authorization_code(
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py1254 def _translate_scopes_from_idp(self, scopes: list[str]) -> list[str]:
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py1283 def _prepare_scopes_for_upstream_refresh(self, scopes: list[str]) -> list[str]:
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py1614 def _uses_alternate_verification(self) -> bool:
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/consent.py225 def _set_consent_binding_cookie(
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/consent.py242 def _clear_consent_binding_cookie(
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/consent.py253 def _verify_consent_binding_cookie(
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/consent.py266 def _build_upstream_authorize_url(
LOWfastmcp_slim/fastmcp/server/auth/providers/supabase.py153 async def oauth_authorization_server_metadata(request):
LOWfastmcp_slim/fastmcp/server/auth/providers/azure.py433 def _translate_scopes_from_idp(self, scopes: list[str]) -> list[str]:
LOWfastmcp_slim/fastmcp/server/auth/providers/azure.py453 def _build_upstream_authorize_url(
LOWfastmcp_slim/fastmcp/server/auth/providers/azure.py478 def _prepare_scopes_for_token_exchange(self, scopes: list[str]) -> list[str]:
LOWfastmcp_slim/fastmcp/server/auth/providers/azure.py504 def _prepare_scopes_for_upstream_refresh(self, scopes: list[str]) -> list[str]:
LOWfastmcp_slim/fastmcp/server/auth/providers/oci.py186 def _prepare_scopes_for_token_exchange(self, scopes: list[str]) -> list[str]:
LOWfastmcp_slim/fastmcp/server/auth/providers/descope.py181 async def oauth_authorization_server_metadata(request):
4602 more matches not shown…
Decorative Section Separators536 hits · 1786 pts
SeverityFileLineSnippet
MEDIUM…tmcp_slim/fastmcp/experimental/transforms/code_mode.py25# ---------------------------------------------------------------------------
MEDIUM…tmcp_slim/fastmcp/experimental/transforms/code_mode.py27# ---------------------------------------------------------------------------
MEDIUM…tmcp_slim/fastmcp/experimental/transforms/code_mode.py39# ---------------------------------------------------------------------------
MEDIUM…tmcp_slim/fastmcp/experimental/transforms/code_mode.py41# ---------------------------------------------------------------------------
MEDIUM…tmcp_slim/fastmcp/experimental/transforms/code_mode.py72# ---------------------------------------------------------------------------
MEDIUM…tmcp_slim/fastmcp/experimental/transforms/code_mode.py74# ---------------------------------------------------------------------------
MEDIUM…tmcp_slim/fastmcp/experimental/transforms/code_mode.py201# ---------------------------------------------------------------------------
MEDIUM…tmcp_slim/fastmcp/experimental/transforms/code_mode.py203# ---------------------------------------------------------------------------
MEDIUM…tmcp_slim/fastmcp/experimental/transforms/code_mode.py488# ---------------------------------------------------------------------------
MEDIUM…tmcp_slim/fastmcp/experimental/transforms/code_mode.py490# ---------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/server.py528 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/server.py530 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/server.py2423# -----------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/server.py2425# -----------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/context.py1314 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/context.py1316 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/tasks/notifications.py232# =============================================================================
MEDIUMfastmcp_slim/fastmcp/server/tasks/notifications.py234# =============================================================================
MEDIUMfastmcp_slim/fastmcp/server/auth/oauth_proxy/models.py20# -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/auth/oauth_proxy/models.py22# -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/auth/oauth_proxy/models.py36# -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/auth/oauth_proxy/models.py38# -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py679 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py681 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py1236 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py1238 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py1878 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py1880 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py612 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py614 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py638 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py640 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py722 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py724 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py741 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py743 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py856 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py858 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py979 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py981 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py1599 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py1601 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py2056 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py2058 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/providers/aggregate.py186 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/providers/aggregate.py188 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/providers/aggregate.py238 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/providers/aggregate.py240 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/providers/aggregate.py260 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/providers/aggregate.py262 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/providers/aggregate.py284 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/providers/aggregate.py286 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/providers/aggregate.py306 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/providers/aggregate.py308 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/providers/aggregate.py318 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/providers/aggregate.py320 # -------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/providers/proxy.py934# -----------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/providers/proxy.py936# -----------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/providers/proxy.py116# -----------------------------------------------------------------------------
MEDIUMfastmcp_slim/fastmcp/server/providers/proxy.py118# -----------------------------------------------------------------------------
476 more matches not shown…
Cross-File Repetition121 hits · 605 pts
SeverityFileLineSnippet
HIGHfastmcp_slim/fastmcp/server/providers/proxy.py0gets a client instance by calling the sync or async factory.
HIGHfastmcp_slim/fastmcp/server/providers/proxy.py0gets a client instance by calling the sync or async factory.
HIGHfastmcp_slim/fastmcp/server/providers/proxy.py0gets a client instance by calling the sync or async factory.
HIGHfastmcp_slim/fastmcp/server/providers/proxy.py0gets a client instance by calling the sync or async factory.
HIGHfastmcp_slim/fastmcp/server/providers/proxy.py0gets a client instance by calling the sync or async factory.
HIGHfastmcp_slim/fastmcp/utilities/types.py0get mime type from format or guess from file extension.
HIGHfastmcp_slim/fastmcp/utilities/types.py0get mime type from format or guess from file extension.
HIGHfastmcp_slim/fastmcp/utilities/types.py0get mime type from format or guess from file extension.
HIGHtests/test_mcp_config.py0from fastmcp import fastmcp mcp = fastmcp() @mcp.tool def add(a: int, b: int) -> int: return a + b if __name__ == '__mai
HIGHtests/test_mcp_config.py0from fastmcp import fastmcp mcp = fastmcp() @mcp.tool def add(a: int, b: int) -> int: return a + b if __name__ == '__mai
HIGHtests/test_mcp_config.py0from fastmcp import fastmcp mcp = fastmcp() @mcp.tool def add(a: int, b: int) -> int: return a + b if __name__ == '__mai
HIGHtests/test_mcp_config.py0from fastmcp import fastmcp mcp = fastmcp() @mcp.tool def add(a: int, b: int) -> int: return a + b if __name__ == '__mai
HIGHtests/test_mcp_config.py0from fastmcp import fastmcp mcp = fastmcp() @mcp.tool def add(a: int, b: int) -> int: return a + b if __name__ == '__mai
HIGHtests/test_mcp_config.py0from fastmcp import fastmcp mcp = fastmcp() @mcp.tool def add(a: int, b: int) -> int: return a + b if __name__ == '__mai
HIGHtests/cli/test_run.py0from fastmcp import fastmcp mcp = fastmcp() @mcp.tool def add(a: int, b: int) -> int: return a + b if __name__ == '__mai
HIGHtests/tools/test_standalone_decorator.py0decorated function should still be directly callable.
HIGHtests/resources/test_standalone_decorator.py0decorated function should still be directly callable.
HIGHtests/prompts/test_standalone_decorator.py0decorated function should still be directly callable.
HIGHtests/tools/tool/test_callable.py0test that callable objects with sync __call__ work.
HIGHtests/resources/test_function_resources.py0test that callable objects with sync __call__ work.
HIGHtests/prompts/test_prompt.py0test that callable objects with sync __call__ work.
HIGHtests/tools/tool/test_callable.py0test that callable objects with async __call__ work.
HIGHtests/resources/test_function_resources.py0test that callable objects with async __call__ work.
HIGHtests/prompts/test_prompt.py0test that callable objects with async __call__ work.
HIGHtests/resources/test_resource_template.py0test that match_uri_template uses the slash delimiter.
HIGHtests/resources/test_resource_template.py0test that match_uri_template uses the slash delimiter.
HIGHtests/resources/test_resource_template.py0test that match_uri_template uses the slash delimiter.
HIGHtests/resources/test_resource_template.py0test that match_uri_template uses the slash delimiter.
HIGHtests/server/middleware/test_middleware.py0middleware is applied when run_middleware=true (default).
HIGHtests/server/middleware/test_middleware.py0middleware is applied when run_middleware=true (default).
HIGHtests/server/middleware/test_middleware.py0middleware is applied when run_middleware=true (default).
HIGHtests/server/middleware/test_middleware.py0middleware is not applied when run_middleware=false.
HIGHtests/server/middleware/test_middleware.py0middleware is not applied when run_middleware=false.
HIGHtests/server/middleware/test_middleware.py0middleware is not applied when run_middleware=false.
HIGHtests/server/middleware/test_caching.py0test that caching works with a real fastmcp server.
HIGHtests/server/middleware/test_caching.py0test that caching works with a real fastmcp server.
HIGHtests/server/middleware/test_caching.py0test that caching works with a real fastmcp server.
HIGHtests/server/auth/test_oidc_proxy.py0create a valid oidc configuration dict for testing.
HIGHtests/server/auth/test_oidc_proxy_token.py0create a valid oidc configuration dict for testing.
HIGHtests/server/auth/providers/test_auth0.py0create a valid oidc configuration dict for testing.
HIGHtests/server/auth/test_oidc_proxy.py0test default configuration with explicit false strict setting.
HIGHtests/server/auth/test_oidc_proxy.py0test default configuration with explicit false strict setting.
HIGHtests/server/auth/test_oidc_proxy.py0test default configuration with explicit false strict setting.
HIGHtests/server/auth/providers/test_github.py0provide a memorystore for tests to avoid sqlite initialization on windows.
HIGHtests/server/auth/providers/test_workos.py0provide a memorystore for tests to avoid sqlite initialization on windows.
HIGHtests/server/auth/providers/test_discord.py0provide a memorystore for tests to avoid sqlite initialization on windows.
HIGHtests/server/auth/providers/test_clerk.py0provide a memorystore for tests to avoid sqlite initialization on windows.
HIGHtests/server/auth/providers/test_azure_scopes.py0provide a memorystore for tests to avoid sqlite initialization on windows.
HIGHtests/server/auth/providers/test_azure.py0provide a memorystore for tests to avoid sqlite initialization on windows.
HIGHtests/server/auth/providers/test_google.py0provide a memorystore for tests to avoid sqlite initialization on windows.
HIGHtests/server/auth/providers/test_workos.py0test that oauth endpoints are configured correctly.
HIGHtests/server/auth/providers/test_discord.py0test that oauth endpoints are configured correctly.
HIGHtests/server/auth/providers/test_azure.py0test that oauth endpoints are configured correctly.
HIGHtests/server/auth/providers/test_google.py0test that oauth endpoints are configured correctly.
HIGHtests/server/auth/providers/test_workos.py0client with headless oauth that bypasses browser interaction.
HIGHtests/server/auth/providers/test_supabase.py0client with headless oauth that bypasses browser interaction.
HIGHtests/server/auth/providers/test_descope.py0client with headless oauth that bypasses browser interaction.
HIGHtests/server/auth/providers/test_scalekit.py0client with headless oauth that bypasses browser interaction.
HIGHtests/client/auth/test_oauth_client.py0client with headless oauth that bypasses browser interaction.
HIGHtests/server/auth/providers/test_supabase.py0test that environment variables are loaded correctly.
61 more matches not shown…
Unused Imports465 hits · 459 pts
SeverityFileLineSnippet
LOWfastmcp_slim/fastmcp/types.py19
LOWfastmcp_slim/fastmcp/settings.py1
LOWfastmcp_slim/fastmcp/exceptions.py6
LOWfastmcp_slim/fastmcp/mcp_config.py25
LOWfastmcp_slim/fastmcp/dependencies.py11
LOWfastmcp_slim/fastmcp/dependencies.py11
LOWfastmcp_slim/fastmcp/dependencies.py11
LOWfastmcp_slim/fastmcp/dependencies.py13
LOWfastmcp_slim/fastmcp/dependencies.py13
LOWfastmcp_slim/fastmcp/dependencies.py13
LOWfastmcp_slim/fastmcp/dependencies.py13
LOWfastmcp_slim/fastmcp/dependencies.py13
LOWfastmcp_slim/fastmcp/dependencies.py13
LOWfastmcp_slim/fastmcp/dependencies.py13
LOWfastmcp_slim/fastmcp/dependencies.py13
LOWfastmcp_slim/fastmcp/dependencies.py13
LOWfastmcp_slim/fastmcp/dependencies.py13
LOWfastmcp_slim/fastmcp/decorators.py3
LOW…lim/fastmcp/experimental/sampling/handlers/__init__.py3
LOW…_slim/fastmcp/experimental/sampling/handlers/openai.py3
LOW…p_slim/fastmcp/experimental/server/openapi/__init__.py16
LOW…p_slim/fastmcp/experimental/server/openapi/__init__.py17
LOW…p_slim/fastmcp/experimental/server/openapi/__init__.py17
LOW…p_slim/fastmcp/experimental/server/openapi/__init__.py17
LOW…p_slim/fastmcp/experimental/server/openapi/__init__.py17
LOW…p_slim/fastmcp/experimental/server/openapi/__init__.py17
LOW…p_slim/fastmcp/experimental/server/openapi/__init__.py17
LOW…p_slim/fastmcp/experimental/server/openapi/__init__.py17
LOW…p_slim/fastmcp/experimental/server/openapi/__init__.py26
LOW…p_slim/fastmcp/experimental/server/openapi/__init__.py26
LOW…lim/fastmcp/experimental/utilities/openapi/__init__.py7
LOW…lim/fastmcp/experimental/utilities/openapi/__init__.py7
LOW…lim/fastmcp/experimental/utilities/openapi/__init__.py7
LOW…lim/fastmcp/experimental/utilities/openapi/__init__.py7
LOW…lim/fastmcp/experimental/utilities/openapi/__init__.py7
LOW…lim/fastmcp/experimental/utilities/openapi/__init__.py7
LOW…lim/fastmcp/experimental/utilities/openapi/__init__.py7
LOW…lim/fastmcp/experimental/utilities/openapi/__init__.py7
LOW…lim/fastmcp/experimental/utilities/openapi/__init__.py7
LOWfastmcp_slim/fastmcp/tools/__init__.py3
LOWfastmcp_slim/fastmcp/tools/__init__.py3
LOWfastmcp_slim/fastmcp/tools/__init__.py4
LOWfastmcp_slim/fastmcp/tools/__init__.py4
LOWfastmcp_slim/fastmcp/tools/__init__.py5
LOWfastmcp_slim/fastmcp/tools/__init__.py5
LOWfastmcp_slim/fastmcp/tools/function_parsing.py3
LOWfastmcp_slim/fastmcp/resources/__init__.py3
LOWfastmcp_slim/fastmcp/resources/__init__.py3
LOWfastmcp_slim/fastmcp/resources/__init__.py4
LOWfastmcp_slim/fastmcp/resources/__init__.py4
LOWfastmcp_slim/fastmcp/resources/__init__.py4
LOWfastmcp_slim/fastmcp/resources/__init__.py5
LOWfastmcp_slim/fastmcp/resources/__init__.py6
LOWfastmcp_slim/fastmcp/resources/__init__.py6
LOWfastmcp_slim/fastmcp/resources/__init__.py6
LOWfastmcp_slim/fastmcp/resources/__init__.py6
LOWfastmcp_slim/fastmcp/resources/__init__.py6
LOWfastmcp_slim/fastmcp/resources/types.py3
LOWfastmcp_slim/fastmcp/server/proxy.py8
LOWfastmcp_slim/fastmcp/server/proxy.py21
405 more matches not shown…
Self-Referential Comments138 hits · 421 pts
SeverityFileLineSnippet
MEDIUMfastmcp_slim/fastmcp/server/server.py2464 # Create a proxy to a remote server
MEDIUMfastmcp_slim/fastmcp/server/server.py2467 # Create a proxy to another FastMCP server
MEDIUMfastmcp_slim/fastmcp/server/low_level.py123 # Create the middleware context.
MEDIUMfastmcp_slim/fastmcp/server/http.py303 # Create the ASGI app wrapper (session manager is set each lifespan cycle)
MEDIUMfastmcp_slim/fastmcp/server/http.py359 # Create a lifespan manager to start and stop the session manager
MEDIUMfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py817 # Create a ProxyDCRClient with configured redirect URI validation
MEDIUMfastmcp_slim/fastmcp/server/providers/proxy.py586 # Create a proxy provider for a remote server
MEDIUMfastmcp_slim/fastmcp/server/providers/proxy.py879 # Create a proxy server using create_proxy (recommended)
MEDIUM…tmcp/server/providers/local_provider/local_provider.py11# Create a reusable provider with tools
MEDIUM…slim/fastmcp/server/providers/skills/skill_provider.py130 # Create a SkillFileResource that can read the file
MEDIUMfastmcp_slim/fastmcp/cli/install/__init__.py13# Create a cyclopts app for install subcommands
MEDIUMfastmcp_slim/fastmcp/cli/install/cursor.py35 # Create the configuration structure expected by Cursor
MEDIUMfastmcp_slim/fastmcp/cli/install/cursor.py128 # Create the config file if it doesn't exist
MEDIUMfastmcp_slim/fastmcp/utilities/logging.py66 # Create a standard StreamHandler for stderr
MEDIUMfastmcp_slim/fastmcp/utilities/json_schema_type.py501 # Create a copy of the schema for each type, but keep all constraints
MEDIUMfastmcp_slim/fastmcp/utilities/types.py206 # Create a copy of annotations without the excluded parameters
MEDIUMfastmcp_slim/fastmcp/utilities/json_schema.py282 # Create a new schema by copying the referenced definition
MEDIUMfastmcp_slim/fastmcp/utilities/cli.py207 # Create the logo text
MEDIUMfastmcp_slim/fastmcp/utilities/cli.py211 # Create the main title
MEDIUMfastmcp_slim/fastmcp/utilities/cli.py214 # Create the information table
MEDIUMfastmcp_slim/fastmcp/utilities/openapi/schemas.py160 # Create a new schema that allows null in addition to the original type
MEDIUMfastmcp_slim/fastmcp/utilities/openapi/schemas.py570 # Create a wrapped schema that contains the original schema under a "result" key
MEDIUMfastmcp_slim/fastmcp/utilities/openapi/director.py209 # Create a mapping from parameter names to their locations
MEDIUMfastmcp_slim/fastmcp/client/client.py434 # Create a fresh client for each concurrent operation
MEDIUMfastmcp_slim/fastmcp/client/client.py450 # Create a fresh session kwargs dict so the clone doesn't share
MEDIUMfastmcp_slim/fastmcp/client/auth/oauth.py280 # Create the full static client info directly which will avoid DCR.
MEDIUMfastmcp_slim/fastmcp/client/transports/config.py49 # Create a config with multiple servers
MEDIUMfastmcp_slim/fastmcp/client/transports/config.py63 # Create a client with the config
MEDIUMtests/test_mcp_config.py955 # Create a config with multiple servers
MEDIUMtests/tools/test_tool_future_annotations.py47 # Create a simple 1x1 white pixel PNG
MEDIUMtests/tools/test_tool_future_annotations.py141 # Define a tool with modern union syntax
MEDIUMtests/server/test_auth_integration.py116 # Create a RefreshToken object that matches what is expected in later code
MEDIUMtests/server/test_auth_integration.py829 # Create a test client with the token
MEDIUMtests/server/test_auth_integration_errors.py115 # Create a RefreshToken object that matches what is expected in later code
MEDIUMtests/server/test_server.py200 # Create a server with resources
MEDIUMtests/server/test_server.py215 # Create a main server and mount the resource server
MEDIUMtests/server/test_context.py344 # Create a mock meta object with attributes
MEDIUMtests/server/test_event_store.py207 # Create a realistic JSON-RPC request wrapped in JSONRPCMessage
MEDIUMtests/server/middleware/test_timing.py287 # Create a custom logger that writes to a string buffer
MEDIUMtests/server/tasks/test_task_methods.py81 # Create a task that won't complete until signaled
MEDIUMtests/server/auth/test_oauth_consent_page.py146 # Create a transaction manually
MEDIUMtests/server/auth/test_oauth_consent_page.py208 # Create a transaction
MEDIUMtests/server/auth/test_oauth_consent_page.py274 # Create a transaction
MEDIUMtests/server/auth/test_auth_provider.py41 # Create a static token verifier with a test token
MEDIUMtests/server/auth/test_oauth_consent_flow.py213 # Create a test app with OAuth routes
MEDIUMtests/server/auth/test_oauth_consent_flow.py673 # Create a tampered cookie (invalid signature)
MEDIUMtests/server/auth/test_jwt_provider.py382 # Create a token with a different secret
MEDIUMtests/server/auth/test_jwt_provider_bearer.py400 # Create a token with a different key pair
MEDIUMtests/server/auth/test_ssrf_protection.py274 # Create a dummy token to trigger JWKS fetch
MEDIUMtests/server/auth/test_enhanced_error_responses.py259 # Create a valid token with wrong scopes
MEDIUMtests/server/auth/oauth_proxy/test_ui.py67 # Create a minimal OAuth proxy
MEDIUMtests/server/auth/oauth_proxy/test_tokens.py259 # Create a mock 401 response like the SDK returns for auth failures
MEDIUMtests/server/auth/oauth_proxy/test_tokens.py304 # Create a mock 400 response like the SDK returns for invalid_grant
MEDIUMtests/server/providers/test_skills_provider.py648 # Create a file outside the skill directory
MEDIUMtests/server/providers/test_skills_provider.py275 # Create a simple skill
MEDIUMtests/server/providers/test_skills_provider.py290 # Create a skill with supporting files
MEDIUMtests/server/providers/proxy/test_proxy_client.py407 # Create a disconnected client (should use fresh sessions per request)
MEDIUM…s/server/providers/openapi/test_openapi_performance.py75 # Create a medium-sized synthetic schema
MEDIUMtests/server/providers/openapi/test_comprehensive.py477 # Create a mock client that tracks requests
MEDIUMtests/server/http/test_custom_routes.py40 # Create the app by calling the constructor function directly
78 more matches not shown…
Docstring Block Structure62 hits · 310 pts
SeverityFileLineSnippet
HIGHfastmcp_slim/fastmcp/tools/tool_transform.py47Forward to parent tool with argument transformation applied. This function can only be called from within a transfo
HIGHfastmcp_slim/fastmcp/tools/tool_transform.py77Forward directly to parent tool without transformation. This function bypasses all argument transformation and vali
HIGHfastmcp_slim/fastmcp/tools/tool_transform.py386Create a transformed tool from a parent tool. Args: tool: The parent tool to transform.
HIGHfastmcp_slim/fastmcp/server/server.py1173Call a tool by name. This is the public API for executing tools. By default, middleware is applied. Ar
HIGHfastmcp_slim/fastmcp/server/server.py1334Read a resource by URI. This is the public API for reading resources. By default, middleware is applied.
HIGHfastmcp_slim/fastmcp/server/server.py1514Render a prompt by name. This is the public API for rendering prompts. By default, middleware is applied.
HIGHfastmcp_slim/fastmcp/server/context.py1210Send an elicitation request from a background task (SEP-1686). This method handles elicitation when running in
HIGHfastmcp_slim/fastmcp/server/dependencies.py1357Get a specific claim from the access token. This dependency extracts a single claim value from the current access t
HIGHfastmcp_slim/fastmcp/server/lifespan.py91Compose with another lifespan using the | operator. Args: other: Another Lifespan instance.
HIGHfastmcp_slim/fastmcp/server/tasks/keys.py47Build Docket task key with embedded metadata. When ``task_scope`` is ``None`` the task is anonymous and lives in th
HIGHfastmcp_slim/fastmcp/server/tasks/keys.py81Parse Docket task key to extract metadata. Args: task_key: Encoded task key from Docket Returns:
HIGHfastmcp_slim/fastmcp/server/tasks/keys.py138Extract just the client task ID from a task key. Args: task_key: Full encoded task key Returns:
HIGHfastmcp_slim/fastmcp/server/tasks/routing.py32Check task mode and submit to background if requested. Args: component: The MCP component task_type
HIGHfastmcp_slim/fastmcp/server/tasks/elicitation.py54Send an elicitation request from a background task. This function handles the complexity of eliciting user input wh
HIGHfastmcp_slim/fastmcp/server/tasks/requests.py77Look up task execution and metadata from Redis. Consolidates the common pattern of fetching task metadata from Redi
HIGHfastmcp_slim/fastmcp/server/auth/ssrf.py99Resolve hostname to IP addresses using DNS. Args: hostname: Hostname to resolve port: Port number (
HIGHfastmcp_slim/fastmcp/server/auth/ssrf.py148Validate URL for SSRF and resolve to IPs. Args: url: URL to validate require_path: If True, require
HIGHfastmcp_slim/fastmcp/server/auth/ssrf.py204Fetch URL with comprehensive SSRF protection and DNS pinning. Security measures: 1. HTTPS only 2. DNS resol
HIGHfastmcp_slim/fastmcp/server/auth/cimd.py300Fetch and validate a CIMD document with SSRF protection. Uses ssrf_safe_fetch_response for the HTTP layer, whic
HIGHfastmcp_slim/fastmcp/server/auth/cimd.py512Validate JWT assertion from client. Args: assertion: The JWT assertion string client_id
HIGHfastmcp_slim/fastmcp/server/auth/cimd.py632Extract public key from inline JWKS. Args: token: JWT token to extract kid from jwks: J
HIGHfastmcp_slim/fastmcp/server/auth/cimd.py781Validate JWT assertion for private_key_jwt auth. Args: assertion: JWT assertion string from client
HIGHfastmcp_slim/fastmcp/server/auth/jwt_issuer.py223Verify and decode a FastMCP token. Validates JWT signature, expiration, issuer, audience, and token type.
HIGHfastmcp_slim/fastmcp/server/auth/providers/azure.py608Get a cached or new OnBehalfOfCredential for OBO token exchange. Credentials are cached by user assertion so th
HIGHfastmcp_slim/fastmcp/server/auth/providers/azure.py841Exchange 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.py122Import a Python file as a module. If the file is part of a package (directory has __init__.py), imports it as a
HIGHfastmcp_slim/fastmcp/server/sampling/run.py142Determine whether to use fallback handler or client for sampling. Args: context: The MCP context. n
HIGHfastmcp_slim/fastmcp/server/sampling/sampling_tool.py92Create a SamplingTool from a function. The function's signature is analyzed to generate a JSON schema for
HIGHfastmcp_slim/fastmcp/utilities/auth.py11Decode a JWT part (header or payload) without signature verification. Args: token: JWT token string (header
HIGHfastmcp_slim/fastmcp/utilities/auth.py33Decode JWT header without signature verification. Useful for extracting the key ID (kid) for JWKS lookup. Args
HIGHfastmcp_slim/fastmcp/utilities/auth.py50Decode JWT payload without signature verification. Use only for tokens received directly from trusted sources (e.g.
HIGHfastmcp_slim/fastmcp/utilities/skills.py88Get the manifest for a specific skill. Args: client: Connected FastMCP client skill_name: Name of t
HIGHfastmcp_slim/fastmcp/utilities/skills.py134Download a skill and all its files to a local directory. Creates a subdirectory named after the skill containing al
HIGHfastmcp_slim/fastmcp/utilities/json_schema_type.py168Convert JSON schema to appropriate Python type with validation. Args: schema: A JSON Schema dictionary defi
HIGHfastmcp_slim/fastmcp/utilities/pagination.py55Paginate a sequence of items. Args: items: The full sequence to paginate. cursor: Optional cursor f
HIGHfastmcp_slim/fastmcp/utilities/openapi/parser.py592 Extract only the schema definitions needed for input (parameters and request body). Args:
HIGHfastmcp_slim/fastmcp/utilities/openapi/schemas.py78 Replace openapi $ref with jsonschema $defs recursively. Examples: - {"type": "object", "properties": {"$re
HIGH…cp/utilities/mcp_server_config/v1/mcp_server_config.py224Load configuration from a JSON file. Args: file_path: Path to the configuration file Retur
HIGHfastmcp_slim/fastmcp/apps/file_upload.py233Read a file's contents by name. Args: name: The filename to read. ctx: The current requ
HIGHfastmcp_slim/fastmcp/client/tasks.py213Wait for task to reach a specific state or complete. Uses event-based waiting when notifications are available
HIGHfastmcp_slim/fastmcp/client/client.py487Send an initialize request to the server. This method performs the MCP initialization handshake with the server
HIGHfastmcp_slim/fastmcp/client/client.py714Await a coroutine while monitoring the session task for errors. When using HTTP transports, server errors (4xx/
HIGHfastmcp_slim/fastmcp/client/client.py854Send a completion request and return the complete MCP protocol result. Args: ref (mcp.types.Resourc
HIGHfastmcp_slim/fastmcp/client/client.py885Send a completion request to the server. Args: ref (mcp.types.ResourceTemplateReference | mcp.types
HIGHfastmcp_slim/fastmcp/client/mixins/tools.py43Send a tools/list request and return the complete MCP protocol result. Args: cursor: Optional pagin
HIGHfastmcp_slim/fastmcp/client/mixins/tools.py73Retrieve all tools available on the server. This method automatically fetches all pages if the server paginates
HIGHfastmcp_slim/fastmcp/client/mixins/tools.py126Send a tools/call request and return the complete MCP protocol result. This method returns the raw CallToolResu
HIGHfastmcp_slim/fastmcp/client/mixins/tools.py254Call a tool on the server. Unlike call_tool_mcp, this method raises a ToolError if the tool call results in an
HIGHfastmcp_slim/fastmcp/client/mixins/prompts.py39Send a prompts/list request and return the complete MCP protocol result. Args: cursor: Optional pag
HIGHfastmcp_slim/fastmcp/client/mixins/prompts.py69Retrieve all prompts available on the server. This method automatically fetches all pages if the server paginat
HIGHfastmcp_slim/fastmcp/client/mixins/prompts.py119Send a prompts/get request and return the complete MCP protocol result. Args: name (str): The name
HIGHfastmcp_slim/fastmcp/client/mixins/prompts.py217Retrieve a rendered prompt message list from the server. Args: name (str): The name of the prompt t
HIGHfastmcp_slim/fastmcp/client/mixins/task_management.py34Query the status of a background task. Sends a 'tasks/get' MCP protocol request over the existing transport.
HIGHfastmcp_slim/fastmcp/client/mixins/task_management.py57Retrieve the raw result of a completed background task. Sends a 'tasks/result' MCP protocol request over the ex
HIGHfastmcp_slim/fastmcp/client/mixins/task_management.py90List background tasks. Sends a 'tasks/list' MCP protocol request to the server. If the server returns a
HIGHfastmcp_slim/fastmcp/client/mixins/task_management.py136Cancel a task, transitioning it to cancelled state. Sends a 'tasks/cancel' MCP protocol request. Task will halt
HIGHfastmcp_slim/fastmcp/client/mixins/resources.py38Send a resources/list request and return the complete MCP protocol result. Args: cursor: Optional p
HIGHfastmcp_slim/fastmcp/client/mixins/resources.py68Retrieve all resources available on the server. This method automatically fetches all pages if the server pagin
HIGHfastmcp_slim/fastmcp/client/mixins/resources.py114Send a resources/listResourceTemplates request and return the complete MCP protocol result. Args: c
HIGHfastmcp_slim/fastmcp/client/mixins/resources.py144Retrieve all resource templates available on the server. This method automatically fetches all pages if the ser
2 more matches not shown…
Cross-Language Confusion43 hits · 238 pts
SeverityFileLineSnippet
HIGHfastmcp_slim/fastmcp/cli/apps_dev.py751 if (d && typeof d === "object") return d.msg || d.message || JSON.stringify(d);
HIGHfastmcp_slim/fastmcp/cli/apps_dev.py751 if (d && typeof d === "object") return d.msg || d.message || JSON.stringify(d);
HIGHfastmcp_slim/fastmcp/cli/apps_dev.py752 return d || b.params.level || "";
HIGHfastmcp_slim/fastmcp/cli/apps_dev.py756 if (b.error) return "error: " + (b.error.message || JSON.stringify(b.error));
HIGHfastmcp_slim/fastmcp/cli/apps_dev.py757 if (b.result && typeof b.result === "object") {
HIGHfastmcp_slim/fastmcp/cli/apps_dev.py763 if (first && first.text) {
HIGHfastmcp_slim/fastmcp/cli/apps_dev.py340 const transport = new PostMessageTransport(iframe.contentWindow, null);
HIGHfastmcp_slim/fastmcp/cli/apps_dev.py610 if (activeFilters[allFilterKeys[i]]) on.push(allFilterKeys[i]);
HIGHfastmcp_slim/fastmcp/cli/apps_dev.py622 var qs = params.toString();
HIGHfastmcp_slim/fastmcp/cli/apps_dev.py624 history.replaceState(null, "", url);
HIGHfastmcp_slim/fastmcp/cli/apps_dev.py693 if (fp !== null) {
HIGHfastmcp_slim/fastmcp/cli/apps_dev.py732 if (lv && levelOrder.indexOf(lv) < minLevel) return false;
HIGHfastmcp_slim/fastmcp/cli/apps_dev.py782 && (entry.body.error || (entry.body.result && entry.body.result.isError));
HIGHfastmcp_slim/fastmcp/cli/apps_dev.py811 if (entry.direction === "notification" && entry.body && entry.body.params) {
HIGHfastmcp_slim/fastmcp/cli/apps_dev.py833 navigator.clipboard.writeText(JSON.stringify(entry.body, null, 2));
HIGHfastmcp_slim/fastmcp/cli/apps_dev.py853 detail.textContent = JSON.stringify(entry.body, null, 2);
HIGHfastmcp_slim/fastmcp/cli/apps_dev.py873 var atBottom = !panelVisible || entries.scrollHeight - entries.scrollTop - entries.clientHeight < 40;
HIGHfastmcp_slim/fastmcp/cli/apps_dev.py880 if (atBottom || (firstPoll && panelVisible)) entries.scrollTop = entries.scrollHeight;
HIGHfastmcp_slim/fastmcp/cli/apps_dev.py892 if (!data || typeof data !== "object") return;
HIGHfastmcp_slim/fastmcp/utilities/json_schema_type.py6- Basic types (string, number, integer, boolean, null)
HIGHfastmcp_slim/fastmcp/utilities/json_schema_type.py479 # Check if one of the types is None (null)
HIGHfastmcp_slim/fastmcp/utilities/openapi/schemas.py156 # If it's already nullable (type includes null), don't modify
HIGHfastmcp_slim/fastmcp/apps/file_upload.py313 with If(STATE.stored.length()):
HIGHfastmcp_slim/fastmcp/apps/file_upload.py315 STATE.stored.length(), # ty:ignore[invalid-argument-type]
HIGHfastmcp_slim/fastmcp/apps/file_upload.py334 with If(STATE.pending.length()), Column(gap=2):
HIGHfastmcp_slim/fastmcp/apps/file_upload.py365 with If(STATE.stored.length()):
HIGHfastmcp_slim/fastmcp/apps/file_upload.py390 with If(STATE.stored.length()):
HIGHfastmcp_slim/fastmcp/apps/file_upload.py392 f"{STATE.stored.length()}"
HIGHfastmcp_slim/fastmcp/apps/file_upload.py393 f" {STATE.stored.length().pluralize('file')}"
HIGHtests/tools/tool/test_content.py58 ([None], "[null]"),
HIGHtests/tools/tool/test_content.py59 ([None, None], "[null,null]"),
HIGHtests/tools/tool/test_content.py78 ([1, "two", None, {"c": 3}, False], '[1,"two",null,{"c":3},false]'),
HIGHtests/server/middleware/test_logging.py146 "payload": '{"method":"tools/call","params":{"task":null,"_meta":null,"name":"test_method","argument
HIGHtests/server/middleware/test_logging.py301 '{"event": "request_start", "method": "test_method", "source": "client", "payload": "{\\"method\\":\\"re
HIGHtests/server/middleware/test_logging.py329 '{"event": "request_start", "method": "test_method", "source": "client", "payload": "{\\"name\\":\\"tmpl
HIGHtests/server/middleware/test_logging.py361 '{"event": "request_start", "method": "test_method", "source": "client", "payload": "{\\"method\\":\\"to
HIGHtests/server/middleware/test_logging.py536 'event=request_start method=tools/call source=client payload={"task":null,"_meta":null,"name":"simple_op
HIGHtests/server/middleware/test_logging.py559 '{"event": "request_start", "method": "tools/call", "source": "client", "payload": "{\\"task\\":null,\\"
HIGHtests/server/middleware/test_logging.py652event=request_start method=tools/call source=client payload={"task":null,"_meta":null,"name":"simple_operation","argumen
HIGHtests/utilities/openapi/test_nullable_fields.py440 """Test that nullable enum validates null, enum values, and rejects invalid values."""
HIGHtests/deprecated/test_tool_injection_middleware.py72 text='[{"name":"greeting","title":null,"description":"Generate a greeting message.","arguments":[{"n
HIGHtests/deprecated/test_tool_injection_middleware.py118 text='{"_meta":null,"description":"Generate a greeting message.","messages":[{"role":"user","content
HIGHtests/deprecated/test_tool_injection_middleware.py234 text='{"contents":[{"content":"debug=true","mime_type":"text/plain","meta":null}],"meta":null}',
Excessive Try-Catch Wrapping186 hits · 195 pts
SeverityFileLineSnippet
LOWfastmcp_slim/fastmcp/tools/tool_transform.py360 except Exception:
LOWfastmcp_slim/fastmcp/tools/function_parsing.py235 except Exception as e:
LOWfastmcp_slim/fastmcp/tools/base.py485 except Exception as e:
LOWfastmcp_slim/fastmcp/resources/types.py109 except Exception as e:
LOWfastmcp_slim/fastmcp/resources/types.py172 except Exception as e:
LOWfastmcp_slim/fastmcp/resources/types.py187 except Exception as e:
LOWfastmcp_slim/fastmcp/server/server.py1288 except Exception as e:
LOWfastmcp_slim/fastmcp/server/server.py1422 except Exception as e:
LOWfastmcp_slim/fastmcp/server/server.py1466 except Exception as e:
LOWfastmcp_slim/fastmcp/server/server.py1585 except Exception as e:
LOWfastmcp_slim/fastmcp/server/telemetry.py97 except Exception as e:
LOWfastmcp_slim/fastmcp/server/telemetry.py132 except Exception as e:
LOWfastmcp_slim/fastmcp/server/context.py1278 except Exception as e:
LOWfastmcp_slim/fastmcp/server/http.py388 except Exception:
LOWfastmcp_slim/fastmcp/server/dependencies.py210 except Exception:
LOWfastmcp_slim/fastmcp/server/dependencies.py528 except Exception as e:
LOWfastmcp_slim/fastmcp/server/dependencies.py612 except Exception:
LOWfastmcp_slim/fastmcp/server/dependencies.py683 except Exception as error:
LOWfastmcp_slim/fastmcp/server/middleware/logging.py41 except Exception as e:
LOWfastmcp_slim/fastmcp/server/middleware/logging.py141 except Exception as e:
LOW…stmcp_slim/fastmcp/server/middleware/error_handling.py78 except Exception as callback_error:
LOW…stmcp_slim/fastmcp/server/middleware/error_handling.py124 except Exception as error:
LOW…stmcp_slim/fastmcp/server/middleware/error_handling.py209 except Exception as error:
LOWfastmcp_slim/fastmcp/server/middleware/timing.py51 except Exception as e:
LOWfastmcp_slim/fastmcp/server/middleware/timing.py103 except Exception as e:
LOWfastmcp_slim/fastmcp/server/tasks/subscriptions.py89 except Exception as e:
LOWfastmcp_slim/fastmcp/server/tasks/handlers.py216 except Exception as e:
LOWfastmcp_slim/fastmcp/server/tasks/context.py271 except Exception:
LOWfastmcp_slim/fastmcp/server/tasks/elicitation.py161 except Exception as e:
LOWfastmcp_slim/fastmcp/server/tasks/elicitation.py176 except Exception:
LOWfastmcp_slim/fastmcp/server/tasks/elicitation.py210 except Exception as e:
LOWfastmcp_slim/fastmcp/server/tasks/elicitation.py226 except Exception as cleanup_error:
LOWfastmcp_slim/fastmcp/server/tasks/elicitation.py274 except Exception as e:
LOWfastmcp_slim/fastmcp/server/tasks/notifications.py132 except Exception as send_error:
LOWfastmcp_slim/fastmcp/server/tasks/notifications.py158 except Exception as e:
LOWfastmcp_slim/fastmcp/server/tasks/requests.py190 except Exception as error:
LOWfastmcp_slim/fastmcp/server/tasks/requests.py295 except Exception as error:
LOWfastmcp_slim/fastmcp/server/mixins/lifespan.py112 except Exception as e:
LOWfastmcp_slim/fastmcp/server/auth/auth.py603 except Exception:
LOWfastmcp_slim/fastmcp/server/auth/cimd.py395 except Exception as e:
LOWfastmcp_slim/fastmcp/server/auth/oidc_proxy.py128 except Exception as e:
LOWfastmcp_slim/fastmcp/server/auth/oidc_proxy.py167 except Exception:
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/models.py187 except Exception as e:
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py1874 except Exception as e:
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py769 except Exception as e:
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py1378 except Exception as e:
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py1417 except Exception as e:
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py1816 except Exception as e:
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py1833 except Exception:
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py1921 except Exception as e:
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py2199 except Exception as e:
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py2252 except Exception as e:
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/consent.py110 except Exception:
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/consent.py138 except Exception:
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/consent.py190 except Exception:
LOWfastmcp_slim/fastmcp/server/auth/providers/supabase.py163 except Exception as e:
LOWfastmcp_slim/fastmcp/server/auth/providers/clerk.py203 except Exception as e:
LOWfastmcp_slim/fastmcp/server/auth/providers/clerk.py235 except Exception as e:
LOWfastmcp_slim/fastmcp/server/auth/providers/azure.py603 except Exception as e:
LOWfastmcp_slim/fastmcp/server/auth/providers/azure.py671 except Exception:
126 more matches not shown…
Deep Nesting183 hits · 172 pts
SeverityFileLineSnippet
LOWfastmcp_slim/fastmcp/tools/tool_transform.py270
LOWfastmcp_slim/fastmcp/tools/tool_transform.py371
LOWfastmcp_slim/fastmcp/tools/tool_transform.py616
LOWfastmcp_slim/fastmcp/tools/tool_transform.py832
LOWfastmcp_slim/fastmcp/tools/tool_transform.py717
LOWfastmcp_slim/fastmcp/tools/function_parsing.py131
LOWfastmcp_slim/fastmcp/tools/function_tool.py284
LOWfastmcp_slim/fastmcp/tools/base.py86
LOWfastmcp_slim/fastmcp/resources/template.py80
LOWfastmcp_slim/fastmcp/resources/template.py453
LOWfastmcp_slim/fastmcp/server/server.py615
LOWfastmcp_slim/fastmcp/server/server.py695
LOWfastmcp_slim/fastmcp/server/server.py749
LOWfastmcp_slim/fastmcp/server/server.py834
LOWfastmcp_slim/fastmcp/server/server.py884
LOWfastmcp_slim/fastmcp/server/server.py966
LOWfastmcp_slim/fastmcp/server/server.py1020
LOWfastmcp_slim/fastmcp/server/server.py1092
LOWfastmcp_slim/fastmcp/server/server.py1164
LOWfastmcp_slim/fastmcp/server/server.py1326
LOWfastmcp_slim/fastmcp/server/low_level.py74
LOWfastmcp_slim/fastmcp/server/elicitation.py132
LOWfastmcp_slim/fastmcp/server/elicitation.py387
LOWfastmcp_slim/fastmcp/server/dependencies.py180
LOWfastmcp_slim/fastmcp/server/dependencies.py467
LOWfastmcp_slim/fastmcp/server/dependencies.py631
LOWfastmcp_slim/fastmcp/server/middleware/dereference.py67
LOW…stmcp_slim/fastmcp/server/middleware/error_handling.py81
LOWfastmcp_slim/fastmcp/server/tasks/notifications.py76
LOWfastmcp_slim/fastmcp/server/tasks/requests.py220
LOWfastmcp_slim/fastmcp/server/mixins/lifespan.py91
LOWfastmcp_slim/fastmcp/server/auth/ssrf.py239
LOWfastmcp_slim/fastmcp/server/auth/cimd.py224
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/models.py168
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py746
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py1717
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py1928
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/consent.py446
LOWfastmcp_slim/fastmcp/server/auth/providers/clerk.py94
LOWfastmcp_slim/fastmcp/server/auth/providers/jwt.py313
LOWfastmcp_slim/fastmcp/server/auth/providers/jwt.py399
LOWfastmcp_slim/fastmcp/server/auth/providers/jwt.py416
LOWfastmcp_slim/fastmcp/server/auth/handlers/authorize.py196
LOWfastmcp_slim/fastmcp/server/providers/aggregate.py118
LOWfastmcp_slim/fastmcp/server/providers/aggregate.py156
LOWfastmcp_slim/fastmcp/server/providers/proxy.py166
LOWfastmcp_slim/fastmcp/server/providers/proxy.py289
LOWfastmcp_slim/fastmcp/server/providers/filesystem.py149
LOW…_slim/fastmcp/server/providers/filesystem_discovery.py119
LOW…_slim/fastmcp/server/providers/filesystem_discovery.py235
LOW…tmcp/server/providers/local_provider/local_provider.py113
LOW…tmcp/server/providers/local_provider/local_provider.py178
LOW…cp/server/providers/local_provider/decorators/tools.py126
LOW…tmcp_slim/fastmcp/server/providers/openapi/provider.py71
LOW…stmcp_slim/fastmcp/server/providers/openapi/routing.py86
LOW…cp_slim/fastmcp/server/providers/openapi/components.py180
LOW…cp_slim/fastmcp/server/providers/openapi/components.py287
LOW…slim/fastmcp/server/providers/skills/skill_provider.py228
LOW…slim/fastmcp/server/providers/skills/skill_provider.py331
LOWfastmcp_slim/fastmcp/server/sampling/run.py118
123 more matches not shown…
Redundant / Tautological Comments83 hits · 126 pts
SeverityFileLineSnippet
LOWfastmcp_slim/fastmcp/mcp_config.py309 # Check if any values look like server configs
LOWfastmcp_slim/fastmcp/tools/tool_transform.py291 # Check if this parameter has a default_factory from transform_args
LOWfastmcp_slim/fastmcp/tools/tool_transform.py498 # Check if function returns ToolResult (or subclass) - if so, don't fall back to parent.
LOWfastmcp_slim/fastmcp/tools/tool_transform.py529 # Check if function is missing any parameters required after transformation
LOWfastmcp_slim/fastmcp/tools/tool_transform.py649 # Check if parameter is in transform_args
LOWfastmcp_slim/fastmcp/tools/function_parsing.py290 # Check if schema is an object type, resolving $ref references
LOWfastmcp_slim/fastmcp/resources/template.py615 # Check if required parameters are a subset of the path parameters
LOWfastmcp_slim/fastmcp/resources/template.py621 # Check if all URI parameters are valid function parameters (skip if **kwargs present)
LOWfastmcp_slim/fastmcp/server/elicitation.py61 # Check if items are enum/Literal
LOWfastmcp_slim/fastmcp/server/elicitation.py73 # Check if items are Literal (which Pydantic represents differently)
LOWfastmcp_slim/fastmcp/server/elicitation.py503 # Check if it's a primitive type
LOWfastmcp_slim/fastmcp/server/dependencies.py767 # Check if we're in a Docket worker context
LOW…cp_slim/fastmcp/server/middleware/response_limiting.py113 # Check if we should limit this tool
LOWfastmcp_slim/fastmcp/server/tasks/elicitation.py113 # Set status to "waiting"
LOWfastmcp_slim/fastmcp/server/tasks/elicitation.py326 # Check if there's a pending elicitation
LOWfastmcp_slim/fastmcp/server/tasks/elicitation.py331 # Push response to list - this wakes up the BLPOP in elicit_for_task
LOWfastmcp_slim/fastmcp/server/tasks/notifications.py263 # Check if subscriber already running for this session
LOWfastmcp_slim/fastmcp/server/tasks/notifications.py266 # Check if task is still running AND session is still alive
LOWfastmcp_slim/fastmcp/server/tasks/requests.py281 # Check if completed
LOWfastmcp_slim/fastmcp/server/auth/redirect_validation.py236 # Check if URI matches any allowed pattern
LOWfastmcp_slim/fastmcp/server/auth/cimd.py603 # Check if JTI was already used (and hasn't expired from cache)
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py1000 # Check if code expired
LOWfastmcp_slim/fastmcp/server/auth/providers/discord.py99 # Check if token is expired (Discord returns ISO timestamp)
LOWfastmcp_slim/fastmcp/server/auth/providers/oci.py53 # Check if the signer exists for the token ID in memory cache
LOW…cp_slim/fastmcp/server/auth/providers/introspection.py245 # Check if token is active (required field per RFC 7662)
LOWfastmcp_slim/fastmcp/server/auth/handlers/authorize.py212 # Check if this is a client not found error
LOWfastmcp_slim/fastmcp/server/auth/handlers/authorize.py229 # Check if response body contains "not found" error
LOW…_slim/fastmcp/server/providers/filesystem_discovery.py146 # Check if this file is part of a package
LOW…_slim/fastmcp/server/providers/filesystem_discovery.py274 # Check if this object is a component type
LOW…slim/fastmcp/server/providers/skills/skill_provider.py369 # Check if it's a known supporting file
LOWfastmcp_slim/fastmcp/server/sampling/run.py348 # Check if any tool requires sequential execution
LOWfastmcp_slim/fastmcp/server/sampling/run.py575 # Check if this is a tool use response
LOW…stmcp_slim/fastmcp/server/transforms/tool_transform.py79 # Check if this name is a transformed name
LOWfastmcp_slim/fastmcp/cli/run.py176 # Check if it's an MCPConfig first (has canonical mcpServers key)
LOWfastmcp_slim/fastmcp/cli/cli.py306 # Set marker to prevent infinite loops when subprocess calls FastMCP
LOWfastmcp_slim/fastmcp/cli/cli.py603 # Check if we were spawned by uv (or user explicitly set --skip-env)
LOWfastmcp_slim/fastmcp/cli/cli.py706 # Check if we need to use uv run (but skip if we're already in uv or user said to skip)
LOWfastmcp_slim/fastmcp/cli/cli.py743 # Set marker to prevent infinite loops when subprocess calls FastMCP again
LOWfastmcp_slim/fastmcp/cli/cli.py863 # Check if we were spawned by uv (or user explicitly set --skip-env)
LOWfastmcp_slim/fastmcp/cli/cli.py877 # Check if it's an MCPConfig (which inspect doesn't support)
LOWfastmcp_slim/fastmcp/cli/cli.py892 # Check if we need to use uv run (but skip if we're already in uv or user said to skip)
LOWfastmcp_slim/fastmcp/cli/install/shared.py80 # Check if it's an MCPConfig (has mcpServers key)
LOWfastmcp_slim/fastmcp/cli/install/gemini_cli.py97 # Check if Gemini CLI is available
LOWfastmcp_slim/fastmcp/cli/install/claude_code.py101 # Check if Claude Code CLI is available
LOWfastmcp_slim/fastmcp/utilities/logging.py43 # Check if logging is disabled in settings
LOWfastmcp_slim/fastmcp/utilities/skills.py173 # Check if directory exists
LOWfastmcp_slim/fastmcp/utilities/json_schema_type.py479 # Check if one of the types is None (null)
LOWfastmcp_slim/fastmcp/utilities/types.py67 # Check if this is Annotated[Type, "string"] and convert to Annotated[Type, Field(description="string")]
LOWfastmcp_slim/fastmcp/utilities/json_schema.py209 # Check if original had a $ref
LOWfastmcp_slim/fastmcp/utilities/json_schema.py613 # Check if any definition that references this one is itself used
LOWfastmcp_slim/fastmcp/utilities/cli.py79 # Check if it's an MCPConfig first (has canonical mcpServers key)
LOW…lim/fastmcp/utilities/openapi/json_schema_converter.py220 # Check if any schema in the map needs conversion
LOW…lim/fastmcp/utilities/openapi/json_schema_converter.py242 # Check if nested schema needs conversion
LOW…lim/fastmcp/utilities/openapi/json_schema_converter.py268 # Check if any list item needs conversion
LOWfastmcp_slim/fastmcp/utilities/openapi/director.py219 # Check if it's a suffixed parameter (e.g., id__path)
LOWfastmcp_slim/fastmcp/utilities/openapi/director.py233 # Check if it's a known parameter
LOW…tmcp/utilities/mcp_server_config/v1/environments/uv.py117 # Check if uv is available
LOW…p/utilities/mcp_server_config/v1/sources/filesystem.py36 # Check if it's a Windows path (e.g., C:\...)
LOW…p/utilities/mcp_server_config/v1/sources/filesystem.py48 # Check if path contains an object specification
LOW…p/utilities/mcp_server_config/v1/sources/filesystem.py51 # Check if it's a Windows path (e.g., C:\...)
23 more matches not shown…
Verbosity Indicators42 hits · 76 pts
SeverityFileLineSnippet
LOWfastmcp_slim/fastmcp/server/auth/providers/clerk.py112 # Step 1: Validate token via introspection (RFC 7662).
LOWfastmcp_slim/fastmcp/server/auth/providers/clerk.py187 # Step 2: Fetch user profile via userinfo.
LOWfastmcp_slim/fastmcp/server/auth/providers/google.py106 # Step 1: Verify token via tokeninfo endpoint.
LOWfastmcp_slim/fastmcp/server/auth/providers/google.py158 # Step 2: Fetch user profile from v2 userinfo endpoint.
LOW…fastmcp/contrib/component_manager/component_manager.py101 # We need to check if it's a template (contains {}) and use "template" if so
LOWfastmcp_slim/fastmcp/utilities/json_schema_type.py522 # Step 1: replace everything except [0-9a-zA-Z_] with underscores
LOWfastmcp_slim/fastmcp/utilities/json_schema_type.py524 # Step 2: deduplicate underscores
LOWfastmcp_slim/fastmcp/utilities/json_schema_type.py526 # Step 3: if the first char of original name isn't a letter or underscore, prepend field_
LOWfastmcp_slim/fastmcp/utilities/json_schema_type.py529 # Step 4: deduplicate again
LOWfastmcp_slim/fastmcp/utilities/json_schema_type.py531 # Step 5: only strip trailing underscores if they weren't in the original name
LOWfastmcp_slim/fastmcp/utilities/json_schema_type.py534 # Step 6: if result is a Python keyword, append an underscore (PEP 8 convention)
LOW…lim/fastmcp/utilities/openapi/json_schema_converter.py91 # Step 1: Handle nullable field conversion (OpenAPI 3.0 only)
LOW…lim/fastmcp/utilities/openapi/json_schema_converter.py95 # Step 2: Convert oneOf to anyOf if requested
LOW…lim/fastmcp/utilities/openapi/json_schema_converter.py99 # Step 3: Remove OpenAPI-specific fields
LOW…lim/fastmcp/utilities/openapi/json_schema_converter.py103 # Step 4: Handle readOnly/writeOnly property removal
LOW…lim/fastmcp/utilities/openapi/json_schema_converter.py109 # Step 5: Recursively process nested schemas
LOWfastmcp_slim/fastmcp/utilities/openapi/director.py57 # Step 1: Un-flatten arguments into path, query, body, etc. using parameter map
LOWfastmcp_slim/fastmcp/utilities/openapi/director.py66 # Step 2: Serialize query parameters according to OpenAPI style/explode
LOWfastmcp_slim/fastmcp/utilities/openapi/director.py69 # Step 3: Build base URL with path parameters
LOWfastmcp_slim/fastmcp/utilities/openapi/director.py72 # Step 4: Prepare request data
LOWfastmcp_slim/fastmcp/utilities/openapi/director.py79 # Step 5: Determine the declared content type from the OpenAPI spec.
LOWfastmcp_slim/fastmcp/utilities/openapi/director.py96 # Step 6: Handle request body — dispatch on declared content type.
LOWfastmcp_slim/fastmcp/utilities/openapi/director.py143 # Step 7: Create httpx.Request
LOW…gration_tests/auth/test_github_provider_integration.py220 # Step 1: Register OAuth client (DCR)
LOW…gration_tests/auth/test_github_provider_integration.py240 # Step 2: Test authorization endpoint redirects to consent page
LOW…gration_tests/auth/test_github_provider_integration.py260 # Step 3: Visit consent page to get CSRF token
LOW…gration_tests/auth/test_github_provider_integration.py278 # Step 4: Approve consent
LOWtests/server/test_auth_integration.py548 # Step 1: First, let's create a token and refresh token at the current time
LOWtests/server/test_auth_integration.py567 # Step 2: Time travel forward 4 hours (tokens expire in 1 hour by default)
LOWtests/server/providers/test_prefab_roundtrip.py70 # Step 1: call UI tool, get structured_content with hashed ref
LOWtests/server/providers/test_prefab_roundtrip.py73 # Step 2: call the backend tool by its hashed name
LOWexamples/search/client_regex.py73 # Step 1: list_tools shows only synthetic tools
LOWexamples/search/client_regex.py91 # Step 2: regex patterns discover tools
LOWexamples/search/client_regex.py127 # Step 3: call discovered tools
LOWexamples/search/client_bm25.py73 # Step 1: list_tools shows only synthetic tools + pinned tools
LOWexamples/search/client_bm25.py92 # Step 2: natural language search discovers tools by relevance
LOWexamples/search/client_bm25.py128 # Step 3: call a discovered tool
LOWexamples/code_mode/client.py76 # Step 1: list_tools only returns two synthetic meta-tools
LOWexamples/code_mode/client.py94 # Step 2: search discovers available tools
LOWexamples/code_mode/client.py111 # Step 3: execute chains tool calls in one round-trip
LOW.github/scripts/mention/gh-resolve-review-thread.sh28# Step 1: Post comment if provided
LOW.github/scripts/mention/gh-resolve-review-thread.sh48# Step 2: Resolve the thread
Fake / Example Data28 hits · 32 pts
SeverityFileLineSnippet
LOWfastmcp_slim/fastmcp/server/tasks/requests.py59 - "user@example.com@1.0" → ("user@example.com", "1.0") # @ in URI
LOWfastmcp_slim/fastmcp/utilities/openapi/formatters.py163 return "user@example.com"
LOWtests/resources/test_resource_template.py503 quoted_name = quote("John Doe", safe="")
LOWtests/resources/test_resource_template.py507 assert result == {"name": "John Doe", "email": "john@example.com"}
LOWtests/server/tasks/test_task_elicitation_relay.py172 assert result.data == "Jane Doe"
LOWtests/server/auth/providers/test_workos.py352 "email": "user@example.com",
LOWtests/server/auth/providers/test_workos.py374 "email": "user@example.com",
LOWtests/server/auth/providers/test_clerk.py269 json={"email": "user@example.com"},
LOWtests/server/auth/providers/test_clerk.py209 "email": "user@example.com",
LOWtests/server/auth/providers/test_clerk.py241 assert result.claims["email"] == "user@example.com"
LOWtests/server/auth/providers/test_clerk.py478 "email": "user@example.com",
LOWtests/server/auth/providers/test_google.py138 extra_authorize_params={"login_hint": "user@example.com"},
LOWtests/server/auth/providers/test_google.py143 assert provider._extra_authorize_params["login_hint"] == "user@example.com"
LOWtests/server/auth/providers/test_google.py284 "email": "user@example.com",
LOWtests/server/auth/providers/test_google.py294 "email": "user@example.com",
LOWtests/server/auth/providers/test_google.py367 "email": "user@example.com",
LOWtests/server/auth/providers/test_google.py374 json={"sub": "12345", "email": "user@example.com"},
LOWtests/server/auth/providers/test_google.py312 assert result.claims["email"] == "user@example.com"
LOW…ver/providers/openapi/test_end_to_end_compatibility.py178 "name": "John Doe", # Body parameter
LOWtests/utilities/openapi/test_director.py210 "name": "John Doe",
LOWtests/utilities/openapi/test_director.py221 assert body_data["name"] == "John Doe"
LOWtests/utilities/openapi/test_director.py301 "name": "John Doe",
LOWtests/utilities/openapi/test_director.py310 assert body_data["name"] == "John Doe"
LOWtests/utilities/openapi/test_director.py1016 flat_args = {path_param_name: 123, "name": "John Doe"}
LOWtests/conformance/server.py166 name: str = Field(default="John Doe", description="User name")
LOWtests/deprecated/test_import_server.py411 quoted_name = quote("John Doe", safe="")
LOWtests/deprecated/test_import_server.py417 assert content["name"] == "John Doe"
LOWdocs/apps/demos/dashboard.py21 {"account": "Acme Corp", "value": "$84,000", "stage": "Won"},
AI Slop Vocabulary14 hits · 19 pts
SeverityFileLineSnippet
LOWfastmcp_slim/fastmcp/server/lifespan.py132 # self._fn is already a context manager factory, just call it
MEDIUMfastmcp_slim/fastmcp/server/middleware/logging.py149 """Middleware that provides comprehensive request and response logging.
MEDIUMfastmcp_slim/fastmcp/server/auth/ssrf.py204 """Fetch URL with comprehensive SSRF protection and DNS pinning.
MEDIUMfastmcp_slim/fastmcp/server/auth/providers/in_memory.py111 # The AuthorizationHandler already does robust validation using client.validate_redirect_uri
LOWfastmcp_slim/fastmcp/server/auth/handlers/authorize.py240 # If we can't parse the response, just return the original
LOW…_slim/fastmcp/server/providers/filesystem_discovery.py49 # If root is a file, just return it (if it's a .py file)
LOWfastmcp_slim/fastmcp/cli/cli.py60 return "npx" # On Unix-like systems, just use npx
LOWfastmcp_slim/fastmcp/utilities/json_schema_type.py762 # Otherwise just use the data
LOWfastmcp_slim/fastmcp/utilities/cli.py81 # MCPConfig - we don't process these here, just pass through
LOWfastmcp_slim/fastmcp/utilities/cli.py94 # Not a valid MCPServerConfig, just pass through
LOWfastmcp_slim/fastmcp/utilities/cli.py97 # Not a valid JSON file, just pass through
LOWfastmcp_slim/fastmcp/client/tasks.py421 # Unknown type - just return it
MEDIUMtests/conftest.py198 """Fixture that creates a FastMCP server with comprehensive tool set for provider tests."""
MEDIUMtests/server/providers/openapi/test_comprehensive.py371 """Test server initialization with comprehensive spec."""
Over-Commented Block20 hits · 19 pts
SeverityFileLineSnippet
LOWfastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py881 #
LOW…tmcp/server/providers/local_provider/local_provider.py461 # Note: Decorator methods (tool, resource, prompt, add_tool, add_resource,
LOWfastmcp_slim/fastmcp/cli/apps_dev.py321 // Find the tool and its UI resource URI
LOWfastmcp_slim/fastmcp/utilities/json_schema.py161
LOWfastmcp_slim/fastmcp/client/transports/config.py181 transport = config.to_transport()
LOW…/utilities/json_schema_type/test_real_world_schemas.py341 _record_failure("other_errors", _name, schema, e)
LOWexamples/skills/server.py21mcp = FastMCP("Skills Server")
LOWexamples/skills/server.py41# - VSCodeSkillsProvider() → ~/.copilot/skills/
LOW.github/workflows/require-issue-link.yml1# Require external PRs to reference an issue with an auto-close keyword
LOW.github/workflows/require-issue-link.yml21# the linked issue reopens previously closed PRs automatically.
LOW.github/workflows/require-issue-link.yml101 // ENFORCE_ISSUE_LINK=false means strictly read-only.
LOW.github/scripts/mention/gh-get-review-threads.sh1#!/usr/bin/env bash
LOW.github/scripts/mention/gh-resolve-review-thread.sh1#!/usr/bin/env bash
LOW.github/scripts/pr-review/pr-comment.sh1#!/bin/bash
LOW.github/scripts/pr-review/pr-comment.sh21# if err != nil {
LOW.github/scripts/pr-review/pr-diff.sh1#!/bin/bash
LOW.github/scripts/pr-review/pr-remove-comment.sh1#!/bin/bash
LOW.github/scripts/pr-review/pr-existing-comments.sh1#!/bin/bash
LOW.github/scripts/pr-review/pr-review.sh1#!/bin/bash
LOW.github/actions/run-claude/action.yml1# Composite Action for running Claude Code Action
Overly Generic Function Names17 hits · 18 pts
SeverityFileLineSnippet
LOWtests/tools/test_standalone_decorator.py162 def my_method(cls) -> str:
LOWtests/server/test_dependencies.py201 def process_data(value: int, config: str = Depends(fetch_config)) -> str:
LOWtests/server/test_input_validation.py213 def process_data(count: int, name: str) -> str:
LOWtests/server/test_input_validation.py237 def process_data(count: int, name: str) -> str:
LOWtests/server/test_icons.py79 def my_function(x: int) -> int:
LOWtests/server/test_icons.py130 def my_function() -> str:
LOWtests/server/test_icons.py185 def my_function(id: str) -> str:
LOWtests/server/test_icons.py240 def my_function(topic: str):
LOWtests/server/tasks/test_server_tasks_parameter.py336 async def my_function() -> str:
LOWtests/server/providers/test_local_provider_prompts.py290 def my_function() -> str:
LOWtests/server/providers/test_local_provider_prompts.py237 def my_function() -> str:
LOW…erver/providers/local_provider_tools/test_decorator.py313 def my_function(x: int) -> str:
LOW…erver/providers/local_provider_tools/test_decorator.py324 def my_function(x: int) -> str:
LOW…erver/providers/local_provider_tools/test_decorator.py292 def my_function(x: int) -> str:
LOWtests/server/sampling/test_sampling_tool.py237 def my_function():
LOWtests/utilities/test_typeadapter.py41 def do_something(self, x: int) -> int:
LOWtests/prompts/test_prompt.py240 def process_data(
Magic Placeholder Names3 hits · 15 pts
SeverityFileLineSnippet
HIGH…stmcp_slim/fastmcp/contrib/component_manager/README.md108 -H "Authorization: Bearer YOUR_TOKEN_HERE" \
HIGH…stmcp_slim/fastmcp/contrib/component_manager/README.md134 -H "Authorization: Bearer YOUR_TOKEN_HERE" \
HIGH…stmcp_slim/fastmcp/contrib/component_manager/README.md140 -H "Authorization: Bearer YOUR_TOKEN_HERE" \
Example Usage Blocks7 hits · 10 pts
SeverityFileLineSnippet
LOW.github/scripts/mention/gh-get-review-threads.sh6# Usage:
LOW.github/scripts/mention/gh-resolve-review-thread.sh6# Usage:
LOW.github/scripts/pr-review/pr-comment.sh4# Usage:
LOW.github/scripts/pr-review/pr-diff.sh4# Usage:
LOW.github/scripts/pr-review/pr-remove-comment.sh4# Usage:
LOW.github/scripts/pr-review/pr-existing-comments.sh4# Usage:
LOW.github/actions/run-claude/action.yml6# Usage:
Hallucination Indicators2 hits · 10 pts
SeverityFileLineSnippet
CRITICALtests/test_mcp_config.py546 assert client.transport.transport.auth.token.get_secret_value() == "test_token"
CRITICALtests/test_mcp_config.py561 assert client.transport.transport.auth.token.get_secret_value() == "test_token"
Dead Code3 hits · 6 pts
SeverityFileLineSnippet
MEDIUMfastmcp_slim/fastmcp/client/transports/base.py67
MEDIUMtests/client/auth/test_oauth_static_client.py144
MEDIUMtests/client/transports/test_transports.py24
Slop Phrases5 hits · 6 pts
SeverityFileLineSnippet
LOWdocs/prefab-demo-payloads.js1window.__FASTMCP_PREFAB_DEMOS__ = {"bar-chart":"<!doctype html>\n<html lang=\"en\">\n<head>\n <title>Prefab</title>\n
LOWdocs/apps/demos/hitchhikers.py99 Text("Don't forget to bring it.")
LOWexamples/apps/showcase_server.py49 f"Thanks, {owner_input.rx}. Don't forget to bring it."
LOWexamples/apps/showcase_server.py52 Text("Anonymous, I see? Don't forget to bring it.")
MEDIUM.github/workflows/martian-triage-issue.yml155 You may not be able to do all of these things, sometimes you may find that all you can do is provide in-dept