Tabflows
by tabflows.com · remote · no sign-in to list tools · v1.1.0 · published by com.tabflows
Tabflows facts: DPC Finder, price quotes, integrations, workflows, site search, demos, ask Tabflows
17 tools: 2 can delete or cancel things, 1 do something that can't be undone, 6 change things and 8 only read.
Scanned Oct 21, 2026
- Deletes or cancels2Claude Code: deny: see these tools
- Can't be undone1Claude Code: ask: see these tools
- Changes things6Claude Code: ask: see these tools
- Only reads8Claude Code: allow: see these tools
3 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http site https://www.tabflows.com/api/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "get_demo_booking_link" 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 name "get_demo_booking_link" says "get": a word for reading.
The server marks "get_demo_availability" 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":true}; The name "get_demo_availability" says "get": a word for reading.
- Warncheck_reply
The server marks "check_reply" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "check_reply" says "reply": a word for sending, and what is sent cannot be taken back.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
17 tools
Deletes or cancels 2Claude Code: deny
askSend Tabflows a message for the person you are helping: a question, a request or a note for the team.No findings
Why it is in this group
- The description's first verb is "send": a word for sending, and what is sent cannot be taken back.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Send Tabflows a message for the person you are helping: a question, a request or a note for the team. Autopilot, Tabflows' AI assistant, answers, and the team sees it and may answer too. Never include patient names, dates of birth, medical details or any other patient information in the message. Pass the person's own name and email only with their agreement; Tabflows treats both as unverified claims, and nothing is emailed from here. Set consent true only after the person explicitly agrees to send their name, email and message to Tabflows; never infer consent, invent consent or reuse earlier consent for a follow-up. Returns a token that check_reply uses to read the answers, which usually take a few minutes, and that ask uses to follow up in the same conversation after fresh explicit consent. Anyone holding the token can read and follow up in the conversation until it expires, 24 hours after the conversation started.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
book_demoBook a time on the Tabflows demo calendar for the person you are helping, using a startTime and the durationMinutes it was listed under in get_demo_availability.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 Book a time on the Tabflows demo calendar for the person you are helping, using a startTime and the durationMinutes it was listed under in get_demo_availability. HubSpot sends them the invitation and the calendar event. Only call this after the person has chosen the time and agreed to Tabflows contacting them at that email; set consent to true only then, and never invent their details.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
Can't be undone 1Claude Code: ask
check_replyNew replies in a conversation started with ask, read with the token ask returned: Autopilot's answers and messages from the Tabflows team, oldest first, each returned once.1 finding
Why it is in this group
- The name "check_reply" says "reply": a word for sending, and what is sent cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "check_reply" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "check_reply" says "reply": a word for sending, and what is sent cannot be taken back.
Description, as the server wrote it New replies in a conversation started with ask, read with the token ask returned: Autopilot's answers and messages from the Tabflows team, oldest first, each returned once. An empty list means no reply yet. Replies usually arrive within a few minutes, and a token allows 6 checks a minute. The token expires 24 hours after the conversation started.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
Changes things 6Claude Code: ask
dpc_break_evenHow many members a direct primary care practice needs to break even, from its average monthly membership fee, the owner's annual pay goal, monthly overhead and per-member cost.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 How many members a direct primary care practice needs to break even, from its average monthly membership fee, the owner's annual pay goal, monthly overhead and per-member cost. Any input left out uses the calculator page's default. Returns the panel size, monthly fixed costs, revenue at break-even and profit at 300 and 500 members. Back-of-the-napkin math, not accounting advice.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
dpc_startup_costEstimated launch budget for a direct primary care practice: one-time setup costs plus a runway reserve (monthly burn times runway months), and the total with a 15% cushion.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 Estimated launch budget for a direct primary care practice: one-time setup costs plus a runway reserve (monthly burn times runway months), and the total with a 15% cushion. Start from a preset ("lean", "office" or "staffed"; default "office") and override any line item. Dollar amounts, rough planning math.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
get_demo_availabilityOpen times on the Tabflows demo calendar, grouped by meeting length, soonest first.1 finding
Why it is in this group
- The name "get_demo_availability" says "get": a word for reading.
- The description's first verb is "open": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "get_demo_availability" 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":true}; The name "get_demo_availability" says "get": a word for reading.
Description, as the server wrote it Open times on the Tabflows demo calendar, grouped by meeting length, soonest first. Every start time is a UTC ISO timestamp, whatever timezone is passed. An answer lists at most 20 times per meeting length: start sets a later date to read from, such as next week, and when truncated is true, nextStart is the start that returns the times after the cut. timezone is the person's IANA timezone: a start date is read in it, it picks the month monthOffset counts from, and the same timezone passed to book_demo sets the time zone of the booking and the invitation. A start time can be booked only with the durationMinutes it is listed under. Availability changes between calls, so times from an earlier answer may no longer be open.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
get_demo_booking_linkLinks for the human to book a Tabflows demo or sign up.1 finding
Why it is in this group
- The name "get_demo_booking_link" says "get": a word for reading.
- The description's first verb is "link": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "get_demo_booking_link" 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 name "get_demo_booking_link" says "get": a word for reading.
Description, as the server wrote it Links for the human to book a Tabflows demo or sign up. Books nothing itself; the person completes it.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
quote_tabflows_priceThe monthly Tabflows price for a practice's number of locations and monthly paying patients, with a breakdown and the pricing rule, plus the optional Practice X-ray: a $500 one-tim…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 The monthly Tabflows price for a practice's number of locations and monthly paying patients, with a breakdown and the pricing rule, plus the optional Practice X-ray: a $500 one-time diagnostic, separate from the monthly price. Prices come from the same pricing rule tabflows.com/pricing shows.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
report_gapTell Tabflows what you looked for and could not find: a question the pages and tools did not answer, a tool that would have helped, or an answer that was confusing or failed.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.
Description, as the server wrote it Tell Tabflows what you looked for and could not find: a question the pages and tools did not answer, a tool that would have helped, or an answer that was confusing or failed. Tabflows reads these to fill the gaps and sends no reply. No names, emails or other personal details. Never include patient names, dates of birth, medical details or any other patient information.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
Only reads 8Claude Code: allow
fetchThe full markdown of a tabflows.com page by id: a site path such as /pricing, or the URL a search result carries.No findings
Why it is in this group
- The name "fetch" says "fetch": a word for reading.
Description, as the server wrote it The full markdown of a tabflows.com page by id: a site path such as /pricing, or the URL a search result carries. Also reads /llms.txt, /llms-full.txt and /sitemap.md. Answers one JSON text item holding id, title, text and url.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
get_dpc_practiceOne DPC Finder listing by slug, with every field its page shows and its canonical URL.No findings
Why it is in this group
- The name "get_dpc_practice" says "get": a word for reading.
Description, as the server wrote it One DPC Finder listing by slug, with every field its page shows and its canonical URL.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
get_integrationOne integration by slug: what Tabflows does with that tool, its features and its page.No findings
Why it is in this group
- The name "get_integration" says "get": a word for reading.
Description, as the server wrote it One integration by slug: what Tabflows does with that tool, its features and its page.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
get_pageThe full markdown of any public tabflows.com page by path or URL, e.g.No findings
Why it is in this group
- The name "get_page" says "get": a word for reading.
Description, as the server wrote it The full markdown of any public tabflows.com page by path or URL, e.g. /pricing, /faqs, /compliance, /glossary, /dpc-finder/texas, and the index files /llms.txt, /llms-full.txt and /sitemap.md. Answers one JSON text item holding id, title, text and url.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
list_integrationsThe tools Tabflows works with (EHRs, scribes, messaging, labs and more), optionally filtered by category.No findings
Why it is in this group
- The name "list_integrations" says "list": a word for reading.
Description, as the server wrote it The tools Tabflows works with (EHRs, scribes, messaging, labs and more), optionally filtered by category.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
list_workflowsDocumented Tabflows workflows: what triggers each one, its steps, the outcome and the time it saves.No findings
Why it is in this group
- The name "list_workflows" says "list": a word for reading.
Description, as the server wrote it Documented Tabflows workflows: what triggers each one, its steps, the outcome and the time it saves.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
searchKeyword search over tabflows.com pages (product, pricing, FAQs, compliance, glossary, blog, integrations).No findings
Why it is in this group
- The name "search" says "search": a word for reading.
Description, as the server wrote it Keyword search over tabflows.com pages (product, pricing, FAQs, compliance, glossary, blog, integrations). Each result carries a page id, its title, a snippet of the text that matched and its URL; fetch reads the full page by that id or URL. DPC Finder listings are not indexed here; search_dpc_practices covers them.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
search_dpc_practicesSearch Tabflows' DPC Finder directory of direct primary care practices in the US by free text (name, city, doctor, specialty), state, city and practice model.No findings
Why it is in this group
- The name "search_dpc_practices" says "search": a word for reading.
Description, as the server wrote it Search Tabflows' DPC Finder directory of direct primary care practices in the US by free text (name, city, doctor, specialty), state, city and practice model. Returns full listings including address, phone and doctor as on file, with the total match count for paging.
Annotations the server declares
- 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.
Install
Pinned to version 1.1.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http site https://www.tabflows.com/api/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__site__search_dpc_practices",
"mcp__site__get_dpc_practice",
"mcp__site__list_integrations",
"mcp__site__get_integration",
"mcp__site__list_workflows",
"mcp__site__search",
"mcp__site__fetch",
"mcp__site__get_page"
],
"ask": [
"mcp__site__quote_tabflows_price",
"mcp__site__report_gap",
"mcp__site__get_demo_booking_link",
"mcp__site__dpc_break_even",
"mcp__site__dpc_startup_cost",
"mcp__site__get_demo_availability",
"mcp__site__check_reply"
],
"deny": [
"mcp__site__book_demo",
"mcp__site__ask"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as site. Review it before you use it.