Session log — Novamira connectors and a fresh PageMotor at medistage

← All session logs

Session log — Novamira connectors and a fresh PageMotor at medistage

6 May 2026 · Hasmukh with Claude · two pieces of work in one session. First, added two Novamira connectors so Claude can talk to the WordPress sites at staging.mobilearn.africa and medilearn.africa, which meant first installing Node.js and the Claude command-line tool on Hasmukh’s Mac. Second, installed a fresh PageMotor instance at medistage.medilearn.africa, mirroring the plugin set and theme of the existing staging.medilearn.africa, but with its own user, database, FPM pool and certificate.

Brief

1. The brief

HasmukhSet up Novamira so Claude can read and edit the WordPress sites at staging.mobilearn.africa and medilearn.africa. Then stand up a second PageMotor for medistage at medistage.medilearn.africa.

One ask, two unrelated halves. Both straightforward in shape, both with their own small surprises.

Step 1

2. Node and the Claude CLI on the Mac

Hasmukh’s Mac had neither Node.js nor the Claude command-line tool installed. The Novamira connector for WordPress is shipped as an npm package, so both had to be in place first.

Node.js LTS (v24.15.0) was installed via the official .pkg from nodejs.org, which Hasmukh ran himself (installer needed his Mac password). The Claude CLI was then installed into a user-local npm prefix at ~/.npm-global, deliberately not system-wide, so future updates do not need sudo. The CLI binary lives at ~/.npm-global/bin/claude.

One thing the harness blocked: editing ~/.zshrc to add the npm-global bin folder to PATH. Shell profile changes are guarded for safety reasons. The practical consequence is that Hasmukh has to type the full path to claude in Terminal until that change is made by hand. A memory note was left to remind us.

Step 2

3. Two Novamira connectors at user scope

Two MCP server entries were added under the user-scope key in ~/.claude.json: novamira-staging-mobilearn-africa pointing at the staging site, and novamira-medilearn-africa pointing at the live medilearn.africa, each via the @automattic/mcp-wordpress-remote npm package.

Saved at user scope, not local (project) scope, because the original command’s default would have stored them inside the temporary worktree folder, which gets cleaned up. User scope means the connectors persist across sessions and worktrees.

The credentials are WordPress Application Passwords tied to Hasmukh’s admin account on each site. Both connectors came back as Connected when tested with claude mcp list.

Step 3

4. A fresh PageMotor at medistage

A second medilearn-flavoured PageMotor instance was installed on the s2l VPS at medistage.medilearn.africa. Same shape as the existing staging.medilearn.africa but with its own system user, FPM pool, database (medistage_pm) and nginx vhost. HTTPS live with a Let’s Encrypt certificate good until 4 August 2026. The noindex header is set so search engines do not pick the staging site up.

The same plugin family was pre-loaded as on staging.medilearn.africa: ep-audit-log, ep-breadcrumbs, ep-bunny-fonts, ep-courses, ep-diagnostics, ep-editor, ep-email, ep-gdpr, ep-maintenance, ep-newsletter, ep-newsletter-sendgrid, ep-redirects, ep-search, ep-seo, ep-sitemap. PageMotor 0.8.2 self-seeded its eight database tables on the first request, and the /admin/ endpoint was left in registration mode for Hasmukh’s first admin sign-up.

OutcomeA second medilearn instance, isolated from the first, ready for whatever Hasmukh decides medistage is for.
Going forward

5. Going forward

Add ~/.npm-global/bin to the shell PATH so Hasmukh can just type claude instead of the full path. The pkg installer in Downloads can be deleted now that the install is done. If the WordPress password ever changes, update it in ~/.claude.json under the matching connector entry. Worth confirming where the live medilearn.africa WordPress is actually hosted, the wp-config Hasmukh shared earlier shows a cPanel-style account, so the live site appears to be on shared hosting rather than the s2l VPS.

The bigger open question for medistage is what it is for: a developer sandbox, a demo for funders, or a step before going to production. The naming (medistage versus staging) suggests Hasmukh wants two separate environments and worth pinning down so the two sites do not drift apart over time. The medistage FPM pool config inherits 10 max children from medilearn, fine for testing, may need bumping for real traffic. The medistage database password is currently only on the server in config.php, not in client-data/credentials.env, worth adding.