Labsco
cdmx1 logo

Goodday

from cdmx1

A read-only server for the Goodday project management platform.

๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅโœ“ VerifiedAccount requiredAdvanced setup

Goodday Read-Only MCP Server

A read-only Model Context Protocol (MCP) server for integrating with Goodday project management platform. This server provides read-only tools for querying projects, tasks, and users through the Goodday API v2, ensuring no data can be modified.

Features

Project Management (Read-Only)

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

Task Management (Read-Only)

  • 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

User Management (Read-Only)

  • get_users: Retrieve list of organization users
  • get_user: Get detailed information about a specific user

API Endpoints

When running as an HTTP server, the following endpoints are available:

Core Endpoints

  • GET / - Server information and available tools
  • GET /health - Health check endpoint
  • GET /tools - List of available tools with descriptions
  • POST /tools/call - Execute a tool with arguments
  • GET /sse - Server-Sent Events for real-time updates
  • GET /docs - OpenAPI documentation (Swagger UI)

Example API Usage

# Get all projects
curl -X POST http://localhost:8000/tools/call \
  -H "Content-Type: application/json" \
  -d '{"name": "get_projects", "arguments": {"archived": false, "root_only": true}}'

# Get specific project
curl -X POST http://localhost:8000/tools/call \
  -H "Content-Type: application/json" \
  -d '{"name": "get_project", "arguments": {"project_id": "12345"}}'

# Get project tasks
curl -X POST http://localhost:8000/tools/call \
  -H "Content-Type: application/json" \
  -d '{"name": "get_project_tasks", "arguments": {"project_id": "12345", "closed": false}}'

Available Tools

All tools are read-only and will not modify any data in your Goodday account.

Project Tools

  • get_projects(archived=False, root_only=False) - List projects
  • get_project(project_id) - Get project details
  • get_project_users(project_id) - Get project team members

Task Tools

  • get_project_tasks(project_id, closed=False, subfolders=False) - List project tasks
  • get_task(task_id) - Get task details
  • get_user_assigned_tasks(user_id, closed=False) - Get user's assigned tasks
  • get_user_action_required_tasks(user_id) - Get user's action required tasks

User Tools

  • get_users() - List organization users
  • get_user(user_id) - Get user details

Error Handling

The server includes comprehensive error handling:

  • API Errors: Goodday API errors are caught and returned with descriptive messages
  • Network Errors: Connection timeouts and network issues are handled gracefully
  • Authentication Errors: Missing or invalid API tokens are reported clearly
  • Data Validation: Invalid responses from the API are handled safely

Development

Running Tests

uv run pytest

Code Formatting

uv run black goodday_ro_mcp/
uv run isort goodday_ro_mcp/

Type Checking

uv run mypy goodday_ro_mcp/

Security

This is a read-only server that:

  • Only makes GET requests to the Goodday API
  • Cannot create, update, or delete any data
  • Validates all inputs to prevent injection attacks
  • Uses secure HTTP headers and CORS policies

Support

For issues and questions: