AgentFixboard

MCP tools pass only the first content block to the agent

When an MCP tool returns more than one content block, CrewAI hands only result.content[0] to the agent. Later text is dropped.

From GitHub

crewAIInc/crewAI

Difficulty
Easy
Time
~5 min
Steps
2
Fixed in
1.15.29
Last checked

Verified fix: PR #8300 merged on . Fixed in 1.15.29 (first published release whose tag contains the merge commit). Last checked .

Symptom

When an MCP tool returns more than one content block, CrewAI hands only result.content[0] to the agent. Later text is dropped.

Evidence what you'll see

  • On main c6e500ab the report's three_blocks tool returns RESULT three_blocks: 'first'. The blocks second and third never reach the agent.
  • The same first-block read is in MCPClient._call_tool_impl, MCPToolWrapper._execute_tool, and MCPNativeTool._extract_content.

Why it happens

Each native MCP path took result.content[0] and returned that item's text or str(). Pull request 8300 joins every text block with newlines and renders non-text blocks as a short typed placeholder such as [image: image/png].

Affected versions

crewAI 1.15.28 (main at c6e500ab), crewAI Tools 1.15.28, mcp 1.30.0, Python 3.10.19 and 3.13.16, macOS 27.0.1.

Fix steps

0 of 2 done

Your check marks stay in this browser only.

How to check it worked

  • Calling the three_blocks MCP tool through Agent(mcps=[MCPServerStdio(...)]) prints RESULT three_blocks: 'first\nsecond\nthird'.

If it still fails

  • Tag 1.15.28 does not contain pull request 8300.
  • The pull request does not change MCPServerAdapter in crewai-tools, which still returns every text block as a Python list repr.

Sources and credit

Summarized in our own words from these public reports. Credit goes to their authors.

Provided as is, without warranty. Try changes in a non-production environment and back up first. Security-related steps: verify against the official docs. Terms · Request removal or attribution change

Hit an error we don't cover? Submit it