PyPI / fastmcp-slim / 4.1.1

fastmcp-slim 4.1.1

Source
https://github.com/PrefectHQ/fastmcp
Tag scanned
v4.1.1
Directory
fastmcp_slim (only this part of the repository was scanned)
Compared with
v4.1.0 (0 signals introduced since)
Files
267 scanned, 3 skipped (binary, oversized, or unrecognised)
Signals
0 critical · 0 warn · 1 info
Scan time
3.7 s
LLM review
Reviewed by claude-haiku-5-5 (Anthropic): 1 of 1 warn and critical signal; 1 demoted to info.
Disclude version
4.0.0
Scanned (UTC)
2026-10-19 04:10

Signals

Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.

  1. info warn → info by review frame-introspection fastmcp_slim/fastmcp/client/transports/inference.py:41:13

    `sys._getframe` — call-stack frame introspection (ast pass, confidence 0.70)

        level = 1
        frame = sys._getframe(1)
        while frame is not None:
            if not frame.f_code.co_filename.startswith(_PACKAGE_ROOT):
    likely benign LLM, confidence 0.85 Walks the call stack with sys._getframe to locate the first caller outside the fastmcp package.
    Reasoning

    The snippet uses sys._getframe(1) and walks outward while the frame's co_filename is inside the package root (_PACKAGE_ROOT). That is a common way for a library to find its external caller, for example to infer a module or transport context. It does not execute decoded data, spawn processes, or hide behavior, and it sits in a plausible MCP client transport module. Frame introspection is an unusual pattern, so a small doubt remains, but nothing here points to malicious intent.

Reproduce This Scan

Run disclude locally to verify. Add --format sarif for SARIF output. Add --llm (with an API key in the environment) to include the LLM review.

cargo install disclude --version 4.0.0
git clone https://github.com/PrefectHQ/fastmcp fastmcp && cd fastmcp
git checkout v4.1.1
disclude scan --severity info --diff v4.1.0 fastmcp_slim