Skip to content

feat(mcp): events.mukoko.com-only routing + tool titles/annotations + registry declaration - #95

Merged
bryanfawcett merged 1 commit into
mainfrom
claude/mcp-events-only-hardening
Jul 25, 2026
Merged

feat(mcp): events.mukoko.com-only routing + tool titles/annotations + registry declaration#95
bryanfawcett merged 1 commit into
mainfrom
claude/mcp-events-only-hardening

Conversation

@bryanfawcett

Copy link
Copy Markdown
Contributor

Summary

  • MCP is now single-domain: removes the nhimbe.com/mcp worker routes — the MCP is served only at events.mukoko.com/mcp. The app stays dual-domain; the MCP endpoint does not.
  • Fully builds out the MCP tool metadata (per the mcp-builder checklist): title + behavioural annotations on every tool.
  • Declares the server for the MCP registry (server.json) — not yet published, with publish steps documented.

Type of Change

  • New feature (non-breaking change that adds functionality)
  • Infrastructure / CI

Changes

1. Single MCP domainwrangler.toml drops the nhimbe.com/mcp prod routes (staging → staging.events.mukoko.com). Docs that called nhimbe.com/mcp a live/legacy route are corrected: CLAUDE.md, worker/README.md, public/llms.txt, RELEASES.md, the deploy skill, and the security-reviewer agent.

2. Tool titles + annotations — each of the 5 tools now has a human title and annotations (readOnlyHint/destructiveHint/idempotentHint/openWorldHint):

Tool readOnly destructive idempotent
events_near_me, events_matching_interests, get_event
create_event
update_event ✅ (can cancel)

Threaded through listToolDescriptors() so both the legacy and modern (2026-07-28) tools/list advertise them.

3. MCP registry — new worker/server.json (name com.mukoko/nhimbe-events, streamable-http remote at events.mukoko.com/mcp); the worker status endpoint advertises the registry name. Not yet publishedworker/README.md documents the mcp-publisher + DNS-namespace publish flow.

Test Plan

  • Worker tests pass (cd worker && npm run test:run — 31)
  • Worker typecheck passes (tsc --noEmit)
  • server.json is valid JSON; markdownlint clean on changed docs

Answers to the questions you asked

  • Analytics: only Vercel Web Analytics is loaded (@vercel/analytics<Analytics/> in layout.tsx). No Google Analytics/gtag, no Vercel Speed Insights, no PostHog. (Not changed here — tell me if you want GA or Speed Insights added.)
  • MCP registry: not published today (no server.json existed). This PR adds the declaration; publishing is a one-time mcp-publisher step needing com.mukoko DNS-namespace verification (documented).

🤖 Generated with Claude Code

https://claude.ai/code/session_01RH8QR1QYMnMHDDW62K2XSj


Generated by Claude Code

… registry declaration

Three MCP hardening changes:

1. Single MCP domain. Remove the nhimbe.com/mcp worker routes — the MCP is
   served ONLY at events.mukoko.com/mcp (prod) / staging.events.mukoko.com/mcp.
   The APP stays dual-domain (nhimbe.com + events.mukoko.com both serve it);
   the MCP endpoint does not. Updates wrangler.toml routes + all docs that
   called nhimbe.com/mcp a live/legacy route (CLAUDE.md, worker/README,
   llms.txt, docs, RELEASES, the deploy skill, the security-reviewer agent).

2. Fully-built tool metadata (mcp-builder checklist). Every tool now carries a
   human-readable `title` and behavioural `annotations` — readOnlyHint /
   destructiveHint / idempotentHint / openWorldHint — so clients can label
   tools and gate confirmations correctly. Reads are read-only+idempotent;
   create_event is a non-read-only write; update_event is destructive (it can
   cancel). Threaded through `listToolDescriptors()` so both the legacy and
   modern (2026-07-28) `tools/list` advertise them.

3. MCP registry declaration. Add worker/server.json (name
   `com.mukoko/nhimbe-events`, a streamable-http remote at
   events.mukoko.com/mcp) and advertise the registry name from the worker
   status endpoint. NOT yet published — worker/README documents the
   mcp-publisher + DNS-namespace steps.

Worker tests (31) and typecheck pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RH8QR1QYMnMHDDW62K2XSj
@vercel

vercel Bot commented Jul 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
nhimbe Ready Ready Preview, Comment Jul 24, 2026 5:54pm
nhimbe-admin Ready Ready Preview, Comment Jul 24, 2026 5:54pm

Request Review

@claude

claude Bot commented Jul 24, 2026

Copy link
Copy Markdown

Claude encountered an error —— View job


I'll analyze this and get back to you.

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This repository is configured for manual code reviews. Comment @claude review for a one-time review, or @claude review always to subscribe this PR to a review on every future push.

Tip: disable this comment in your organization's Code Review settings.

@bryanfawcett
bryanfawcett merged commit bc0aec9 into main Jul 25, 2026
26 checks passed
@bryanfawcett
bryanfawcett deleted the claude/mcp-events-only-hardening branch July 25, 2026 13:24
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