Knowledge > System Architecture > Agent Tooling
Agent Tooling — What You Can Do
Agents have full access to deploy, manage, and operate all ChurchWiseAI systems. The founder is a solo operator — agents should use these tools proactively, not ask the founder to do things manually.
CLIs (all logged in and ready)
| Tool | Command | What it does | Account |
|---|---|---|---|
| Vercel | vercel | Deploy, env vars, logs, domains | churchwiseai-5386 (john@churchwiseai.com) |
| Stripe | stripe | Products, prices, customers, webhooks, test payments | ChurchWiseAi Ltd (churchwiseai@gmail.com) |
| GitHub | gh | PRs, issues, releases, repo management | JohnMoelker |
| LiveKit | C:\dev\lk.exe | Voice agent deploy, SIP trunks, agent status | churchwiseai |
| pnpm | pnpm | Package management for all 3 Next.js projects | — |
| Node.js | node (v22.13.1) | Scripts, builds, content generation | — |
MCP Plugins
| Plugin | Tools | What it does |
|---|---|---|
| Supabase | mcp__plugin_supabase_supabase__execute_sql, apply_migration, list_tables, etc. | Direct database access |
| Cartesia | mcp__cartesia-mcp__text_to_speech, clone_voice, list_voices, etc. | Voice cloning, TTS. Must be called serially — Cartesia startup plan caps concurrent TTS at 5; parallel calls trip the cap and degrade live voice-agent calls. Consult knowledge/references/cartesia-voices/index.json + samples before exploring voices (725 catalogued, ~100 English pre-sampled, zero API cost). |
| Gmail | mcp__claude_ai_Gmail__gmail_* | Read, search, draft emails as john@churchwiseai.com |
| Google Calendar | mcp__claude_ai_Google_Calendar__gcal_* | Calendar events |
| Context7 | mcp__plugin_context7_context7__* | Look up latest library documentation |
| ChurchWiseAI Knowledge | mcp__churchwiseai-knowledge__* | Structured queries over knowledge/ — see below |
Knowledge MCP server
Lives at C:/dev/mcp-servers/churchwiseai-knowledge/. Registered in C:/dev/.mcp.json. Use these tools FIRST when onboarding to unfamiliar work or checking prior context — faster than grepping, returns structured JSON with cross-references resolved.
find_process(name)— current state of a process (phase, code-files, tests, decisions, mermaid flow). Example:find_process("stripe-testing-harness").find_journey(name)— user journey with entry points, steps, linked acceptance spec.find_decisions({feature?, tag?, date_from?, date_to?, include_superseded?})— filtered decision records, newest first, excludes superseded by default.find_tests({feature?, type?, critical_only?})— query the test + critical-path registry.get_freshness(path)—last-verified+ days-old + is-stale (>60 days) for a doc.search_knowledge(query, limit?)— BM25 fallback across all.mdcontent.
Server auto-watches knowledge/ for file changes. Rebuild (pnpm -C C:/dev/mcp-servers/churchwiseai-knowledge build) only when tool shape or deps change.
Stripe CLI Notes
- Test mode is default (reads
sk_test_key). Use--liveflag for live mode operations. - Live mode writes: Use
--api-keyflag with fullsk_live_key (stored inknowledge/.envasSTRIPE_LIVE_SECRET_KEY). The config file'srk_live_is read-only. - Confirm with founder before any live mode creates/updates — but agents execute, never send founder to dashboard.
- Webhook testing:
stripe listen --forward-to localhost:3002/api/stripe/webhook - Test card:
4242 4242 4242 4242(any future expiry, any CVC)
Vercel CLI Notes
vercel env ls,vercel env pull,vercel --prod,vercel logs- Adding env vars (agents MUST do this themselves):
CRITICAL: useprintf "secret-value" | vercel env add VAR_NAME production
printf, NEVERecho.echoappends a trailing newline that Vercel stores literally, silently breaking every env var (string comparisons fail, API keys rejected, URLs malformed).printfdoes not add a newline. - To remove:
vercel env rm VAR_NAME production
What agents should do WITHOUT asking
- Read database queries (
SELECT) - Read Stripe data (products, prices, customers, subscriptions)
- Read/set Vercel env vars (
printf "val" | vercel env add NAME production) - Run builds (
pnpm build) - Run git operations (commit, push to feature branches)
- Search Gmail for context
- Check Google Calendar for scheduling
- MailerLite API operations (subscribers, automations, campaigns) via REST API
What agents should CONFIRM before doing
- Writing to the production database (INSERT, UPDATE, DELETE)
- Creating/modifying Stripe products or prices in LIVE mode
- Deploying to Vercel production
- Pushing to main/master branches
- Sending emails
- Voice agent deployment (
lk.exe agent deploy --project cwa-voice) - Deleting Vercel env vars