mcp-utc-time-server

ArrEssJay/mcp-utc-time-server

3.1

If you are the rightful owner of mcp-utc-time-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.

The MCP UTC Time Server is a high-precision time server implementing the Model Context Protocol (MCP) for AI agents in VSCode, offering full Unix/POSIX time support with nanosecond precision, strftime formatting, and comprehensive timezone handling.

GitHub Actions Workflows

This directory contains CI/CD workflows for the MCP UTC Time Server.

Workflows

ghcr-publish.yml - Build, Test, and Deploy

Trigger: Push to main or release/** branches

Jobs:

  1. test - Runs all tests, formatting checks, and linting
  2. build-and-publish - Builds Docker image and pushes to GitHub Container Registry (GHCR)
  3. deploy-to-azure - Automatically deploys the new image to Azure Container Apps

Setup

One-Time Azure Setup

To enable automatic deployment to Azure, run:

# Make sure you're logged into Azure and have gh CLI installed
az login
gh auth login

# Run the setup script
./.github/setup-azure-deploy.sh

This script will:

  • Create an Azure service principal with Contributor access to the mcp-time-rg resource group
  • Configure the following GitHub secrets:
    • AZURE_CLIENT_ID
    • AZURE_CLIENT_SECRET
    • AZURE_TENANT_ID
    • AZURE_SUBSCRIPTION_ID

Manual Deployment

If you need to deploy manually without GitHub Actions:

# Build and push locally
docker build -t ghcr.io/arressjay/mcp-utc-time-server:latest .
docker push ghcr.io/arressjay/mcp-utc-time-server:latest

# Deploy to Azure
az containerapp update \
  --name mcp-utc-time \
  --resource-group mcp-time-rg \
  --image ghcr.io/arressjay/mcp-utc-time-server:latest

Deployment Flow

┌─────────────────┐
│ Push to release │
│   or main       │
└────────┬────────┘
         │
         v
┌─────────────────┐
│   Run Tests     │
│  - cargo test   │
│  - clippy       │
│  - rustfmt      │
└────────┬────────┘
         │
         v
┌─────────────────┐
│ Build & Push    │
│   to GHCR       │
└────────┬────────┘
         │
         v
┌─────────────────┐
│ Deploy to Azure │
│  Container Apps │
└────────┬────────┘
         │
         v
┌─────────────────┐
│   🎉 Live!      │
└─────────────────┘

Monitoring Deployments

View workflow runs:

gh run list

Watch a running workflow:

gh run watch

View logs for a specific run:

gh run view <run-id> --log

Troubleshooting

Deployment Fails

Check the workflow logs:

gh run list --workflow="Build, Test, and Publish to GHCR"
gh run view <run-id> --log

Check Azure Container App Status

# Check revision health
az containerapp revision list \
  --name mcp-utc-time \
  --resource-group mcp-time-rg \
  --query "[].{Name:name, Active:properties.active, Health:properties.healthState}" \
  -o table

# View logs
az containerapp logs show \
  --name mcp-utc-time \
  --resource-group mcp-time-rg \
  --tail 50

Secrets Expired or Invalid

Re-run the setup script:

./.github/setup-azure-deploy.sh