Blog / How agents load MCP tools

MCP prompts vs resources vs tools: which ones agents actually see (tested in 5 agent apps)

You wrote a careful MCP prompt that explains your workflow, and a resource with the full guide. The support matrix says the agent app supports both. Then the agent ignores them. Here's why: in our captures, the model never saw a single prompt, and resources only reached it in two apps.

Leonid Bugaev ยท Published 21 Oct 2026

The short answer

An MCP server can send an agent five kinds of thing: server instructions, tools, tool results, prompts and resources. Support matrices tell you which of these an app implements. They don't tell you which ones the model ends up reading, and that's the part that changes what the agent does.

So we checked from the wire. We put a unique marker word in each channel of a test server, connected it to five agent app versions, and searched every model request for each marker.

What reached the model, per agent app

Model-visible MCP channels, captured 16 Oct 2026
ChannelClaude Code 2.1.301Codex 0.161Grok Build 1.0.60OpenCode 1.18.34OpenCode 2.0.31
Server instructionsYes, in the system prompt, cut at 4,096 charsYes, but in front of every tool description, not in the first promptYes, a reminder at session start, cut at ~2,048 chars; once arrived too lateYes, in full, system promptYes, in full, after the tool catalog
ToolsNames first; definitions on searchSearched from codeSearched (BM25)All loaded16 of 99 shown, cheapest first
PromptsNoNoNoNoNo
ResourcesYes, through list/read toolsYesNo native accessListing tools exist, not usedListing tools exist, not used
Server instructions
5 of 5 (cut or moved in 3)
Tools
5 of 5
Resources
2 of 5
Prompts
0 of 5

Prompts: built for humans, invisible to the model

Our test server offered one prompt, a short review playbook, with a marker in its description and another in its body. Neither marker appeared in any model request, in any app. That's consistent with the spec: prompts are user-controlled. Apps surface them as slash commands or menu items, and the model only sees the text once a person picks one.

That makes prompts fine for humans and useless for teaching an agent anything. If your workflow guide lives in a prompt, agents never read it.

Resources: only if the model goes looking

Resources are application-controlled data. In Claude Code and Codex the model gets generic tools to list and read them, so it can reach your guide if it decides to look. Grok Build gave it no native way in. OpenCode 1 and 2 exposed listing tools, but the model didn't use them in our runs.

So a resource is a place to keep long reference material that a tool or the instructions can point to. It's not a place for anything the agent must know.

Find where agents fail on your tools. Measure what fixes it.

Bring your MCP server, CLI or API and the jobs your users need done. We run real agents against them, read every call, and hand back measured gaps and fixes.

Test your MCP

Instructions: everywhere, but cut or moved

The instructions field from initialize reached the model in all five apps, but not the same way:

A production server we tested sent 5,092 characters of instructions, so Claude Code dropped about 1,000 characters and Grok Build about 3,000. Details and the length to aim for: do agents read MCP server instructions? and how long MCP server instructions should be (coming soon).

Tool results: even here, apps differ

A tool result can carry text content, structuredContent, or both. With a two-marker result (one in each part), the model saw:

Which part of a CallToolResult reached the model, 16 Oct 2026
Agent appWhat the model saw
Claude Code 2.1.301structuredContent only
OpenCode 1.18.34Text content only
Codex 0.161, default code modeWhatever the model's script printed; printing the raw result included both parts, then got truncated

So a server that sends both pays twice on the wire but not in the model's context. The catch is the opposite: if one part is a summary and the other has the details, some apps show the model only the summary. Make each part complete, or send one. More in tool results and errors for agents.

Where to put what agents need

A home for each kind of agent knowledge
KnowledgePut it in
What the product is, when to use this server, rules that must never be missedServer instructions, first lines, under 2,000 characters
Step-by-step playbooks per jobA start-here get_instructions(job) tool
What a field meansThe description of the tool that returns it
What to do nextHints in tool results
The right path after a mistakeError messages
Long reference materialA resource, pointed to from a tool
Shortcuts for human usersPrompts

The start-here tool is the piece we measured most: with a short hint, Claude Code and Codex called it first in 24 of 24 runs each on a mock server. See make the agent read your playbook first.

Go deeper: How agent apps load MCP tools, Onboard agents through your MCP server, 5 ways to optimise your MCP tools.

How we measured

More on the method in how to measure MCP server quality.

Sources

FAQ

Do AI agents use MCP prompts?

Not on their own. In our captures of Claude Code, Codex, Grok Build and OpenCode 1 and 2, no prompt description or body reached the model. Prompts are designed to be user-controlled, surfaced as slash commands, so the model only sees one if a person invokes it.

Do AI agents read MCP resources?

Sometimes. In Claude Code and Codex the model can list and read resources through built-in tools, if it decides to. Grok Build had no native access, and OpenCode had listing tools that the model didn't use in our runs. Don't put anything an agent must know only in a resource.

What is the difference between MCP tools, resources and prompts?

In the MCP spec, tools are model-controlled actions, resources are application-controlled data addressed by URI, and prompts are user-controlled templates. In practice, for agents, only tools and the server instructions reliably reach the model.

Where should I put instructions for AI agents in an MCP server?

In the server instructions (short, under 2,000 characters, most important first), in tool descriptions (essential meaning in the first line), and in tool results and errors (what to do next). A start-here tool that returns a playbook per job also works: see our 24-of-24 test.

Does Claude Code see the text content or the structuredContent of a tool result?

In our capture of Claude Code 2.1.301, when a result had both, the model saw only structuredContent. OpenCode 1.18.34 showed only the text content. Make each part complete on its own, or send one.

Find where agents fail on your tools. Measure what fixes it.

Bring your MCP server, CLI or API and the jobs your users need done. We run real agents against them, read every call, and hand back measured gaps and fixes.

Test your MCP