Good Turn Studio (all tools)
REMOTE · GOODTURN-MCP.PAGES.DEV · SCANNED SEP 28
All 25 Good Turn Studio helpers in one server: money, health, jobs, travel, halal and scripture.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security74
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability69
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 19608 tokens (~166/item across 118 items; 118 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "cancelmysub_identify_charge" implies "charge" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Fail
- An AI judge read all 119 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Unverified: 1 category
A category scored 0 because we could not verify it: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.
How do I install the Good Turn Studio (all tools) MCP server?
Good Turn Studio (all tools) is a hosted endpoint at https://goodturn-mcp.pages.dev/all/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · goodturn-mcp.pages.dev
claude mcp add --transport http goodturnstudio-all 'https://goodturn-mcp.pages.dev/all/mcp'
{
"mcpServers": {
"goodturnstudio-all": {
"url": "https://goodturn-mcp.pages.dev/all/mcp"
}
}
} {
"servers": {
"goodturnstudio-all": {
"type": "http",
"url": "https://goodturn-mcp.pages.dev/all/mcp"
}
}
} [mcp_servers.goodturnstudio-all] url = "https://goodturn-mcp.pages.dev/all/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"goodturnstudio-all": {
"type": "remote",
"url": "https://goodturn-mcp.pages.dev/all/mcp",
"enabled": true
}
}
} openclaw mcp add goodturnstudio-all --url 'https://goodturn-mcp.pages.dev/all/mcp' --transport streamable-http
mcp_servers:
goodturnstudio-all:
url: "https://goodturn-mcp.pages.dev/all/mcp" {
"McpServers": {
"goodturnstudio-all": {
"Transport": "http",
"Url": "https://goodturn-mcp.pages.dev/all/mcp"
}
}
} assistant mcp add goodturnstudio-all -t streamable-http -u 'https://goodturn-mcp.pages.dev/all/mcp'
{
"mcpServers": {
"goodturnstudio-all": {
"type": "http",
"url": "https://goodturn-mcp.pages.dev/all/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 28 Sept 26 69
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 28 Sept 2026 · Probed https://goodturn-mcp.pages.dev/all/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=goodturn-mcp.pages.dev | CN=YE1,O=Let's Encrypt,C=US | 27 Sept 2026 | 26 Dec 2026 | ECDSA 256 | ECDSA-SHA384 | 590c8ade87714dff31f31ce636eafc7da48 |
| SANs: *.goodturn-mcp.pages.dev, goodturn-mcp.pages.dev | ||||||
| CN=YE1,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 5ddd70dd31f801c85c186a7a04b80afe |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of goodturn-mcp.pages.dev. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| dev. | present | 60074 | 8 | Verified |
| pages.dev. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://goodturn-mcp.pages.dev/all/mcp | Verified | 200 | |
| http (plaintext) | http://goodturn-mcp.pages.dev/all/mcp | HTTPS enforced | 301 | https://goodturn-mcp.pages.dev/all/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
halalornot_check_medicine Halal or Not: Is this medicine halal? ~94
Halal or Not. Is this medicine halal?. Reads a medicine's active and inactive ingredients from its US label (openFDA) and flags gelatine, alcohol, pig-derived enzymes and heparin. The headline and say line lead with the ruling on necessity, so nobody stops a prescribed medicine; the ingredient reading follows (ingredient_headline, verdict)
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Brand or generic name. |
No output schema declared.
No examples provided.
halalornot_check_product_by_barcode Halal or Not: Check a product by barcode ~64
Halal or Not. Check a product by barcode. Looks the barcode up in Open Food Facts, then Open Beauty Facts, and checks its ingredients
| Name | Type | Req | Description |
|---|---|---|---|
| barcode | string | yes | EAN-13, EAN-8 or UPC barcode digits. |
No output schema declared.
No examples provided.
halalornot_explain_ingredient Halal or Not: Explain one ingredient or E-number ~108
Halal or Not. Explain one ingredient or E-number. For example 'E471', 'carmine', 'prawns', 'whey' or 'alcohol denat'. Returns the verdict for each school and the reasoning
| Name | Type | Req | Description |
|---|---|---|---|
| context | string | – | Whether the ingredient is in food or a cosmetic. Defaults to food. |
| name | string | yes | The ingredient or E-number, for example E471, carmine, gelatin or alcohol denat. |
No output schema declared.
No examples provided.
halalornot_explain_schools Halal or Not: How the four schools differ on food ~76
Halal or Not. How the four schools differ on food. Answers 'is it halal?' for food, cosmetics, medicines, stocks, funds, crypto, money products and everyday life, showing where the four Sunni schools and the main scholarly bodies agree and where they differ, with the reasoning and halal alt...
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
halalornot_get_prayer_times Halal or Not: Today's prayer times for a place, with Ramadan suhoor and iftar ~203
Halal or Not. Today's prayer times for a place, with both Asr times and Ramadan suhoor and iftar. Answers 'is it halal?' for food, cosmetics, medicines, stocks, funds, crypto, money products and everyday life, showing where the four Sunni schools and the main scholarly bodies agree and where they differ, with the reasoning and halal alt...
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | – | City name, for example London or Chicago, IL. |
| date | string | – | The day, YYYY-MM-DD. Defaults to today. |
| lat | number | – | Latitude of the place, in decimal degrees. Use with lon instead of city. |
| lon | number | – | Longitude of the place, in decimal degrees. Use with lat instead of city. |
| method | string | – | Calculation method: isna (North America), mwl (Muslim World League), umm_al_qura, egypt, karachi or moonsighting. |
No output schema declared.
No examples provided.
halalornot_list_rules Halal or Not: The full rulebook ~70
Halal or Not. The full rulebook. Answers 'is it halal?' for food, cosmetics, medicines, stocks, funds, crypto, money products and everyday life, showing where the four Sunni schools and the main scholarly bodies agree and where they differ, with the reasoning and halal alt...
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
halalornot_list_topics Halal or Not: Every question the rulebook covers ~94
Halal or Not. Every question the rulebook covers. Answers 'is it halal?' for food, cosmetics, medicines, stocks, funds, crypto, money products and everyday life, showing where the four Sunni schools and the main scholarly bodies agree and where they differ, with the reasoning and halal alt...
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Only topics in this area: money, crypto, medicine, food or life. |
No output schema declared.
No examples provided.
halalornot_screen_stock Halal or Not: Is this stock halal? ~104
Halal or Not. Is this stock halal?. Screens a US-listed stock via Mizan: first the business (each standard's excluded industries), then the AAOIFI, Dow Jones Islamic, S&P Shariah and MSCI Islamic debt screens. A company name also works (nvidia, philip morris). Links to halal alternatives in the same industry
| Name | Type | Req | Description |
|---|---|---|---|
| ticker | string | yes | A US stock ticker, for example AAPL or TSLA. |
No output schema declared.
No examples provided.
halalornot_search_products Halal or Not: Find products by name and check them ~184
Halal or Not. Find products by name and check them. Searches Open Food Facts by name or brand (for example 'Haribo Starmix') and returns up to five matches, each with a verdict, plus a 'say' line for the best match. Where a brand states the source of an ingredient its label leaves unnamed (Haribo: pork gelatine in its standard UK range), that statement decides it and is quoted in brand_statement
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | Open Food Facts country slug, for example united-kingdom, united-states, france. Use 'world' for no filter. Also picks the Amazon store for halal versions (amazon.co.uk for the UK and Ireland). |
| q | string | yes | A product, brand or barcode to look up, for example Haribo Starmix or 5000159484695. |
No output schema declared.
No examples provided.
jobspotter_get_job Job Spotter: Details for one job from a search result ~156
Job Spotter. Details for one job from a search result. Use when the user asks about one of the results, for example "tell me more about the second one" or "what's the apply link for the Uber job?". Pass the id from a /v1/jobs result exactly as given; ids carry what is needed, so they keep working later. NHS Jobs and Teaching Vacancies results include the closing date
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | The id from a /v1/jobs result, copied exactly, for example muse-22049500, remotive-2091141 or nhsjobs-C9413-26-0725. Some ids are longer, with a ~ and a code after it. |
No output schema declared.
No examples provided.
jobspotter_search_jobs Job Spotter: Search current job listings ~332
Job Spotter. Search current job listings. Use for "find remote Python jobs", "marketing jobs in New York", "junior data analyst jobs posted this week", "senior software engineer jobs in London", "nurse jobs in Manchester". Put the job words in what and the place in where. Everyday phrasing in what also works: level words (junior, senior), "remote", "in <city>" and "this week" are picked out. Listings from Remotive, Himalayas, Jobicy and Remote OK must be credited to them, which `say` already does.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | US or UK, when the place exists in both (Birmingham, Manchester, Cambridge) and the user's country is known. Optional. |
| level | string | – | entry (junior, graduate, intern), mid or senior. |
| limit | integer | – | How many results, 1 to 10. Default 10. |
| posted_within_days | integer | – | Only jobs posted in the last N days, 1 to 90. Default 30. Use 7 for "this week". |
| what | string | – | Job title, skill or field, for example "python developer" or "marketing". Required unless where is given. |
| where | string | – | A city (New York, Austin, TX, London, Birmingham, UK), a US state (Texas), a UK county or region (Kent, Yorkshire), a UK postcode, a country (USA, UK, Germany), "remote", or remote in a country ("rem… |
No output schema declared.
No examples provided.
lore_get_card Scroll the Lore: Today's reading one line at a time, for voice ~123
Scroll the Lore. Today's reading one line at a time, for voice.. Greek and Norse myth: daily readings explained line by line, plans, search, and the whole Theogony, Iliad, Odyssey and Poetic Edda read a passage at a time
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | – | Optional day as YYYY-MM-DD. Defaults to today (UTC). |
| n | integer | – | Which card, starting at 1. Defaults to 1. |
| reading | string | – | A reading or plan id from /readings. Defaults to today's reading. |
No output schema declared.
No examples provided.
lore_get_reading Scroll the Lore: One reading or plan, line by line ~100
Scroll the Lore. One reading or plan, line by line. Greek and Norse myth: daily readings explained line by line, plans, search, and the whole Theogony, Iliad, Odyssey and Poetic Edda read a passage at a time
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | A reading or plan id from /readings, or a plan name such as "japji" or "The Gita in 18 Days". |
No output schema declared.
No examples provided.
lore_get_today Scroll the Lore: Today's reading, line by line (same as the app shows today) ~86
Scroll the Lore. Today's reading, line by line (same as the app shows today). Greek and Norse myth: daily readings explained line by line, plans, search, and the whole Theogony, Iliad, Odyssey and Poetic Edda read a passage at a time
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | – | Optional day as YYYY-MM-DD. Defaults to today (UTC). |
No output schema declared.
No examples provided.
lore_list_books Scroll the Lore: The whole books in the Library that can be read a passage at a time ~69
Scroll the Lore. The whole books in the Library that can be read a passage at a time. Greek and Norse myth: daily readings explained line by line, plans, search, and the whole Theogony, Iliad, Odyssey and Poetic Edda read a passage at a time
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
lore_list_readings Scroll the Lore: All curated daily readings and plans ~61
Scroll the Lore. All curated daily readings and plans. Greek and Norse myth: daily readings explained line by line, plans, search, and the whole Theogony, Iliad, Odyssey and Poetic Edda read a passage at a time
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
lore_read_book Scroll the Lore: Follow next for the next passage; it carries on into the next chapter ~241
Scroll the Lore. Follow next for the next passage; it carries on into the next chapter. Greek and Norse myth: daily readings explained line by line, plans, search, and the whole Theogony, Iliad, Odyssey and Poetic Edda read a passage at a time
| Name | Type | Req | Description |
|---|---|---|---|
| book | string | yes | Book id or title from /books, for example iliad, odyssey. |
| n | integer | – | Passage within the section, starting at 1. |
| ref | string | – | Optional: jump straight to a passage by its reference, for example "Havamal 139", "Meditations 4.3", "Gita 2.47", "Iliad 1.5" or "10b". Overrides section and n. |
| section | string | – | Chapter, book, poem, letter or daf to start at, as listed in the book (for example 5, "chapter 2", "havamal", or 10b for the second side of a daf). Defaults to the beginning; Bekhorot defaults to tod… |
No output schema declared.
No examples provided.
lore_search_readings Scroll the Lore: Search the curated readings, best match first ~84
Scroll the Lore. Search the curated readings, best match first. Greek and Norse myth: daily readings explained line by line, plans, search, and the whole Theogony, Iliad, Odyssey and Poetic Edda read a passage at a time
| Name | Type | Req | Description |
|---|---|---|---|
| q | string | yes | Words or a name to search for, for example Loki or Persephone. |
No output schema declared.
No examples provided.
lowermybill_get_bill_help Lower My Bill: Official help programmes for a bill ~234
Lower My Bill. Official help programmes for a bill. Use for "is there help paying my internet bill?", "is there a broadband social tariff?", "help with my energy bill in the UK", "help with my electric bill", "cheap internet for low income", "does Xfinity have a low-income plan?". Returns programmes with who qualifies and how to apply
| Name | Type | Req | Description |
|---|---|---|---|
| bill | string | yes | internet, mobile, electricity (or heating, gas), water, tv, streaming, car insurance, home insurance, credit card, council tax (UK), or a provider name. Up to 60 characters. |
| country | string | – | Two-letter country code. GB (or UK) gives UK schemes (Ofcom social tariffs, Warm Home Discount, WaterSure, Council Tax Reduction). Defaults to the caller's country, else US. |
| state | string | – | US state name or two-letter code. For electricity, adds the state's energy discount programme (California, New York, Ohio, New Jersey, Pennsylvania, Georgia). England, Scotland, Wales, Northern Irela… |
No output schema declared.
No examples provided.
lowermybill_get_bill_script Lower My Bill: A call script to lower a bill ~431
Lower My Bill. A call script to lower a bill. Use for "help me lower my Comcast bill", "get my BT broadband cheaper", "lower my Council Tax", "script to get a better phone plan", "how do I negotiate my car insurance?", "lower my credit card interest", "I pay for too many streaming services". Give the bill type, the provider, or both. If the provider doesn't sell that bill, provider_note says so and the general script is returned
| Name | Type | Req | Description |
|---|---|---|---|
| bill | string | – | internet (or broadband), mobile, tv, streaming, car insurance, home insurance, electricity (or energy, gas), water, credit card, gym or council tax (UK). Up to 60 characters. |
| country | string | – | Two-letter country code. GB (or UK) gives UK scripts, schemes and complaint routes; otherwise it picks the Amazon store in own_modem (US by default; IE uses amazon.co.uk). Defaults to the caller's co… |
| deal_ends | string | – | The date the current promotional price, contract or insurance policy ends, YYYY-MM-DD. Adds call_by (about 30 days earlier, on a weekday, or today if that has passed) and add_to_calendar, a link to a… |
| provider | string | – | Company name, for example Comcast, Xfinity, Spectrum, AT&T, Verizon, Frontier, T-Mobile, Cox, Optimum, Mediacom, Astound, DIRECTV, DISH, GEICO, Progressive, State Farm, Allstate, USAA; UK: BT, Sky, V… |
| state | string | – | US state name or two-letter code. For electricity, adds the state's energy discount programme where there is one. England, Scotland, Wales, Northern Ireland or UK gives the UK answer. |
No output schema declared.
No examples provided.
lowermybill_get_call_reminder Lower My Bill: Calendar reminder to call before a deal ends ~194
Lower My Bill. Calendar reminder to call before a deal ends. Returns a calendar file (.ics) with an all-day event about 30 days before the deal ends, holding the full script, offers to ask for and a confirm-in-writing message, with alerts at 9am the day before and on the day. Nothing is stored. /v1/script gives this link as add_to_calendar when deal_ends is given
| Name | Type | Req | Description |
|---|---|---|---|
| bill | string | – | Bill type, as for getBillScript. Give bill, provider or both. |
| country | string | – | Two-letter country code. GB (or UK) gives the UK script when no provider is named. Defaults to the caller's country, else US. |
| deal_ends | string | yes | The date the current price or policy ends, YYYY-MM-DD. |
| provider | string | – | Company name, as for getBillScript. |
No output schema declared.
No examples provided.
medbillcheck_check_price Med Bill Check: Compare a charge with Medicare's rate for one service ~442
Med Bill Check. Compare a charge with Medicare's rate for one service. Use when someone asks whether a charge is high or what Medicare pays, for example "I was charged $450 for a 99213 office visit in Texas, is that too high?" or "what does Medicare pay for an MRI of the knee?". Pass the billing code if they have it, otherwise the service in plain words as q. Returns Medicare's 2026 rate for the state (or the city's own pricing area when city is given) in medicare_2026, the amount providers typically billed in 2024, and how many times the Medicare rate the charge is. For care in a hospital, hospital_facility_2026 gives Medicare's national rate for the hospital's own facility fee and comparison.compared_with says what the charge was set against. Dental work has no Medicare rate and returns 404 with a pointer to a free dental cost source
| Name | Type | Req | Description |
|---|---|---|---|
| billed_by | string | – | Whose bill the charge is on when the service was in a hospital: hospital (the hospital's own facility charge) or doctor (the doctor's or physician group's bill). Leave out if not known: the charge is… |
| charged | number | – | The amount on the bill in US dollars, like 450. |
| city | string | – | City, for states where Medicare pays big cities differently, like Houston, Chicago, Miami or Los Angeles. Other places use the rest-of-state rate. |
| code | string | – | Five-character CPT or HCPCS code from the bill, like 99213, 73721 or G0121. |
| q | string | – | The service in plain words, used when there is no code, like "knee MRI" or "ER visit". |
| setting | string | – | office (clinic, office, imaging center) or facility (hospital or surgery center). Leave out to use the usual setting. |
| state | string | – | US state name or two-letter code, like Texas or TX. Med Bill Check is for US bills; a UK place gets a short answer pointing to UK sources. |
No output schema declared.
No examples provided.
medbillcheck_check_whole_bill Med Bill Check: Check several lines of an itemized bill at once ~336
Med Bill Check. Check several lines of an itemized bill at once. Use when someone reads out or pastes several lines from an itemized bill, for example "my ER bill has 99284 for $2,500, 85025 twice for $120 and 36415 three times, does anything look off?". Pass the lines as code, optional x and units, then the amount. Returns each line against Medicare's rate, totals, and questions_to_ask: repeated codes, units above Medicare's automated daily limit, the highest visit levels, hospital clinic facility fees and charges far above what providers typically bill. Lines of a hospital bill (any bill with an ER visit on it, or setting=facility) are compared with Medicare's hospital outpatient rate plus the doctor's part; each such line says compared_with.
| Name | Type | Req | Description |
|---|---|---|---|
| billed_by | string | – | Whose bill the charge is on when the service was in a hospital: hospital (the hospital's own facility charge) or doctor (the doctor's or physician group's bill). Leave out if not known: the charge is… |
| city | string | – | City, for big cities with their own Medicare rates. |
| lines | string | yes | Up to 15 bill lines separated by commas: code, then x and units if more than one, then the amount. Example: 99284:2500, 85025x2:120, 36415:45. |
| setting | string | – | office or facility. Leave out if not known. |
| state | string | – | US state name or two-letter code. |
No output schema declared.
No examples provided.
medbillcheck_draft_bill_letter Med Bill Check: Draft a letter to a billing office for the user to send ~416
Med Bill Check. Draft a letter to a billing office for the user to send. Use for "help me dispute this bill", "write a letter asking for an itemized bill", "can I ask for a discount?" or "how do I apply for charity care?". Returns a letter as plain text with [brackets] for anything not given, tips, and the user's No Surprises Act and Good Faith Estimate rights with official CMS links. It never sends anything.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Account or invoice number on the bill. |
| amount | number | – | Amount charged or balance due, in US dollars. |
| billed_by | string | – | Whose bill the charge is on when the service was in a hospital: hospital (the hospital's own facility charge) or doctor (the doctor's or physician group's bill). Leave out if not known: the charge is… |
| code | string | – | Billing code of the charge. With amount, a dispute letter adds Medicare's benchmark (for a hospital charge, the hospital outpatient rate as well as the doctor's part). |
| date | string | – | Date of service. |
| insured | string | – | no if paying without insurance (self-pay), for a discount letter. |
| name | string | – | Patient or account holder name. |
| provider | string | – | Hospital, clinic or provider name. |
| reason | string | – | A sentence on what the user wants checked, for a dispute letter. |
| service | string | – | The service in plain words. |
| setting | string | – | office or facility (hospital or surgery center), for the benchmark in a dispute letter. ER visits and hospital clinic visits count as facility anyway. |
| state | string | – | US state, used for the benchmark in a dispute letter. |
| type | string | yes | itemized (ask for an itemized bill), dispute (ask for a charge to be reviewed), discount (prompt-pay or self-pay discount), or assistance (financial assistance or charity care). |
No output schema declared.
No examples provided.
medbillcheck_look_up_hospital Med Bill Check: Whether a hospital is nonprofit, for financial assistance ~155
Med Bill Check. Whether a hospital is nonprofit, for financial assistance. Use for "is St. Luke's in Boise a nonprofit?" or "does this hospital have to offer charity care?". Returns how Medicare lists the hospital's ownership (nonprofit, government, for-profit), its city and main phone number, and what that means for financial assistance. Nonprofit hospitals must have a financial assistance policy.
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | – | City, to pick between hospitals with the same name. |
| name | string | yes | Hospital name as on the bill, like St. Luke's Regional Medical Center. |
| state | string | – | US state name or two-letter code. Recommended, since many hospitals share names. |
No output schema declared.
No examples provided.
medbillcheck_search_services Med Bill Check: Find billing codes and Medicare rates by plain words ~130
Med Bill Check. Find billing codes and Medicare rates by plain words. Use when someone describes a service but has no code, or asks what a code means, for example "what's the code for a colonoscopy?", "how much does Medicare pay for a chest x-ray in Ohio?" or "what is code 99214?". Returns up to eight matching codes with Medicare's typical allowed and billed amounts
| Name | Type | Req | Description |
|---|---|---|---|
| q | string | yes | Plain words or a code, like "hernia repair" or 99214. |
| state | string | – | US state name or two-letter code. |
No output schema declared.
No examples provided.
mizan_calculate_zakat Mizan: Zakat owed on cash, gold, silver, shares and business stock ~241
Mizan. Zakat owed on cash, gold, silver, shares and business stock, using live gold and silver prices
| Name | Type | Req | Description |
|---|---|---|---|
| business_stock | number | – | Value of business stock for sale |
| cash | number | – | Cash and bank balances |
| currency | string | – | Defaults to USD. |
| debts_due_now | number | – | Debts due now, deducted |
| gold_grams | number | – | Gold held, in grams |
| gold_value | number | – | Or the value of gold held |
| nisab | string | – | Which nisab to use. Defaults to silver. |
| owed_to_you | number | – | Money owed to you that you expect to be repaid |
| share_zakatable_pct | number | – | Share of long-term holdings treated as zakatable, default 25 |
| shares_longterm | number | – | Market value of shares held long term |
| shares_trading | number | – | Market value of shares held for trading (counted in full) |
| silver_grams | number | – | Silver held, in grams |
| silver_value | number | – | Or the value of silver held |
No output schema declared.
No examples provided.
mizan_find_halal_alternatives Mizan: Halal alternatives to a holding ~103
Mizan. Halal alternatives to a holding. Companies Mizan covers in the same industry (or the nearest related one) whose business is permitted and whose debt passes all four standards at the last quarter-end, largest first, plus Shariah index funds for US and UK investors. Screen a pick live with /screen/{ticker} before buying
| Name | Type | Req | Description |
|---|---|---|---|
| ticker | string | yes | The holding to replace: a US listing symbol or company name. |
No output schema declared.
No examples provided.
mizan_list_standards Mizan: The four standards, their denominators and thresholds ~79
Mizan. The four standards, their denominators and thresholds. Screens a US-listed company against four published Shariah equity standards (AAOIFI, Dow Jones Islamic Market, S&P Shariah, MSCI Islamic), first on its business (prohibited industries each standard excludes) and then on its debt, using live...
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
mizan_purify_dividend Mizan: How much of a dividend to give to charity ~135
Mizan. How much of a dividend to give to charity. Returns the company's purification ratio (interest income over total revenue, from its latest 10-K that reports interest income; 'latest_annual_filing' and 'note' say when that is older than the latest 10-K) and, if a dividend amount is given, the amount to give to charity. For a company whose main business every standard excludes, 'business_screen' explains that purification does not make it permissible
| Name | Type | Req | Description |
|---|---|---|---|
| dividend | number | – | The dividend received, in any currency. |
| ticker | string | yes | US listing symbol. |
No output schema declared.
No examples provided.
mizan_screen_company Mizan: Screen one company against all four standards ~160
Mizan. Screen one company against all four standards. Returns a 'say' sentence, the live price, the consolidated share count, the filing figures used, the business screen per standard ('business': main_business, by_standard pass/fail/review, excluded_under), and each standard's ratio, threshold and verdict. In each screens entry, 'compliant' is the overall verdict (false when that standard excludes the company's business, null when the business needs a closer look) and 'debt_compliant' is the debt test alone. Verdicts within one percent of a threshold are flagged borderline. A company name (for example nvidia) also works
| Name | Type | Req | Description |
|---|---|---|---|
| ticker | string | yes | US listing symbol (a common company name also works). |
No output schema declared.
No examples provided.
mizan_screen_portfolio Mizan: Screen a whole portfolio ~80
Mizan. Screen a whole portfolio. Screens up to 15 holdings under all four standards and returns the share of the portfolio that is compliant under each, the holdings that fail, and a combined dividend purification ratio
| Name | Type | Req | Description |
|---|---|---|---|
| holdings | string | yes | Comma-separated tickers, each optionally followed by a colon and the value held, for weighting. |
No output schema declared.
No examples provided.
planmyworkout_get_exercise Plan My Workout: How to do one exercise, the muscles it works and a picture ~120
Plan My Workout. How to do one exercise, the muscles it works and a picture. Use for "how do I do a Romanian deadlift?", "what is a goblet squat?", "what muscles do face pulls work?". Understands everyday names like RDL, press-up and lat pulldown. muscles.main lists the muscles the move mainly works (hand-checked for the main lifts) and muscles.also the ones that help
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | The exercise, for example Romanian deadlift or push-up. |
No output schema declared.
No examples provided.
planmyworkout_get_workout_plan Plan My Workout: A weekly workout plan with sets, reps and rest ~499
Plan My Workout. A weekly workout plan with sets, reps and rest. Use for "make me a 3 day beginner gym plan", "home workout with just dumbbells, 30 minutes", "a 5 day muscle building split", "I have a pull-up bar and dumbbells", "a 20 minute workout" (days=1 gives a single session), "a workout plan to lose weight", "couch to 5K" or "a 10K running plan" (a 10K or longer goal gets the build-up plan unless the user says they are a beginner), or "give me another one" (send the same inputs with seed plus one). Either pass the fields, or pass the user's words in q and the service reads days, minutes, level, goal and equipment from them. Fields win over q. Running plans also return weeks: every week's sessions (a 9-week walk-run build to 30 minutes of running for beginners; easy, interval, tempo and long runs for intermediates), with week 1 laid out in days.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | Two-letter country code for kit links (US, GB, IE, CA, AU). Defaults to the visitor's country. |
| days | integer | – | Days per week, 1 to 6 (1 gives a single session). More than 6 (or "every day") is planned as 6 with a rest day, and the answer says so in say and in plan.days_asked and plan.days_note. Default 3. |
| equipment | string | – | Comma separated: none (default), dumbbells, barbell, gym, bands, kettlebell, pullupbar (a pull-up bar), jumprope. |
| goal | string | – | strength, muscle, general (default), conditioning (use this for fat loss or weight loss requests), running or mobility. |
| level | string | – | beginner (default) or intermediate. Advanced is treated as intermediate. |
| minutes | integer | – | Minutes per session including warm-up, 15 to 120. Default 45. |
| q | string | – | The user's request in their own words, for example "3 day beginner gym plan, 45 minutes". |
| seed | integer | – | 0 to 9999. Change it for a different mix of exercises with the same setup. Default 0. |
No output schema declared.
No examples provided.
planmyworkout_list_exercises Plan My Workout: Exercises for a muscle and the equipment the user has ~178
Plan My Workout. Exercises for a muscle and the equipment the user has. Use for "what can I do for chest with no equipment?", "glute exercises with bands", "back exercises with dumbbells", "some mobility moves". Give a muscle, equipment or both
| Name | Type | Req | Description |
|---|---|---|---|
| equipment | string | – | none, dumbbells, barbell, gym, bands, kettlebell, pullupbar or jumprope. |
| level | string | – | beginner leaves out harder moves. |
| limit | integer | – | 1 to 10. Default 8. |
| muscle | string | – | chest, back, shoulders, arms, biceps, triceps, legs, quads, hamstrings, glutes, calves, core (or abs), cardio or mobility. Also forearms (grip) and traps. |
No output schema declared.
No examples provided.
platepal_get_barcode_nutrition Plate Pal: Nutrition for a packaged product by barcode, with UK traffic lights ~146
Plate Pal. Nutrition for a packaged product by barcode, with UK traffic lights. Use for "is this barcode high in sugar?", "how many calories in this?" after a scan, or "what's the salt in 5000157024886?". Returns per 100 g (or 100 ml) and per serving values, traffic lights for fat, saturates, sugars and salt, Nutri-Score, allergens and a Halal or Not? link for checking the ingredients
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | Barcode digits (8 to 14). |
| servings | number | – | Number of servings to total up (0.25 to 20). |
No output schema declared.
No examples provided.
platepal_get_food_nutrition Plate Pal: Calories and macros for a food, dish or product, for the amount the user says ~450
Plate Pal. Calories and macros for a food, dish or product, for the amount the user says. Use for "how many calories in a Big Mac?", "protein in 200g chicken breast", "calories in chicken biryani", "a slice of pepperoni pizza", "a large latte" or a whole meal like "2 eggs, 2 slices of toast and a coffee". Put the whole amount and food in q, or pass grams or servings separately. Generic foods and dishes (thousands, including fast food and restaurant dishes) use USDA values with real portion weights (slice, cup, small, medium, large, one item); brands come from Open Food Facts. Chain items ("McDonald's large fries", "a Greggs sausage roll", "KFC Zinger burger", "grande latte from Starbucks", "6 inch Italian BMT from Subway", "20 piece McNuggets") use the chain's own published figures for that size, UK or US by country, and return a chain object (name, region, item, size, weight_published); when the chain doesn't publish a weight, amount.grams is null and per_100 values are null. For a chain item not in the table, a typical USDA version is used and the say line says so. A whole meal returns items (each food with its amount and nutrition) and total. Returns nutrition for the amount, per_100 values, portions, UK traffic lights (per 100 g, or per 100 ml for drinks) and caffeine_mg for drinks that have it.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | Two-letter country code. Picks UK or US chain figures (GB and IE get UK ones) and prefers local versions of branded products. Default from the request. |
| grams | number | – | Amount in grams (1 to 5000). Overrides any amount in q. |
| q | string | yes | The food or meal, optionally with amounts, for example 200g chicken breast, a large banana, or 2 eggs and a slice of toast. |
| servings | number | – | Number of servings or items (0.25 to 20). |
No output schema declared.
No examples provided.
platepal_get_meal_ideas Plate Pal: Simple meal ideas by goal, diet and meal, with rough macros ~264
Plate Pal. Simple meal ideas by goal, diet and meal, with rough macros. Use for "give me a high protein halal dinner idea", "a quick vegan lunch", "cheap vegetarian breakfast ideas". Goals: high protein, low carb, budget, quick, high fibre. Diets: vegetarian, vegan, pescatarian, halal. Meals: breakfast, lunch, dinner, snack. You can pass the user's words in q instead. Ideas rotate daily. It does not set calorie or weight targets; a weight-loss request gets lighter, filling ideas (goal lighter, 450 calories or less) and a pointer to a doctor or dietitian, with no shop links.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | Two-letter country code for the shop links (US, GB and IE get local Amazon links). Default from the request. |
| diet | string | – | vegetarian, vegan, pescatarian or halal. |
| goal | string | – | high protein, low carb, budget, quick or high fibre. |
| meal | string | – | breakfast, lunch, dinner or snack. |
| n | integer | – | How many ideas, 1 to 8. Default 3. |
| q | string | – | Free text, for example high protein halal dinner. |
No output schema declared.
No examples provided.
pricedropback_check_price_drop_claim Price Drop Back: Can I get the difference back? ~371
Price Drop Back. Can I get the difference back?. Use for "I bought a TV at Best Buy 9 days ago for $499 and it's $449 now, can I get the difference?". Says whether a claim is likely (likely, likely_if_member, unlikely, check or no_drop), the amount, and the steps. With an item name it adds a Cheapest Price link and Amazon and eBay links to check today's price. Likely claims also get claim_message, ready to paste into the store's chat or email. policy.refund_paid_as flags stores that pay store credit (Newegg)
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | Two-letter country code. GB (or UK) gives the UK policy where the store has one (Apple, Amazon, IKEA) and UK rules; it also picks the price links (US, GB and IE get local Amazon and eBay links). Defa… |
| days_since_purchase | integer | – | Days since you bought it (or since delivery), 0 to 400. Give this or purchase_date. |
| item | string | – | Optional item name, up to 100 characters, to link today's price on Cheapest Price, Amazon and eBay. |
| now | number | – | Today's price, 0 to 100000 (US dollars, or pounds for UK stores). |
| paid | number | – | What you paid, 0 to 100000 (US dollars, or pounds for UK stores). |
| purchase_date | string | – | The date you bought it, YYYY-MM-DD, instead of days_since_purchase. Adds deadlines: the last day to claim with the store (and in a members' longer window) and Capital One card protection. |
| store | string | yes | Store name, up to 60 characters. |
No output schema declared.
No examples provided.
pricedropback_get_claim_reminder Price Drop Back: Calendar reminder for the last day to claim a price drop ~200
Price Drop Back. Calendar reminder for the last day to claim a price drop. Returns a calendar file (.ics) with an all-day event on the store's last claim day, how to claim and the policy link, with alerts 3 days before and on the day. Nothing is stored. /v1/check gives this link as add_to_calendar when purchase_date is given and a claim is likely
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | Two-letter country code. GB (or UK) uses the UK policy where the store has one. Default from the request. |
| item | string | – | Optional item name for the event title, up to 100 characters. |
| member | boolean | – | true to use the longer members' window where the store has one (for example My Best Buy Plus or Total). |
| purchase_date | string | yes | The date you bought it, YYYY-MM-DD. |
| store | string | yes | Store name. |
No output schema declared.
No examples provided.
pricedropback_get_store_policy Price Drop Back: A store's price adjustment and price match policy ~182
Price Drop Back. A store's price adjustment and price match policy. Use for "does Target do price matching?", "does John Lewis refund if the price drops?", "Currys price promise", "what's Best Buy's price adjustment policy?", "will Costco refund the difference?". With an item name it adds links to check today's price
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | Two-letter country code. GB (or UK) gives the UK policy where the store has one (Apple, Amazon, IKEA) and UK rules; it also picks the price links (US, GB and IE get local Amazon and eBay links). Defa… |
| item | string | – | Optional item name, up to 100 characters, to link today's prices for it. |
| store | string | yes | Store name in everyday words, up to 60 characters. |
No output schema declared.
No examples provided.
pricedropback_list_stores Price Drop Back: Every store covered, plus card price protection ~88
Price Drop Back. Every store covered, plus card price protection. Use for "which stores give you money back if the price drops?" or "does my credit card have price protection?". With country=GB, lists the UK policies
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | Two-letter country code. GB (or UK) lists only stores with a UK policy. Default from the request. |
No output schema declared.
No examples provided.
spinmyday_list_vibes Spin My Day: The vibes you can ask for ~63
Spin My Day. The vibes you can ask for. Spin up a full day out (morning, lunch, afternoon, dinner, evening) around the weather and what is open, in a city, near a location, or in a random city.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
spinmyday_spin_my_day Spin My Day: Build a day out ~306
Spin My Day. Build a day out. Leave out city and location to spin for a random city. Spin up a full day out (morning, lunch, afternoon, dinner, evening) around the weather and what is open, in a city, near a location, or in a random city.
| Name | Type | Req | Description |
|---|---|---|---|
| budget | string | – | any, or free for free things only. |
| city | string | – | The city to plan the day in, for example Manchester or Austin, TX. Leave out with lat and lon for a random city. |
| date | string | – | The day to plan, YYYY-MM-DD. Leave it out for today, or tomorrow when it is already past 5pm there (the answer then says tomorrow: true). |
| diet | string | – | Food needs, comma separated: halal, kosher, vegetarian, vegan, pescatarian, gluten_free, dairy_free, jain. Lunch and dinner then name real places that OpenStreetMap lists for all of them (each meal s… |
| lat | number | – | Latitude, in decimal degrees, instead of city. |
| lon | number | – | Longitude, in decimal degrees, instead of city. |
| seed | integer | – | Repeat a spin exactly; each answer includes a spin_again link with a new seed |
| vibe | string | – | The feel of the day: chill, adventure, date, family, culture or foodie. |
No output schema declared.
No examples provided.
stoics_get_card Stoic Scroller: Today's reading one line at a time, for voice ~133
Stoic Scroller. Today's reading one line at a time, for voice.. The Stoics: daily readings from Marcus Aurelius, Epictetus and Seneca explained line by line, plans, search, and the whole Meditations, Enchiridion and Seneca's letters read a passage at a time
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | – | Optional day as YYYY-MM-DD. Defaults to today (UTC). |
| n | integer | – | Which card, starting at 1. Defaults to 1. |
| reading | string | – | A reading or plan id from /readings. Defaults to today's reading. |
No output schema declared.
No examples provided.
stoics_get_reading Stoic Scroller: One reading or plan, line by line ~110
Stoic Scroller. One reading or plan, line by line. The Stoics: daily readings from Marcus Aurelius, Epictetus and Seneca explained line by line, plans, search, and the whole Meditations, Enchiridion and Seneca's letters read a passage at a time
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | A reading or plan id from /readings, or a plan name such as "japji" or "The Gita in 18 Days". |
No output schema declared.
No examples provided.
stoics_get_today Stoic Scroller: Today's reading, line by line (same as the app shows today) ~96
Stoic Scroller. Today's reading, line by line (same as the app shows today). The Stoics: daily readings from Marcus Aurelius, Epictetus and Seneca explained line by line, plans, search, and the whole Meditations, Enchiridion and Seneca's letters read a passage at a time
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | – | Optional day as YYYY-MM-DD. Defaults to today (UTC). |
No output schema declared.
No examples provided.
stoics_list_books Stoic Scroller: The whole books in the Library that can be read a passage at a time ~79
Stoic Scroller. The whole books in the Library that can be read a passage at a time. The Stoics: daily readings from Marcus Aurelius, Epictetus and Seneca explained line by line, plans, search, and the whole Meditations, Enchiridion and Seneca's letters read a passage at a time
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
stoics_list_readings Stoic Scroller: All curated daily readings and plans ~71
Stoic Scroller. All curated daily readings and plans. The Stoics: daily readings from Marcus Aurelius, Epictetus and Seneca explained line by line, plans, search, and the whole Meditations, Enchiridion and Seneca's letters read a passage at a time
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
stoics_read_book Stoic Scroller: Follow next for the next passage; it carries on into the next chapter ~253
Stoic Scroller. Follow next for the next passage; it carries on into the next chapter. The Stoics: daily readings from Marcus Aurelius, Epictetus and Seneca explained line by line, plans, search, and the whole Meditations, Enchiridion and Seneca's letters read a passage at a time
| Name | Type | Req | Description |
|---|---|---|---|
| book | string | yes | Book id or title from /books, for example meditations, enchiridion. |
| n | integer | – | Passage within the section, starting at 1. |
| ref | string | – | Optional: jump straight to a passage by its reference, for example "Havamal 139", "Meditations 4.3", "Gita 2.47", "Iliad 1.5" or "10b". Overrides section and n. |
| section | string | – | Chapter, book, poem, letter or daf to start at, as listed in the book (for example 5, "chapter 2", "havamal", or 10b for the second side of a daf). Defaults to the beginning; Bekhorot defaults to tod… |
No output schema declared.
No examples provided.
What is the Good Turn Studio (all tools) MCP server?
Good Turn Studio (all tools) is an MCP server listed in the public MCP registry as io.github.GoodTurnStudio/all. All 25 Good Turn Studio helpers in one server: money, health, jobs, travel, halal and scripture. This page covers its hosted endpoint (https://goodturn-mcp.pages.dev/all/mcp).
Is the Good Turn Studio (all tools) MCP server safe to use?
Good Turn Studio (all tools) scores 69 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Good Turn Studio (all tools) MCP server expose?
Good Turn Studio (all tools) exposes 118 tools: mizan_screen_company, mizan_list_standards, mizan_purify_dividend, mizan_find_halal_alternatives, mizan_screen_portfolio, and 113 more. Their descriptions and schemas cost roughly 19,460 tokens of context every time the server is loaded.
Does the Good Turn Studio (all tools) MCP server require authentication?
No. We connected to Good Turn Studio (all tools) without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the Good Turn Studio (all tools) MCP server still maintained?
Good Turn Studio (all tools) is still listed as active in the MCP registry. We last reached this channel on 28 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.