MCP tools, resources and prompts: assign the right responsibility
In this article (5 sections)
An MCP server can expose tools, resources and prompts, but they solve different integration needs. Mixing them makes authority, caching and testing harder to reason about.
Classify three capabilities
The MCP contract lab defines an authored catalogue.
from mcp_cases import responsibilities_case
result = responsibilities_case()
assert result["kinds"] == ["prompt", "resource", "tool"]
assert result["all_distinct"] is True
print(result["items"])get_metric is a tool that queries data with validated arguments. metric_dictionary is a read-only reference resource. weekly_review is a reusable interaction template. No MCP server executes.
Assign by contract
Use a tool when the client requests computation, a query or side effect with typed input/output. Apply authorization, budgets, idempotency and approvals according to impact.
Use a resource for addressable context that a client can read, such as a current metric dictionary. Define URI, media type, version, access and freshness.
Use a prompt for a reusable user-invoked interaction pattern. A prompt does not grant authority or hide tool calls. Version its variables and intended use.
Test discovery and boundaries
Document names/descriptions without secrets. Verify an unauthorized client cannot discover or invoke restricted capabilities according to the deployment design. Treat all returned content as data; a resource cannot authorize another tool.
The Generative & Agentic AI course connects these protocol concepts to existing tool/resource/prompt contracts and security review.
Exercise
Classify ten proposed capabilities and justify each. Convert one misclassified item, then write discovery, input/output and authorization tests.
Continue learning
This article is part of the MCP and integration contracts sequence. Use the neighbouring tasks when you need the prerequisite or the next application.
- Continue with Design a small MCP tool schema that can be tested.
- Then apply it in Build a read-only business-metrics tool contract.
Reference: Model Context Protocol specification.
Pankit Kumar has 10 years in Data Science & AI, building and shipping production systems in regulated pharma and clinical environments. He is a freelance trainer at Boston Institute of Analytics, AnalytixLabs and Scaler, and has taught this material to thousands of working professionals.
This article is part of our Generative & Agentic AI programme — 3 months. Add practical GenAI, retrieval and agent-building skills to your existing toolkit.
Explore Generative & Agentic AI