Labsco
cdmx1 logo

Goodday MCP Server

โ˜… 1

from cdmx1

Integrate with the Goodday project management platform to manage projects, tasks, and users via its API.

๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅโœ“ VerifiedAccount requiredNeeds API keys

Goodday MCP Server

A Model Context Protocol (MCP) server for integrating with Goodday project management platform. This server provides tools for managing projects, tasks, and users through the Goodday API v2.

Features

Project Management

  • get_projects: Retrieve list of projects (with options for archived and root-only filtering)
  • get_project: Get detailed information about a specific project
  • create_project: Create new projects with customizable templates and settings
  • get_project_users: Get users associated with a specific project

Task Management

  • get_project_tasks: Retrieve tasks from specific projects (with options for closed tasks and subfolders)
  • get_user_assigned_tasks: Get tasks assigned to a specific user
  • get_user_action_required_tasks: Get action-required tasks for a user
  • get_task: Get detailed information about a specific task
  • get_task_details: Get comprehensive task details including subtasks, custom fields, and full metadata
  • get_task_messages: Retrieve all messages/comments for a specific task
  • create_task: Create new tasks with full customization (subtasks, assignments, dates, priorities)
  • update_task_status: Update task status with optional comments
  • add_task_comment: Add comments to tasks

Sprint Management

  • get_goodday_sprint_tasks: Get tasks from specific sprints by project name and sprint name/number
  • get_goodday_sprint_summary: Generate comprehensive sprint summaries with task details, status distribution, and key metrics

User Management

  • get_users: Retrieve list of organization users
  • get_user: Get detailed information about a specific user
  • get_goodday_smart_query: Natural language interface for common project management queries
  • search_goodday_tasks: Semantic search across tasks using VectorDB backend
  • search_project_documents: Search for documents within specific projects
  • get_document_content: Retrieve full content of specific documents

OpenWebUI Integration

This package also includes an OpenWebUI tool that provides a complete interface for Goodday project management directly in chat interfaces. The OpenWebUI tool includes:

Features

  • Project Management: Get projects, project tasks, and project details
  • Sprint Management: Get tasks from specific sprints by name/number, comprehensive sprint summaries
  • User Management: Get tasks assigned to specific users, user details
  • Task Details: Get comprehensive task information including subtasks, custom fields, and metadata
  • Task Messages: Retrieve all messages and comments for tasks
  • Smart Query: Natural language interface for common project management requests
  • Semantic Search: Search across tasks using VectorDB backend with embeddings
  • Document Management: Search project documents and retrieve document content
  • Advanced Filtering: Support for archived projects, closed tasks, subfolders, and more

Setup

  1. Copy openwebui/goodday_openwebui_complete_tool.py to your OpenWebUI tools directory
  2. Configure the valves with your API credentials:
    • api_key: Your Goodday API token
    • search_url: Your VectorDB search endpoint (optional)
    • bearer_token: Bearer token for search API (optional)

Vector Database Setup (Optional)

For semantic search functionality, you can set up a vector database using the provided n8n workflow (openwebui/n8n-workflow-goodday-vectordb.json). This workflow:

  • Fetches all Goodday projects and tasks
  • Extracts task messages and content
  • Creates embeddings using Ollama
  • Stores in Qdrant vector database
  • Provides search API endpoint

See openwebui/OPENWEBUI_TOOL_README.md for detailed usage instructions.

API Reference

Environment Variables

VariableDescriptionRequired
GOODDAY_API_TOKENYour Goodday API tokenYes

Tool Examples

Get Projects

# Get all active projects
get_projects()

# Get archived projects
get_projects(archived=True)

# Get only root-level projects
get_projects(root_only=True)

Create a Task

create_task(
    project_id="project_123",
    title="Implement new feature",
    from_user_id="user_456",
    message="Detailed description of the task",
    to_user_id="user_789",
    deadline="2025-06-30",
    priority=5
)

Update Task Status

update_task_status(
    task_id="task_123",
    user_id="user_456",
    status_id="status_completed",
    message="Task completed successfully"
)

Data Formats

Date Format

All dates should be provided in YYYY-MM-DD format (e.g., 2025-06-16).

Priority Levels

  • 1-10: Normal priority levels
  • 50: Blocker
  • 100: Emergency

Project Colors

Project colors are specified as integers from 1-24, corresponding to Goodday's color palette.

Error Handling

The server includes comprehensive error handling:

  • Authentication errors: When API token is missing or invalid
  • Network errors: When Goodday API is unreachable
  • Validation errors: When required parameters are missing
  • Permission errors: When user lacks permissions for requested operations

All errors are returned as descriptive strings to help with troubleshooting.

Development

Project Structure

goodday-mcp/
โ”œโ”€โ”€ goodday_mcp/         # Main package directory
โ”‚   โ”œโ”€โ”€ __init__.py      # Package initialization
โ”‚   โ””โ”€โ”€ main.py          # Main MCP server implementation
โ”œโ”€โ”€ pyproject.toml       # Project configuration and dependencies
โ”œโ”€โ”€ README.md           # This file
โ”œโ”€โ”€ LICENSE             # MIT license
โ”œโ”€โ”€ uv.lock            # Dependency lock file
โ””โ”€โ”€ .env               # Environment variables (create this)

Adding New Tools

To add new tools to the server:

  1. Add the tool function in goodday_mcp/main.py using the @mcp.tool() decorator:

    @mcp.tool()
    async def your_new_tool(param1: str, param2: Optional[int] = None) -> str:
        """Description of what the tool does.
        
        Args:
            param1: Description of parameter 1
            param2: Description of optional parameter 2
        """
        # Implementation here
        return "Result"
  2. Test the tool by running the server and testing with an MCP client.

Testing

Test the server by running it directly:

# If installed from PyPI
goodday-mcp

# If running from source
uv run goodday-mcp

The server will start and wait for MCP protocol messages via stdin/stdout.

Support

For issues related to:

Changelog

v1.1.0 (Current)

  • Enhanced Task Management: Added get_task_details and get_task_messages for comprehensive task information
  • Sprint Management: Added get_goodday_sprint_tasks and get_goodday_sprint_summary for sprint tracking
  • Smart Query Interface: Added get_goodday_smart_query for natural language project queries
  • Semantic Search: Added search_goodday_tasks with VectorDB integration for intelligent task search
  • Document Management: Added search_project_documents and get_document_content for document handling
  • Improved Error Handling: Enhanced error messages and status reporting
  • Advanced Filtering: Support for archived projects, closed tasks, and subfolder inclusion

v1.0.0

  • Initial release
  • Full project management capabilities
  • Task management with comments and status updates
  • User management
  • Comprehensive error handling
  • UV support with modern Python packaging