---
id: w1/m13/t002
title: GraphQL + MCP parity — Render dashboard operations + render-oss/render-mcp-server tools
worker: worker1
status: done
estimate: 30m
depends_on: []
---

## Objective

Two comparisons: (1) bex's GraphQL schema vs the Render dashboard operations already captured (`docs/render-artifacts/`, e.g. `team-members.graphql`, the `serviceEnvVarKeys`/`database` captures referenced in docs/ADR006-bex-api.md) plus any cheap new Playwright captures of read-only pages; (2) bex's MCP tool list vs `render-oss/render-mcp-server`'s current tools (names, args, returned shapes) — bex tracks it by design, so drift is a finding.

## Context

- bex GraphQL/MCP fragments: `lego/backend/internal/*/{graphql,mcp}.go`; the composed schema/registry in `internal/api/server.go`.
- Playwright MCP is configured (`.playwright-mcp/` output, bare filenames for screenshots); capture only read-only operations — never mutate a live Render service.

## Steps

1. Diff bex MCP tools against the official server's README/source; record per-tool status.
2. Diff bex GraphQL fields/mutations against the captures; list uncaptured areas honestly as "unverified" (not assumed-parity).
3. Emit the GraphQL + MCP columns for t004.

## Files

- working notes; new captures (if any) into `docs/render-artifacts/`

## Acceptance criteria

- [ ] Every bex MCP tool and every official-server tool appears in the comparison; GraphQL rows distinguish verified-parity vs unverified.

## Out of scope

- Capturing operations that would mutate a live Render resource.
