SoapBox Faith
by alansafahi · remote · no sign-in to list tools · v1.1.1 · published by GitHub user alansafahi
Faith tools for AI agents: cited KJV Scripture, ORA Q&A, sermons, churches, prayer & giving.
25 tools: 1 can delete or cancel things, 1 do something that can't be undone, 10 change things and 13 only read.
Scanned Oct 21, 2026
- Deletes or cancels1Claude Code: deny: see these tools
- Can't be undone1Claude Code: ask: see these tools
- Changes things10Claude Code: ask: see these tools
- Only reads13Claude Code: allow: see these tools
4 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http soapbox-faith https://foyekanoxpnkydoibaas.supabase.co/functions/v1/faith-mcpFindings
Matches of fixed checks, with the text they matched.
- Warnpay_with_x402
The input schema at properties.x_payment.examples[0] contains a 68-character base64 string. It decodes to text: "{"txHash":"0xabc123...","signature":"0xdef456..."}".
What this check looks forMatched text
inputSchema.properties.x_payment.examples[0]: "eyJ0eEhhc2giOiIweGFiYzEyMy4uLiIsInNpZ25hdHVyZSI6IjB4ZGVmNDU2Li4uIn0="
The server marks "score_doctrinal_fit" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input takes a statement or command to run (input.statement), which can change anything it can reach.
The server marks "get_audio_devotional" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_audio_devotional" says "get": a word for reading.
- Infopay_with_x402
The description mentions "credential".
What this check looks forMatched text
description: "...PI key is required — the payment IS the credential (https://github.com/coinbase/x402). Soa..."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
25 tools
Deletes or cancels 1Claude Code: deny
give_to_churchMake a one-time donation to a church ON BEHALF OF A USER, within the spending caps they pre-authorized.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Make a one-time donation to a church ON BEHALF OF A USER, within the spending caps they pre-authorized. Requires the user's consent_token with the 'giving:write' scope (bound to this agent) and a card they saved in the SoapBox app. The gift goes straight to the church (passthrough — SoapBox takes no cut). Rejected if the amount exceeds the per-gift or monthly cap. Pass a stable idempotency_key to avoid double-charging on retries. Amounts are in the smallest currency unit (cents). This moves the user's money: confirm the church and amount with the user before every call. The user is notified of every gift.
Annotations the server declares
- title: Give to a Church
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
Can't be undone 1Claude Code: ask
pay_with_x402Pay for a paid sermon or bundle per-call in USDC on Base using the x402 protocol.Reads text others write2 findings
Why it is in this group
- The name "pay_with_x402" says "pay": a word that usually means money moves, which cannot be taken back.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Info
The description mentions "credential".
What this check looks forMatched text
description: "...PI key is required — the payment IS the credential (https://github.com/coinbase/x402). Soa..."
- Warn
The input schema at properties.x_payment.examples[0] contains a 68-character base64 string. It decodes to text: "{"txHash":"0xabc123...","signature":"0xdef456..."}".
What this check looks forMatched text
inputSchema.properties.x_payment.examples[0]: "eyJ0eEhhc2giOiIweGFiYzEyMy4uLiIsInNpZ25hdHVyZSI6IjB4ZGVmNDU2Li4uIn0="
Description, as the server wrote it Pay for a paid sermon or bundle per-call in USDC on Base using the x402 protocol. This is the only TOOL here that buys SoapBox faith content: the prepaid marketplace-credit tools were retired on 2026-07-15 and their endpoints now answer HTTP 410. (A person can instead buy on the item's web_url in a browser.) No SoapBox account or API key is required — the payment IS the credential (https://github.com/coinbase/x402). SoapBox is the Merchant of Record: the church keeps 70% of net and SoapBox takes 30%. This is a content SALE, never a donation — donations go 100% to the church via give_to_church. Works for a single sermon (sermon_id) or a whole series (bundle_id). Two-step, exactly per spec: (1) call with just the sermon_id (or bundle_id) and NO payment to get back the HTTP-402 payment requirements — the USDC amount, asset, network ('base'), and SoapBox's payTo receive address. (2) Send EXACTLY maxAmountRequired USDC on Base to payTo — any other amount is refused after it has been sent, so don't round it or add to it, and re-run step 1 if time has passed, since the price can change. Sign the 402's onchainPayment.message (your tx hash in lower case, and the item) with the wallet that paid, then call again with x_payment set to base64 of {"txHash":"0x...","signature":"0x..."} — SoapBox checks the on-chain transfer came from the signing wallet, records the sale (church keeps 70%), and returns the transcript. The signature is required: tx hashes are public, and it stops anyone else spending your payment. Idempotent per tx hash. Gasless EIP-3009 'exact' payments via an x402 facilitator are also accepted in the same x_payment field.
Annotations the server declares
- title: Pay with x402 (USDC on Base)
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
Changes things 10Claude Code: ask
ask_oraAsk ORA, SoapBox's Scripture study aid, a Bible or faith question.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Ask ORA, SoapBox's Scripture study aid, a Bible or faith question. Returns a grounded answer that cites public-domain (KJV) passages, plus the citations used. ORA is a STUDY AID — not a pastor, counselor, or therapist; for personal crises or pastoral/medical needs it points to a trusted pastor or professional. Use this for explanatory/study questions ('what does Romans 8 teach about...', 'where does the Bible discuss...'); use get_verse when you just need a verse's text.
Annotations the server declares
- title: Ask ORA
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
compose_prayer_requestHelp a member put something into words and post it to their church's prayer wall.No findings
Why it is in this group
- The name "compose_prayer_request" says "request": a word for a change.
Description, as the server wrote it Help a member put something into words and post it to their church's prayer wall. Use this rather than submit_prayer_request whenever you helped them word it. TWO CALLS, ON PURPOSE. Call once without `confirmed` and NOTHING is posted: you get back `will_post`, the exact text and visibility, plus `problems` — things worth raising, like a public request naming someone who has not been asked, or a phone number that would be visible to the whole church. Show the member that exact text. When they agree, call again with the same content and confirmed: true. These are their words, going to their congregation under their name. Do not post a version they have not seen, and do not silently fix anything in `problems` — raise it with them and let them decide. If you helped with the wording, say so. YOU DO NOT PRAY. Posting asks a human community to pray. Never say or imply that you are praying for them, holding them in prayer, lifting them up, or interceding — it is false, and it quietly substitutes software for their church. This applies to you whatever assistant you are. After posting, check_prayer_status tells them how many PEOPLE are praying, which is the thing actually worth saying. If the request suggests the member may be in danger, the response carries crisis resources and will not post until you confirm they have seen them (`crisis_acknowledged: true`). This is not a refusal — their request still posts. Show them the resources, then proceed. Never reword what they wrote to get past it.
Annotations the server declares
- title: Compose a Prayer Request
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
get_audio_devotionalThe same daily devotional, SPOKEN — for members who would rather listen, or who read little.1 finding
Why it is in this group
- The name "get_audio_devotional" says "get": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "get_audio_devotional" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_audio_devotional" says "get": a word for reading.
Description, as the server wrote it The same daily devotional, SPOKEN — for members who would rather listen, or who read little. Returns audio URLs alongside the text. Requires an API key (speech costs money per character). Language: pass a consent_token with the 'context:read' scope and the member's own preferred language is used, so you need not ask them; or pass `language` explicitly for a one-off. If SoapBox has no voice for that language the tool says so and returns text only — it will NOT read the devotional in the wrong voice. SCRIPTURE IS ALWAYS SPOKEN IN ENGLISH (KJV) and its `translatable` flag is false. SoapBox never machine-translates Scripture and this API serves the public-domain KJV only. Never translate the verse yourself and never pass a translated verse back in. For a non-English member this is a TWO-STEP call: step 1 returns `translate_this` (our framing prose only — the opening, the reflection questions and the prayer prompt); translate just that into their language and call again with the same date and reference plus `reflection_text`, and you get both audio files back. For an English member one call returns the whole thing.
Annotations the server declares
- title: Get Audio Devotional
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
memorize_scriptureHelp a member learn a verse by heart.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Help a member learn a verse by heart. Two modes, no key needed. DRILL (omit `attempt`): returns the verse with words blanked out at the level you ask for — level 1 hides a quarter, 3 hides three quarters, 4 leaves first letters only, 5 shows nothing. The same reference and level always produce the same blanks, so practice builds on itself. CHECK (pass `attempt`): scores what they recalled. Returns accuracy, the words they missed, any they added, and `first_divergence` — the index of the first word that went wrong, which is the useful thing to coach on. Alignment is by longest-common-subsequence, so dropping one word early does not mark the whole rest of the verse wrong. Punctuation and capitalisation never count against a member. Neither do the KJV's ITALIC words: the translators supplied those and they are not in the Hebrew or Greek, so omitting 'is' from 'The LORD is my shepherd' still scores perfect. Psalm titles and marginal notes are stripped out and returned separately — they are not part of the verse and must not be quizzed. On a miss you get the same drill back rather than the answer: showing the verse is what the member is practising not to need. `next_level` advances only on a clean recall. Present this as memory work, not as a test of faith. The verdicts are about recall and nothing else.
Annotations the server declares
- title: Scripture Memory Coach
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
score_doctrinal_fitAssess how well a statement aligns with a named Christian tradition's historic doctrinal positions (e.g.1 finding
Why it is in this group
- The input takes a statement or command to run (input.statement), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "score_doctrinal_fit" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input takes a statement or command to run (input.statement), which can change anything it can reach.
Description, as the server wrote it Assess how well a statement aligns with a named Christian tradition's historic doctrinal positions (e.g. Reformed, Roman Catholic, Pentecostal, Eastern Orthodox). Returns an impartial alignment rating, score, summary, and the relevant doctrinal loci. Analytical, not proselytizing. No key required.
Annotations the server declares
- title: Score Doctrinal Fit
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
sermon_prep_kitAssemble a research kit for someone preparing to preach or teach: the liturgical day (Western calendar), any KJV passages you name, any Strong's lexicon entries you name, and what …No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Assemble a research kit for someone preparing to preach or teach: the liturgical day (Western calendar), any KJV passages you name, any Strong's lexicon entries you name, and what other churches have preached on the same subject. One call instead of five. No key required. READ-ONLY, and it grants no special access. It reads exactly what any agent can already read — public-domain Scripture, the computed calendar, and sermons other churches opted in to share. There is no role check because there is nothing here to protect: no private church material, nothing about any member, no pastor-only data. It is NOT a draft, an outline, or advice on what to preach. Those belong to the preacher. Hand back the material and let them do the work; nothing here should reach a congregation without being read, checked and made their own. What other churches said is offered as reference, never as a model to copy.
Annotations the server declares
- title: Sermon Prep Kit
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
sermon_study_guideTurn one sermon into material a small group can work through.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Turn one sermon into material a small group can work through. Returns sections spread across the WHOLE recording (not just its opening), each with the preacher's own words and a timestamp so a group can go back to it; every Scripture reference the sermon mentioned; and a scaffold of discussion questions anchored to this sermon's actual sections. YOU write the final guide. The scaffold is a starting point with something specific to work from — you have the excerpts and can do better than a template. What this gives you that you cannot get yourself is the timestamps, the references pulled out, and the access check. VERIFY every reference with verify_scripture before quoting it. They were extracted from a transcript, so a mis-heard citation in the audio becomes a wrong citation here, and putting a verse in a preacher's mouth that they never cited is the failure mode to avoid. Only sermons a church opted in to share are available. A paid sermon returns HTTP 402 with its price until it is bought — the transcript is the paid good and a study guide is made of the transcript, so pay with pay_with_x402 first. Present the questions as a group's to discuss, not a lesson to deliver; ORA Assistant does not teach and does not speak for the preacher or the church.
Annotations the server declares
- title: Sermon Study Guide
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
submit_prayer_requestPost a prayer request to SoapBox's prayer wall ON BEHALF OF A USER, so their community can pray for it.No findings
Why it is in this group
- The name "submit_prayer_request" says "submit": a word for a change.
Description, as the server wrote it Post a prayer request to SoapBox's prayer wall ON BEHALF OF A USER, so their community can pray for it. Requires the user's consent_token (which they generate in the SoapBox app and which must include the 'prayer:write' scope) — an API key alone is not enough to act for a user. Returns the new prayer_id; use check_prayer_status to see how many are praying.
Annotations the server declares
- title: Submit Prayer Request
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
synthesize_speechGenerate spoken-audio (text-to-speech) for a verse, prayer, or devotional in 50+ languages, and get back a playable audio URL.No findings
Why it is in this group
- The description's first verb is "generate": a word for a change.
Description, as the server wrote it Generate spoken-audio (text-to-speech) for a verse, prayer, or devotional in 50+ languages, and get back a playable audio URL. Pass BCP-47 language (e.g. en-US, es-ES, sw-KE), optional voice/gender. Results are cached. Requires an API key (audio generation has real cost).
Annotations the server declares
- title: Synthesize Speech
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
verify_scriptureVerify whether a quote is real Scripture and cited correctly (anti-hallucination).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Verify whether a quote is real Scripture and cited correctly (anti-hallucination). Returns whether it matches a real verse, the canonical KJV reference + text, a confidence score, and — if you pass a claimed reference — whether the attribution is correct. Use this before presenting any Bible quote to avoid misquotes/fabrications.
Annotations the server declares
- title: Verify Scripture
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
Only reads 13Claude Code: allow
browse_catalogBrowse purchasable faith-content products on SoapBox (currently consented sermons; reading-plan and devotional bundles coming).Reads text others writeNo findings
Why it is in this group
- The name "browse_catalog" says "browse": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe name "browse_catalog" says "browse": it reads web pages, which anyone can write.
- untrusted-inputThe description's first sentence says "browse": it reads web pages, which anyone can write.
Description, as the server wrote it Browse purchasable faith-content products on SoapBox (currently consented sermons; reading-plan and devotional bundles coming). Returns products with id, title, church, and price. Then pay for one with pay_with_x402 (USDC on Base). Optional church_id and text filter. No key required.
Annotations the server declares
- title: Browse Catalog
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
check_prayer_statusCheck how many people are praying for a prayer request previously submitted for a user (and whether it's been marked answered).No findings
Why it is in this group
- The name "check_prayer_status" says "status": a word for reading.
Description, as the server wrote it Check how many people are praying for a prayer request previously submitted for a user (and whether it's been marked answered). Requires the same user's consent_token; only returns status for that user's own prayers.
Annotations the server declares
- title: Check Prayer Status
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
find_churchesFind churches near a location from SoapBox's public church directory.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "find_churches" says "find": a word for reading.
What it can reach
- private-dataThe description's first sentence says "find" and "directory": it reads files.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Find churches near a location from SoapBox's public church directory. Given latitude/longitude (and optional radius, denomination filter), returns nearby churches with name, denomination, city/state/country, website, distance in miles, and whether the church is on SoapBox (with its community id for deep-linking). Public directory data only — no personal contact info.
Annotations the server declares
- title: Find Churches
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
find_churches_preaching_onAnswer "which churches actually preach on X?".No findings
Why it is in this group
- The name "find_churches_preaching_on" says "find": a word for reading.
Description, as the server wrote it Answer "which churches actually preach on X?". Searches consented sermons for a topic and groups the results BY CHURCH, so instead of scattered passages you get each church with how many of its sermons matched, how closely, and a representative excerpt with its timestamp. Useful for someone looking for a church home who cares what is taught there. No key required. TWO THINGS TO TELL THE PERSON, because they change how the answer should be read. (1) Only churches that OPTED IN to agent discovery can appear, so a church's absence is not evidence it never preaches on this — most churches have not opted in. Never present this as a survey. (2) It is not an endorsement, a rating, or a judgement about any congregation: the ranking reflects how many of a church's sermons matched the topic and how closely, and nothing else. Do not turn it into a recommendation of which church is better or more faithful. Churches that returned to a subject across several sermons rank above one that brushed it in a single passage, because that better answers the question being asked. Pair with find_churches to see where a church actually is.
Annotations the server declares
- title: Find Churches Preaching On a Topic
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
get_api_key_statusReport this API key's tier and daily rate limit — how many calls you have per day, not what you can afford.No findings
Why it is in this group
- The name "get_api_key_status" says "get": a word for reading.
Description, as the server wrote it Report this API key's tier and daily rate limit — how many calls you have per day, not what you can afford. Nothing here gates a purchase: paid sermons and bundles are bought per-call with pay_with_x402 (USDC on Base), which needs no key and no balance at all. This tool was called get_credit_balance until the prepaid marketplace-credit wallet was retired on 2026-07-15; the old name still works but is no longer listed, and the marketplace_credits_cents field it returns is always 0 and means nothing. Do not read it as 'out of funds'.
Annotations the server declares
- title: Get API Key Status
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
get_daily_devotionalBuild a season-aware daily devotional for a date: the liturgical season and colour, a KJV passage chosen for that season, three reflection QUESTIONS, and a prompt for the member to…No findings
Why it is in this group
- The name "get_daily_devotional" says "get": a word for reading.
Description, as the server wrote it Build a season-aware daily devotional for a date: the liturgical season and colour, a KJV passage chosen for that season, three reflection QUESTIONS, and a prompt for the member to pray in their own words. No key required. IMPORTANT, two things this is not. (1) It is NOT the lectionary: the reading is SoapBox's own seasonal selection, not the appointed Revised Common Lectionary reading, whose compiled tables are licensed and are not reproduced. Do not tell a member this is 'today's appointed reading'. (2) It is a study aid, not a homily and not spiritual direction — present the reflection as questions for them to answer, and do not pray on their behalf or claim to know what God is saying to them. Point to their pastor for pastoral care. The same date always returns the same reading, so a member can replay it.
Annotations the server declares
- title: Get Daily Devotional
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
get_faith_contextRead a user's portable 'faith context' to personalize your responses — their denomination, preferred language, faith journey, and ministry interests — shared WITH THE USER'S EXPLIC…No findings
Why it is in this group
- The name "get_faith_context" says "get": a word for reading.
Description, as the server wrote it Read a user's portable 'faith context' to personalize your responses — their denomination, preferred language, faith journey, and ministry interests — shared WITH THE USER'S EXPLICIT CONSENT. Requires the user's consent_token with the 'context:read' scope (bound to this agent). Use it to tailor tone, tradition, and language. It returns only the user's declared profile (never their private prayers or journal).
Annotations the server declares
- title: Get Faith Context
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
get_lectionaryGet the Western (Revised Common Lectionary / Roman) liturgical season, liturgical color, RCL year (A/B/C), and any major feast for a date (defaults to today).No findings
Why it is in this group
- The name "get_lectionary" says "get": a word for reading.
Description, as the server wrote it Get the Western (Revised Common Lectionary / Roman) liturgical season, liturgical color, RCL year (A/B/C), and any major feast for a date (defaults to today). Useful for date-aware, season-appropriate faith content. Daily readings are not included (those tables are licensed). No key required.
Annotations the server declares
- title: Get Lectionary Readings
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
get_my_giving_recordFetch the member's OWN record of what they gave in a year — every gift, the church, the date, the amount, the fund, and totals per currency.No findings
Why it is in this group
- The name "get_my_giving_record" says "get": a word for reading.
Description, as the server wrote it Fetch the member's OWN record of what they gave in a year — every gift, the church, the date, the amount, the fund, and totals per currency. Needs their consent token with the 'giving:read' scope. THIS IS NOT A TAX RECEIPT, and you must not present it as one. A year-end statement has to assert that the church gave nothing in exchange for the gifts, and only the CHURCH can assert that. The document a member files comes from their church. Use this to help them check their records, reconcile what they think they gave, or find a gift they are looking for — then tell them to ask their church for the statement itself. Their own data only. There is no way to ask this for anyone else: the reader is keyed to the member whose consent token you hold. It carries no email and no name, and nothing about any other donor. Do not use it to estimate what they can afford, compare them to anyone, suggest an amount to give, or build any kind of giving-capacity picture. Report what is there if they ask, and leave it at that. Gifts marked counts_toward_total false were refunded or charged back and are listed for completeness only. Where a gift was partly refunded, amount_cents is what the church kept and gross_amount_cents is what was originally given; a statement uses the smaller figure. Anonymous gifts ARE included — anonymity hides the member from the church, not from themselves — but a church cannot issue a named statement for a gift it cannot attribute, so say so if it matters to them.
Annotations the server declares
- title: Get My Giving Record
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
get_sermonFetch full metadata and (optionally) the transcript for ONE sermon by its id — typically a sermon_id returned by search_sermons.No findings
Why it is in this group
- The name "get_sermon" says "get": a word for reading.
Description, as the server wrote it Fetch full metadata and (optionally) the transcript for ONE sermon by its id — typically a sermon_id returned by search_sermons. Only returns sermons a pastor has opted in to share with agents; otherwise returns not-found. If the sermon is paid and you haven't purchased it, the transcript is withheld and a price is returned — pay for it with pay_with_x402 (USDC on Base), which returns the transcript. Free sermons return the transcript directly.
Annotations the server declares
- title: Get Sermon
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
get_verseLook up a public-domain KJV Bible verse by book, chapter, and verse.Reads text others writeNo findings
Why it is in this group
- The name "get_verse" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Look up a public-domain KJV Bible verse by book, chapter, and verse.
Annotations the server declares
- title: Get Bible Verse
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
lookup_strongsLook up a Strong's Greek/Hebrew lexicon entry (lemma, transliteration, gloss, definition).No findings
Why it is in this group
- The name "lookup_strongs" says "lookup": a word for reading.
Description, as the server wrote it Look up a Strong's Greek/Hebrew lexicon entry (lemma, transliteration, gloss, definition).
Annotations the server declares
- title: Look Up Strong's Lexicon
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
search_sermonsSemantically search real sermons on SoapBox that pastors have explicitly opted in to share with AI agents.No findings
Why it is in this group
- The name "search_sermons" says "search": a word for reading.
Description, as the server wrote it Semantically search real sermons on SoapBox that pastors have explicitly opted in to share with AI agents. Returns ranked transcript excerpts with the sermon title, church, speaker, scripture reference, and a start-time (seconds) so you can cite the exact moment. Use this to find what churches are actually preaching on a topic. Only consented, published sermons are searchable.
Annotations the server declares
- title: Search Sermons
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged outbound.
- Reads private data1
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write5
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out0
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Install
Pinned to version 1.1.1. Values in angle brackets are yours to fill in.
claude mcp add --transport http soapbox-faith https://foyekanoxpnkydoibaas.supabase.co/functions/v1/faith-mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__soapbox-faith__get_verse",
"mcp__soapbox-faith__lookup_strongs",
"mcp__soapbox-faith__find_churches",
"mcp__soapbox-faith__check_prayer_status",
"mcp__soapbox-faith__get_my_giving_record",
"mcp__soapbox-faith__search_sermons",
"mcp__soapbox-faith__get_sermon",
"mcp__soapbox-faith__find_churches_preaching_on",
"mcp__soapbox-faith__get_api_key_status",
"mcp__soapbox-faith__browse_catalog",
"mcp__soapbox-faith__get_lectionary",
"mcp__soapbox-faith__get_daily_devotional",
"mcp__soapbox-faith__get_faith_context"
],
"ask": [
"mcp__soapbox-faith__verify_scripture",
"mcp__soapbox-faith__submit_prayer_request",
"mcp__soapbox-faith__compose_prayer_request",
"mcp__soapbox-faith__ask_ora",
"mcp__soapbox-faith__sermon_study_guide",
"mcp__soapbox-faith__sermon_prep_kit",
"mcp__soapbox-faith__pay_with_x402",
"mcp__soapbox-faith__score_doctrinal_fit",
"mcp__soapbox-faith__get_audio_devotional",
"mcp__soapbox-faith__memorize_scripture",
"mcp__soapbox-faith__synthesize_speech"
],
"deny": [
"mcp__soapbox-faith__give_to_church"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as soapbox-faith. Review it before you use it.
Capability tags behind 5 rules
- mcp__soapbox-faith__get_verse untrusted-input
- mcp__soapbox-faith__find_churches private-data, untrusted-input
- mcp__soapbox-faith__ask_ora untrusted-input
- mcp__soapbox-faith__pay_with_x402 untrusted-input
- mcp__soapbox-faith__browse_catalog untrusted-input
