Skip to main content
Glama
README.md
# MCP Server Demo with FastMCP

A beginner-friendly **Model Context Protocol (MCP)** server built using the **official FastMCP Python SDK**.

This project demonstrates the core concepts of MCP by implementing custom **Tools**, **Resources**, and **Prompts**, and testing them with **MCP Inspector**.

---

## ๐Ÿ“Œ Features

โœ… Custom MCP Tools

- Addition
- Subtraction
- Multiplication
- Division
- Word Counter
- Uppercase Converter
- Lowercase Converter
- Reverse Text
- Current Time
- Mock Weather

---

โœ… Dynamic Resources

- Greeting Resource
- About Project Resource

---

โœ… Prompt Templates

- Greeting Prompt
- Summarization Prompt
- Explanation Prompt

---

## ๐Ÿ“‚ Project Structure

```text
mcp-server-demo/
โ”‚
โ”œโ”€โ”€ mcp.py
โ”œโ”€โ”€ pyproject.toml
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ uv.lock
โ””โ”€โ”€ .venv/
```

---

## โš™๏ธ Requirements

- Python 3.11+
- uv
- MCP SDK
- FastMCP

---

## ๐Ÿ“ฆ Installation

Clone the repository

```bash
git clone https://github.com/yourusername/mcp-server-demo.git
```

Go to the project

```bash
cd mcp-server-demo
```

Install dependencies

```bash
uv sync
```

---

## โ–ถ๏ธ Run the MCP Server

```bash
uv run mcp dev mcp.py
```

---

## ๐Ÿ›  Available Tools

| Tool | Description |
|------|-------------|
| add | Add two numbers |
| subtract | Subtract two numbers |
| multiply | Multiply two numbers |
| divide | Divide two numbers |
| word_count | Count words |
| uppercase | Convert text to uppercase |
| lowercase | Convert text to lowercase |
| reverse_text | Reverse text |
| current_time | Show current time |
| mock_weather | Return mock weather information |

---

## ๐Ÿ“„ Resources

### Greeting

```text
greeting://Suresh
```

Output

```text
Hello, Suresh! Welcome to MCP.
```

---

### About Project

```text
about://project
```

Returns information about the project.

---

## ๐Ÿ’ฌ Prompt Templates

### greet_user

Generate a greeting prompt.

### summarize_prompt

Generate a summarization prompt.

### explain_prompt

Generate an explanation prompt.

---

## ๐Ÿงช Testing

Run the server

```bash
uv run mcp dev mcp.py
```

Open **MCP Inspector**

Test

- Tools
- Resources
- Prompts

---

## ๐Ÿ›  Tech Stack

- Python
- FastMCP
- MCP SDK
- MCP Inspector
- uv

---

## ๐ŸŽฏ Learning Objectives

This project demonstrates

- MCP Fundamentals
- FastMCP
- Tools
- Resources
- Prompt Templates
- MCP Inspector
- Python MCP Server Development

---

## ๐Ÿ“ธ Screenshots

You can add screenshots of

- MCP Inspector
- Tools
- Resources
- Prompts

---

## ๐Ÿš€ Future Improvements

- File Reader Tool
- JSON Formatter
- CSV Analyzer
- Markdown Converter
- UUID Generator
- Password Generator
- Notes Manager
- Weather API Integration
- Calculator Suite
- AI-powered Text Utilities

---

## ๐Ÿ‘จโ€๐Ÿ’ป Author

**Sureshkumar**

GitHub:
https://github.com/Sureshkumar8795/mcp-server-demo.git

---

## ๐Ÿ“„ License

MIT License

TDQS

A3.7/5.0

Scored across 10 tools

Disambiguation5/5

Each tool performs a distinct, non-overlapping operation: arithmetic tools handle basic math, string tools handle text transformations, and time/weather are separate. No two tools could be confused for another.

Naming Consistency5/5

All tool names use lowercase, verb-first conventions with clear actions (add, subtract, multiply, divide, word_count, uppercase, etc.). Compound names use underscores consistently, maintaining a uniform style.

Tool Count5/5

With 10 tools covering arithmetic, string operations, time, and mock weather, the count is well-scoped for a demo server. Each tool has a clear purpose and none feel redundant or excessive.

Completeness4/5

The arithmetic set is complete with all four basic operations, and string operations cover common transformations. Missing operations like string concatenation or length are minor gaps for a demo, but the core surface is adequate.

Maintenance

ActivityStale
ResponsivenessNo issues