Skip to content

work

Project management: projects, epics, deliveries, tasks, business units, and member placement against the work schema.

Endpointhttps://work.mcp.devfellowship.com/mcp
Tools27
Backing datawork schema (projects, epics, deliveries, tasks, business units, placements).

Projects

ToolDescription
create_projectCreate a new project.
delete_projectDelete a project. This will fail if the project has associated epics.
get_projectGet a specific project by ID with its epics.
list_projectsList all projects with optional filters.
update_projectUpdate an existing project.

Epics

ToolDescription
create_epicCreate a new epic.
delete_epicDelete an epic. This will fail if the epic has associated deliveries or tasks.
get_epicGet a specific epic by ID with its deliveries and tasks.
list_epicsList all epics with optional filters.
update_epicUpdate an existing epic.

Deliveries

ToolDescription
create_deliveryCreate a new delivery.
delete_deliveryDelete a delivery.
get_deliveryGet a specific delivery by ID with its epic and tasks.
list_deliveriesList all deliveries with optional filters.
update_deliveryUpdate an existing delivery.

Tasks

ToolDescription
create_taskCreate a new task.
delete_taskDelete a task.
get_taskGet a specific task by ID with its epic and delivery.
list_tasksList all tasks with optional filters.
update_taskUpdate an existing task.

Business Units

ToolDescription
create_business_unitCreate a new business unit. Requires finance/admin/owner role.
delete_business_unitDelete a business unit by ID. Requires finance/admin/owner role.
get_business_unitGet a specific business unit by ID. Requires finance/admin/owner role.
list_business_unitsList all business units with optional filters. Requires finance/admin/owner role.
update_business_unitUpdate an existing business unit. Requires finance/admin/owner role.

Placements

ToolDescription
create_placementRecord a DFL fellow placement (job/freelance/internal) in work.placements. Resolve the member_id first via lookup_member on the learn endpoint.
create_member_label_aliasMap a raw speaker/label string to a member by upserting into work.member_label_aliases.

Meetings

ToolDescription
merge_meetingsDedup a duplicate recurring-meeting cluster by merging a skeleton meeting into a canonical meeting, then removing the skeleton. Lossless on duplicate-date collisions: it never drops a transcription-bearing occurrence in favor of an empty one. For a date both meetings share, it compares transcripts on both sides — if the canonical occurrence is empty but the skeleton one carries a real transcript, it re-parents the skeleton occurrence onto the canonical and deletes the empty canonical duplicate (the real transcript survives). If both carry transcripts it reports a conflicts entry, keeps both, and does not remove the skeleton row (skeleton_meeting_removed: false, manual review). Empty skeleton duplicates of an existing canonical date are dropped; skeleton occurrences on a new date are re-parented. Other meeting_id child rows (participants/concepts/expertise/tools/underlines) are re-parented onto the canonical, guarding the work.meeting_participants unique constraint. The skeleton row is removed only when there are zero unresolved conflicts. Transcriptions live per-occurrence so nothing is concatenated and the canonical survives. Pass dry_run: true first to preview the change without writing.
set_meeting_recurrence_timeSet the time-of-day window (recurrence_start_time / recurrence_end_time) on a single recurring meeting series in work.meetings, so its recurring occurrences render at the right hour on the /meetings time-grid. Times are 24h wall-clock "HH:MM" or "HH:MM:SS" (Postgres time). The meeting must already be a recurring series (is_recurring = true); recurrence_day_of_week is set separately. Returns the updated row.