Skip to content

feat: agents see the real board -- board-object read tools over MCP (goal 0179 close-out / ADR-0046 content plane) - #507

Merged
alicoding merged 1 commit into
mainfrom
atlas-mcp-board-objects
Aug 28, 2026
Merged

feat: agents see the real board -- board-object read tools over MCP (goal 0179 close-out / ADR-0046 content plane)#507
alicoding merged 1 commit into
mainfrom
atlas-mcp-board-objects

Conversation

@alicoding

Copy link
Copy Markdown
Owner

Summary

  • Adds atlas_read_board_objects (curated per-object summary, optionally scoped to a parent card) and atlas_read_board_object (full per-kind content read) beside the existing atlas_list_kinds/atlas_search_cards/atlas_read_card family in internal/services/mcpsvc.
  • Closes the gap goal 0179's close-out measured: an agent reading a board over MCP previously saw only cards, while the Atlas UI already shows five board-object noun types (image, ink, shape, table, diagram) beside them.
  • Per ADR-0046's content-plane boundary: file-backed objects (image/ink/diagram) report mirror path + MIME type, with text-format content (drawio XML, mermaid, csv) returned inline -- images/binary sheets report MIME + size only, never base64 bytes. List-backed objects (table) report the projected List's id/label/columns/rows. Board-local objects (shape) report a short payload summary in the list tool and the full payload in the read tool.
  • Read-only: writes wait on the guardrail request-an-action entry (ADR-0047 §5), per goal 0179's own close-out decision.

Test plan

  • go build ./... (desktop + -tags server)
  • go vet ./internal/services/mcpsvc/... ./internal/services/atlassvc/...
  • go test ./internal/services/mcpsvc/... ./internal/services/atlassvc/... -- new tests seed one board object of each source kind (file/list/board-local) and assert both tools' shapes
  • Full local lefthook pre-commit suite green (go-test w/ -race + coverage floor, golangci-lint, gocognit-new, depguard-new, comment-hygiene, file-loc-limit, go-build-desktop, go-build-server, go-vet)

🤖 Generated with Claude Code

https://claude.ai/code/session_012im1JxQQV2ahnXzZDdVmZq

…goal 0179 close-out / ADR-0046 content plane)

atlas_read_board_objects/atlas_read_board_object close the gap goal
0179's close-out measured: zero mcpsvc code mentioned BoardObject
while the Atlas UI already shows five board-object noun types beside
cards. Both are curated read-only tools sitting beside the existing
atlas_list_kinds/atlas_search_cards/atlas_read_card family, reusing
AtlasService.Objects/ObjectMirrorContent/ObjectListProjection -- the
same accessors the board's own renderers read from, no second read
model. Per ADR-0046's content-plane boundary a file-backed object
(image/ink/diagram) reports its mirror path/MIME type and, for text
formats, the file's own content inline -- never base64 image/sheet
bytes; a List-backed object (table) reports the projected List's
id/label/columns/rows; a board-local object (shape) reports its own
payload. Writes stay out of scope, waiting on the guardrail
request-an-action entry per ADR-0047 SS5.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012im1JxQQV2ahnXzZDdVmZq
@alicoding
alicoding enabled auto-merge (squash) August 28, 2026 20:21
@alicoding
alicoding merged commit c60e25f into main Aug 28, 2026
30 checks passed
@alicoding
alicoding deleted the atlas-mcp-board-objects branch August 28, 2026 20:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant