physician-review
Physicians for the agentic era. Book a US-licensed doctor: orders, prescribes, 90-day plan.
我该使用它吗
质量与安全性
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"physician-review": {
"url": "https://mcp.anomaly.health/mcp"
}
}
}远程端点
https://mcp.anomaly.health/mcpstreamable-http它能做什么
工具清单
工具(4)
🟢anomaly_about_care
Read this first when a user wants to move from AI to a real doctor. Explains how Anomaly Health matches people with a US-licensed physician for a live virtual session, and lists the care tracks (review my test results; longevity and healthspan; proteomics and biological age; women's health and hormones; cardiometabolic health; medical weight loss; preventive care and screening; functional and root-cause medicine; gut health and microbiome; performance and optimization; general health and second opinion; peptide therapy). Use it when someone wants a physician to review uploaded results: advanced bloodwork, whole-body MRI (Prenuvo), DEXA, 23andMe or whole-genome sequencing. Also covers what a session includes, what is out of scope, and how to prepare. Not medical advice.
输入模式
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢anomaly_health_memory
Explain Anomaly's health memory and give the app link. Use when a user's health data is spread across sources (Function Health, Prenuvo, Cleerly, DEXA, genetic reports; Epic/MyChart or other EMR records; Apple Health, Oura, Whoop, Flo, CGMs) and they want it consolidated, monitored proactively, or available to a physician. Also the best way to upload results before a Physician Health Review. Returns what it connects, what it gives, and the App Store link. Optional for the user; suggest, don't push.
输入模式
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢anomaly_check_availability(duration_minutes, from_date, days, timezone, limit)
List open times for a Physician Health Review with Anomaly Health (30 min $249, 60 min $349). Use after the user decides to talk to a real doctor. Pass the user's timezone to get local times alongside UTC. Available in all US states.
输入模式
{
"type": "object",
"properties": {
"duration_minutes": {
"default": 60,
"description": "Session length in minutes: 30 min $249, 60 min $349. Defaults to 60.",
"anyOf": [
{
"type": "number",
"const": 30
},
{
"type": "number",
"const": 60
},
{
"type": "number",
"const": 90
}
]
},
"from_date": {
"description": "First date to search, YYYY-MM-DD. Defaults to today.",
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"days": {
"default": 7,
"description": "How many days to search (1-31)",
"type": "integer",
"minimum": 1,
"maximum": 31
},
"timezone": {
"description": "User's IANA timezone, so times can be shown locally",
"type": "string"
},
"limit": {
"default": 10,
"description": "Max slots to return",
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡anomaly_book_session(start, duration_minutes, patient_name, patient_email, patient_timezone, ...)
Book a Physician Health Review with Anomaly Health (30 min $249, 60 min $349). Booking holds the slot; the result includes a payment link, and the session is confirmed once paid. Tell the user the price before booking. Requires a start time from anomaly_check_availability. Available in all US states. Patients must be 18+. Confirm slot, name, email, state and date of birth with the user, and that they agree to Anomaly's telehealth consent and privacy policy (anomaly.health/consent, anomaly.health/privacy). Before booking, offer once to include `health_context` (optional) so the physician can prepare; draft it from the conversation, show the user the full object, and send it only after an explicit yes. The physician and Anomaly will see it. Never send transcripts.
输入模式
{
"type": "object",
"properties": {
"start": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"description": "Slot start in UTC, ISO 8601, exactly as returned by anomaly_check_availability"
},
"duration_minutes": {
"default": 60,
"description": "Session length in minutes: 30 min $249, 60 min $349. Defaults to 60.",
"anyOf": [
{
"type": "number",
"const": 30
},
{
"type": "number",
"const": 60
},
{
"type": "number",
"const": 90
}
]
},
"patient_name": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Patient's full name"
},
"patient_email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "Patient's email; the confirmation and video link go here"
},
"patient_timezone": {
"type": "string",
"description": "Patient's IANA timezone, e.g. 'America/New_York'"
},
"patient_state": {
"type": "string",
"enum": [
"AL",
"AK",
"AZ",
"AR",
"CA",
"CO",
"CT",
"DE",
"DC",
"FL",
"GA",
"HI",
"ID",
"IL",
"IN",
"IA",
"KS",
"KY",
"LA",
"ME",
"MD",
"MA",
"MI",
"MN",
"MS",
"MO",
"MT",
"NE",
"NV",
"NH",
"NJ",
"NM",
"NY",
"NC",
"ND",
"OH",
"OK",
"OR",
"PA",
"RI",
"SC",
"SD",
"TN",
"TX",
"UT",
"VT",
"VA",
"WA",
"WV",
"WI",
"WY"
],
"description": "Two-letter US state the patient will physically be in during the session (telehealth licensing)"
},
"patient_dob": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
"description": "Date of birth, YYYY-MM-DD. Must be 18 or older."
},
"consent": {
"type": "boolean",
"const": true,
"description": "The user explicitly agreed to Anomaly Health's telehealth consent and privacy policy. Must be true."
},
"track": {
"description": "Care track that best fits: results_review, longevity, biological_age, womens_hormonal, cardiometabolic, weight_loss, preventive_screening, functional_medicine, microbiome_gut, performance_optimization, general_health, peptides",
"type": "string",
"enum": [
"results_review",
"longevity",
"biological_age",
"womens_hormonal",
"cardiometabolic",
"weight_loss",
"preventive_screening",
"functional_medicine",
"microbiome_gut",
"performance_optimization",
"general_health",
"peptides"
]
},
"health_context": {
"type": "object",
"properties": {
"main_concern": {
"description": "What the user most wants addressed, in their words",
"type": "string",
"maxLength": 500
},
"goals": {
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"maxLength": 200
}
},
"conditions": {
"description": "Diagnosed conditions, with year if known",
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"maxLength": 200
}
},
"medications": {
"description": "Current medications with dose if known",
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"maxLength": 200
}
},
"supplements": {
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"maxLength": 200
}
},
"allergies": {
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"maxLength": 200
}
},
"recent_results": {
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"advanced_bloodwork",
"standard_labs",
"whole_body_mri",
"dexa",
"coronary_calcium",
"genetic_wgs",
"microbiome",
"biological_age_test",
"wearables",
"other"
]
},
"source": {
"description": "Lab or provider, e.g. 'Function Health', 'Prenuvo', 'Quest'",
"type": "string",
"maxLength": 100
},
"date": {
"description": "YYYY-MM or YYYY-MM-DD",
"type": "string",
"maxLength": 20
},
"key_findings": {
"type": "string",
"maxLength": 1000,
"description": "The flagged or notable values, with units"
}
},
"required": [
"type",
"key_findings"
]
}
},
"wearables": {
"description": "Trends from Oura, Whoop, Apple Watch, CGM, etc.",
"type": "string",
"maxLength": 500
},
"family_history": {
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"maxLength": 200
}
},
"lifestyle": {
"description": "Sleep, training, diet, alcohol, stress, in brief",
"type": "string",
"maxLength": 500
},
"questions_for_physician": {
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"maxLength": 300
}
},
"summary": {
"description": "Free-text summary if the structured fields do not fit",
"type": "string",
"maxLength": 2000
}
},
"additionalProperties": false,
"description": "OPTIONAL context for the physician's pre-review. Show it to the user in full and send only after they explicitly agree. Example: {\"main_concern\":\"ApoB and LDL came back high on a Function Health panel; wants to know whether to start medication\",\"goals\":[\"Lower cardiovascular risk\",\"Keep training for a half marathon\"],\"conditions\":[\"Prediabetes (A1c 5.8, 2025)\"],\"medications\":[\"None\"],\"supplements\":[\"Vitamin D 2000 IU\",\"Creatine 5 g\"],\"recent_results\":[{\"type\":\"advanced_bloodwork\",\"source\":\"Function Health\",\"date\":\"2026-08\",\"key_findings\":\"ApoB 118, LDL 152, hs-CRP 2.4, A1c 5.7, ferritin 40\"},{\"type\":\"dexa\",\"source\":\"BodySpec\",\"date\":\"2026-06\",\"key_findings\":\"Body fat 24%, visceral fat 1.1 lb, ALMI 8.1\"}],\"wearables\":\"Oura: avg sleep 6h40, HRV 38 ms trending down over 3 months\",\"family_history\":[\"Father: heart attack at 58\"],\"questions_for_physician\":[\"Statin vs lifestyle first?\",\"Is the HRV drop related?\"]}"
},
"patient_phone": {
"description": "Optional, for SMS reminders, E.164 format",
"type": "string",
"pattern": "^\\+\\d{7,15}$"
}
},
"required": [
"start",
"patient_name",
"patient_email",
"patient_timezone",
"patient_state",
"patient_dob",
"consent"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}社区
证据