🚀 The fast, Pythonic way to build MCP servers and clients.
This report presents the forensic synthetic code analysis of PrefectHQ/fastmcp, a Python project with 26,191 GitHub stars. SynthScan v2.0 examined 221,476 lines of code across 913 source files, recording 7034 pattern matches distributed across 24 syntactic categories. The overall adjusted score of 42.4 places this repository in the Strong AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 7034 distinct pattern matches across 24 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | fastmcp_slim/fastmcp/mcp_config.py | 54 | def infer_transport_type_from_url( | CODE |
| LOW | fastmcp_slim/fastmcp/mcp_config.py | 74 | def _coerce_tool_transform_configs(tools: dict[str, Any]) -> dict[str, Any]: | CODE |
| LOW | fastmcp_slim/fastmcp/mcp_config.py | 103 | def _require_at_least_one_transform_field( | CODE |
| LOW | fastmcp_slim/fastmcp/mcp_config.py | 122 | def _to_server_and_underlying_transport( | CODE |
| LOW | …tmcp_slim/fastmcp/experimental/transforms/code_mode.py | 566 | def _build_execute_description(self) -> str: | CODE |
| LOW | fastmcp_slim/fastmcp/tools/tool_transform.py | 606 | def _create_forwarding_transform( | CODE |
| LOW | fastmcp_slim/fastmcp/tools/tool_transform.py | 822 | def _merge_schema_with_precedence( | CODE |
| LOW | fastmcp_slim/fastmcp/tools/tool_transform.py | 996 | def apply_transformations_to_tools( | CODE |
| LOW | fastmcp_slim/fastmcp/tools/base.py | 59 | def resolve_serialize_by_alias(value: Any) -> bool: | CODE |
| LOW | fastmcp_slim/fastmcp/tools/base.py | 490 | def _convert_to_single_content_block( | CODE |
| LOW | fastmcp_slim/fastmcp/resources/types.py | 91 | def set_binary_from_mime_type(cls, is_binary: bool, info: ValidationInfo) -> bool: | CODE |
| LOW | fastmcp_slim/fastmcp/server/telemetry.py | 47 | def get_session_span_attributes() -> dict[str, str]: | CODE |
| LOW | fastmcp_slim/fastmcp/server/telemetry.py | 61 | def _get_parent_trace_context() -> Context | None: | CODE |
| LOW | fastmcp_slim/fastmcp/server/low_level.py | 40 | def client_supports_extension(session: ServerSession, extension_id: str) -> bool: | CODE |
| LOW | fastmcp_slim/fastmcp/server/low_level.py | 267 | def create_initialization_options( | CODE |
| LOW | fastmcp_slim/fastmcp/server/context.py | 109 | def _warn_sampling_deprecated() -> None: | CODE |
| LOW | fastmcp_slim/fastmcp/server/context.py | 633 | def client_supports_extension(self, extension_id: str) -> bool: | CODE |
| LOW | fastmcp_slim/fastmcp/server/context.py | 1552 | def _detached_request_context(context: Context) -> ServerRequestContext: | CODE |
| LOW | fastmcp_slim/fastmcp/server/context.py | 1585 | async def _log_to_server_and_client( | CODE |
| LOW | fastmcp_slim/fastmcp/server/http.py | 300 | def _allow_same_origin_fallback(self, scope: Scope, host: str) -> bool: | CODE |
| LOW | fastmcp_slim/fastmcp/server/http.py | 543 | def create_streamable_http_app( | CODE |
| LOW | fastmcp_slim/fastmcp/server/elicitation.py | 132 | def parse_elicit_response_type( | CODE |
| LOW | fastmcp_slim/fastmcp/server/elicitation.py | 387 | def validate_elicitation_json_schema(schema: dict[str, Any]) -> None: | CODE |
| LOW | fastmcp_slim/fastmcp/server/dependencies.py | 274 | def transform_context_annotations(fn: Callable[..., Any]) -> Callable[..., Any]: | CODE |
| LOW | fastmcp_slim/fastmcp/server/dependencies.py | 634 | def without_injected_parameters( | CODE |
| LOW | fastmcp_slim/fastmcp/server/dependencies.py | 726 | async def _resolve_fastmcp_dependencies( | CODE |
| LOW | fastmcp_slim/fastmcp/server/middleware/dereference.py | 33 | async def on_list_resource_templates( | CODE |
| LOW | fastmcp_slim/fastmcp/server/middleware/dereference.py | 58 | def _dereference_resource_template(template: ResourceTemplate) -> ResourceTemplate: | CODE |
| LOW | fastmcp_slim/fastmcp/server/middleware/authorization.py | 268 | async def on_list_resource_templates( | CODE |
| LOW | fastmcp_slim/fastmcp/server/middleware/timing.py | 146 | async def on_list_resource_templates( | CODE |
| LOW | fastmcp_slim/fastmcp/server/middleware/caching.py | 513 | def _matches_tool_cache_settings(self, tool_name: str) -> bool: | CODE |
| LOW⚡ | fastmcp_slim/fastmcp/server/middleware/caching.py | 572 | def _make_call_tool_cache_key( | CODE |
| LOW⚡ | fastmcp_slim/fastmcp/server/middleware/caching.py | 580 | def _make_read_resource_cache_key( | CODE |
| LOW⚡ | fastmcp_slim/fastmcp/server/middleware/caching.py | 588 | def _make_get_prompt_cache_key( | CODE |
| LOW | fastmcp_slim/fastmcp/server/middleware/middleware.py | 203 | async def on_list_resource_templates( | CODE |
| LOW | fastmcp_slim/fastmcp/server/tasks/subscriptions.py | 31 | async def subscribe_to_task_updates( | CODE |
| LOW | fastmcp_slim/fastmcp/server/tasks/subscriptions.py | 93 | async def _send_status_notification( | CODE |
| LOW | fastmcp_slim/fastmcp/server/tasks/subscriptions.py | 163 | async def _send_progress_notification( | CODE |
| LOW | fastmcp_slim/fastmcp/server/tasks/keys.py | 137 | def get_client_task_id_from_key(task_key: str) -> str: | CODE |
| LOW | fastmcp_slim/fastmcp/server/tasks/notifications.py | 76 | async def notification_subscriber_loop( | CODE |
| LOW | fastmcp_slim/fastmcp/server/tasks/notifications.py | 250 | async def ensure_subscriber_running( | CODE |
| LOW | fastmcp_slim/fastmcp/server/mixins/mcp_operations.py | 58 | def _normalize_call_tool_result( | CODE |
| LOW | fastmcp_slim/fastmcp/server/mixins/mcp_operations.py | 167 | async def _on_list_resource_templates( | CODE |
| LOW | fastmcp_slim/fastmcp/server/mixins/transport.py | 53 | def _resolve_allowed_hosts_for_run( | CODE |
| LOW | fastmcp_slim/fastmcp/server/mixins/transport.py | 182 | def _get_additional_http_routes(self: FastMCP) -> list[BaseRoute]: | CODE |
| LOW | fastmcp_slim/fastmcp/server/mixins/lifespan.py | 265 | def _setup_task_protocol_handlers(self: FastMCP) -> None: | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/cimd.py | 631 | def _extract_public_key_from_jwks(self, token: str, jwks: dict) -> str: | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/oidc_proxy.py | 477 | def _uses_alternate_verification(self) -> bool: | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/models.py | 146 | def _matches_registered_loopback_redirect_uri( | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/models.py | 175 | def _matches_registered_redirect_uri( | CODE |
| LOW⚡ | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 706 | def _create_upstream_oauth_client(self) -> AsyncOAuth2Client: | CODE |
| LOW⚡ | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1291 | def _prepare_scopes_for_token_exchange(self, scopes: list[str]) -> list[str]: | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1069 | async def exchange_authorization_code( | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1305 | def _translate_scopes_from_idp(self, scopes: list[str]) -> list[str]: | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1334 | def _prepare_scopes_for_upstream_refresh(self, scopes: list[str]) -> list[str]: | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1681 | def _uses_alternate_verification(self) -> bool: | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/consent.py | 64 | def _validate_client_redirect_uri( | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/consent.py | 236 | def _set_consent_binding_cookie( | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/consent.py | 253 | def _clear_consent_binding_cookie( | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/consent.py | 264 | def _verify_consent_binding_cookie( | CODE |
| 4815 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …tmcp_slim/fastmcp/experimental/transforms/code_mode.py | 25 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …tmcp_slim/fastmcp/experimental/transforms/code_mode.py | 27 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …tmcp_slim/fastmcp/experimental/transforms/code_mode.py | 39 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …tmcp_slim/fastmcp/experimental/transforms/code_mode.py | 41 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …tmcp_slim/fastmcp/experimental/transforms/code_mode.py | 72 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …tmcp_slim/fastmcp/experimental/transforms/code_mode.py | 74 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …tmcp_slim/fastmcp/experimental/transforms/code_mode.py | 201 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …tmcp_slim/fastmcp/experimental/transforms/code_mode.py | 203 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …tmcp_slim/fastmcp/experimental/transforms/code_mode.py | 488 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …tmcp_slim/fastmcp/experimental/transforms/code_mode.py | 490 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/server.py | 575 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/server.py | 577 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/server.py | 2259 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/server.py | 2261 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/context.py | 1441 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/context.py | 1443 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/tasks/notifications.py | 236 | # ============================================================================= | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/tasks/notifications.py | 238 | # ============================================================================= | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/models.py | 21 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/models.py | 23 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/models.py | 37 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/models.py | 39 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 635 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 637 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 661 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 663 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 702 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 704 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1287 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1289 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1952 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1954 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 745 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 747 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 764 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 766 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 893 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 895 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1016 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1018 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1666 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1668 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 2136 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 2138 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/aggregate.py | 186 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/aggregate.py | 188 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/aggregate.py | 238 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/aggregate.py | 240 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/aggregate.py | 260 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/aggregate.py | 262 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/aggregate.py | 284 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/aggregate.py | 286 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | fastmcp_slim/fastmcp/server/providers/aggregate.py | 306 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | fastmcp_slim/fastmcp/server/providers/aggregate.py | 308 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | fastmcp_slim/fastmcp/server/providers/aggregate.py | 318 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | fastmcp_slim/fastmcp/server/providers/aggregate.py | 320 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | fastmcp_slim/fastmcp/server/providers/proxy.py | 938 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | fastmcp_slim/fastmcp/server/providers/proxy.py | 940 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/proxy.py | 134 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/proxy.py | 136 | # ----------------------------------------------------------------------------- | COMMENT |
| 496 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | fastmcp_slim/fastmcp/types.py | 21 | CODE | |
| LOW | fastmcp_slim/fastmcp/types.py | 25 | CODE | |
| LOW | fastmcp_slim/fastmcp/types.py | 28 | CODE | |
| LOW | fastmcp_slim/fastmcp/types.py | 31 | CODE | |
| LOW | fastmcp_slim/fastmcp/types.py | 34 | CODE | |
| LOW | fastmcp_slim/fastmcp/types.py | 37 | CODE | |
| LOW | fastmcp_slim/fastmcp/types.py | 40 | CODE | |
| LOW | fastmcp_slim/fastmcp/types.py | 43 | CODE | |
| LOW | fastmcp_slim/fastmcp/types.py | 46 | CODE | |
| LOW | fastmcp_slim/fastmcp/types.py | 49 | CODE | |
| LOW | fastmcp_slim/fastmcp/types.py | 52 | CODE | |
| LOW | fastmcp_slim/fastmcp/types.py | 55 | CODE | |
| LOW | fastmcp_slim/fastmcp/types.py | 58 | CODE | |
| LOW | fastmcp_slim/fastmcp/types.py | 61 | CODE | |
| LOW | fastmcp_slim/fastmcp/types.py | 64 | CODE | |
| LOW | fastmcp_slim/fastmcp/types.py | 67 | CODE | |
| LOW | fastmcp_slim/fastmcp/types.py | 70 | CODE | |
| LOW | fastmcp_slim/fastmcp/types.py | 73 | CODE | |
| LOW | fastmcp_slim/fastmcp/types.py | 76 | CODE | |
| LOW | fastmcp_slim/fastmcp/types.py | 79 | CODE | |
| LOW | fastmcp_slim/fastmcp/types.py | 82 | CODE | |
| LOW | fastmcp_slim/fastmcp/types.py | 85 | CODE | |
| LOW | fastmcp_slim/fastmcp/types.py | 88 | CODE | |
| LOW | fastmcp_slim/fastmcp/types.py | 91 | CODE | |
| LOW | fastmcp_slim/fastmcp/types.py | 94 | CODE | |
| LOW | fastmcp_slim/fastmcp/types.py | 97 | CODE | |
| LOW | fastmcp_slim/fastmcp/types.py | 100 | CODE | |
| LOW | fastmcp_slim/fastmcp/_sdk_patches.py | 50 | CODE | |
| LOW | fastmcp_slim/fastmcp/settings.py | 1 | CODE | |
| LOW | fastmcp_slim/fastmcp/mcp_config.py | 25 | CODE | |
| LOW | fastmcp_slim/fastmcp/_compat.py | 30 | CODE | |
| LOW | fastmcp_slim/fastmcp/dependencies.py | 11 | CODE | |
| LOW | fastmcp_slim/fastmcp/dependencies.py | 11 | CODE | |
| LOW | fastmcp_slim/fastmcp/dependencies.py | 11 | CODE | |
| LOW | fastmcp_slim/fastmcp/dependencies.py | 13 | CODE | |
| LOW | fastmcp_slim/fastmcp/dependencies.py | 13 | CODE | |
| LOW | fastmcp_slim/fastmcp/dependencies.py | 13 | CODE | |
| LOW | fastmcp_slim/fastmcp/dependencies.py | 13 | CODE | |
| LOW | fastmcp_slim/fastmcp/dependencies.py | 13 | CODE | |
| LOW | fastmcp_slim/fastmcp/dependencies.py | 13 | CODE | |
| LOW | fastmcp_slim/fastmcp/dependencies.py | 13 | CODE | |
| LOW | fastmcp_slim/fastmcp/dependencies.py | 13 | CODE | |
| LOW | fastmcp_slim/fastmcp/dependencies.py | 13 | CODE | |
| LOW | fastmcp_slim/fastmcp/dependencies.py | 13 | CODE | |
| LOW | fastmcp_slim/fastmcp/decorators.py | 3 | CODE | |
| LOW | …lim/fastmcp/experimental/sampling/handlers/__init__.py | 3 | CODE | |
| LOW | …_slim/fastmcp/experimental/sampling/handlers/openai.py | 3 | CODE | |
| LOW | fastmcp_slim/fastmcp/tools/__init__.py | 3 | CODE | |
| LOW | fastmcp_slim/fastmcp/tools/__init__.py | 3 | CODE | |
| LOW | fastmcp_slim/fastmcp/tools/__init__.py | 4 | CODE | |
| LOW | fastmcp_slim/fastmcp/tools/__init__.py | 4 | CODE | |
| LOW | fastmcp_slim/fastmcp/tools/__init__.py | 5 | CODE | |
| LOW | fastmcp_slim/fastmcp/tools/__init__.py | 5 | CODE | |
| LOW | fastmcp_slim/fastmcp/tools/function_parsing.py | 3 | CODE | |
| LOW | fastmcp_slim/fastmcp/resources/__init__.py | 3 | CODE | |
| LOW | fastmcp_slim/fastmcp/resources/__init__.py | 3 | CODE | |
| LOW | fastmcp_slim/fastmcp/resources/__init__.py | 4 | CODE | |
| LOW | fastmcp_slim/fastmcp/resources/__init__.py | 4 | CODE | |
| LOW | fastmcp_slim/fastmcp/resources/__init__.py | 4 | CODE | |
| LOW | fastmcp_slim/fastmcp/resources/__init__.py | 5 | CODE | |
| 383 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | fastmcp_slim/fastmcp/tools/base.py | 0 | schedule this prompt for background execution via docket. args: docket: the docket instance arguments: prompt arguments | STRING |
| HIGH | fastmcp_slim/fastmcp/resources/template.py | 0 | schedule this prompt for background execution via docket. args: docket: the docket instance arguments: prompt arguments | STRING |
| HIGH | fastmcp_slim/fastmcp/resources/base.py | 0 | schedule this prompt for background execution via docket. args: docket: the docket instance arguments: prompt arguments | STRING |
| HIGH | fastmcp_slim/fastmcp/prompts/base.py | 0 | schedule this prompt for background execution via docket. args: docket: the docket instance arguments: prompt arguments | STRING |
| HIGH | fastmcp_slim/fastmcp/server/auth/auth.py | 0 | verify a bearer token and return access info if valid. this method implements the tokenverifier protocol by delegating t | STRING |
| HIGH | fastmcp_slim/fastmcp/server/auth/providers/in_memory.py | 0 | verify a bearer token and return access info if valid. this method implements the tokenverifier protocol by delegating t | STRING |
| HIGH | fastmcp_slim/fastmcp/server/auth/providers/jwt.py | 0 | verify a bearer token and return access info if valid. this method implements the tokenverifier protocol by delegating t | STRING |
| HIGH | fastmcp_slim/fastmcp/server/auth/providers/supabase.py | 0 | get oauth routes including authkit authorization server metadata forwarding. this returns the standard protected resourc | STRING |
| HIGH | fastmcp_slim/fastmcp/server/auth/providers/descope.py | 0 | get oauth routes including authkit authorization server metadata forwarding. this returns the standard protected resourc | STRING |
| HIGH | fastmcp_slim/fastmcp/server/auth/providers/scalekit.py | 0 | get oauth routes including authkit authorization server metadata forwarding. this returns the standard protected resourc | STRING |
| HIGH | fastmcp_slim/fastmcp/server/auth/providers/workos.py | 0 | get oauth routes including authkit authorization server metadata forwarding. this returns the standard protected resourc | STRING |
| HIGH | fastmcp_slim/fastmcp/cli/install/claude_desktop.py | 0 | install fastmcp server in cursor. args: file: path to the server file server_object: optional server object name (for :o | STRING |
| HIGH | fastmcp_slim/fastmcp/cli/install/gemini_cli.py | 0 | install fastmcp server in cursor. args: file: path to the server file server_object: optional server object name (for :o | STRING |
| HIGH | fastmcp_slim/fastmcp/cli/install/claude_code.py | 0 | install fastmcp server in cursor. args: file: path to the server file server_object: optional server object name (for :o | STRING |
| HIGH | fastmcp_slim/fastmcp/cli/install/cursor.py | 0 | install fastmcp server in cursor. args: file: path to the server file server_object: optional server object name (for :o | STRING |
| HIGH | fastmcp_slim/fastmcp/client/mixins/tools.py | 0 | retrieve all resource templates available on the server. this method automatically fetches all pages if the server pagin | STRING |
| HIGH | fastmcp_slim/fastmcp/client/mixins/prompts.py | 0 | retrieve all resource templates available on the server. this method automatically fetches all pages if the server pagin | STRING |
| HIGH | fastmcp_slim/fastmcp/client/mixins/resources.py | 0 | retrieve all resource templates available on the server. this method automatically fetches all pages if the server pagin | STRING |
| HIGH | tests/tools/test_standalone_decorator.py | 0 | decorated function should still be directly callable. | STRING |
| HIGH | tests/resources/test_standalone_decorator.py | 0 | decorated function should still be directly callable. | STRING |
| HIGH | tests/prompts/test_standalone_decorator.py | 0 | decorated function should still be directly callable. | STRING |
| HIGH | tests/tools/tool/test_callable.py | 0 | test that callable objects with sync __call__ work. | STRING |
| HIGH | tests/resources/test_function_resources.py | 0 | test that callable objects with sync __call__ work. | STRING |
| HIGH | tests/prompts/test_prompt.py | 0 | test that callable objects with sync __call__ work. | STRING |
| HIGH | tests/tools/tool/test_callable.py | 0 | test that callable objects with async __call__ work. | STRING |
| HIGH | tests/resources/test_function_resources.py | 0 | test that callable objects with async __call__ work. | STRING |
| HIGH | tests/prompts/test_prompt.py | 0 | test that callable objects with async __call__ work. | STRING |
| HIGH | tests/server/auth/test_oidc_proxy.py | 0 | create a valid oci oidc configuration dict for testing. | STRING |
| HIGH | tests/server/auth/test_oidc_proxy_token.py | 0 | create a valid oci oidc configuration dict for testing. | STRING |
| HIGH | tests/server/auth/providers/test_auth0.py | 0 | create a valid oci oidc configuration dict for testing. | STRING |
| HIGH | tests/server/auth/providers/test_oci.py | 0 | create a valid oci oidc configuration dict for testing. | STRING |
| HIGH | tests/server/auth/providers/test_github.py | 0 | provide a memorystore for tests to avoid sqlite initialization on windows. | STRING |
| HIGH | tests/server/auth/providers/test_workos.py | 0 | provide a memorystore for tests to avoid sqlite initialization on windows. | STRING |
| HIGH | tests/server/auth/providers/test_discord.py | 0 | provide a memorystore for tests to avoid sqlite initialization on windows. | STRING |
| HIGH | tests/server/auth/providers/test_clerk.py | 0 | provide a memorystore for tests to avoid sqlite initialization on windows. | STRING |
| HIGH | tests/server/auth/providers/test_azure_scopes.py | 0 | provide a memorystore for tests to avoid sqlite initialization on windows. | STRING |
| HIGH | tests/server/auth/providers/test_azure.py | 0 | provide a memorystore for tests to avoid sqlite initialization on windows. | STRING |
| HIGH | tests/server/auth/providers/test_google.py | 0 | provide a memorystore for tests to avoid sqlite initialization on windows. | STRING |
| HIGH | tests/server/auth/providers/test_huggingface.py | 0 | provide a memorystore for tests to avoid sqlite initialization on windows. | STRING |
| HIGH | tests/server/auth/providers/test_workos.py | 0 | test that oauth endpoints are configured correctly. | STRING |
| HIGH | tests/server/auth/providers/test_discord.py | 0 | test that oauth endpoints are configured correctly. | STRING |
| HIGH | tests/server/auth/providers/test_azure.py | 0 | test that oauth endpoints are configured correctly. | STRING |
| HIGH | tests/server/auth/providers/test_google.py | 0 | test that oauth endpoints are configured correctly. | STRING |
| HIGH | tests/server/auth/providers/test_workos.py | 0 | client with headless oauth that bypasses browser interaction. | STRING |
| HIGH | tests/server/auth/providers/test_supabase.py | 0 | client with headless oauth that bypasses browser interaction. | STRING |
| HIGH | tests/server/auth/providers/test_descope.py | 0 | client with headless oauth that bypasses browser interaction. | STRING |
| HIGH | tests/server/auth/providers/test_scalekit.py | 0 | client with headless oauth that bypasses browser interaction. | STRING |
| HIGH | tests/client/auth/test_oauth_client.py | 0 | client with headless oauth that bypasses browser interaction. | STRING |
| HIGH | tests/server/auth/providers/test_supabase.py | 0 | test that environment variables are loaded correctly. | STRING |
| HIGH | tests/server/auth/providers/test_descope.py | 0 | test that environment variables are loaded correctly. | STRING |
| HIGH | tests/server/auth/providers/test_scalekit.py | 0 | test that environment variables are loaded correctly. | STRING |
| HIGH | …/server/providers/local_provider_tools/test_enabled.py | 0 | normalize the order of items in anyof arrays for consistent comparison. | STRING |
| HIGH | …r/providers/local_provider_tools/test_output_schema.py | 0 | normalize the order of items in anyof arrays for consistent comparison. | STRING |
| HIGH | …ders/local_provider_tools/test_local_provider_tools.py | 0 | normalize the order of items in anyof arrays for consistent comparison. | STRING |
| HIGH | …sts/server/providers/local_provider_tools/test_tags.py | 0 | normalize the order of items in anyof arrays for consistent comparison. | STRING |
| HIGH | …rver/providers/local_provider_tools/test_parameters.py | 0 | normalize the order of items in anyof arrays for consistent comparison. | STRING |
| HIGH | …/server/providers/local_provider_tools/test_context.py | 0 | normalize the order of items in anyof arrays for consistent comparison. | STRING |
| HIGH | …erver/providers/local_provider_tools/test_decorator.py | 0 | normalize the order of items in anyof arrays for consistent comparison. | STRING |
| HIGH | …erver/providers/openapi/test_performance_comparison.py | 0 | helper to create a fastmcp server with openapiprovider. | STRING |
| HIGH | tests/server/providers/openapi/test_deepobject_style.py | 0 | helper to create a fastmcp server with openapiprovider. | STRING |
| 24 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | fastmcp_slim/fastmcp/server/server.py | 2300 | # Create a proxy to a remote server | STRING |
| MEDIUM | fastmcp_slim/fastmcp/server/server.py | 2303 | # Create a proxy to another FastMCP server | STRING |
| MEDIUM | fastmcp_slim/fastmcp/server/http.py | 593 | # Create the ASGI app wrapper (session manager is set each lifespan cycle) | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/http.py | 662 | # Create a lifespan manager to start and stop the session manager | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 841 | # Create a ProxyDCRClient with configured redirect URI validation | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/proxy.py | 587 | # Create a proxy provider for a remote server | STRING |
| MEDIUM | fastmcp_slim/fastmcp/server/providers/proxy.py | 880 | # Create a proxy server using create_proxy (recommended) | STRING |
| MEDIUM | …tmcp/server/providers/local_provider/local_provider.py | 11 | # Create a reusable provider with tools | STRING |
| MEDIUM | …slim/fastmcp/server/providers/skills/skill_provider.py | 131 | # Create a SkillFileResource that can read the file | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/cli/install/__init__.py | 13 | # Create a cyclopts app for install subcommands | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/cli/install/cursor.py | 35 | # Create the configuration structure expected by Cursor | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/cli/install/cursor.py | 128 | # Create the config file if it doesn't exist | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/utilities/logging.py | 66 | # Create a standard StreamHandler for stderr | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/utilities/json_schema_type.py | 519 | # Create a copy of the schema for each type, but keep all constraints | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/utilities/types.py | 211 | # Create a copy of annotations without the excluded parameters | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/utilities/json_schema.py | 325 | # Create a new schema by copying the referenced definition | COMMENT |
| MEDIUM⚡ | fastmcp_slim/fastmcp/utilities/cli.py | 207 | # Create the logo text | COMMENT |
| MEDIUM⚡ | fastmcp_slim/fastmcp/utilities/cli.py | 211 | # Create the main title | COMMENT |
| MEDIUM⚡ | fastmcp_slim/fastmcp/utilities/cli.py | 214 | # Create the information table | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/utilities/openapi/schemas.py | 161 | # Create a new schema that allows null in addition to the original type | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/utilities/openapi/schemas.py | 575 | # Create a wrapped schema that contains the original schema under a "result" key | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/utilities/openapi/director.py | 209 | # Create a mapping from parameter names to their locations | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/client/client.py | 669 | # Create a fresh session kwargs dict so the clone doesn't share | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/client/client.py | 648 | # Create a fresh client for each concurrent operation | STRING |
| MEDIUM | fastmcp_slim/fastmcp/client/auth/oauth.py | 281 | # Create the full static client info directly which will avoid DCR. | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/client/transports/config.py | 48 | # Create a config with multiple servers | STRING |
| MEDIUM | fastmcp_slim/fastmcp/client/transports/config.py | 62 | # Create a client with the config | STRING |
| MEDIUM | tests/test_mcp_config.py | 954 | # Create a config with multiple servers | COMMENT |
| MEDIUM | tests/tools/test_tool_future_annotations.py | 47 | # Create a simple 1x1 white pixel PNG | COMMENT |
| MEDIUM⚡ | tests/tools/test_tool_future_annotations.py | 141 | # Define a tool with modern union syntax | COMMENT |
| MEDIUM | tests/server/test_auth_integration.py | 116 | # Create a RefreshToken object that matches what is expected in later code | COMMENT |
| MEDIUM | tests/server/test_auth_integration.py | 830 | # Create a test client with the token | COMMENT |
| MEDIUM | tests/server/test_auth_integration_errors.py | 115 | # Create a RefreshToken object that matches what is expected in later code | COMMENT |
| MEDIUM | tests/server/test_server.py | 168 | # Create a server with resources | COMMENT |
| MEDIUM | tests/server/test_server.py | 183 | # Create a main server and mount the resource server | COMMENT |
| MEDIUM | tests/server/test_event_store.py | 269 | # Create a realistic JSON-RPC request wrapped in JSONRPCMessage | COMMENT |
| MEDIUM | tests/server/middleware/test_timing.py | 287 | # Create a custom logger that writes to a string buffer | COMMENT |
| MEDIUM⚡ | tests/server/tasks/test_task_methods.py | 81 | # Create a task that won't complete until signaled | COMMENT |
| MEDIUM | tests/server/auth/test_oauth_consent_page.py | 146 | # Create a transaction manually | COMMENT |
| MEDIUM | tests/server/auth/test_oauth_consent_page.py | 208 | # Create a transaction | COMMENT |
| MEDIUM | tests/server/auth/test_oauth_consent_page.py | 274 | # Create a transaction | COMMENT |
| MEDIUM | tests/server/auth/test_auth_provider.py | 41 | # Create a static token verifier with a test token | COMMENT |
| MEDIUM | tests/server/auth/test_oauth_consent_flow.py | 213 | # Create a test app with OAuth routes | COMMENT |
| MEDIUM | tests/server/auth/test_oauth_consent_flow.py | 673 | # Create a tampered cookie (invalid signature) | COMMENT |
| MEDIUM | tests/server/auth/test_jwt_provider.py | 451 | # Create a token with a different secret | COMMENT |
| MEDIUM | tests/server/auth/test_jwt_provider_bearer.py | 400 | # Create a token with a different key pair | COMMENT |
| MEDIUM | tests/server/auth/test_ssrf_protection.py | 335 | # Create a dummy token to trigger JWKS fetch | COMMENT |
| MEDIUM | tests/server/auth/test_enhanced_error_responses.py | 292 | # Create a valid token with wrong scopes | COMMENT |
| MEDIUM | tests/server/auth/oauth_proxy/test_ui.py | 67 | # Create a minimal OAuth proxy | COMMENT |
| MEDIUM | tests/server/auth/oauth_proxy/test_tokens.py | 305 | # Create a mock 401 response like the SDK returns for auth failures | COMMENT |
| MEDIUM | tests/server/auth/oauth_proxy/test_tokens.py | 350 | # Create a mock 400 response like the SDK returns for invalid_grant | COMMENT |
| MEDIUM⚡ | tests/server/providers/test_skills_provider.py | 649 | # Create a file outside the skill directory | COMMENT |
| MEDIUM | tests/server/providers/test_skills_provider.py | 276 | # Create a simple skill | COMMENT |
| MEDIUM | tests/server/providers/test_skills_provider.py | 291 | # Create a skill with supporting files | COMMENT |
| MEDIUM | tests/server/providers/proxy/test_proxy_client.py | 408 | # Create a disconnected client (should use fresh sessions per request) | COMMENT |
| MEDIUM | …s/server/providers/openapi/test_openapi_performance.py | 75 | # Create a medium-sized synthetic schema | COMMENT |
| MEDIUM | tests/server/providers/openapi/test_comprehensive.py | 477 | # Create a mock client that tracks requests | COMMENT |
| MEDIUM | tests/server/http/test_custom_routes.py | 40 | # Create the app by calling the constructor function directly | COMMENT |
| MEDIUM | tests/server/http/test_custom_routes.py | 56 | # Create the app by calling the constructor function directly | COMMENT |
| MEDIUM | tests/server/http/test_stale_access_token.py | 73 | # Create a mock request with fresh token in scope | COMMENT |
| 66 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | fastmcp_slim/fastmcp/tools/tool_transform.py | 49 | Forward to parent tool with argument transformation applied. This function can only be called from within a transfo | STRING |
| HIGH | fastmcp_slim/fastmcp/tools/tool_transform.py | 79 | Forward directly to parent tool without transformation. This function bypasses all argument transformation and vali | STRING |
| HIGH | fastmcp_slim/fastmcp/tools/tool_transform.py | 393 | Create a transformed tool from a parent tool. Args: tool: The parent tool to transform. | STRING |
| HIGH | fastmcp_slim/fastmcp/server/server.py | 1188 | Call a tool by name. This is the public API for executing tools. By default, middleware is applied. Ar | STRING |
| HIGH | fastmcp_slim/fastmcp/server/server.py | 1369 | Read a resource by URI. This is the public API for reading resources. By default, middleware is applied. | STRING |
| HIGH | fastmcp_slim/fastmcp/server/server.py | 1553 | Render a prompt by name. This is the public API for rendering prompts. By default, middleware is applied. | STRING |
| HIGH | fastmcp_slim/fastmcp/server/context.py | 1337 | Send an elicitation request from a background task (SEP-1686). This method handles elicitation when running in | STRING |
| HIGH | fastmcp_slim/fastmcp/server/dependencies.py | 1452 | Get a specific claim from the access token. This dependency extracts a single claim value from the current access t | STRING |
| HIGH | fastmcp_slim/fastmcp/server/lifespan.py | 91 | Compose with another lifespan using the | operator. Args: other: Another Lifespan instance. | STRING |
| 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 | STRING |
| 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: | STRING |
| 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: | STRING |
| 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 | STRING |
| 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 | STRING |
| HIGH | fastmcp_slim/fastmcp/server/tasks/requests.py | 91 | Look up task execution and metadata from Redis. Consolidates the common pattern of fetching task metadata from Redi | STRING |
| HIGH | fastmcp_slim/fastmcp/server/auth/ssrf.py | 145 | Resolve hostname to IP addresses using DNS. Args: hostname: Hostname to resolve port: Port number ( | STRING |
| HIGH | fastmcp_slim/fastmcp/server/auth/ssrf.py | 194 | Validate URL for SSRF and resolve to IPs. Args: url: URL to validate require_path: If True, require | STRING |
| HIGH | fastmcp_slim/fastmcp/server/auth/ssrf.py | 250 | Fetch URL with comprehensive SSRF protection and DNS pinning. Security measures: 1. HTTPS only 2. DNS resol | STRING |
| 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 | STRING |
| HIGH | fastmcp_slim/fastmcp/server/auth/cimd.py | 512 | Validate JWT assertion from client. Args: assertion: The JWT assertion string client_id | STRING |
| 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 | STRING |
| HIGH | fastmcp_slim/fastmcp/server/auth/cimd.py | 781 | Validate JWT assertion for private_key_jwt auth. Args: assertion: JWT assertion string from client | STRING |
| 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. | STRING |
| HIGH | fastmcp_slim/fastmcp/server/auth/providers/azure.py | 629 | Get a cached or new OnBehalfOfCredential for OBO token exchange. Credentials are cached by user assertion so th | STRING |
| HIGH | fastmcp_slim/fastmcp/server/auth/providers/azure.py | 862 | Exchange the user's Entra token for a downstream API token via OBO. This dependency performs a Microsoft Entra On-B | STRING |
| HIGH | …_slim/fastmcp/server/providers/filesystem_discovery.py | 143 | Import a Python file as a module. If the file is part of a package (directory has __init__.py), imports it as a | STRING |
| HIGH | fastmcp_slim/fastmcp/server/sampling/run.py | 144 | Determine whether to use fallback handler or client for sampling. Args: context: The MCP context. n | STRING |
| 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 | STRING |
| HIGH | fastmcp_slim/fastmcp/utilities/auth.py | 11 | Decode a JWT part (header or payload) without signature verification. Args: token: JWT token string (header | STRING |
| 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 | STRING |
| 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. | STRING |
| 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 | STRING |
| 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 | STRING |
| 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 | STRING |
| HIGH | fastmcp_slim/fastmcp/utilities/pagination.py | 55 | Paginate a sequence of items. Args: items: The full sequence to paginate. cursor: Optional cursor f | STRING |
| HIGH | fastmcp_slim/fastmcp/utilities/openapi/parser.py | 592 | Extract only the schema definitions needed for input (parameters and request body). Args: | STRING |
| HIGH | fastmcp_slim/fastmcp/utilities/openapi/schemas.py | 79 | Replace openapi $ref with jsonschema $defs recursively. Examples: - {"type": "object", "properties": {"$re | STRING |
| 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 | STRING |
| 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 | STRING |
| HIGH | fastmcp_slim/fastmcp/client/tasks.py | 214 | Wait for task to reach a specific state or complete. Uses event-based waiting when notifications are available | STRING |
| HIGH | fastmcp_slim/fastmcp/client/client.py | 762 | Send an initialize request to the server. This method performs the MCP initialization handshake with the server | STRING |
| HIGH | fastmcp_slim/fastmcp/client/client.py | 993 | Await a coroutine while monitoring the session task for errors. When using HTTP transports, server errors (4xx/ | STRING |
| HIGH | fastmcp_slim/fastmcp/client/client.py | 1245 | Send a completion request and return the complete MCP protocol result. Args: ref (mcp_types.Resourc | STRING |
| HIGH | fastmcp_slim/fastmcp/client/client.py | 1276 | Send a completion request to the server. Args: ref (mcp_types.ResourceTemplateReference | mcp_types | STRING |
| HIGH | fastmcp_slim/fastmcp/client/mixins/tools.py | 47 | Send a tools/list request and return the complete MCP protocol result. Args: cursor: Optional pagin | STRING |
| HIGH | fastmcp_slim/fastmcp/client/mixins/tools.py | 101 | Retrieve all tools available on the server. This method automatically fetches all pages if the server paginates | STRING |
| HIGH | fastmcp_slim/fastmcp/client/mixins/tools.py | 154 | Send a tools/call request and return the complete MCP protocol result. This method returns the raw CallToolResu | STRING |
| HIGH | fastmcp_slim/fastmcp/client/mixins/tools.py | 301 | Call a tool on the server. Unlike call_tool_mcp, this method raises a ToolError if the tool call results in an | STRING |
| HIGH | fastmcp_slim/fastmcp/client/mixins/prompts.py | 43 | Send a prompts/list request and return the complete MCP protocol result. Args: cursor: Optional pag | STRING |
| HIGH | fastmcp_slim/fastmcp/client/mixins/prompts.py | 85 | Retrieve all prompts available on the server. This method automatically fetches all pages if the server paginat | STRING |
| HIGH | fastmcp_slim/fastmcp/client/mixins/prompts.py | 135 | Send a prompts/get request and return the complete MCP protocol result. Args: name (str): The name | STRING |
| HIGH | fastmcp_slim/fastmcp/client/mixins/prompts.py | 230 | Retrieve a rendered prompt message list from the server. Args: name (str): The name of the prompt t | STRING |
| HIGH | fastmcp_slim/fastmcp/client/mixins/task_management.py | 53 | Query the status of a background task. Sends a 'tasks/get' MCP protocol request over the existing transport. | STRING |
| HIGH | fastmcp_slim/fastmcp/client/mixins/task_management.py | 76 | Retrieve the raw result of a completed background task. Sends a 'tasks/result' MCP protocol request over the ex | STRING |
| HIGH | fastmcp_slim/fastmcp/client/mixins/task_management.py | 111 | List background tasks. Sends a 'tasks/list' MCP protocol request to the server. If the server returns a | STRING |
| HIGH | fastmcp_slim/fastmcp/client/mixins/task_management.py | 157 | Cancel a task, transitioning it to cancelled state. Sends a 'tasks/cancel' MCP protocol request. Task will halt | STRING |
| HIGH | fastmcp_slim/fastmcp/client/mixins/resources.py | 42 | Send a resources/list request and return the complete MCP protocol result. Args: cursor: Optional p | STRING |
| HIGH | fastmcp_slim/fastmcp/client/mixins/resources.py | 84 | Retrieve all resources available on the server. This method automatically fetches all pages if the server pagin | STRING |
| HIGH | fastmcp_slim/fastmcp/client/mixins/resources.py | 133 | Send a resources/listResourceTemplates request and return the complete MCP protocol result. Args: c | STRING |
| HIGH | fastmcp_slim/fastmcp/client/mixins/resources.py | 178 | Retrieve all resource templates available on the server. This method automatically fetches all pages if the ser | STRING |
| 2 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | fastmcp_slim/fastmcp/cli/apps_dev.py | 764 | if (d && typeof d === "object") return d.msg || d.message || JSON.stringify(d); | CODE |
| HIGH⚡ | fastmcp_slim/fastmcp/cli/apps_dev.py | 764 | if (d && typeof d === "object") return d.msg || d.message || JSON.stringify(d); | CODE |
| HIGH⚡ | fastmcp_slim/fastmcp/cli/apps_dev.py | 765 | return d || b.params.level || ""; | CODE |
| HIGH⚡ | fastmcp_slim/fastmcp/cli/apps_dev.py | 769 | if (b.error) return "error: " + (b.error.message || JSON.stringify(b.error)); | CODE |
| HIGH⚡ | fastmcp_slim/fastmcp/cli/apps_dev.py | 770 | if (b.result && typeof b.result === "object") { | CODE |
| HIGH⚡ | fastmcp_slim/fastmcp/cli/apps_dev.py | 776 | if (first && first.text) { | CODE |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 353 | const transport = new PostMessageTransport(iframe.contentWindow, null); | CODE |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 623 | if (activeFilters[allFilterKeys[i]]) on.push(allFilterKeys[i]); | CODE |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 635 | var qs = params.toString(); | CODE |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 637 | history.replaceState(null, "", url); | CODE |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 706 | if (fp !== null) { | CODE |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 745 | if (lv && levelOrder.indexOf(lv) < minLevel) return false; | CODE |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 795 | && (entry.body.error || (entry.body.result && entry.body.result.isError)); | CODE |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 824 | if (entry.direction === "notification" && entry.body && entry.body.params) { | CODE |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 846 | navigator.clipboard.writeText(JSON.stringify(entry.body, null, 2)); | CODE |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 866 | detail.textContent = JSON.stringify(entry.body, null, 2); | CODE |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 886 | var atBottom = !panelVisible || entries.scrollHeight - entries.scrollTop - entries.clientHeight < 40; | CODE |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 893 | if (atBottom || (firstPoll && panelVisible)) entries.scrollTop = entries.scrollHeight; | CODE |
| HIGH | fastmcp_slim/fastmcp/cli/apps_dev.py | 905 | if (!data || typeof data !== "object") return; | CODE |
| HIGH | fastmcp_slim/fastmcp/utilities/json_schema_type.py | 497 | # Check if one of the types is None (null) | COMMENT |
| HIGH | fastmcp_slim/fastmcp/utilities/json_schema_type.py | 6 | - Basic types (string, number, integer, boolean, null) | STRING |
| HIGH | fastmcp_slim/fastmcp/utilities/openapi/schemas.py | 157 | # If it's already nullable (type includes null), don't modify | COMMENT |
| HIGH | fastmcp_slim/fastmcp/apps/file_upload.py | 313 | with If(STATE.stored.length()): | CODE |
| HIGH | fastmcp_slim/fastmcp/apps/file_upload.py | 315 | STATE.stored.length(), | CODE |
| HIGH | fastmcp_slim/fastmcp/apps/file_upload.py | 334 | with If(STATE.pending.length()), Column(gap=2): | CODE |
| HIGH | fastmcp_slim/fastmcp/apps/file_upload.py | 365 | with If(STATE.stored.length()): | CODE |
| HIGH⚡ | fastmcp_slim/fastmcp/apps/file_upload.py | 390 | with If(STATE.stored.length()): | CODE |
| HIGH⚡ | fastmcp_slim/fastmcp/apps/file_upload.py | 392 | f"{STATE.stored.length()}" | CODE |
| HIGH⚡ | fastmcp_slim/fastmcp/apps/file_upload.py | 393 | f" {STATE.stored.length().pluralize('file')}" | CODE |
| HIGH | tests/tools/tool/test_content.py | 58 | ([None], "[null]"), | CODE |
| HIGH | tests/tools/tool/test_content.py | 59 | ([None, None], "[null,null]"), | CODE |
| HIGH | tests/tools/tool/test_content.py | 78 | ([1, "two", None, {"c": 3}, False], '[1,"two",null,{"c":3},false]'), | CODE |
| HIGH | tests/server/middleware/test_logging.py | 144 | "payload": '{"method":"tools/call","params":{"_meta":null,"inputResponses":null,"requestState":null, | CODE |
| HIGH | tests/server/middleware/test_logging.py | 299 | '{"event": "request_start", "method": "test_method", "source": "client", "payload": "{\\"method\\":\\"re | CODE |
| HIGH | tests/server/middleware/test_logging.py | 327 | '{"event": "request_start", "method": "test_method", "source": "client", "payload": "{\\"name\\":\\"tmpl | CODE |
| HIGH | tests/server/middleware/test_logging.py | 359 | '{"event": "request_start", "method": "test_method", "source": "client", "payload": "{\\"method\\":\\"to | CODE |
| HIGH | tests/server/middleware/test_logging.py | 534 | 'event=request_start method=tools/call source=client payload={"_meta":null,"inputResponses":null,"reques | CODE |
| HIGH | tests/server/middleware/test_logging.py | 557 | '{"event": "request_start", "method": "tools/call", "source": "client", "payload": "{\\"_meta\\":null,\\ | CODE |
| HIGH | tests/server/middleware/test_logging.py | 650 | event=request_start method=tools/call source=client payload={"_meta":null,"inputResponses":null,"requestState":null,"nam | CODE |
| HIGH | tests/utilities/openapi/test_nullable_fields.py | 440 | """Test that nullable enum validates null, enum values, and rejects invalid values.""" | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | fastmcp_slim/fastmcp/tools/tool_transform.py | 368 | except Exception: | CODE |
| LOW | fastmcp_slim/fastmcp/tools/function_parsing.py | 258 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/tools/function_tool.py | 104 | except Exception: | CODE |
| LOW | fastmcp_slim/fastmcp/resources/types.py | 109 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/resources/types.py | 172 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/resources/types.py | 187 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/server.py | 1323 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/server.py | 1461 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/server.py | 1505 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/server.py | 1628 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/telemetry.py | 141 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/telemetry.py | 194 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/telemetry.py | 209 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/telemetry.py | 238 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/context.py | 1405 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/http.py | 700 | except Exception: | CODE |
| LOW | fastmcp_slim/fastmcp/server/dependencies.py | 304 | except Exception: | CODE |
| LOW | fastmcp_slim/fastmcp/server/dependencies.py | 623 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/dependencies.py | 707 | except Exception: | CODE |
| LOW | fastmcp_slim/fastmcp/server/dependencies.py | 778 | except Exception as error: | CODE |
| LOW | fastmcp_slim/fastmcp/server/middleware/logging.py | 41 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/middleware/logging.py | 141 | except Exception as e: | CODE |
| LOW | …stmcp_slim/fastmcp/server/middleware/error_handling.py | 77 | except Exception as callback_error: | CODE |
| LOW | …stmcp_slim/fastmcp/server/middleware/error_handling.py | 113 | except Exception as error: | CODE |
| LOW | …stmcp_slim/fastmcp/server/middleware/error_handling.py | 198 | except Exception as error: | CODE |
| LOW | fastmcp_slim/fastmcp/server/middleware/timing.py | 51 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/middleware/timing.py | 103 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/tasks/subscriptions.py | 89 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/tasks/handlers.py | 248 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/tasks/context.py | 271 | except Exception: | CODE |
| LOW | fastmcp_slim/fastmcp/server/tasks/elicitation.py | 161 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/tasks/elicitation.py | 176 | except Exception: | CODE |
| LOW | fastmcp_slim/fastmcp/server/tasks/elicitation.py | 210 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/tasks/elicitation.py | 226 | except Exception as cleanup_error: | CODE |
| LOW | fastmcp_slim/fastmcp/server/tasks/elicitation.py | 274 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/tasks/notifications.py | 132 | except Exception as send_error: | CODE |
| LOW | fastmcp_slim/fastmcp/server/tasks/notifications.py | 158 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/tasks/requests.py | 196 | except Exception as error: | CODE |
| LOW | fastmcp_slim/fastmcp/server/tasks/requests.py | 284 | except Exception as error: | CODE |
| LOW | fastmcp_slim/fastmcp/server/mixins/lifespan.py | 113 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/auth.py | 603 | except Exception: | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/cimd.py | 395 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/oidc_proxy.py | 134 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/oidc_proxy.py | 173 | except Exception: | CODE |
| LOW⚡ | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1948 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 792 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1436 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1475 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1890 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1907 | except Exception: | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1995 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 2321 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 2374 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/consent.py | 121 | except Exception: | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/consent.py | 149 | except Exception: | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/consent.py | 201 | except Exception: | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/supabase.py | 163 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/clerk.py | 203 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/clerk.py | 235 | except Exception as e: | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/azure.py | 624 | except Exception as e: | CODE |
| 129 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | fastmcp_slim/fastmcp/tools/tool_transform.py | 272 | CODE | |
| LOW | fastmcp_slim/fastmcp/tools/tool_transform.py | 379 | CODE | |
| LOW | fastmcp_slim/fastmcp/tools/tool_transform.py | 606 | CODE | |
| LOW | fastmcp_slim/fastmcp/tools/tool_transform.py | 822 | CODE | |
| LOW | fastmcp_slim/fastmcp/tools/tool_transform.py | 707 | CODE | |
| LOW | fastmcp_slim/fastmcp/tools/function_tool.py | 371 | CODE | |
| LOW | fastmcp_slim/fastmcp/tools/base.py | 106 | CODE | |
| LOW | fastmcp_slim/fastmcp/resources/template.py | 80 | CODE | |
| LOW | fastmcp_slim/fastmcp/resources/template.py | 461 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 630 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 710 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 764 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 849 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 899 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 981 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 1035 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 1107 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 1179 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 1361 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/elicitation.py | 132 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/elicitation.py | 387 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/dependencies.py | 274 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/dependencies.py | 562 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/dependencies.py | 726 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/middleware/dereference.py | 67 | CODE | |
| LOW | …stmcp_slim/fastmcp/server/middleware/error_handling.py | 80 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/tasks/notifications.py | 76 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/tasks/requests.py | 219 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/mixins/lifespan.py | 91 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/auth/ssrf.py | 285 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/auth/cimd.py | 224 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/models.py | 221 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 769 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1791 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 2002 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 2140 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/consent.py | 322 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/consent.py | 469 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/clerk.py | 94 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/jwt.py | 331 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/jwt.py | 417 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/jwt.py | 434 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/auth/handlers/authorize.py | 196 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/providers/aggregate.py | 118 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/providers/aggregate.py | 156 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/providers/proxy.py | 289 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/providers/filesystem.py | 149 | CODE | |
| LOW | …_slim/fastmcp/server/providers/filesystem_discovery.py | 140 | CODE | |
| LOW | …_slim/fastmcp/server/providers/filesystem_discovery.py | 285 | CODE | |
| LOW | …tmcp/server/providers/local_provider/local_provider.py | 113 | CODE | |
| LOW | …tmcp/server/providers/local_provider/local_provider.py | 178 | CODE | |
| LOW | …cp/server/providers/local_provider/decorators/tools.py | 122 | CODE | |
| LOW | …tmcp_slim/fastmcp/server/providers/openapi/provider.py | 71 | CODE | |
| LOW | …stmcp_slim/fastmcp/server/providers/openapi/routing.py | 86 | CODE | |
| LOW | …cp_slim/fastmcp/server/providers/openapi/components.py | 166 | CODE | |
| LOW | …slim/fastmcp/server/providers/skills/skill_provider.py | 229 | CODE | |
| LOW | …slim/fastmcp/server/providers/skills/skill_provider.py | 332 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/sampling/run.py | 118 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/sampling/run.py | 141 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/sampling/run.py | 412 | CODE | |
| 122 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | fastmcp_slim/fastmcp/mcp_config.py | 308 | # Check if any values look like server configs | COMMENT |
| LOW | fastmcp_slim/fastmcp/tools/tool_transform.py | 293 | # Check if this parameter has a default_factory from transform_args | COMMENT |
| LOW | fastmcp_slim/fastmcp/tools/tool_transform.py | 492 | # Check if function returns ToolResult (or subclass) - if so, don't fall back to parent. | COMMENT |
| LOW | fastmcp_slim/fastmcp/tools/tool_transform.py | 523 | # Check if function is missing any parameters required after transformation | COMMENT |
| LOW | fastmcp_slim/fastmcp/tools/tool_transform.py | 639 | # Check if parameter is in transform_args | COMMENT |
| LOW | fastmcp_slim/fastmcp/tools/function_parsing.py | 318 | # Check if schema is an object type, resolving $ref references | COMMENT |
| LOW | fastmcp_slim/fastmcp/resources/template.py | 623 | # Check if required parameters are a subset of the path parameters | COMMENT |
| LOW | fastmcp_slim/fastmcp/resources/template.py | 629 | # Check if all URI parameters are valid function parameters (skip if **kwargs present) | COMMENT |
| LOW | fastmcp_slim/fastmcp/server/elicitation.py | 61 | # Check if items are enum/Literal | COMMENT |
| LOW | fastmcp_slim/fastmcp/server/elicitation.py | 73 | # Check if items are Literal (which Pydantic represents differently) | COMMENT |
| LOW | fastmcp_slim/fastmcp/server/elicitation.py | 503 | # Check if it's a primitive type | COMMENT |
| LOW | fastmcp_slim/fastmcp/server/dependencies.py | 862 | # Check if we're in a Docket worker context | COMMENT |
| LOW | …cp_slim/fastmcp/server/middleware/response_limiting.py | 113 | # Check if we should limit this tool | COMMENT |
| LOW | fastmcp_slim/fastmcp/server/tasks/elicitation.py | 113 | # Set status to "waiting" | COMMENT |
| LOW | fastmcp_slim/fastmcp/server/tasks/elicitation.py | 326 | # Check if there's a pending elicitation | COMMENT |
| LOW | fastmcp_slim/fastmcp/server/tasks/elicitation.py | 331 | # Push response to list - this wakes up the BLPOP in elicit_for_task | COMMENT |
| LOW | fastmcp_slim/fastmcp/server/tasks/notifications.py | 267 | # Check if subscriber already running for this session | COMMENT |
| LOW | fastmcp_slim/fastmcp/server/tasks/notifications.py | 270 | # Check if task is still running AND session is still alive | COMMENT |
| LOW | fastmcp_slim/fastmcp/server/tasks/requests.py | 272 | # Check if completed | COMMENT |
| LOW | fastmcp_slim/fastmcp/server/auth/redirect_validation.py | 261 | # Check if URI matches any allowed pattern | COMMENT |
| LOW | fastmcp_slim/fastmcp/server/auth/cimd.py | 603 | # Check if JTI was already used (and hasn't expired from cache) | COMMENT |
| LOW | fastmcp_slim/fastmcp/server/auth/middleware.py | 61 | # Check if Authorization header is present | COMMENT |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 1037 | # Check if code expired | COMMENT |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/discord.py | 99 | # Check if token is expired (Discord returns ISO timestamp) | COMMENT |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/oci.py | 53 | # Check if the signer exists for the token ID in memory cache | STRING |
| LOW | …cp_slim/fastmcp/server/auth/providers/introspection.py | 245 | # Check if token is active (required field per RFC 7662) | COMMENT |
| LOW | fastmcp_slim/fastmcp/server/auth/handlers/authorize.py | 212 | # Check if this is a client not found error | STRING |
| LOW⚡ | fastmcp_slim/fastmcp/server/auth/handlers/authorize.py | 229 | # Check if response body contains "not found" error | STRING |
| LOW | …_slim/fastmcp/server/providers/filesystem_discovery.py | 167 | # Check if this file is part of a package | COMMENT |
| LOW | …_slim/fastmcp/server/providers/filesystem_discovery.py | 324 | # Check if this object is a component type | COMMENT |
| LOW | …slim/fastmcp/server/providers/skills/skill_provider.py | 370 | # Check if it's a known supporting file | COMMENT |
| LOW | fastmcp_slim/fastmcp/server/sampling/run.py | 360 | # Check if any tool requires sequential execution | COMMENT |
| LOW | fastmcp_slim/fastmcp/server/sampling/run.py | 597 | # Check if this is a tool use response | COMMENT |
| LOW | …stmcp_slim/fastmcp/server/transforms/tool_transform.py | 79 | # Check if this name is a transformed name | COMMENT |
| LOW | fastmcp_slim/fastmcp/cli/run.py | 176 | # Check if it's an MCPConfig first (has canonical mcpServers key) | COMMENT |
| LOW | fastmcp_slim/fastmcp/cli/cli.py | 309 | # Set marker to prevent infinite loops when subprocess calls FastMCP | COMMENT |
| LOW | fastmcp_slim/fastmcp/cli/cli.py | 606 | # Check if we were spawned by uv (or user explicitly set --skip-env) | COMMENT |
| LOW | fastmcp_slim/fastmcp/cli/cli.py | 709 | # Check if we need to use uv run (but skip if we're already in uv or user said to skip) | COMMENT |
| LOW | fastmcp_slim/fastmcp/cli/cli.py | 746 | # Set marker to prevent infinite loops when subprocess calls FastMCP again | COMMENT |
| LOW | fastmcp_slim/fastmcp/cli/cli.py | 866 | # Check if we were spawned by uv (or user explicitly set --skip-env) | COMMENT |
| LOW | fastmcp_slim/fastmcp/cli/cli.py | 880 | # Check if it's an MCPConfig (which inspect doesn't support) | COMMENT |
| LOW | fastmcp_slim/fastmcp/cli/cli.py | 895 | # Check if we need to use uv run (but skip if we're already in uv or user said to skip) | COMMENT |
| LOW | fastmcp_slim/fastmcp/cli/install/shared.py | 85 | # Check if it's an MCPConfig (has mcpServers key) | COMMENT |
| LOW | fastmcp_slim/fastmcp/cli/install/gemini_cli.py | 97 | # Check if Gemini CLI is available | COMMENT |
| LOW | fastmcp_slim/fastmcp/cli/install/claude_code.py | 101 | # Check if Claude Code CLI is available | COMMENT |
| LOW | fastmcp_slim/fastmcp/utilities/logging.py | 43 | # Check if logging is disabled in settings | COMMENT |
| LOW | fastmcp_slim/fastmcp/utilities/skills.py | 173 | # Check if directory exists | COMMENT |
| LOW | fastmcp_slim/fastmcp/utilities/json_schema_type.py | 497 | # Check if one of the types is None (null) | COMMENT |
| LOW | fastmcp_slim/fastmcp/utilities/types.py | 72 | # Check if this is Annotated[Type, "string"] and convert to Annotated[Type, Field(description="string")] | COMMENT |
| LOW | fastmcp_slim/fastmcp/utilities/json_schema.py | 252 | # Check if original had a $ref | COMMENT |
| LOW | fastmcp_slim/fastmcp/utilities/json_schema.py | 656 | # Check if any definition that references this one is itself used | COMMENT |
| LOW | fastmcp_slim/fastmcp/utilities/cli.py | 79 | # Check if it's an MCPConfig first (has canonical mcpServers key) | COMMENT |
| LOW | …lim/fastmcp/utilities/openapi/json_schema_converter.py | 224 | # Check if any schema in the map needs conversion | COMMENT |
| LOW | …lim/fastmcp/utilities/openapi/json_schema_converter.py | 246 | # Check if nested schema needs conversion | COMMENT |
| LOW | …lim/fastmcp/utilities/openapi/json_schema_converter.py | 272 | # Check if any list item needs conversion | COMMENT |
| LOW | fastmcp_slim/fastmcp/utilities/openapi/director.py | 219 | # Check if it's a suffixed parameter (e.g., id__path) | COMMENT |
| LOW | fastmcp_slim/fastmcp/utilities/openapi/director.py | 233 | # Check if it's a known parameter | COMMENT |
| LOW | …tmcp/utilities/mcp_server_config/v1/environments/uv.py | 117 | # Check if uv is available | COMMENT |
| LOW | …p/utilities/mcp_server_config/v1/sources/filesystem.py | 36 | # Check if it's a Windows path (e.g., C:\...) | COMMENT |
| LOW | …p/utilities/mcp_server_config/v1/sources/filesystem.py | 48 | # Check if path contains an object specification | COMMENT |
| 24 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | fastmcp_slim/fastmcp/__init__.py | 105 | __all__ = [ | CODE |
| LOW | fastmcp_slim/fastmcp/telemetry.py | 114 | __all__ = [ | CODE |
| LOW | fastmcp_slim/fastmcp/types.py | 112 | __all__ = [ | CODE |
| LOW | fastmcp_slim/fastmcp/settings.py | 161 | def set_setting(self, attr: str, value: Any) -> None: | CODE |
| LOW | fastmcp_slim/fastmcp/dependencies.py | 26 | __all__ = [ | CODE |
| LOW | …lim/fastmcp/experimental/sampling/handlers/__init__.py | 5 | __all__ = ["OpenAISamplingHandler"] | CODE |
| LOW | …_slim/fastmcp/experimental/sampling/handlers/openai.py | 5 | __all__ = ["OpenAISamplingHandler"] | CODE |
| LOW | …tmcp_slim/fastmcp/experimental/transforms/code_mode.py | 638 | __all__ = [ | CODE |
| LOW | fastmcp_slim/fastmcp/tools/tool_transform.py | 919 | def _set_visibility_metadata(tool: Tool, *, enabled: bool) -> None: | CODE |
| LOW | fastmcp_slim/fastmcp/tools/__init__.py | 13 | __all__ = [ | CODE |
| LOW | fastmcp_slim/fastmcp/tools/base.py | 593 | __all__ = ["Tool", "ToolResult"] | CODE |
| LOW | fastmcp_slim/fastmcp/resources/__init__.py | 14 | __all__ = [ | CODE |
| LOW | fastmcp_slim/fastmcp/resources/base.py | 466 | __all__ = [ | CODE |
| LOW | fastmcp_slim/fastmcp/server/__init__.py | 18 | __all__ = ["Context", "FastMCP", "create_proxy"] | CODE |
| LOW | fastmcp_slim/fastmcp/server/telemetry.py | 243 | __all__ = [ | CODE |
| LOW | fastmcp_slim/fastmcp/server/elicitation.py | 20 | __all__ = [ | CODE |
| LOW | fastmcp_slim/fastmcp/server/dependencies.py | 142 | __all__ = [ | CODE |
| LOW | fastmcp_slim/fastmcp/server/dependencies.py | 1226 | async def set_total(self, total: int) -> None: | CODE |
| LOW | fastmcp_slim/fastmcp/server/dependencies.py | 1234 | async def set_message(self, message: str | None) -> None: | CODE |
| LOW | fastmcp_slim/fastmcp/server/dependencies.py | 1275 | async def set_total(self, total: int) -> None: | CODE |
| LOW | fastmcp_slim/fastmcp/server/dependencies.py | 1290 | async def set_message(self, message: str | None) -> None: | CODE |
| LOW | fastmcp_slim/fastmcp/server/dependencies.py | 1353 | async def set_total(self, total: int) -> None: | CODE |
| LOW | fastmcp_slim/fastmcp/server/dependencies.py | 1363 | async def set_message(self, message: str | None) -> None: | CODE |
| LOW | fastmcp_slim/fastmcp/server/middleware/__init__.py | 9 | __all__ = [ | CODE |
| LOW | fastmcp_slim/fastmcp/server/middleware/authorization.py | 50 | logger = logging.getLogger(__name__) | CODE |
| LOW | fastmcp_slim/fastmcp/server/middleware/middleware.py | 27 | __all__ = [ | CODE |
| LOW | fastmcp_slim/fastmcp/server/middleware/middleware.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | …cp_slim/fastmcp/server/middleware/response_limiting.py | 16 | __all__ = ["ResponseLimitingMiddleware"] | CODE |
| LOW | …cp_slim/fastmcp/server/middleware/response_limiting.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | fastmcp_slim/fastmcp/server/tasks/config.py | 12 | __all__ = [ | CODE |
| LOW | fastmcp_slim/fastmcp/server/tasks/__init__.py | 24 | __all__ = [ | CODE |
| LOW | fastmcp_slim/fastmcp/server/tasks/elicitation.py | 31 | logger = logging.getLogger(__name__) | CODE |
| LOW | fastmcp_slim/fastmcp/server/tasks/notifications.py | 36 | logger = logging.getLogger(__name__) | CODE |
| LOW | fastmcp_slim/fastmcp/server/mixins/mcp_operations.py | 95 | def _setup_handlers(self: FastMCP) -> None: | CODE |
| LOW | fastmcp_slim/fastmcp/server/mixins/__init__.py | 7 | __all__ = ["LifespanMixin", "MCPOperationsMixin", "TransportMixin"] | CODE |
| LOW | fastmcp_slim/fastmcp/server/mixins/lifespan.py | 265 | def _setup_task_protocol_handlers(self: FastMCP) -> None: | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/auth.py | 260 | def set_mcp_path(self, mcp_path: str | None) -> None: | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/auth.py | 612 | def set_mcp_path(self, mcp_path: str | None) -> None: | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/__init__.py | 58 | __all__ = [ | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/authorization.py | 11 | __all__ = [ | CODE |
| LOW⚡ | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 639 | def update_default_scopes(self, scopes: list[str]) -> None: | CODE |
| LOW⚡ | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 665 | def set_mcp_path(self, mcp_path: str | None) -> None: | CODE |
| LOW | …stmcp_slim/fastmcp/server/auth/oauth_proxy/__init__.py | 12 | __all__ = [ | CODE |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/workos.py | 394 | def set_mcp_path(self, mcp_path: str | None) -> None: | CODE |
| LOW | fastmcp_slim/fastmcp/server/providers/aggregate.py | 41 | logger = logging.getLogger(__name__) | CODE |
| LOW | fastmcp_slim/fastmcp/server/providers/proxy.py | 923 | def _setup_proxy_ping_handler(self) -> None: | CODE |
| LOW | fastmcp_slim/fastmcp/server/providers/__init__.py | 46 | __all__ = [ | CODE |
| LOW | …im/fastmcp/server/providers/local_provider/__init__.py | 11 | __all__ = ["LocalProvider"] | CODE |
| LOW | …server/providers/local_provider/decorators/__init__.py | 11 | __all__ = [ | CODE |
| LOW | …tmcp_slim/fastmcp/server/providers/openapi/provider.py | 42 | __all__ = [ | CODE |
| LOW | …tmcp_slim/fastmcp/server/providers/openapi/__init__.py | 30 | __all__ = [ | CODE |
| LOW | …stmcp_slim/fastmcp/server/providers/openapi/routing.py | 22 | __all__ = [ | CODE |
| LOW | …cp_slim/fastmcp/server/providers/openapi/components.py | 48 | __all__ = [ | CODE |
| LOW | …stmcp_slim/fastmcp/server/providers/skills/__init__.py | 47 | __all__ = [ | CODE |
| LOW | fastmcp_slim/fastmcp/server/sampling/__init__.py | 6 | __all__ = [ | CODE |
| LOW | fastmcp_slim/fastmcp/server/transforms/__init__.py | 230 | __all__ = [ | CODE |
| LOW | …tmcp_slim/fastmcp/server/transforms/search/__init__.py | 25 | __all__ = [ | CODE |
| LOW | …mcp_slim/fastmcp/contrib/component_manager/__init__.py | 3 | __all__ = ["set_up_component_manager"] | CODE |
| LOW | fastmcp_slim/fastmcp/contrib/mcp_mixin/__init__.py | 3 | __all__ = [ | CODE |
| LOW | …tmcp_slim/fastmcp/contrib/bulk_tool_caller/__init__.py | 3 | __all__ = ["BulkToolCaller"] | CODE |
| 35 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | fastmcp_slim/fastmcp/tools/tool_transform.py | 379 | CODE | |
| LOW | fastmcp_slim/fastmcp/tools/function_tool.py | 567 | CODE | |
| LOW | fastmcp_slim/fastmcp/tools/function_tool.py | 584 | CODE | |
| LOW | fastmcp_slim/fastmcp/tools/function_tool.py | 603 | CODE | |
| LOW | fastmcp_slim/fastmcp/tools/function_tool.py | 221 | CODE | |
| LOW | fastmcp_slim/fastmcp/tools/base.py | 541 | CODE | |
| LOW | fastmcp_slim/fastmcp/tools/base.py | 246 | CODE | |
| LOW | fastmcp_slim/fastmcp/tools/base.py | 437 | CODE | |
| LOW | fastmcp_slim/fastmcp/resources/function_resource.py | 244 | CODE | |
| LOW | fastmcp_slim/fastmcp/resources/function_resource.py | 85 | CODE | |
| LOW | fastmcp_slim/fastmcp/resources/template.py | 164 | CODE | |
| LOW | fastmcp_slim/fastmcp/resources/template.py | 194 | CODE | |
| LOW | fastmcp_slim/fastmcp/resources/template.py | 532 | CODE | |
| LOW | fastmcp_slim/fastmcp/resources/template.py | 444 | CODE | |
| LOW | fastmcp_slim/fastmcp/resources/base.py | 242 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 314 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 1649 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 1670 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 1785 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 1690 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 1811 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 1942 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 1958 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 1973 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/server.py | 2144 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/context.py | 939 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/context.py | 1044 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/context.py | 1059 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/http.py | 543 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/middleware/logging.py | 167 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/middleware/caching.py | 208 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/mixins/transport.py | 257 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/mixins/transport.py | 369 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/auth/oidc_proxy.py | 205 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/ui.py | 20 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/auth/oauth_proxy/proxy.py | 238 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/clerk.py | 273 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/azure.py | 99 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/discord.py | 193 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/oci.py | 122 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/google.py | 232 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/aws.py | 124 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/descope.py | 63 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/scalekit.py | 63 | CODE | |
| LOW | …tmcp_slim/fastmcp/server/auth/providers/huggingface.py | 177 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/github.py | 206 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/workos.py | 160 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/jwt.py | 214 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/auth0.py | 63 | CODE | |
| LOW | …cp/server/providers/local_provider/decorators/tools.py | 173 | CODE | |
| LOW | …cp/server/providers/local_provider/decorators/tools.py | 194 | CODE | |
| LOW | …cp/server/providers/local_provider/decorators/tools.py | 217 | CODE | |
| LOW | …/server/providers/local_provider/decorators/prompts.py | 73 | CODE | |
| LOW | …/server/providers/local_provider/decorators/prompts.py | 90 | CODE | |
| LOW | …/server/providers/local_provider/decorators/prompts.py | 106 | CODE | |
| LOW | …erver/providers/local_provider/decorators/resources.py | 106 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/sampling/run.py | 496 | CODE | |
| LOW | fastmcp_slim/fastmcp/server/sampling/run.py | 640 | CODE | |
| LOW | fastmcp_slim/fastmcp/cli/run.py | 136 | CODE | |
| LOW | fastmcp_slim/fastmcp/cli/client.py | 641 | CODE | |
| 28 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | fastmcp_slim/fastmcp/server/auth/providers/clerk.py | 112 | # Step 1: Validate token via introspection (RFC 7662). | COMMENT |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/clerk.py | 187 | # Step 2: Fetch user profile via userinfo. | COMMENT |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/google.py | 106 | # Step 1: Verify token via tokeninfo endpoint. | COMMENT |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/google.py | 158 | # Step 2: Fetch user profile from v2 userinfo endpoint. | COMMENT |
| LOW | …fastmcp/contrib/component_manager/component_manager.py | 101 | # We need to check if it's a template (contains {}) and use "template" if so | COMMENT |
| LOW⚡ | fastmcp_slim/fastmcp/utilities/json_schema_type.py | 540 | # Step 1: replace everything except [0-9a-zA-Z_] with underscores | COMMENT |
| LOW⚡ | fastmcp_slim/fastmcp/utilities/json_schema_type.py | 542 | # Step 2: deduplicate underscores | COMMENT |
| LOW⚡ | fastmcp_slim/fastmcp/utilities/json_schema_type.py | 544 | # Step 3: if the first char of original name isn't a letter or underscore, prepend field_ | COMMENT |
| LOW⚡ | fastmcp_slim/fastmcp/utilities/json_schema_type.py | 547 | # Step 4: deduplicate again | COMMENT |
| LOW⚡ | fastmcp_slim/fastmcp/utilities/json_schema_type.py | 549 | # Step 5: only strip trailing underscores if they weren't in the original name | COMMENT |
| LOW⚡ | fastmcp_slim/fastmcp/utilities/json_schema_type.py | 552 | # Step 6: if result is a Python keyword, append an underscore (PEP 8 convention) | COMMENT |
| LOW⚡ | …lim/fastmcp/utilities/openapi/json_schema_converter.py | 92 | # Step 1: Handle nullable field conversion (OpenAPI 3.0 only) | COMMENT |
| LOW⚡ | …lim/fastmcp/utilities/openapi/json_schema_converter.py | 96 | # Step 2: Convert oneOf to anyOf if requested | COMMENT |
| LOW⚡ | …lim/fastmcp/utilities/openapi/json_schema_converter.py | 100 | # Step 3: Preserve discriminator tag presence before removing the keyword | COMMENT |
| LOW⚡ | …lim/fastmcp/utilities/openapi/json_schema_converter.py | 103 | # Step 4: Remove OpenAPI-specific fields | COMMENT |
| LOW⚡ | …lim/fastmcp/utilities/openapi/json_schema_converter.py | 107 | # Step 5: Handle readOnly/writeOnly property removal | COMMENT |
| LOW⚡ | …lim/fastmcp/utilities/openapi/json_schema_converter.py | 113 | # Step 6: Recursively process nested schemas | COMMENT |
| LOW⚡ | fastmcp_slim/fastmcp/utilities/openapi/director.py | 57 | # Step 1: Un-flatten arguments into path, query, body, etc. using parameter map | COMMENT |
| LOW⚡ | fastmcp_slim/fastmcp/utilities/openapi/director.py | 66 | # Step 2: Serialize query parameters according to OpenAPI style/explode | COMMENT |
| LOW⚡ | fastmcp_slim/fastmcp/utilities/openapi/director.py | 69 | # Step 3: Build base URL with path parameters | COMMENT |
| LOW⚡ | fastmcp_slim/fastmcp/utilities/openapi/director.py | 72 | # Step 4: Prepare request data | COMMENT |
| LOW⚡ | fastmcp_slim/fastmcp/utilities/openapi/director.py | 79 | # Step 5: Determine the declared content type from the OpenAPI spec. | COMMENT |
| LOW | fastmcp_slim/fastmcp/utilities/openapi/director.py | 96 | # Step 6: Handle request body — dispatch on declared content type. | COMMENT |
| LOW | fastmcp_slim/fastmcp/utilities/openapi/director.py | 143 | # Step 7: Create httpx.Request | COMMENT |
| LOW | …gration_tests/auth/test_github_provider_integration.py | 220 | # Step 1: Register OAuth client (DCR) | COMMENT |
| LOW | …gration_tests/auth/test_github_provider_integration.py | 240 | # Step 2: Test authorization endpoint redirects to consent page | COMMENT |
| LOW | …gration_tests/auth/test_github_provider_integration.py | 260 | # Step 3: Visit consent page to get CSRF token | COMMENT |
| LOW | …gration_tests/auth/test_github_provider_integration.py | 278 | # Step 4: Approve consent | COMMENT |
| LOW⚡ | tests/server/test_auth_integration.py | 549 | # Step 1: First, let's create a token and refresh token at the current time | COMMENT |
| LOW | tests/server/test_auth_integration.py | 568 | # Step 2: Time travel forward 4 hours (tokens expire in 1 hour by default) | COMMENT |
| LOW⚡ | tests/server/providers/test_prefab_roundtrip.py | 70 | # Step 1: call UI tool, get structured_content with hashed ref | COMMENT |
| LOW⚡ | tests/server/providers/test_prefab_roundtrip.py | 73 | # Step 2: call the backend tool by its hashed name | COMMENT |
| LOW | examples/search/client_regex.py | 73 | # Step 1: list_tools shows only synthetic tools | COMMENT |
| LOW | examples/search/client_regex.py | 91 | # Step 2: regex patterns discover tools | COMMENT |
| LOW | examples/search/client_regex.py | 127 | # Step 3: call discovered tools | COMMENT |
| LOW | examples/search/client_bm25.py | 73 | # Step 1: list_tools shows only synthetic tools + pinned tools | COMMENT |
| LOW | examples/search/client_bm25.py | 92 | # Step 2: natural language search discovers tools by relevance | COMMENT |
| LOW | examples/search/client_bm25.py | 128 | # Step 3: call a discovered tool | COMMENT |
| LOW | examples/code_mode/client.py | 76 | # Step 1: list_tools only returns two synthetic meta-tools | COMMENT |
| LOW | examples/code_mode/client.py | 94 | # Step 2: search discovers available tools | COMMENT |
| LOW | examples/code_mode/client.py | 111 | # Step 3: execute chains tool calls in one round-trip | COMMENT |
| LOW | .github/scripts/mention/gh-resolve-review-thread.sh | 28 | # Step 1: Post comment if provided | COMMENT |
| LOW | .github/scripts/mention/gh-resolve-review-thread.sh | 48 | # Step 2: Resolve the thread | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | fastmcp_slim/fastmcp/server/auth/providers/clerk.py | 112 | # Step 1: Validate token via introspection (RFC 7662). | COMMENT |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/clerk.py | 187 | # Step 2: Fetch user profile via userinfo. | COMMENT |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/google.py | 106 | # Step 1: Verify token via tokeninfo endpoint. | COMMENT |
| LOW | fastmcp_slim/fastmcp/server/auth/providers/google.py | 158 | # Step 2: Fetch user profile from v2 userinfo endpoint. | COMMENT |
| LOW | …cp/server/providers/local_provider/decorators/tools.py | 214 | # NOTE: This method mirrors fastmcp.tools.tool() but adds registration and | COMMENT |
| LOW⚡ | fastmcp_slim/fastmcp/utilities/json_schema_type.py | 540 | # Step 1: replace everything except [0-9a-zA-Z_] with underscores | COMMENT |
| LOW⚡ | fastmcp_slim/fastmcp/utilities/json_schema_type.py | 542 | # Step 2: deduplicate underscores | COMMENT |
| LOW⚡ | fastmcp_slim/fastmcp/utilities/json_schema_type.py | 544 | # Step 3: if the first char of original name isn't a letter or underscore, prepend field_ | COMMENT |
| LOW⚡ | fastmcp_slim/fastmcp/utilities/json_schema_type.py | 547 | # Step 4: deduplicate again | COMMENT |
| LOW⚡ | fastmcp_slim/fastmcp/utilities/json_schema_type.py | 549 | # Step 5: only strip trailing underscores if they weren't in the original name | COMMENT |
| LOW⚡ | fastmcp_slim/fastmcp/utilities/json_schema_type.py | 552 | # Step 6: if result is a Python keyword, append an underscore (PEP 8 convention) | COMMENT |
| LOW⚡ | …lim/fastmcp/utilities/openapi/json_schema_converter.py | 92 | # Step 1: Handle nullable field conversion (OpenAPI 3.0 only) | COMMENT |
| LOW⚡ | …lim/fastmcp/utilities/openapi/json_schema_converter.py | 96 | # Step 2: Convert oneOf to anyOf if requested | COMMENT |
| LOW⚡ | …lim/fastmcp/utilities/openapi/json_schema_converter.py | 100 | # Step 3: Preserve discriminator tag presence before removing the keyword | COMMENT |
| LOW⚡ | …lim/fastmcp/utilities/openapi/json_schema_converter.py | 103 | # Step 4: Remove OpenAPI-specific fields | COMMENT |
| LOW⚡ | …lim/fastmcp/utilities/openapi/json_schema_converter.py | 107 | # Step 5: Handle readOnly/writeOnly property removal | COMMENT |
| LOW⚡ | …lim/fastmcp/utilities/openapi/json_schema_converter.py | 113 | # Step 6: Recursively process nested schemas | COMMENT |
| LOW⚡ | fastmcp_slim/fastmcp/utilities/openapi/director.py | 57 | # Step 1: Un-flatten arguments into path, query, body, etc. using parameter map | COMMENT |
| LOW⚡ | fastmcp_slim/fastmcp/utilities/openapi/director.py | 66 | # Step 2: Serialize query parameters according to OpenAPI style/explode | COMMENT |
| LOW⚡ | fastmcp_slim/fastmcp/utilities/openapi/director.py | 69 | # Step 3: Build base URL with path parameters | COMMENT |
| LOW⚡ | fastmcp_slim/fastmcp/utilities/openapi/director.py | 72 | # Step 4: Prepare request data | COMMENT |
| LOW⚡ | fastmcp_slim/fastmcp/utilities/openapi/director.py | 79 | # Step 5: Determine the declared content type from the OpenAPI spec. | COMMENT |
| LOW | fastmcp_slim/fastmcp/utilities/openapi/director.py | 96 | # Step 6: Handle request body — dispatch on declared content type. | COMMENT |
| LOW | fastmcp_slim/fastmcp/utilities/openapi/director.py | 143 | # Step 7: Create httpx.Request | COMMENT |
| LOW | …gration_tests/auth/test_github_provider_integration.py | 220 | # Step 1: Register OAuth client (DCR) | COMMENT |
| LOW | …gration_tests/auth/test_github_provider_integration.py | 240 | # Step 2: Test authorization endpoint redirects to consent page | COMMENT |
| LOW | …gration_tests/auth/test_github_provider_integration.py | 260 | # Step 3: Visit consent page to get CSRF token | COMMENT |
| LOW | …gration_tests/auth/test_github_provider_integration.py | 278 | # Step 4: Approve consent | COMMENT |
| LOW⚡ | tests/server/test_auth_integration.py | 549 | # Step 1: First, let's create a token and refresh token at the current time | COMMENT |
| LOW | tests/server/test_auth_integration.py | 568 | # Step 2: Time travel forward 4 hours (tokens expire in 1 hour by default) | COMMENT |
| LOW⚡ | tests/server/providers/test_prefab_roundtrip.py | 70 | # Step 1: call UI tool, get structured_content with hashed ref | COMMENT |
| LOW⚡ | tests/server/providers/test_prefab_roundtrip.py | 73 | # Step 2: call the backend tool by its hashed name | COMMENT |
| LOW | examples/search/client_regex.py | 73 | # Step 1: list_tools shows only synthetic tools | COMMENT |
| LOW | examples/search/client_regex.py | 91 | # Step 2: regex patterns discover tools | COMMENT |
| LOW | examples/search/client_regex.py | 127 | # Step 3: call discovered tools | COMMENT |
| LOW | examples/search/client_bm25.py | 73 | # Step 1: list_tools shows only synthetic tools + pinned tools | COMMENT |
| LOW | examples/search/client_bm25.py | 92 | # Step 2: natural language search discovers tools by relevance | COMMENT |
| LOW | examples/search/client_bm25.py | 128 | # Step 3: call a discovered tool | COMMENT |
| LOW | examples/code_mode/client.py | 76 | # Step 1: list_tools only returns two synthetic meta-tools | COMMENT |
| LOW | examples/code_mode/client.py | 94 | # Step 2: search discovers available tools | COMMENT |
| LOW | examples/code_mode/client.py | 111 | # Step 3: execute chains tool calls in one round-trip | COMMENT |
| LOW | .github/scripts/mention/gh-resolve-review-thread.sh | 28 | # Step 1: Post comment if provided | COMMENT |
| LOW | .github/scripts/mention/gh-resolve-review-thread.sh | 48 | # Step 2: Resolve the thread | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | fastmcp_slim/fastmcp/server/context.py | 310 | # Set current server for dependency injection (use weakref to avoid reference cycles) | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/providers/descope.py | 43 | - Format: ``https://.../v1/apps/agentic/P.../M.../.well-known/openid-configuration`` | STRING |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/providers/descope.py | 54 | config_url="https://.../v1/apps/agentic/P.../M.../.well-known/openid-configuration", | STRING |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/providers/descope.py | 80 | config_url: Your Descope Well-Known URL (e.g., "https://.../v1/apps/agentic/P.../M.../.well-known/openid-con | STRING |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/providers/descope.py | 112 | # Extract project_id from path (format: /v1/apps/agentic/P.../M...) | COMMENT |
| MEDIUM⚡ | tests/server/tasks/test_task_dependencies.py | 24 | # Track dependency injection | COMMENT |
| MEDIUM⚡ | tests/server/auth/providers/test_descope.py | 22 | config_url="https://api.descope.com/v1/apps/agentic/P2abc123/M123/.well-known/openid-configuration", | CODE |
| MEDIUM⚡ | tests/server/auth/providers/test_descope.py | 34 | config_url="https://api.descope.com/v1/apps/agentic/P2env123/M123/.well-known/openid-configuration", | CODE |
| MEDIUM⚡ | tests/server/auth/providers/test_descope.py | 47 | config_url="https://api.descope.com/v1/apps/agentic/P2abc123/M123/.well-known/openid-configuration", | CODE |
| MEDIUM⚡ | tests/server/auth/providers/test_descope.py | 55 | config_url="http://localhost:8080/v1/apps/agentic/P2abc123/M123/.well-known/openid-configuration", | CODE |
| MEDIUM⚡ | tests/server/auth/providers/test_descope.py | 63 | config_url="https://api.descope.com/v1/apps/agentic/P2abc123/M123", | CODE |
| MEDIUM⚡ | tests/server/auth/providers/test_descope.py | 128 | == "https://api.descope.com/v1/apps/agentic/P2new123/M123" | CODE |
| MEDIUM⚡ | tests/server/auth/providers/test_descope.py | 133 | config_url = "https://api.descope.com/v1/apps/agentic/P2abc123/M123/.well-known/openid-configuration" | CODE |
| MEDIUM⚡ | tests/server/auth/providers/test_descope.py | 134 | issuer_url = "https://api.descope.com/v1/apps/agentic/P2abc123/M123" | CODE |
| MEDIUM⚡ | tests/server/auth/providers/test_descope.py | 154 | config_url="https://api.descope.com/v1/apps/agentic/P2abc123/M123/.well-known/openid-configuration", | CODE |
| MEDIUM⚡ | tests/server/auth/providers/test_descope.py | 181 | "FASTMCP_SERVER_AUTH_DESCOPEPROVIDER_CONFIG_URL": "https://api.descope.com/v1/apps/agentic/P2env123/M123 | CODE |
| MEDIUM⚡ | tests/server/auth/providers/test_descope.py | 187 | config_url="https://api.descope.com/v1/apps/agentic/P2env123/M123/.well-known/openid-configuration", | CODE |
| MEDIUM | tests/server/auth/providers/test_descope.py | 116 | config_url="https://api.descope.com/v1/apps/agentic/P2new123/M123/.well-known/openid-configuration", | CODE |
| MEDIUM | tests/server/auth/providers/test_descope.py | 201 | config_url="https://api.descope.com/v1/apps/agentic/P2test123/M123/.well-known/openid-configuration", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | fastmcp_slim/fastmcp/server/tasks/requests.py | 73 | - "user@example.com@1.0" → ("user@example.com", "1.0") # @ in URI | STRING |
| LOW | fastmcp_slim/fastmcp/utilities/openapi/formatters.py | 163 | return "user@example.com" | CODE |
| LOW⚡ | tests/resources/test_resource_template.py | 503 | quoted_name = quote("John Doe", safe="") | CODE |
| LOW⚡ | tests/resources/test_resource_template.py | 507 | assert result == {"name": "John Doe", "email": "john@example.com"} | CODE |
| LOW | tests/server/tasks/test_task_elicitation_relay.py | 172 | assert result.data == "Jane Doe" | CODE |
| LOW⚡ | tests/server/auth/test_jwt_provider_bearer.py | 579 | verifier = JWTVerifier(public_key="dummy-key") | CODE |
| LOW⚡ | tests/server/auth/test_jwt_provider_bearer.py | 580 | assert verifier.public_key == "dummy-key" | CODE |
| LOW | tests/server/auth/providers/test_workos.py | 351 | "email": "user@example.com", | CODE |
| LOW | tests/server/auth/providers/test_workos.py | 373 | "email": "user@example.com", | CODE |
| LOW⚡ | tests/server/auth/providers/test_clerk.py | 269 | json={"email": "user@example.com"}, | CODE |
| LOW | tests/server/auth/providers/test_clerk.py | 209 | "email": "user@example.com", | CODE |
| LOW | tests/server/auth/providers/test_clerk.py | 241 | assert result.claims["email"] == "user@example.com" | CODE |
| LOW | tests/server/auth/providers/test_clerk.py | 478 | "email": "user@example.com", | CODE |
| LOW | tests/server/auth/providers/test_azure.py | 1185 | await provider.get_obo_credential(user_assertion="fake-token") | CODE |
| LOW⚡ | tests/server/auth/providers/test_google.py | 138 | extra_authorize_params={"login_hint": "user@example.com"}, | CODE |
| LOW⚡ | tests/server/auth/providers/test_google.py | 143 | assert provider._extra_authorize_params["login_hint"] == "user@example.com" | CODE |
| LOW⚡ | tests/server/auth/providers/test_google.py | 284 | "email": "user@example.com", | CODE |
| LOW⚡ | tests/server/auth/providers/test_google.py | 294 | "email": "user@example.com", | CODE |
| LOW⚡ | tests/server/auth/providers/test_google.py | 367 | "email": "user@example.com", | CODE |
| LOW⚡ | tests/server/auth/providers/test_google.py | 374 | json={"sub": "12345", "email": "user@example.com"}, | CODE |
| LOW | tests/server/auth/providers/test_google.py | 312 | assert result.claims["email"] == "user@example.com" | CODE |
| LOW | …ver/providers/openapi/test_end_to_end_compatibility.py | 178 | "name": "John Doe", # Body parameter | CODE |
| LOW⚡ | tests/cli/test_cimd_cli.py | 126 | assert "placeholder" in captured.err | CODE |
| LOW⚡ | tests/cli/test_cimd_cli.py | 136 | assert "placeholder" not in captured.err | CODE |
| LOW | tests/utilities/openapi/test_director.py | 210 | "name": "John Doe", | CODE |
| LOW | tests/utilities/openapi/test_director.py | 221 | assert body_data["name"] == "John Doe" | CODE |
| LOW | tests/utilities/openapi/test_director.py | 301 | "name": "John Doe", | CODE |
| LOW | tests/utilities/openapi/test_director.py | 310 | assert body_data["name"] == "John Doe" | CODE |
| LOW | tests/utilities/openapi/test_director.py | 1016 | flat_args = {path_param_name: 123, "name": "John Doe"} | CODE |
| LOW | tests/conformance/server.py | 166 | name: str = Field(default="John Doe", description="User name") | CODE |
| LOW | docs/apps/demos/dashboard.py | 21 | {"account": "Acme Corp", "value": "$84,000", "stage": "Won"}, | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | fastmcp_slim/fastmcp/server/http.py | 681 | # (our `_lifespan_proxy`), which now drives `server._lifespan_manager()`. | COMMENT |
| LOW | …tmcp/server/providers/local_provider/local_provider.py | 461 | # Note: Decorator methods (tool, resource, prompt, add_tool, add_resource, | COMMENT |
| LOW | fastmcp_slim/fastmcp/utilities/json_schema.py | 541 | # We're in the main schema, so this is a root reference | COMMENT |
| LOW | fastmcp_slim/fastmcp/client/transports/config.py | 181 | COMMENT | |
| LOW | fastmcp_slim/fastmcp/client/transports/memory.py | 61 | client_read, client_write = client_streams | COMMENT |
| LOW | tests/server/auth/providers/test_supabase.py | 201 | async with Client(mcp_server_url) as client: | COMMENT |
| LOW | …/utilities/json_schema_type/test_real_world_schemas.py | 341 | _record_failure("other_errors", _name, schema, e) | COMMENT |
| LOW | examples/skills/server.py | 21 | mcp = FastMCP("Skills Server") | COMMENT |
| LOW | examples/skills/server.py | 41 | # - VSCodeSkillsProvider() → ~/.copilot/skills/ | COMMENT |
| LOW | .github/workflows/require-issue-link.yml | 1 | # Require external PRs to reference an issue with an auto-close keyword | COMMENT |
| LOW | .github/workflows/require-issue-link.yml | 21 | # the linked issue reopens previously closed PRs automatically. | COMMENT |
| LOW | .github/workflows/require-issue-link.yml | 101 | // ENFORCE_ISSUE_LINK=false means strictly read-only. | COMMENT |
| LOW | .github/scripts/mention/gh-get-review-threads.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | .github/scripts/mention/gh-resolve-review-thread.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | .github/scripts/pr-review/pr-comment.sh | 1 | #!/bin/bash | COMMENT |
| LOW | .github/scripts/pr-review/pr-comment.sh | 21 | # if err != nil { | COMMENT |
| LOW | .github/scripts/pr-review/pr-diff.sh | 1 | #!/bin/bash | COMMENT |
| LOW | .github/scripts/pr-review/pr-remove-comment.sh | 1 | #!/bin/bash | COMMENT |
| LOW | .github/scripts/pr-review/pr-existing-comments.sh | 1 | #!/bin/bash | COMMENT |
| LOW | .github/scripts/pr-review/pr-review.sh | 1 | #!/bin/bash | COMMENT |
| LOW | .github/actions/run-claude/action.yml | 1 | # Composite Action for running Claude Code Action | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | fastmcp_slim/fastmcp/server/low_level.py | 97 | # its own adapter, so we just pass through. | COMMENT |
| LOW | fastmcp_slim/fastmcp/server/lifespan.py | 132 | # self._fn is already a context manager factory, just call it | COMMENT |
| MEDIUM | fastmcp_slim/fastmcp/server/middleware/logging.py | 149 | """Middleware that provides comprehensive request and response logging. | STRING |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/ssrf.py | 250 | """Fetch URL with comprehensive SSRF protection and DNS pinning. | STRING |
| MEDIUM | fastmcp_slim/fastmcp/server/auth/providers/in_memory.py | 111 | # The AuthorizationHandler already does robust validation using client.validate_redirect_uri | COMMENT |
| LOW⚡ | fastmcp_slim/fastmcp/server/auth/handlers/authorize.py | 240 | # If we can't parse the response, just return the original | STRING |
| LOW | …_slim/fastmcp/server/providers/filesystem_discovery.py | 50 | # If root is a file, just return it (if it's a .py file) | COMMENT |
| LOW | fastmcp_slim/fastmcp/cli/cli.py | 60 | return "npx" # On Unix-like systems, just use npx | CODE |
| LOW | fastmcp_slim/fastmcp/utilities/json_schema_type.py | 785 | # Otherwise just use the data | COMMENT |
| LOW | fastmcp_slim/fastmcp/utilities/cli.py | 81 | # MCPConfig - we don't process these here, just pass through | COMMENT |
| LOW | fastmcp_slim/fastmcp/utilities/cli.py | 94 | # Not a valid MCPServerConfig, just pass through | COMMENT |
| LOW | fastmcp_slim/fastmcp/utilities/cli.py | 97 | # Not a valid JSON file, just pass through | COMMENT |
| LOW | fastmcp_slim/fastmcp/client/tasks.py | 422 | # Unknown type - just return it | COMMENT |
| MEDIUM | tests/conftest.py | 225 | """Fixture that creates a FastMCP server with comprehensive tool set for provider tests.""" | STRING |
| MEDIUM | tests/server/providers/openapi/test_comprehensive.py | 371 | """Test server initialization with comprehensive spec.""" | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/tools/test_standalone_decorator.py | 161 | def my_method() -> str: | CODE |
| LOW⚡ | tests/tools/test_standalone_decorator.py | 175 | def my_method(cls) -> str: | CODE |
| LOW | tests/server/test_dependencies.py | 202 | def process_data(value: int, config: str = Depends(fetch_config)) -> str: | CODE |
| LOW | tests/server/test_input_validation.py | 213 | def process_data(count: int, name: str) -> str: | CODE |
| LOW | tests/server/test_input_validation.py | 237 | def process_data(count: int, name: str) -> str: | CODE |
| LOW | tests/server/test_icons.py | 79 | def my_function(x: int) -> int: | CODE |
| LOW | tests/server/test_icons.py | 130 | def my_function() -> str: | CODE |
| LOW | tests/server/test_icons.py | 185 | def my_function(id: str) -> str: | CODE |
| LOW | tests/server/test_icons.py | 240 | def my_function(topic: str): | CODE |
| LOW | tests/server/tasks/test_server_tasks_parameter.py | 366 | async def my_function() -> str: | CODE |
| LOW⚡ | tests/server/providers/test_local_provider_prompts.py | 293 | def my_function() -> str: | CODE |
| LOW | tests/server/providers/test_local_provider_prompts.py | 240 | def my_function() -> str: | CODE |
| LOW⚡ | …erver/providers/local_provider_tools/test_decorator.py | 313 | def my_function(x: int) -> str: | CODE |
| LOW⚡ | …erver/providers/local_provider_tools/test_decorator.py | 324 | def my_function(x: int) -> str: | CODE |
| LOW | …erver/providers/local_provider_tools/test_decorator.py | 292 | def my_function(x: int) -> str: | CODE |
| LOW⚡ | tests/server/sampling/test_sampling_tool.py | 237 | def my_function(): | CODE |
| LOW | tests/utilities/test_typeadapter.py | 41 | def do_something(self, x: int) -> int: | CODE |
| LOW | tests/prompts/test_prompt.py | 239 | def process_data( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …stmcp_slim/fastmcp/contrib/component_manager/README.md | 108 | -H "Authorization: Bearer YOUR_TOKEN_HERE" \ | CODE |
| HIGH | …stmcp_slim/fastmcp/contrib/component_manager/README.md | 134 | -H "Authorization: Bearer YOUR_TOKEN_HERE" \ | CODE |
| HIGH | …stmcp_slim/fastmcp/contrib/component_manager/README.md | 140 | -H "Authorization: Bearer YOUR_TOKEN_HERE" \ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/scripts/mention/gh-get-review-threads.sh | 6 | # Usage: | COMMENT |
| LOW | .github/scripts/mention/gh-resolve-review-thread.sh | 6 | # Usage: | COMMENT |
| LOW | .github/scripts/pr-review/pr-comment.sh | 4 | # Usage: | COMMENT |
| LOW | .github/scripts/pr-review/pr-diff.sh | 4 | # Usage: | COMMENT |
| LOW | .github/scripts/pr-review/pr-remove-comment.sh | 4 | # Usage: | COMMENT |
| LOW | .github/scripts/pr-review/pr-existing-comments.sh | 4 | # Usage: | COMMENT |
| LOW | .github/actions/run-claude/action.yml | 6 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | tests/test_mcp_config.py | 545 | assert client.transport.transport.auth.token.get_secret_value() == "test_token" | STRING |
| CRITICAL | tests/test_mcp_config.py | 560 | assert client.transport.transport.auth.token.get_secret_value() == "test_token" | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | fastmcp_slim/fastmcp/client/transports/base.py | 68 | CODE | |
| MEDIUM | tests/client/auth/test_oauth_static_client.py | 144 | CODE | |
| MEDIUM | tests/client/transports/test_transports.py | 24 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| 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 | CODE |
| LOW | docs/apps/demos/hitchhikers.py | 99 | Text("Don't forget to bring it.") | CODE |
| LOW | examples/apps/showcase_server.py | 49 | f"Thanks, {owner_input.rx}. Don't forget to bring it." | CODE |
| LOW | examples/apps/showcase_server.py | 52 | Text("Anonymous, I see? Don't forget to bring it.") | CODE |
| 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 | CODE |