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 henry@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.
read_services
Fetch all available services
modify_service_quantity
Update service inventory quantities
read_service_requests
Fetch all service requests
create_new_service_request
Create new service requests
modify_service_request_status
Update request status
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
.env
file 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