Review: Build MCP server wrapping recraft-sdk (re-review)
Verdict: APPROVED
Re-review of board item #1973. Previous review (
review-1973-2026-08-01) flagged one issue: missing logo-branding user story on project-platform-playbook. That issue has been fixed.Template Completeness
- [x] Type -- Feature
- [x] Lineage
- [x] Repo
- [x] User Story
- [x] Context
- [x] File Targets
- [x] Feature Flag -- "none" (appropriate for MCP server, no UI surface)
- [x] Acceptance Criteria
- [x] Test Expectations
- [x] Constraints
- [x] Checklist
- [x] Related
Traceability
- [x] story:logo-branding label -- present on board item
- [x] story note verified -- found in project-platform-playbook user-stories section (role: Platform operator, goal: Generate and manage brand assets through Claude Code MCP tools)
- [x] arch:mcp label -- MCP server component
- [x] arch note verified -- arch-mcp note exists in pal-e-docs (Architecture: MCP Server)
- [x] Forgejo issue -- ldraney/recraft-mcp#1, open
File Targets
All 6 file targets are files to CREATE (greenfield project). The recraft-mcp repo exists but is empty (only README.md).
- [x] src/recraft_mcp/__init__.py -- to create, repo exists
- [x] src/recraft_mcp/server.py -- to create, repo exists
- [x] tests/test_server.py -- to create, repo exists
- [x] pyproject.toml -- to create, repo exists
- [x] .woodpecker.yml -- to create, repo exists
- [x] CLAUDE.md -- to create, repo exists
- [x] ~/secrets/recraft/credentials.env -- verified, exists (81 bytes)
- [x] ~/recraft-sdk/openapi.json -- verified, exists (33k, API spec available)
Repo Placement
OK -- Forgejo issue filed on ldraney/recraft-mcp, all file targets are in ldraney/recraft-mcp. Single repo, no cross-repo work needed.
Dependencies
- depends:recraft-sdk -- Board item #1971 ("Build pytest SDK proving the Recraft API") is in backlog. recraft-sdk repo exists locally but has NOT been built yet (no src/, no pyproject.toml, only openapi.json). This is a true blocking dependency -- the issue body explicitly states "This ticket depends on recraft-sdk being built and published first." The dependency is correctly documented on both the board label and the issue body.
- minio-mcp (#1972) -- Sibling ticket, not a dependency. Both are part of story:logo-branding. minio-sdk already exists and is built.
Acceptance Criteria
5 AC items, all specific and verifiable by an agent:
- [x] "MCP server exposes tools: generate_vector, generate_raster, vectorize, upscale, remove_background, list_styles" -- concrete tool list, agent can verify registration
- [x] "Server runs via stdio transport" -- standard MCP pattern, testable
- [x] "Tests verify tool registration and basic generation against live Recraft API" -- clear test scope
- [x] "Registered in ~/.mcp.json and usable in Claude Code sessions" -- verifiable
- [x] "Woodpecker CI pipeline runs on push" -- verifiable
Test commands provided:
RECRAFT_API_KEY=... pytest tests/ -vBlast Radius
Low. This is a new MCP server addition -- no existing servers are modified. The ~/.mcp.json registration is additive. No downstream consumers exist yet. The companion minio-mcp is independent and does not share code.
Decomposition Assessment
- 6 file targets in 1 repo -- under the >3 files across >2 repos threshold
- 5 acceptance criteria -- at threshold, not over (>5 requires decomposition)
- Greenfield project with well-established MCP server patterns
- Estimated agent work: ~5 minutes -- at threshold but acceptable given single-repo greenfield nature
No decomposition needed.
Recommendation
No action needed. Previous review's [SCOPE] recommendation (create user story entry "logo-branding" on project-platform-playbook) has been completed. All traceability legs verified.