# What this is about
This piece explains the practical difference between an AI agent and a Model Context Protocol (MCP) server, what each side owns, how they communicate, and how to decide which to build for your use case.
# One system, two roles
An AI agent and an MCP server work together but take distinct parts of the job. The user gives the agent a goal. The agent runs a loop: choose a tool, call a model, interpret the result, pick the next tool, and so on. The MCP server publishes tools (data, APIs, or product features) and executes the single-tool calls the agent sends.
# Protocol limits that affect architecture
The MCP revision dated 2026-07-28 defines request methods and notifications but does not include a dedicated field for a goal, task, or objective. The tools/call method requires the caller to specify a tool name, so the server cannot choose the tool on behalf of the agent.
- The only way to get freeform goal text to reach a server is to put it into an argument field the server expects for a particular tool. That requires the agent to have already chosen that tool.
# State and sessions
The 2026-07-28 revision removed sessions and the initialize handshake that older specs used. Each request now carries a _meta block with the protocol version and client capabilities. The agent, not the server, keeps the plan, conversation history, and stopping condition between calls.
# Costs and trade-offs
- MCP servers: their tool definitions add context that agents must load. That increases agent-side context usage. They also bear product-side costs: hosting, access controls, and tool execution charges.
- AI agents: you pay for model calls, retries, and whatever the chosen tools charge. Agents also carry the complexity of running the loop, maintaining plan state, and implementing retries or error handling.
- Agents you do not control need programmatic access to what you own (data, API, or product features).
- You need to centralize tool definitions and control access, pricing, or auditing of calls.
- The next step depends on the previous result and that decision logic (the loop) must live with the plan and conversation history.
- You need to orchestrate multiple tools dynamically and keep state between tool calls.
# Practical testing insight
A practical test against mcp.apify.com and other public servers showed that servers often ignored undeclared parameters without an error. When a goal was placed in an argument field the server recognizes (e.g., keywords), the server behaved differently, confirming the only reliable way to pass a goal to an MCP server is via declared parameters for the chosen tool.
# Bottom line