Chitresh-code/helpdesk-mcp-server
If you are the rightful owner of helpdesk-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
An MCP server application designed for managing IT helpdesk services and service requests, providing a REST API for tracking IT equipment/services inventory and handling employee service requests.
IT Helpdesk Agent
An MCP (Model Context Protocol) server application for managing IT helpdesk services and service requests. This application provides a REST API for tracking IT equipment/services inventory and managing service requests from employees.
🚀 Features
- Service Management: Track IT services/equipment with quantities
- Service Request Management: Handle employee requests for IT services
- Database Integration: PostgreSQL database with SQLModel ORM
- MCP Protocol: Built using FastMCP for seamless integration with AI assistants
- Docker Support: Containerized application for easy deployment
- Modern Python: Built with Python 3.13+ and modern async patterns
📋 API Endpoints
The application exposes the following MCP tools:
Service Management
read_services()- Fetch all available servicesmodify_service_quantity(service_id, quantity)- Update service inventory quantities
Service Request Management
read_service_requests()- Fetch all service requestscreate_new_service_request(request)- Create new service requestsmodify_service_request_status(request_id, status)- Update request status
🏗️ Architecture
Database Models
Service Model:
id: Primary keyname: Service name (indexed, max 100 chars)description: Optional service description (max 500 chars)quantity: Available quantity (≥ 0)created_at,updated_at: Timestamps
ServiceRequest Model:
id: Primary keyservice_id: Foreign key to Servicerequester_name: Name of requester (max 100 chars)request_date: When request was madestatus: Enum (pending,approved,returned)created_at,updated_at: Timestamps
Project Structure
├── server/
│ ├── main.py # MCP server entry point
│ ├── config.py # Configuration settings
│ ├── models/ # SQLModel database models
│ │ ├── service.py
│ │ └── service_request.py
│ ├── schemas/ # Pydantic schemas for API
│ │ ├── service.py
│ │ └── service_request.py
│ ├── crud/ # Database operations
│ │ ├── service.py
│ │ └── service_request.py
│ └── db/
│ └── init_db.py # Database initialization
├── Dockerfile # Multi-stage Docker build
├── compose.yaml # Docker Compose configuration
├── pyproject.toml # UV package management
└── requirements.txt # Python dependencies
🐳 Getting Started with Docker
Prerequisites
- Docker and Docker Compose
- PostgreSQL database
Environment Setup
- Create a
.envfile in the project root:
POSTGRES_DATABASE_URL=postgresql://username:password@localhost:5432/helpdesk_db
Running the Application
- Using Docker Compose (Recommended):
docker-compose up --build
- Using Docker directly:
# Build the image
docker build -t it-helpdesk-agent .
# Run the container
docker run -p 8000:8000 --env-file .env it-helpdesk-agent
The server will be available at http://localhost:8000
🛠️ Development Setup
Local Prerequisites
- Python 3.13+
- uv package manager
- PostgreSQL database
Local Development
- Install dependencies with uv:
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -r requirements.txt
- Set up environment variables:
export POSTGRES_DATABASE_URL="postgresql://username:password@localhost:5432/helpdesk_db"
- Run the server:
python -m server.main --port 8000
📦 Dependencies
Key dependencies managed by UV:
- FastMCP: MCP server framework
- SQLModel: Modern SQL toolkit for Python
- FastAPI: High-performance web framework
- asyncpg/psycopg2: PostgreSQL drivers
- uvicorn: ASGI server for production
🔧 Configuration
The application uses environment variables for configuration:
| Variable | Description | Required |
|---|---|---|
POSTGRES_DATABASE_URL | PostgreSQL connection string | Yes |
🚀 Deployment
Production Deployment
- Set up PostgreSQL database
- Configure environment variables
- Deploy using Docker Compose:
docker-compose up -d --build
Health Checks
The application automatically:
- Creates database tables on startup
- Validates database connectivity
- Provides structured error responses
📝 Usage Examples
Creating a Service Request
# Example service request payload
{
"service_id": 1,
"requester_name": "John Doe",
"status": "pending"
}
Updating Service Quantity
# Example quantity update
{
"quantity": 50
}
🤝 Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
📄 License
This project is licensed under the MIT License.
🆘 Support
For support and questions:
- Check the documentation
- Review the API schemas in
/server/schemas/ - Examine the models in
/server/models/
Built with ❤️ using Python, FastMCP, and Docker