ruvnet/ruflo · error

- ${f.toolA} <-> ${f.toolB}: ${f.reason}

Error message

  - ${f.toolA} <-> ${f.toolB}: ${f.reason}

What it means

Per-finding detail line printed by evaluateToolComposition() under block mode: toolA and toolB share a suspicious fragment whose reason is shown. It is diagnostic output accompanying the block decision, not a separate failure.

Source

Thrown at v3/@claude-flow/security/src/mcp-composition-inspector.ts:336

 */
export function evaluateToolComposition(
  tools: readonly McpToolDescriptor[],
  options: CompositionInspectorOptions = {},
): CompositionGuardResult {
  const result = inspectToolComposition(tools, options);
  if (result.findings.length === 0) {
    return { result, action: 'none', blocked: false };
  }

  const summary =
    `MCP Composition Inspector: ${result.findings.length} suspicious cross-tool fragment(s) ` +
    `across ${result.stats.toolsScanned} tools (${result.stats.pairsCompared} pairs compared)`;

  if (isCompositionBlockEnabled()) {
    const message = `${summary} — blocking chain (${COMPOSITION_BLOCK_ENV}=1)`;
    console.warn(`[mcp-composition-inspector] ${message}`);
    for (const f of result.findings) {
      console.warn(`  - ${f.toolA} <-> ${f.toolB}: ${f.reason}`);
    }
    return { result, action: 'block', blocked: true, message };
  }

  console.warn(`[mcp-composition-inspector] ${summary}`);
  for (const f of result.findings) {
    console.warn(`  - ${f.toolA} <-> ${f.toolB}: ${f.reason}`);
  }
  return { result, action: 'warn', blocked: false, message: summary };
}

View on GitHub (pinned to fa13ee4ad6)

Solutions

  1. Review the flagged tool pair and the reason; avoid enabling both tools together in one composition.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at v3/@claude-flow/security/src/mcp-composition-inspector.ts:336 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of ruvnet/ruflo@fa13ee4ad6 (2026-08-18). Data as JSON: /api/errors/e1b0050d31598999. Report an issue: GitHub.