Tabflows

Tabflows facts: DPC Finder, price quotes, integrations, workflows, site search, demo booking

사용해야 할까요

품질 및 안전성

A
설명 품질
92%
스키마 완전성
74%
이름 품질
94%
오염 위험
100%
권한 일치
90%
프로토콜 준수
100%

발견 사항 (4)

  • LOWTool 'quote_tabflows_price' description lacks action verbquote_tabflows_price에서
  • LOWTool 'get_integration' description lacks action verbget_integration에서
  • LOWTool 'get_demo_booking_link' description lacks action verbget_demo_booking_link에서
  • LOWTool 'fetch' suggests web access but openWorldHint=falsefetch에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~4,204토큰 (도구 정의)
~2.7 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 3.28%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "site": {
      "url": "https://www.tabflows.com/api/mcp"
    }
  }
}

원격 엔드포인트

https://www.tabflows.com/api/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (14)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢search_dpc_practices(query, state, city, model, limit, ...)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Free text matched against name, city, doctor and specialty",
      "type": "string",
      "maxLength": 100
    },
    "state": {
      "description": "Two-letter state code, e.g. \"TX\"",
      "type": "string",
      "pattern": "^[A-Za-z]{2}$"
    },
    "city": {
      "description": "Exact city name, case-insensitive",
      "type": "string",
      "maxLength": 100
    },
    "model": {
      "type": "string",
      "enum": [
        "Pure DPC",
        "Hybrid",
        "Onsite",
        "Unknown/other"
      ]
    },
    "limit": {
      "default": 25,
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "default": 0,
      "type": "integer",
      "minimum": 0,
      "maximum": 2663
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "model": {
            "type": "string",
            "enum": [
              "Pure DPC",
              "Hybrid",
              "Onsite",
              "Unknown/other"
            ]
          },
          "lat": {
            "type": "number"
          },
          "lng": {
            "type": "number"
          },
          "precision": {
            "type": "string",
            "enum": [
              "city",
              "address"
            ]
          },
          "website": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "doctor": {
            "type": "string"
          },
          "specialty": {
            "type": "string"
          },
          "openDate": {
            "type": "string"
          },
          "caseStudyUrl": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "dataCaveat": {
            "type": "string"
          }
        },
        "required": [
          "slug",
          "name",
          "city",
          "state",
          "model",
          "lat",
          "lng",
          "precision",
          "url",
          "dataCaveat"
        ],
        "additionalProperties": false
      }
    },
    "stateDirectoryUrl": {
      "type": "string"
    }
  },
  "required": [
    "total",
    "results",
    "stateDirectoryUrl"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_dpc_practice(slug)

One DPC Finder listing by slug, with every field its page shows and its canonical URL.

입력 스키마

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "pattern": "^[a-z0-9-]+$"
    }
  },
  "required": [
    "slug"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "city": {
      "type": "string"
    },
    "state": {
      "type": "string"
    },
    "model": {
      "type": "string",
      "enum": [
        "Pure DPC",
        "Hybrid",
        "Onsite",
        "Unknown/other"
      ]
    },
    "lat": {
      "type": "number"
    },
    "lng": {
      "type": "number"
    },
    "precision": {
      "type": "string",
      "enum": [
        "city",
        "address"
      ]
    },
    "website": {
      "type": "string"
    },
    "address": {
      "type": "string"
    },
    "phone": {
      "type": "string"
    },
    "doctor": {
      "type": "string"
    },
    "specialty": {
      "type": "string"
    },
    "openDate": {
      "type": "string"
    },
    "caseStudyUrl": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "dataCaveat": {
      "type": "string"
    }
  },
  "required": [
    "slug",
    "name",
    "city",
    "state",
    "model",
    "lat",
    "lng",
    "precision",
    "url",
    "dataCaveat"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢quote_tabflows_price(locations, monthlyPayingPatients)

The monthly Tabflows price for a practice's number of locations and monthly paying patients, with a breakdown and the pricing rule. Always use this rather than quoting prices from memory or other pages.

입력 스키마

{
  "type": "object",
  "properties": {
    "locations": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "monthlyPayingPatients": {
      "type": "integer",
      "minimum": 1,
      "maximum": 250000
    }
  },
  "required": [
    "locations",
    "monthlyPayingPatients"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "monthlyUsd": {
      "type": "number"
    },
    "breakdown": {
      "type": "object",
      "properties": {
        "baseUsd": {
          "type": "number"
        },
        "extraLocationsUsd": {
          "type": "number"
        },
        "extraPatientBandsUsd": {
          "type": "number"
        }
      },
      "required": [
        "baseUsd",
        "extraLocationsUsd",
        "extraPatientBandsUsd"
      ],
      "additionalProperties": false
    },
    "rule": {
      "type": "string"
    },
    "pricingUrl": {
      "type": "string"
    },
    "signUpUrl": {
      "type": "string"
    },
    "bookDemoUrl": {
      "type": "string"
    }
  },
  "required": [
    "monthlyUsd",
    "breakdown",
    "rule",
    "pricingUrl",
    "signUpUrl",
    "bookDemoUrl"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢list_integrations(category)

The tools Tabflows works with (EHRs, scribes, messaging, labs and more), optionally filtered by category.

입력 스키마

{
  "type": "object",
  "properties": {
    "category": {
      "type": "string",
      "enum": [
        "EMR",
        "Scribe",
        "Communication",
        "Clinical Support",
        "Patient Experience",
        "Labs",
        "Supplements & Rx",
        "Other"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "integrations": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "slug",
          "name",
          "category",
          "description",
          "url"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "integrations"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_integration(slug)

One integration by slug: what Tabflows does with that tool, its features and its page.

입력 스키마

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "pattern": "^[a-z0-9-]+$"
    }
  },
  "required": [
    "slug"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "category": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "longDescription": {
      "type": "string"
    },
    "features": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "url": {
      "type": "string"
    }
  },
  "required": [
    "slug",
    "name",
    "category",
    "description",
    "longDescription",
    "features",
    "url"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢list_workflows

Documented Tabflows workflows: what triggers each one, its steps, the outcome and the time it saves.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "workflows": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "trigger": {
            "type": "string"
          },
          "steps": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string"
                },
                "description": {
                  "type": "string"
                }
              },
              "required": [
                "title",
                "description"
              ],
              "additionalProperties": false
            }
          },
          "outcome": {
            "type": "string"
          },
          "timeSaved": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "slug",
          "title",
          "description",
          "trigger",
          "steps",
          "outcome",
          "timeSaved",
          "url"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "workflows"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢search(query)

Keyword search over tabflows.com page titles and summaries (product, pricing, FAQs, compliance, glossary, blog, integrations). Returns page ids to pass to fetch. DPC Finder listings are not indexed here; use search_dpc_practices.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    }
  },
  "required": [
    "query"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "url"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "results"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢fetch(id)

The full markdown of a tabflows.com page by id (a site path such as /pricing, as returned by search).

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "text": {
      "type": "string"
    },
    "url": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "title",
    "text",
    "url"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_page(path)

The full markdown of any public tabflows.com page by path, e.g. /pricing, /faqs, /compliance, /glossary, /dpc-finder/texas.

입력 스키마

{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300
    }
  },
  "required": [
    "path"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "text": {
      "type": "string"
    },
    "url": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "title",
    "text",
    "url"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_demo_booking_link

Links for the human to book a Tabflows demo or sign up. Books nothing itself; the person completes it.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "bookDemoUrl": {
      "type": "string"
    },
    "signUpUrl": {
      "type": "string"
    }
  },
  "required": [
    "bookDemoUrl",
    "signUpUrl"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢dpc_break_even(membershipFee, salaryGoal, rent, staff, software, ...)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "membershipFee": {
      "type": "number",
      "minimum": 0,
      "maximum": 10000
    },
    "salaryGoal": {
      "type": "number",
      "minimum": 0,
      "maximum": 10000000
    },
    "rent": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000
    },
    "staff": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000
    },
    "software": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000
    },
    "insurance": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000
    },
    "supplies": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000
    },
    "marketing": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000
    },
    "other": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000
    },
    "variableCost": {
      "type": "number",
      "minimum": 0,
      "maximum": 10000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "inputs": {
      "type": "object",
      "properties": {
        "membershipFee": {
          "type": "number"
        },
        "salaryGoal": {
          "type": "number"
        },
        "rent": {
          "type": "number"
        },
        "staff": {
          "type": "number"
        },
        "software": {
          "type": "number"
        },
        "insurance": {
          "type": "number"
        },
        "supplies": {
          "type": "number"
        },
        "marketing": {
          "type": "number"
        },
        "other": {
          "type": "number"
        },
        "variableCost": {
          "type": "number"
        }
      },
      "required": [
        "membershipFee",
        "salaryGoal",
        "rent",
        "staff",
        "software",
        "insurance",
        "supplies",
        "marketing",
        "other",
        "variableCost"
      ],
      "additionalProperties": false
    },
    "monthlySalary": {
      "type": "number"
    },
    "fixedMonthlyCosts": {
      "type": "number"
    },
    "contributionPerMember": {
      "type": "number"
    },
    "breakEvenMembers": {
      "type": "number"
    },
    "revenueAtBreakEven": {
      "type": "number"
    },
    "monthlyProfitAt300": {
      "type": "number"
    },
    "monthlyProfitAt500": {
      "type": "number"
    },
    "calculatorUrl": {
      "type": "string"
    }
  },
  "required": [
    "inputs",
    "monthlySalary",
    "fixedMonthlyCosts",
    "contributionPerMember",
    "breakEvenMembers",
    "revenueAtBreakEven",
    "monthlyProfitAt300",
    "monthlyProfitAt500",
    "calculatorUrl"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢dpc_startup_cost(preset, legal, space, buildout, equipment, ...)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "preset": {
      "type": "string",
      "enum": [
        "lean",
        "office",
        "staffed"
      ]
    },
    "legal": {
      "type": "number",
      "minimum": 0,
      "maximum": 10000000
    },
    "space": {
      "type": "number",
      "minimum": 0,
      "maximum": 10000000
    },
    "buildout": {
      "type": "number",
      "minimum": 0,
      "maximum": 10000000
    },
    "equipment": {
      "type": "number",
      "minimum": 0,
      "maximum": 10000000
    },
    "softwareSetup": {
      "type": "number",
      "minimum": 0,
      "maximum": 10000000
    },
    "insurance": {
      "type": "number",
      "minimum": 0,
      "maximum": 10000000
    },
    "marketing": {
      "type": "number",
      "minimum": 0,
      "maximum": 10000000
    },
    "supplies": {
      "type": "number",
      "minimum": 0,
      "maximum": 10000000
    },
    "monthlyBurn": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000
    },
    "runwayMonths": {
      "type": "integer",
      "minimum": 0,
      "maximum": 60
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "preset": {
      "type": "string",
      "enum": [
        "lean",
        "office",
        "staffed"
      ]
    },
    "inputs": {
      "type": "object",
      "properties": {
        "legal": {
          "type": "number"
        },
        "space": {
          "type": "number"
        },
        "buildout": {
          "type": "number"
        },
        "equipment": {
          "type": "number"
        },
        "softwareSetup": {
          "type": "number"
        },
        "insurance": {
          "type": "number"
        },
        "marketing": {
          "type": "number"
        },
        "supplies": {
          "type": "number"
        },
        "monthlyBurn": {
          "type": "number"
        },
        "runwayMonths": {
          "type": "number"
        }
      },
      "required": [
        "legal",
        "space",
        "buildout",
        "equipment",
        "softwareSetup",
        "insurance",
        "marketing",
        "supplies",
        "monthlyBurn",
        "runwayMonths"
      ],
      "additionalProperties": false
    },
    "oneTime": {
      "type": "number"
    },
    "runway": {
      "type": "number"
    },
    "total": {
      "type": "number"
    },
    "conservative": {
      "type": "number"
    },
    "calculatorUrl": {
      "type": "string"
    }
  },
  "required": [
    "preset",
    "inputs",
    "oneTime",
    "runway",
    "total",
    "conservative",
    "calculatorUrl"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_demo_availability(timezone, monthOffset)

Open times on the Tabflows demo calendar, grouped by meeting length. Every start time is a UTC ISO timestamp; convert it before showing it to the person. Pass the person's IANA timezone: it picks the month to read, and the same timezone passed to book_demo sets the time zone of the booking and the invitation. Book a start time only with the durationMinutes it is listed under. Availability moves: read it again rather than reusing times from earlier in the conversation.

입력 스키마

{
  "type": "object",
  "properties": {
    "timezone": {
      "type": "string",
      "minLength": 1,
      "maxLength": 60,
      "description": "IANA timezone the times are read in, e.g. \"America/New_York\""
    },
    "monthOffset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 2,
      "description": "0 for this month (the default), 1 for next month, 2 for the one after"
    }
  },
  "required": [
    "timezone"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "timezone": {
      "type": "string"
    },
    "availability": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "durationMinutes": {
            "type": "number"
          },
          "slots": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "durationMinutes",
          "slots"
        ],
        "additionalProperties": false
      }
    },
    "bookDemoUrl": {
      "type": "string"
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "timezone",
    "availability",
    "bookDemoUrl",
    "message"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🔴book_demo(firstName, lastName, email, startTime, durationMinutes, ...)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "firstName": {
      "type": "string",
      "minLength": 1,
      "maxLength": 60,
      "description": "The person's first name"
    },
    "lastName": {
      "type": "string",
      "minLength": 1,
      "maxLength": 60,
      "description": "The person's last name"
    },
    "email": {
      "type": "string",
      "minLength": 3,
      "maxLength": 254,
      "description": "The person's work email"
    },
    "startTime": {
      "type": "string",
      "minLength": 1,
      "description": "An ISO 8601 start time returned by get_demo_availability"
    },
    "durationMinutes": {
      "type": "integer",
      "minimum": 1,
      "maximum": 480,
      "description": "The durationMinutes that startTime is listed under in get_demo_availability"
    },
    "timezone": {
      "type": "string",
      "minLength": 1,
      "maxLength": 60,
      "description": "IANA timezone the times are read in, e.g. \"America/New_York\""
    },
    "consent": {
      "type": "boolean",
      "const": true,
      "description": "Must be true: the person chose this time and agreed to Tabflows contacting them at this email."
    }
  },
  "required": [
    "firstName",
    "lastName",
    "email",
    "startTime",
    "durationMinutes",
    "timezone",
    "consent"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "bookedAt": {
      "type": "string"
    },
    "durationMinutes": {
      "type": "number"
    },
    "bookDemoUrl": {
      "type": "string"
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "ok",
    "bookDemoUrl",
    "message"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 14개
검증됨버전이 기록되지 않음도구 14개