---
id: w3/m9/t004
title: "REST/GraphQL/MCP: get/update notification settings, Render-shaped"
worker: worker3
status: todo
estimate: 45m
depends_on: [w3/m9/t001]
---

## Objective

Expose the t001 notification settings store on REST, GraphQL, and MCP, matching Render's `/notification-settings` shape where documented.

## Context

- Follow the existing adapter pattern from a recently shipped feature package (e.g. `lego/backend/internal/audit/` or `lego/backend/internal/members/`) for REST/GraphQL/MCP wiring conventions.

## Steps

1. Add REST `GET/PATCH /v1/workspaces/{id}/notification-settings`.
2. Add the GraphQL equivalent query/mutation.
3. Add an MCP tool (`get_notification_settings`/`update_notification_settings`).
4. Enforce the same `can_manage`-tier access check pattern used elsewhere (see `audit`/`members` packages).

## Files

- `lego/backend/internal/notifications/{rest,graphql,mcp}.go`

## Acceptance criteria

- [ ] All three surfaces read/write the same underlying settings and agree on field shape.
- [ ] Access is scoped to workspace members with appropriate role.

## Out of scope

- Per-event granularity beyond started/succeeded/failed.
