Skip to content

"progressive disclosure" workflow is broken at the last step #61

@PSHHCode

Description

@PSHHCode

I won't lie, I'm a nube and I had Opus 4.6 use the tool, but it had some issues. I think we are using all your latest stuff. So here is what it reported:

Bug Report: drift_tool calls fail with UNKNOWN error code (Rust type conversion)
Package: @drift/mcp v0.1.0
Environment: Node.js, running as a Cursor MCP server on Ubuntu Linux (6.8.0-90-generic)
Project: Python/TypeScript full-stack app (~50+ .py files, React frontend)
Summary
Calling drift_tool to execute discovered tools (drift_reachability and drift_contracts) fails silently with an UNKNOWN error code citing a Rust type conversion issue. The higher-level MCP entry points (drift_scan, drift_status, drift_discover, drift_context) all work correctly — only drift_tool (the gateway for executing the ~49 internal tools) is broken.
Steps to Reproduce
Configure drift-v2 MCP server with DRIFT_PROJECT_PATH pointing to a Python/TypeScript project.
Run drift_scan — succeeds (0 violations, 66ms).
Run drift_status — succeeds.
Run drift_discover with intent "trace impact and reachability of changes to persona settings and voice configuration" — succeeds, suggests drift_reachability, drift_impact_analysis, drift_contracts.
Run drift_tool with:
tool: "drift_reachability", params: {"function": "_apply_persona_settings"} — fails
tool: "drift_contracts", params: {"path": "personas_routes.py"} — fails
Both return an UNKNOWN error code with a message referencing a Rust type conversion failure. The tool result body is empty.
Expected Behavior
drift_reachability should return the call graph / data flow from _apply_persona_settings. drift_contracts should return the API contract surface for personas_routes.py (a FastAPI router file).
Actual Behavior
Both calls fail with an UNKNOWN gRPC-style error code and a Rust type conversion error in the message. No useful output is returned.
What Works
Tool Status
drift_scan OK
drift_status OK
drift_discover OK
drift_context OK
drift_tool → drift_reachability FAILS
drift_tool → drift_contracts FAILS
Impact
The 3 high-level entry points (drift_discover, drift_context, drift_scan) work and provide useful results. But drift_tool is the only way to execute the specific internal tools that drift_discover recommends — so the "progressive disclosure" workflow is broken at the last step. The agent gets good tool suggestions but can't actually run them, forcing a fallback to manual grep/exploration.
Additional Context
The error message mentions a Rust type conversion, suggesting the issue may be in a native/WASM binding layer between the Node MCP server and an underlying Rust analysis engine.
The project being analyzed is a mixed Python (FastAPI) + TypeScript (React/Vite) codebase. It's possible the failure is specific to Python file analysis, since the Rust parser may not handle Python ASTs the same way.

Sorry about the formatting.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions