MCP – Prompts & Resources

3 months ago

This may be the last post in the basic MCP series on the blog. Originally I had planned not to write any more because the documentation for Prompts & Resources in MCP is very limited, but since these two topics are interesting I decided to introduce them to readers.

I have read and studied the material about these two items on the MCP main site. After understanding the principles and use‑cases, I looked for projects that have integrated them and intended to add examples to this article, but it turned out that very few projects actually implement these two components. Why is that?

In my opinion, a few reasons may explain it:

Not many MCP clients support Prompts & Resources, and when they do, the way to deploy and use them is not straightforward. Most of the behavior depends on how each client is implemented, and since each client adopts its own approach, the lack of consistency creates difficulties for both developers and users.

Only a small number of MCP servers have enabled these resources, so the benefits are not visible yet. They may be treated as optional add‑ons; having them or not doesn’t make a big difference, so the community hasn’t shown much interest.

So, what are Prompts & Resources in MCP?

Prompts are request templates that a client can call to ask the model to perform a specific task. Prompts are defined by the MCP server; the client can retrieve them and use them as input data. A prompt also includes its parameters.

Example of a prompt definition:

{
  "name": "plan-vacation",
  "title": "Plan a vacation",
  "description": "Guide through vacation planning process",
  "arguments": [
    { "name": "destination", "type": "string", "required": true },
    { "name": "duration", "type": "number", "description": "days" },
    { "name": "budget", "type": "number", "required": false },
    { "name": "interests", "type": "array", "items": { "type": "string" } }
  ]
}

When an MCP client detects that the server supports Prompts, it fetches the list of prompts and displays them for the user to choose. Suppose the user selects the plan-vacation prompt above; based on the arguments definition the client will ask the user to fill in the corresponding fields such as destination, duration, etc. The destination field is mandatory because its required attribute is true. After the user enters the values, the client sends this data to the model as input. Think of Prompts as a way to collect structured input for the application, instead of having the user type free‑form text from scratch.

Resources are data sources that the server makes available to the client or the model. A Resource can be a file, a piece of text, or any other data identified by a URI that the client can easily retrieve. In simple terms, Resources are an extension of the MCP server that provides extra information or documentation that the server deems useful for the client to consume.

Example of a resource definition:

{
  "uriTemplate": "weather://forecast/{city}/{date}",
  "name": "weather-forecast",
  "title": "Weather Forecast",
  "description": "Get weather forecast for any city and date",
  "mimeType": "application/json"
}

From this we can see that the resource is used to obtain a weather forecast for a specific city on a given date. The client uses the template to fetch the data and create a richer context for its requests.

Prompts & Resources are two optional additions that a MCP server can expose to guide clients on how to use the server and to supply extra context. Because I could not find any systematic documentation or examples that show both components working together, this article stays at the introductory level without code samples. If you have any reference material, please share it in the comments. Thank you!