Project management: projects, epics, deliveries, tasks, business units, and member placement against the work schema.
| |
|---|
| Endpoint | https://work.mcp.devfellowship.com/mcp |
| Tools | 27 |
| Backing data | work schema (projects, epics, deliveries, tasks, business units, placements). |
Projects
| Tool | Description |
|---|
create_project | Create a new project. |
delete_project | Delete a project. This will fail if the project has associated epics. |
get_project | Get a specific project by ID with its epics. |
list_projects | List all projects with optional filters. |
update_project | Update an existing project. |
Epics
| Tool | Description |
|---|
create_epic | Create a new epic. |
delete_epic | Delete an epic. This will fail if the epic has associated deliveries or tasks. |
get_epic | Get a specific epic by ID with its deliveries and tasks. |
list_epics | List all epics with optional filters. |
update_epic | Update an existing epic. |
Deliveries
| Tool | Description |
|---|
create_delivery | Create a new delivery. |
delete_delivery | Delete a delivery. |
get_delivery | Get a specific delivery by ID with its epic and tasks. |
list_deliveries | List all deliveries with optional filters. |
update_delivery | Update an existing delivery. |
Tasks
| Tool | Description |
|---|
create_task | Create a new task. |
delete_task | Delete a task. |
get_task | Get a specific task by ID with its epic and delivery. |
list_tasks | List all tasks with optional filters. |
update_task | Update an existing task. |
Business Units
| Tool | Description |
|---|
create_business_unit | Create a new business unit. Requires finance/admin/owner role. |
delete_business_unit | Delete a business unit by ID. Requires finance/admin/owner role. |
get_business_unit | Get a specific business unit by ID. Requires finance/admin/owner role. |
list_business_units | List all business units with optional filters. Requires finance/admin/owner role. |
update_business_unit | Update an existing business unit. Requires finance/admin/owner role. |
Placements
| Tool | Description |
|---|
create_placement | Record 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_alias | Map a raw speaker/label string to a member by upserting into work.member_label_aliases. |
Meetings
| Tool | Description |
|---|
merge_meetings | Dedup 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_time | Set 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. |