Model Context Protocol (MCP) server for automated worklog generation from git commits with AI enhancement and Povio dashboard integration
Server provides 4 tools with reasonable descriptions and schemas. Tool naming follows verb_noun convention (list_, generate_, post_, generate_and_post_). All tools have JSON Schema input definitions with typed properties. However, several definition quality issues reduce the score: (1) 'generate_and_post_worklog' violates single-responsibility principle by combining two distinct operations; (2) parameter descriptions lack validation constraints (e.g., date format details, hour ranges); (3) no output schemas are documented anywhere; (4) error handling and recovery guidance is absent; (5) descriptions include trigger examples which are helpful but not standard practice and risk being treated as literal values by LLMs. The schema quality is adequate (all tools have typed properties with descriptions), but lacks detail around validation rules, ranges, and edge cases. Descriptions are moderate length (194-388 chars), falling within the 10-1024 baseline but on the longer side due to example listings.
Generate worklog from git commits AND post it to Povio in one step. Supports both project ID and project name. AI enhancement is ENABLED BY DEFAULT - generation will pause for AI to create an enhanced description before posting. Supported date formats: - "today", "yesterday" - Specific dates: "2024-10-28" (YYYY-MM-dd), "10/28/2024" (MM/dd/YYYY), "28.10.2024" (dd.MM.YYYY) Trigger examples: - "wl FaceFlip 8" - "wl Autobiography 4" - "wl yesterday FaceFlip 6" - "wl 2024-10-28 FaceFlip 8" - "generate and post worklog for today with 8 hours" - "generate and post to FaceFlip, 5 hours" - "create and submit worklog to Autobiography for 3 hours" - "wl post [project] [hours]"
Generate a worklog from git commits. Analyzes commit messages, extracts ticket numbers, and creates AI-enhanced, professional worklog descriptions following Povio guidelines. AI enhancement is ENABLED BY DEFAULT. Supported date formats: - "today", "yesterday" - Specific dates: "2024-10-28" (YYYY-MM-dd), "10/28/2024" (MM/dd/YYYY), "28.10.2024" (dd.MM.YYYY) Trigger examples: - "wl" - "wl today" - "wl yesterday" - "wl 2024-10-28" - "generate worklog" - "generate worklog for yesterday" - "generate worklog for 2024-10-28" - "what did I work on yesterday"
List all active projects assigned to you in Povio. Shows project names and IDs for easy reference when posting worklogs. Trigger examples: - "wl list" - "list my povio projects" - "show me my projects" - "what projects do I have" - "list projects"
Post a worklog entry to Povio dashboard. Supports both project ID and project name. Uses DEFAULT_PROJECT_ID from environment if neither is provided. Trigger examples: - "wl post 8" - "wl post FaceFlip 8" - "post worklog with 4 hours" - "post worklog to FaceFlip" - "post 6 hours to Autobiography" - "submit worklog for today" - "post [description] to [project] for [hours] hours"
Tool 'generate_and_post_worklog' violates single-responsibility principle by combining two distinct operations (generation + posting). This should be split into separate tools to allow agents to compose them independently.
No output schemas are documented. Tools return text responses but LLMs cannot plan downstream calls or extract structured data without knowing the response format. Every tool must document its return structure.
Parameter descriptions lack validation constraints. E.g., 'hours' accepts any number, should specify range (e.g., 0.25-24). 'date' format is documented but 'timeframe' string has no enum constraint for 'today'/'yesterday'. Enums are self-documenting and prevent hallucinated values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 58 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 41 | - | v1 |
No error handling or recovery guidance documented. Tools may fail (invalid date, missing project, git errors) but descriptions provide no hints for agent recovery. E.g., if project not found, should agent call list_povio_projects? This forces the LLM to guess.
Descriptions include trigger examples ('wl list', 'wl today') which LLMs may reuse literally in follow-up calls rather than adapting to context. Use formal constraints (enums, patterns) instead of example values.
Parameter 'repository' and 'timeframe' accept free-form strings without clear format constraints. 'timeframe' should be an enum: ['today', 'yesterday', 'YYYY-MM-dd', 'MM/dd/YYYY', 'dd.MM.YYYY']. Free-form strings invite invalid values.
Mutually exclusive parameters not clearly documented. 'post_worklog' accepts both 'projectId' and 'projectName', description says 'alternative' but doesn't state what happens if both are provided or neither is provided (uses DEFAULT_PROJECT_ID). This ambiguity will cause LLM confusion.