Password Generator MCP Server
by raki0230
README.md
# Password Generator MCP Server
A simple **Model Context Protocol (MCP)** server built using the **Python MCP SDK** to demonstrate the three core **MCP Primitives**:
- π οΈ **Tools** β Generate a secure password.
- π **Resources** β Expose a password policy.
- π‘ **Prompts** β Provide a reusable prompt template for generating secure passwords.
This project accompanies my Medium article on **MCP Inspector** and **MCP Primitives**, providing a hands-on example to help you understand how these concepts work together.
---
# Project Structure
```text
MCP-INSPECTOR/
β
βββ prompts/
β βββ __init__.py
β βββ password_prompt.py
β
βββ resources/
β βββ __init__.py
β βββ password_resource.py
β
βββ tools/
β βββ __init__.py
β βββ password_tool.py
β
βββ .gitignore
βββ .python-version
βββ app.py
βββ pyproject.toml
βββ README.md
βββ server.py
βββ uv.lock
```
### Project Overview
- **app.py** β Creates the FastMCP server instance.
- **server.py** β Entry point that registers all MCP primitives and starts the server.
- **tools/password_tool.py** β Implements the Password Generator Tool.
- **resources/password_resource.py** β Exposes the Password Policy Resource.
- **prompts/password_prompt.py** β Defines the reusable Prompt template.
- **pyproject.toml** β Project configuration and project dependencies.
- **uv.lock** β Lock file generated by UV.
- **README.md** β Project documentation.
---
# Clone the Repository
Clone the repository to your local machine.
```bash
git clone <YOUR_GITHUB_REPOSITORY_LINK>
```
Navigate to the project directory.
```bash
cd MCP-INSPECTOR
```
Synchronize and install all project dependencies.
```bash
uv sync
```
Activate the virtual environment.
**Windows**
```bash
.venv\Scripts\activate
```
---
# Running the MCP Server with MCP Inspector
Start the MCP server using:
```bash
mcp dev server.py
```
This command starts the MCP server and automatically launches **MCP Inspector** in your browser.
Using MCP Inspector you can:
- View all registered MCP primitives.
- Execute Tools.
- Read Resources.
- Test Prompt templates.
- Validate your MCP server before integrating it with an MCP client.
**Screenshot:** *MCP Inspector Home Page*
---
# Testing the Tool
Open the **Tools** section inside MCP Inspector.
Select **generate_password** and provide the required inputs such as:
- Password Length
- Include Special Characters
Execute the Tool to generate a secure password.
**Screenshot:** *Password Generator Tool*
**Screenshot:** *Generated Password Output*
---
# Testing the Resource
Open the **Resources** section.
Select the **password://policy** resource.
The server returns the password policy and security recommendations exposed by the MCP server.
**Screenshot:** *Password Policy Resource*
---
# Testing the Prompt
Navigate to the **Prompts** section.
Select **create_secure_password_prompt**.
Provide an account type such as:
- Banking
- Email
- Social Media
The Prompt generates a reusable instruction template for creating a secure password.
**Screenshot:** *Prompt Execution*
---
# Installing the MCP Server in Claude Desktop
Open a **new terminal** and run:
```bash
mcp install server.py
```
Once the installation is complete, restart **Claude Desktop** if it is already running.
Claude Desktop will automatically discover the MCP server and its registered primitives.
You can now interact with the server using natural language.
For example:
> Generate a strong password for my email.
or
> Show me the password policy.

*Claude Desktop Detecting the MCP Server*

*Claude Desktop Invoking the Password Generator Tool*
---
# Creating an MCP Project from Scratch
If you'd like to build your own MCP server from scratch, follow these steps.
### 1. Initialize a UV Project
```bash
uv init
```
---
### 2. Create a Virtual Environment
```bash
uv venv
```
---
### 3. Activate the Virtual Environment
**Windows**
```bash
.venv\Scripts\activate
```
---
### 4. Install the MCP SDK
```bash
uv add "mcp[cli]"
```
---
### 5. Start MCP Inspector
```bash
mcp dev server.py
```
---
### 6. Install the MCP Server in Claude Desktop
Open a new terminal and run:
```bash
mcp install server.py
```
---
# MCP Primitives Included
### π οΈ Tool
**generate_password()**
Generates a secure password with configurable length and optional special characters.
---
### π Resource
**password://policy**
Returns the password generation policy and recommended password security practices.
---
### π‘ Prompt
**create_secure_password_prompt()**
Creates a reusable prompt template for generating a secure password for a specified account type.
---
# Medium Article
If you're new to MCP and would like a detailed explanation of **MCP Inspector** and **MCP Primitives**, check out my accompanying Medium article.
**Medium:** https://medium.com/@n.raki2331/understanding-mcp-inspector-and-the-three-core-mcp-primitives-tools-resources-prompts-e6069f1ca75d?sharedUserId=n.raki2331
---
TDQS
B3.1/5.0
Scored across 1 tool
Disambiguation5/5
With only one tool, there is no possibility of ambiguity or confusion between tools. The tool's purpose is clearly unique.
Naming Consistency5/5
The single tool name 'generate_password' follows a clear verb_noun pattern, which is standard and predictable. No inconsistencies exist.
Tool Count3/5
A single tool is borderline insufficient for a password generator, as users often expect options like length, character sets, or multiple generation methods. The server feels thin but is not extreme.
Completeness2/5
The server only offers a basic generate_password function with no parameters described. Real-world password generators typically include customization options (length, symbols, numbers, etc.), so the surface is incomplete for a robust tool.
Maintenance
ActivityStale
ResponsivenessNo issues