Skip to content

Sync MCP tool manifest with hosted server metadata (senderkit-app #156/#168)#41

Merged
tuyakhov merged 1 commit into
mainfrom
claude/charming-ramanujan-iy2rp9
Jun 13, 2026
Merged

Sync MCP tool manifest with hosted server metadata (senderkit-app #156/#168)#41
tuyakhov merged 1 commit into
mainfrom
claude/charming-ramanujan-iy2rp9

Conversation

@tuyakhov

Copy link
Copy Markdown
Contributor

Why

Routine review of senderkit-app changes merged to main since the last run (PRs #154–#169). Most were internal/UI/onboarding/billing work with no SDK surface. One change deliberately created an app ↔ SDK divergence in the MCP tool surface, and another altered an SDK-facing workflow. This PR brings the canonical @senderkit/sdk MCP manifest — consumed by the CLI-bundled stdio/HTTP MCP server and the CLI's --help — back in lockstep.

Affected area 1 — MCP tool metadata (app #156)

app#156 (feat(mcp): richer tool metadata for directory quality scores) noted that the published manifest ships terse one-line descriptions, and rather than wait on an SDK release, the hosted server overrode them at the app layer, explicitly flagging "A follow-up can mirror this wording into the next SDK release." This PR is that follow-up, so the CLI-bundled server and --help match what mcp.senderkit.com serves.

  • Descriptions for senderkit_send, senderkit_send_raw, senderkit_templates_list, senderkit_templates_get, senderkit_messages_list, senderkit_messages_get now lead with the email/SMS/push/web-push channel keywords and describe the use case. Send-tool descriptions stay the base wording — each server still appends its own live/test mode note.
  • senderkit_messages_list.status is now a strict enum (scheduled, queued, rendered, dispatched, sent, delivered, failed, opted_out, canceled) instead of free text, matching the API, which already rejects unknown statuses with a 400. Exported as MESSAGE_STATUSES. The CLI now validates --status client-side and lists the choices in --help.
  • senderkit_send.to description now covers all four channels (email address / E.164 phone / push device token / web-push PushSubscription).

Affected area 2 — template slugs are now lowercase (app #168)

app#168 (Fix duplicate template slugs (case sensitivity)) canonicalizes template slugs to lowercase on every write path. Read/by-slug lookups stay case-sensitive, so a mixed-case slug passed to send/get won't resolve. Doc-only clarification here (no behavioral change — legacy uppercase slugs are intentionally not force-lowercased client-side):

  • senderkit_send.template and senderkit_templates_get.slug descriptions note slugs are lowercase.

Not requiring SDK changes

The remaining merged PRs were assessed as internal/no-impact: billing customer naming (#154), light-mode code colors (#155), dashboard onboarding checklist and its many follow-ups (#157, #159–#167), email preview/test-send editor tab (#158), PHP-SDK quickstart snippets in onboarding (#163, app-rendered docs only), and PostHog identity stitching (#169). (app#170 was closed without merging.)

Verification

  • pnpm -r typecheck — clean (incl. examples after build)
  • pnpm -r build — clean
  • Tests: sdk 58 · cli 80 · react-email 29, all pass — including CLI ↔ manifest parity (CLI summaries derive from the manifest, so they update in lockstep).
  • Confirmed senderkit messages list --help renders the new description and --status choices.

Changeset included (@senderkit/sdk minor, @senderkit/cli patch).


Generated by Claude Code

Mirror the richer MCP tool descriptions and tightened input fields that
senderkit-app's hosted MCP server had been overriding at the app layer, so
the canonical @senderkit/sdk manifest (consumed by the CLI-bundled MCP
server and CLI --help) stays in lockstep.

- Richer channel-led descriptions for send, send_raw, templates_list,
  templates_get, messages_list, messages_get
- messages_list.status is now a strict enum (MESSAGE_STATUSES) matching the
  API's accepted lifecycle statuses
- send.to description covers all four channels
- Template slug descriptions note slugs are lowercase
@tuyakhov tuyakhov merged commit e49a071 into main Jun 13, 2026
1 check failed
@tuyakhov tuyakhov deleted the claude/charming-ramanujan-iy2rp9 branch June 13, 2026 22:04
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.

2 participants