Skip to main content
Glama
mohamedelamraoui1

FastMCP Prompts Example

🧩 FastMCP Prompts Example

Follow on X WhatsApp Channel License

Python FastMCP MCP uv

A small, focused tutorial showing how to build MCP prompts with FastMCP — reusable, parameterized message templates that any MCP client (Claude Desktop, IDEs, custom agents) can discover and render.

šŸ“š Perfect as a first step into the Model Context Protocol before diving into tools and resources.


šŸ“– What are MCP prompts?

While MCP tools let a model do things and resources let it read things, prompts are user-controlled templates: the client lists them, fills in their arguments, and injects the rendered messages into the conversation. Think of them as slash commands for LLMs.

Related MCP server: MCP Server Template

✨ What this example covers

main.py demonstrates the three patterns you'll use most, from simplest to most powerful:

#

Prompt

Pattern

Concept demonstrated

1

research_prompt

Return a plain str

Simplest form — auto-wrapped in a single user message

2

summarize_prompt

Optional + constrained args

Literal types & defaults become a client-visible argument schema

3

code_review_prompt

Return list[Message]

Seed a full multi-turn conversation (user + assistant messages)

Along the way you'll also see: naming, descriptions, tags, and server instructions.

šŸš€ Quickstart

Prerequisites: Python 3.12+ and uv.

# 1. Clone and enter the project
git clone https://github.com/mohamedelamraoui1/fastMCP-2-0-example.git
cd fastMCP-2-0-example

# 2. Install dependencies
uv sync

# 3. Run the server (stdio transport)
uv run main.py

If everything is set up correctly, you'll see the FastMCP banner and the server waiting for a client on stdio:

FastMCP server startup banner

šŸ” Test with the MCP Inspector

The fastest way to explore the prompts is the MCP Inspector — a web UI for poking at any MCP server. It requires Node.js (the Inspector is an npm package that FastMCP launches for you).

Step 1 — Launch the Inspector:

uv run fastmcp dev inspector main.py

You'll see output like this, and your browser opens automatically:

šŸš€ MCP Inspector is up and running at:
   http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=<session-token>
āš™ļø Proxy server listening on localhost:6277

If the browser doesn't open, copy the full URL (including the token) from the terminal.

Step 2 — Connect to the server. The connection form is pre-filled (transport STDIO, command fastmcp run main.py). Just click Connect — the indicator turns green when the handshake succeeds.

Step 3 — List the prompts. Open the Prompts tab and click List Prompts. You should see all three: research_prompt, summarize_prompt, and code_review_prompt, each with its description.

Step 4 — Render a prompt. Click a prompt, fill in its arguments in the form (e.g. topic = "quantum computing" for research_prompt), and click Get Prompt. The right panel shows the exact messages the server returns.

Step 5 — See the interesting cases:

  • On summarize_prompt, notice the length and tone fields only accept the Literal values from the type hints — that's the argument schema in action.

  • On code_review_prompt, paste any snippet as code and notice the result is three messages (user → assistant → user), not one — a pre-seeded conversation.

When you're done, stop the Inspector with Ctrl+C in the terminal.

šŸ–„ļø Use it from Claude Desktop

Add the server to your Claude Desktop config (claude_desktop_config.json):

{
  "mcpServers": {
    "prompt-examples": {
      "command": "uv",
      "args": ["run", "--directory", "C:/absolute/path/to/fastMCP-2-0-example", "main.py"]
    }
  }
}

Restart Claude Desktop, then look for the prompts in the + (attachments) menu.

šŸ’” No API key needed. Claude Desktop uses your Claude account, and this MCP server only serves prompt templates — it never calls an LLM itself. You'd only need an Anthropic API key if you wrote your own client that sends the rendered prompts to the API.

šŸ—‚ļø Project structure

.
ā”œā”€ā”€ main.py          # The MCP server — 3 prompt patterns, fully commented
ā”œā”€ā”€ assets/          # Screenshots used in this README
ā”œā”€ā”€ pyproject.toml   # Project metadata & dependencies
ā”œā”€ā”€ uv.lock          # Locked dependency versions
└── README.md

šŸ“š Learn more

šŸ› ļø Tech stack

Technology

Role

Python 3.12+

Language

FastMCP 3.x

MCP server framework

uv

Dependency & environment management

šŸ“„ License

This project is licensed under the MIT License — see the LICENSE file for details.


Made with ā¤ļø for the MCP community. Follow @mcoding_off for more tutorials.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    An educational example demonstrating how to build MCP servers in Python using FastMCP, showing how to expose tools, resources, and prompts to AI clients.
    -
  • F
    license
    B
    quality
    Not graded
    maintenance
    A production-ready FastMCP server template with modular architecture for building MCP servers with organized tools, resources, and prompts, featuring container support and AI agent documentation system.
    3
    -
  • F
    license
    B
    quality
    D
    maintenance
    A template and demonstration project for building, testing, and deploying remote MCP servers using FastMCP and uv. It provides a foundational structure for creating MCP-compliant tools that can be hosted publicly and integrated with LLM agents.
    2
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    A production-ready template for developing MCP servers with Python and FastMCP, including example tools like a multiply calculator and code review prompt generator.
    Apache 2.0