Skip to main content
Glama
EgzonArifi

Povio Worklog MCP Server

by EgzonArifi

npm version License: MIT Node.js Version

Povio Worklog MCP Server

A Model Context Protocol (MCP) server that provides automated worklog generation from git commits with AI enhancement and seamless Povio dashboard integration.

Transform this:

git log  # Copy commits manually
# Open Povio dashboard
# Fill in project, hours, description
# Submit

Into this:

wl FaceFlip 8  # Done! āœ“

Features

  • šŸ“‹ List Projects: Easily view all your active Povio projects

  • šŸ·ļø Use Project Names: Simply use project names like "FaceFlip" or "Autobiography"

  • šŸ” Generate Worklog: Automatically analyze git commits and generate professional worklog descriptions

  • šŸ“… Flexible Dates: Support for "today", "yesterday", and specific dates (e.g., "2024-10-28", "Oct 28, 2024")

  • šŸ¤– AI Enhancement (Default): AI automatically generates optimized, guideline-compliant descriptions from your commits

  • šŸ“¤ Post to Povio: Post worklogs directly to Povio dashboard

  • ⚔ Combined Action: Generate and post in one step

  • šŸŽ« Smart Parsing: Automatically extracts ticket numbers (e.g., ENG-155, WAY-204)

  • šŸ“Š Professional Formatting: Creates client-appropriate worklog descriptions

Related MCP server: github-commits-mcp

Installation

No need to clone! Just add the configuration to Cursor:

File: ~/.cursor/mcp.json

{
  "mcpServers": {
    "povio-worklog": {
      "command": "npx",
      "args": ["-y", "povio-worklog-mcp"],
      "env": {
        "POVIO_API_TOKEN": "your-povio-token-value"
      }
    }
  }
}

That's it! The package will be automatically downloaded and run via npx.

Configuration Details:

  • POVIO_API_TOKEN: Your Povio dashboard cookie token value (see Getting Your Token below for detailed instructions)

    • Just provide the token value - the _poviolabs_dashboard= prefix is automatically added

  • Note: The tool uses the current working directory of your Cursor workspace as the git repository

  • Updates: npx automatically uses the latest version on each run

Alternative: Local Development Installation

If you want to contribute or modify the source code:

1. Clone the Repository

git clone https://github.com/EgzonArifi/povio-worklog-mcp.git
cd mcp-server

2. Install Dependencies

npm install

3. Build the Server

npm run build

4. Configure Cursor

File: ~/.cursor/mcp.json

{
  "mcpServers": {
    "povio-worklog": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-server/dist/index.js"],
      "env": {
        "POVIO_API_TOKEN": "your-povio-token-value"
      }
    }
  }
}

When to rebuild:

  • āœ… First time setup

  • āœ… After pulling updates from git

  • āœ… After making changes to src/ files

Restart Cursor

After adding the configuration, fully restart Cursor (Cmd+Q and reopen, not just close the window) to load the MCP server.

āš ļø Getting "command not found" error? See TROUBLESHOOTING.md for quick fixes. Most common solution: npm cache clean --force and restart Cursor.

Usage in Cursor

Once configured, you can use natural language to interact with the worklog tools:

Quick Commands

For faster workflow, use these short patterns:

wl                          → Generate worklog for today
wl yesterday                → Generate worklog for yesterday
wl 2024-10-28               → Generate worklog for specific date (Oct 28)
wl list                     → List Povio projects
wl post FaceFlip 8          → Generate and post to FaceFlip, 8 hours
wl FaceFlip 4               → Generate and post to FaceFlip, 4 hours
wl yesterday FaceFlip 8     → Generate yesterday's worklog and post

Or use full natural language:

"generate worklog for today"
"generate worklog for yesterday"
"generate worklog for 2024-10-28"
"post worklog to FaceFlip with 4 hours"
"list my povio projects"

Keyboard Shortcuts

  1. Cursor Composer (Cmd+I or Cmd+K): Type your command

  2. Chat (Cmd+L): Use for longer workflows

  3. .cursorrules: Add custom shortcuts (see .cursorrules file in project)

Pro Tips

  • Use .cursorrules file for project-specific shortcuts

  • Type "wl" for quick worklog commands (if using .cursorrules)

  • Save common project names as shortcuts in your rules

  • Chain commands: "wl list, then post to FaceFlip 8 hours"

Generate Worklog (AI-Enhanced by Default)

You: "generate worklog for today"
AI: [Uses generate_worklog tool with AI enhancement]
    Analyzes commits and generates optimized description following Povio guidelines
    Returns: Enhanced, client-appropriate worklog description
You: "generate worklog for today without AI"
AI: [Uses generate_worklog tool with enhanceWithAI=false]
    Returns: Basic auto-generated description

List Povio Projects

You: "list my povio projects"
AI: [Uses list_povio_projects tool]
    Shows all your active projects with roles

Post Worklog

You: "post worklog with 4 hours to FaceFlip"
AI: [Uses post_worklog tool]
    Automatically resolves project by name and posts

You: "post worklog with 6 hours to Autobiography"
AI: [Uses post_worklog tool]
    Posts to Autobiography

Generate and Post

You: "generate and post worklog for today, 4 hours"
AI: [Uses generate_and_post_worklog tool]
    Generates from commits AND posts to Povio (uses DEFAULT_PROJECT_ID)

You: "generate and post worklog for yesterday, 6 hours, project 12345"
AI: [Uses generate_and_post_worklog tool]
    Generates and posts to specific project

Available Tools

1. list_povio_projects

List all your active projects in Povio.

Parameters: None

Returns:

Found 6 active project(s):

• Autobiography (Ios Engineer)
• FaceFlip (Ios Engineer)
• Povio Estimations (Ios Engineer)
• Team Leads (Lead Engineer)
• iOS Internal (Ios Engineer)
• Bunny CDN Mobile (Ios Engineer)

Usage:

You: "list my povio projects"
AI: [Uses list_povio_projects tool]
    Shows all your active projects with roles

2. generate_worklog

Generate a worklog from git commits.

Parameters:

  • timeframe (required): Date format - supports:

    • "today", "yesterday"

    • Specific dates: "2024-10-28" (YYYY-MM-dd), "10/28/2024" (MM/dd/YYYY), "28.10.2024" (dd.MM.YYYY)

  • repository (optional): Path to git repository (defaults to current directory)

  • enhanceWithAI (optional): Defaults to true. Set to false to disable AI enhancement (not recommended)

Returns (AI enhancement mode - default): The tool returns:

  • Detailed commit information with context

  • Povio guidelines for the AI to follow

  • A prompt requesting the AI to generate an optimized description

  • Auto-generated description as a reference

The AI will then analyze the commits and create a superior, client-appropriate worklog description.

Returns (basic mode - when disabled):

{
  "date": "2024-10-28",
  "description": "[ENG-155] Implement Screenshot Upload Feature",
  "commits": [
    "8e644dc - ENG-155 Implement Screenshot Upload Feature"
  ],
  "ticketNumbers": ["ENG-155"]
}

3. post_worklog

Post a worklog entry to Povio dashboard.

Parameters:

  • description (required): Worklog description

  • projectName (required): Project name (e.g., "FaceFlip", "Autobiography")

  • hours (required): Number of hours worked

  • date (required): Date in YYYY-MM-dd format

Returns:

āœ“ Worklog posted successfully!
Date: 2024-10-28
Hours: 4
Project ID: 15886

Usage:

You: "post worklog with 4 hours to FaceFlip"
AI: [Uses post_worklog tool]
    Automatically resolves "FaceFlip" and posts

You: "post 6 hours to Autobiography"
AI: [Uses post_worklog tool]
    Posts to Autobiography

4. generate_and_post_worklog

Combined tool that generates from commits and posts to Povio.

Parameters:

  • timeframe (required): Date format - supports:

    • "today", "yesterday"

    • Specific dates: "2024-10-28" (YYYY-MM-dd), "10/28/2024" (MM/dd/YYYY), "28.10.2024" (dd.MM.YYYY)

  • projectName (required): Project name (e.g., "FaceFlip", "Autobiography")

  • hours (required): Number of hours worked

  • repository (optional): Path to git repository

  • enhanceWithAI (optional): Defaults to true. Set to false to disable AI enhancement and auto-post (not recommended)

Returns: Combined summary with generation and posting results.

Note: By default (AI enhancement enabled), the tool will:

  1. Generate the worklog with AI enhancement prompt

  2. Wait for AI to create optimized description

  3. NOT post automatically (you'll then use post_worklog with the AI-generated description)

AI-Enhanced Worklog Generation (Default!)

All worklog generation now uses AI enhancement by default. This feature:

How It Works

  1. Analyze Commits: The tool extracts your git commits with full context

  2. Apply Guidelines: Provides the AI with Povio's specific guidelines

  3. Generate Description: The AI creates an optimized, client-appropriate description

  4. Review & Post: You review the AI-generated description and post it

Benefits

  • šŸŽÆ Better Context: AI understands the bigger picture from multiple commits

  • šŸ“ Improved Language: Generates more professional, client-facing descriptions

  • āœ… Guideline Compliance: Automatically follows Povio's invoicing guidelines

  • ⚔ Time Saving: No need to manually craft descriptions

Example

Your commits:

8e644dc - ENG-155 Implement Screenshot Upload Feature
a2b3c4d - ENG-155 Add error handling for uploads
d5e6f7g - ENG-155 Update UI for better UX

Standard description:

[ENG-155] Implement Screenshot Upload Feature

AI-enhanced description:

[ENG-155] Implemented screenshot upload functionality in developer settings with comprehensive error handling and improved user interface for enhanced user experience

Usage

AI enhancement is automatic - just use the normal commands:

You: "generate worklog for today"

To disable AI enhancement (not recommended), you can explicitly set enhanceWithAI: false when calling the tool directly, or say "without AI".

Important: Client-Facing Descriptions

This tool generates descriptions that appear on client invoices. The formatter:

  • āœ… Filters commits to only YOUR commits (based on git user.email)

  • āœ… Creates professional, client-appropriate descriptions

  • āœ… Removes technical jargon (branch names, PR numbers, etc.)

  • āœ… Extracts and includes ticket numbers

  • āœ… Combines multiple commits into dense, descriptive format

Povio Guidelines:

Logs are shown on invoices for clients exactly as they are, so make sure they are appropriate and descriptive. Write down what you accomplished for the client in a dense format and add ticket numbers or descriptions if possible.

The tool automatically formats your commits to follow these guidelines. With AI enhancement mode, you get even better descriptions that maximize clarity and professionalism.

Getting Your Povio API Token

The POVIO_API_TOKEN should be set to just the cookie token value. The _poviolabs_dashboard= prefix is automatically added by the server.

Step-by-Step Instructions:

  1. Log in to Povio Dashboard

  2. Open DevTools (Press F12 or right-click → Inspect)

  3. Go to Application/Storage tab

    • Chrome/Edge: Click "Application" tab → "Cookies" → https://app.povio.com

    • Firefox: Click "Storage" tab → "Cookies" → https://app.povio.com

    • Safari: Enable Developer menu, then Develop → Show Web Inspector → Storage

  4. Find the cookie named _poviolabs_dashboard

  5. Copy just the cookie value (the part after _poviolabs_dashboard=):

    s%3Aabcd1234...xyz

    āš ļø Important:

    • Copy only the value (the part after the = sign)

    • Do NOT include _poviolabs_dashboard= - it's added automatically

    • The value is usually very long (300-500 characters)

    • Don't add quotes around it in the config

  6. Add to your Cursor MCP configuration (~/.cursor/mcp.json):

{
  "mcpServers": {
    "povio-worklog": {
      "command": "npx",
      "args": ["-y", "povio-worklog-mcp"],
      "env": {
        "POVIO_API_TOKEN": "s%3Aabcd1234...your-actual-cookie-value"
      }
    }
  }
}

Example (shortened for display):

"POVIO_API_TOKEN": "s%3AY1lndE1GK256eTZzZmd0L2s5ODc2djdqaTdrL2VaZFlFS2..."

Troubleshooting:

  • āŒ Wrong: "your-povio-token-value" (placeholder text)

  • āŒ Wrong: "_poviolabs_dashboard=s%3Aabcd1234..." (includes prefix - will still work but unnecessary)

  • āœ… Correct: "s%3Aabcd1234..." (just the token value)

Your Projects

Use list_povio_projects to see all your active projects with their IDs.

Common examples:

  • FaceFlip (ID: 15886)

  • Autobiography (ID: 14093)

  • Team Leads (ID: 13396)

  • iOS Internal (ID: 13247)

Development

Watch Mode

For development with auto-rebuild:

npm run dev

Clean Build

npm run clean
npm run build

Manual Testing

You can test the server manually by running:

node dist/index.js

Then send JSON-RPC messages via stdin.

Troubleshooting

Server Not Starting

  1. Check that the server was built:

    ls -la dist/index.js
  2. Test the server manually:

    node dist/index.js

    (It should run without errors and wait for input)

  3. Check Cursor logs for MCP errors

Authentication Errors

If posting to Povio fails:

  1. Verify your token is set in the Cursor MCP configuration

  2. Check token validity (it may have expired)

  3. Get a fresh token from the Povio dashboard

No Commits Found

If worklog generation returns no commits:

  1. Verify you're in a git repository:

    git status
  2. Check if you have commits today:

    git log --since="today" --oneline
  3. The server uses --all flag to check all branches

Architecture

This MCP server is built with TypeScript and follows the Model Context Protocol specification. It provides structured tools that AI assistants like Claude can use to help with worklog management.

Key Components:

  • src/services/git.ts - Git commit analysis

  • src/services/povio.ts - Povio API integration

  • src/services/formatter.ts - Worklog formatting

  • src/tools/ - MCP tool definitions

License

MIT

Available Tools

4 tools
generate_and_post_worklogA

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]"

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursYesNumber of hours worked
projectIdNoPovio project ID (optional, uses DEFAULT_PROJECT_ID from environment if not provided)
timeframeYesDate format: "today", "yesterday", or specific date like "2024-10-28" (YYYY-MM-dd)
repositoryNoPath to git repository (optional, defaults to current directory)
projectNameNoProject name (alternative to projectId, will be resolved automatically)
enhanceWithAINoAI enhancement is enabled by default. Set to false to disable and auto-post without AI enhancement (not recommended)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the transparency burden. It discloses that AI enhancement is enabled by default and pauses posting for AI to create an enhanced description, and that setting enhanceWithAI to false disables this (not recommended). This adds valuable behavioral context beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-organized with a clear purpose sentence first, followed by date formats and trigger examples. It is longer than necessary but every section serves a purpose, and the structure aids readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a combined generation+posting tool with no output schema, the description covers key behavioral aspects: the AI pause, project resolution, and date formats. It does not describe return values or error cases, but these are less critical for a one-step action tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

While schema coverage is 100%, the description adds practical semantics: explains supported date formats, clarifies that enhanceWithAI defaults to enabled, and that projectName will be resolved automatically. These details go beyond the bare schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's combined function: 'Generate worklog from git commits AND post it to Povio in one step.' It explicitly distinguishes from siblings by the 'one step' fusion of generation and posting, and mentions support for both project ID and name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context and trigger examples for when to use the tool, such as 'wl FaceFlip 8' or 'generate and post worklog for today with 8 hours.' However, it does not explicitly state when to prefer the individual siblings (generate_worklog or post_worklog) over this combined tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_worklogA

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"

ParametersJSON Schema
NameRequiredDescriptionDefault
timeframeYesDate format: "today", "yesterday", or specific date like "2024-10-28" (YYYY-MM-dd)
repositoryNoPath to git repository (optional, defaults to current directory)
enhanceWithAINoAI enhancement is enabled by default. Set to false to disable and get basic auto-generated description instead

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It does disclose key behavioral traits: AI enhancement is enabled by default and can be disabled, and it lists accepted date formats. It does not state whether the operation is read-only, whether it makes network calls, or that it does not post the worklog to Povio (a notable distinction given sibling tools). This leaves gaps in the agent's understanding of side effects and workflow.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: a clear purpose sentence, then AI behavior, then date formats, then examples. It front-loads the core purpose. While the trigger examples are somewhat repetitive (many variations of the same 'wl' / 'generate worklog' phrasing), the overall layout is easy to scan and not excessively verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema and no annotations, so the description must compensate. It covers the main functionality and inputs, but misses several contextual elements: it does not describe the return format/type, does not clarify default repository behavior (even though the schema mentions 'defaults to current directory'), and does not explain how this tool fits into the larger workflow (e.g., that after generating, you'd use post_worklog to submit). For an AI agent, these are meaningful gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds value beyond the schema by expanding on date formats (e.g., '10/28/2024' (MM/dd/YYYY) and '28.10.2024' (dd.MM.YYYY) are not in the schema description) and by providing concrete trigger examples. This extra detail helps the agent construct valid inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear specific verb+resource: 'Generate a worklog from git commits.' It explains the process (analyzes commit messages, extracts ticket numbers, creates AI-enhanced descriptions). However, it does not explicitly differentiate itself from sibling tools like 'post_worklog' or 'generate_and_post_worklog' – it never says 'this only generates, does not post' – so it lacks explicit sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied through trigger examples ('wl', 'generate worklog', 'what did I work on yesterday') and supported date formats, which tells the agent when a user request maps to this tool. However, there is no explicit when-to-use vs. alternatives guidance, such as 'use post_worklog to submit' or 'use generate_and_post_worklog to both generate and post.' The examples are helpful but not selection-oriented.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_povio_projectsA

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"

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosure. It reveals key behavioral scoping: only 'active' projects and only projects 'assigned to you.' It also states the output format (names and IDs). For a read-only list operation, this is sufficient transparency, though it doesn't mention error handling or authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded: the first sentence states the core purpose, the second sentence provides trigger examples that aid an AI agent in recognizing when to invoke the tool. Every sentence earns its place; there is no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no parameters and no output schema, the description is complete. It states what it does, what it returns, and the scope of data (active, assigned to you). No additional details are necessary for an agent to correctly select and invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema already covers everything. The description adds context about what is listed (active, assigned to you) but doesn't need to explain parameter syntax. Baseline 4 is appropriate for 0-param tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: 'List all active projects assigned to you in Povio.' It also specifies the output (project names and IDs) and how it's useful (for posting worklogs), which distinguishes it from sibling tools that post worklogs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool, including trigger examples like 'wl list' and 'list my povio projects.' It explicitly ties usage to posting worklogs, but does not explicitly state when not to use it or name alternatives. The sibling tools are worklog-related, so the implied distinction is strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_worklogA

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"

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesDate in YYYY-MM-dd format
hoursYesNumber of hours worked
projectIdNoPovio project ID (optional, uses DEFAULT_PROJECT_ID from environment if not provided)
descriptionYesWorklog description
projectNameNoProject name (alternative to projectId, will be resolved automatically)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full transparency burden. It discloses important behavior: supports both project ID and name, and falls back to DEFAULT_PROJECT_ID from the environment. However, it does not reveal return format, error handling, or side effects beyond the expected posting action. The added context goes beyond a tautology but remains incomplete for a mutation without annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with a clear purpose sentence followed by a concise summary of identifier resolution. The list of trigger examples is helpful but somewhat repetitive, with nearly a dozen examples that could be trimmed. Still, the structure is clean and the core message is efficient, so it earns a 4 rather than a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has three required params, no output schema, and no annotations. The description compensates by explaining default project behavior and providing usage examples, which cover invocation scenarios. However, it omits what the tool returns on success or failure, and does not mention validation rules beyond the schema. Given the simplicity of the operation, this is adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all five parameters are described in the input schema. The description's mention of projectId/projectName alternative and DEFAULT_PROJECT_ID is already present in the schema descriptions. Thus the description adds no meaningful parameter semantics beyond the schema, justifying the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Post a worklog entry to Povio dashboard', a specific verb+resource statement that clearly defines the tool's function. It distinguishes from siblings by explicitly focusing on posting, while also noting support for both project ID and name. This is unambiguous and differentiates from 'list_povio_projects' and 'generate_worklog'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The trigger examples provide useful input patterns for how the tool might be invoked, but the description does not explicitly state when to prefer this tool over alternatives like generate_and_post_worklog. It neither specifies exclusions nor mentions the sibling tools, leaving the agent to infer usage context. The examples are a form of guidance, but they lack comparison to alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 4 tool updatesv1.0.7
    • First observedgenerate_and_post_worklog
    • First observedgenerate_worklog
    • First observedlist_povio_projects
    • First observedpost_worklog

TDQS

A4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: listing projects, generating worklog content, posting a worklog, and combining generation with posting. The differences are explicitly stated, and the compound tool is self-descriptive.

Naming Consistency5/5

All tool names follow a snake_case verb_object pattern (list_*, generate_*, post_*, generate_and_post_*), making the action and target predictable. The inclusion of 'povio' in list_povio_projects is a minor contextual addition but does not break the pattern.

Tool Count5/5

With only 4 tools, the server is well-scoped for its purpose: supporting a focused workflow of project lookup, worklog generation, posting, and a combined convenience operation. No unnecessary extras or missing core functions.

Completeness3/5

The set fully covers creating and submitting worklogs, but it lacks any ability to read, update, or delete existing worklogs, which could be a dead end for agents needing to verify submissions or fix mistakes. This is a notable gap for a worklog management server.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/EgzonArifi/povio-worklog-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server