KodachiQube/WorkzoneMCP
If you are the rightful owner of WorkzoneMCP 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.
The Workzone MCP Server is a Model Context Protocol server that integrates AI assistants with Workzone case management functionalities, capable of operating as both an Azure Function and a standalone server.
Workzone MCP Server
A Model Context Protocol (MCP) server that provides AI assistants with access to Workzone case management functionality. This server can run both as an Azure Function and as a standalone MCP server.
Features
- Case Management: Get, create, update, and search Workzone cases
- Dual Mode: Run as Azure Function or standalone MCP server
- Resilient: Built-in retry policies and circuit breakers
- Observable: Application Insights integration
- Type-Safe: Fully typed with C# 8.0
Prerequisites
- .NET 8.0 SDK
- Azure Functions Core Tools v4 (for Azure Function mode)
- Workzone API credentials
Project Structure
WorkzoneMCP/
├── src/
│ ├── WorkzoneMCP.Core/ # Core models and interfaces
│ ├── WorkzoneMCP.Functions/ # Azure Functions and MCP server
│ ├── WorkzoneMCP.Services/ # Business logic and API clients
│ └── WorkzoneMCP.Tests/ # Unit and integration tests
├── scripts/ # Utility scripts
└── docs/ # Documentation
Configuration
Environment Variables
App__WorkzoneApiUrl: Workzone API base URLApp__WorkzoneApiKey: Workzone API keyApp__TimeoutSeconds: HTTP timeout (default: 30)App__MaxRetryAttempts: Max retry attempts (default: 3)App__RetryDelayMilliseconds: Base retry delay (default: 1000)
Local Settings
Update src/WorkzoneMCP.Functions/local.settings.json:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated",
"App__WorkzoneApiUrl": "https://api.workzone.com",
"App__WorkzoneApiKey": "your-api-key-here"
}
}
Running the Server
As MCP Server
# Using the script
./scripts/run-mcp-server.sh
# Or directly
cd src/WorkzoneMCP.Functions
dotnet run -- --mcp
As Azure Function
# Using the script
./scripts/run-azure-function.sh
# Or directly
cd src/WorkzoneMCP.Functions
func start
Available Tools
workzone_get_case
Get a case by ID from Workzone.
Parameters:
caseId(string, required): The ID of the case to retrieve
workzone_create_case
Create a new case in Workzone.
Parameters:
title(string, required): Title of the casedescription(string, optional): Description of the casecaseType(string, optional): Type of the case
workzone_update_case
Update an existing case in Workzone.
Parameters:
caseId(string, required): The ID of the case to updatetitle(string, optional): New titledescription(string, optional): New descriptionstatus(string, optional): New status
workzone_search_cases
Search for cases in Workzone.
Parameters:
query(string, required): Search query
Testing
Run Unit Tests
cd src/WorkzoneMCP.Tests
dotnet test
Test MCP Server
./scripts/test-mcp-server.sh
Integration with Claude Desktop
Add to your Claude Desktop configuration:
{
"mcpServers": {
"workzone": {
"command": "dotnet",
"args": ["run", "--project", "/path/to/WorkzoneMCP/src/WorkzoneMCP.Functions", "--", "--mcp"],
"env": {
"App__WorkzoneApiUrl": "https://api.workzone.com",
"App__WorkzoneApiKey": "your-api-key"
}
}
}
}
Development
Adding New Tools
- Add tool definition in
McpServer.cs - Implement handler method
- Add corresponding service method in
IWorkzoneService - Implement service logic in
WorkzoneService - Add tests
Building
dotnet build
Publishing
dotnet publish -c Release
Troubleshooting
Common Issues
- Connection refused: Ensure Workzone API is accessible
- Authentication failed: Check API key configuration
- Timeout errors: Increase
TimeoutSecondssetting
Logging
- Azure Function mode: Check Application Insights
- MCP mode: Console output with log levels
License
[Your License Here]
Contributing
[Your Contributing Guidelines Here]