request_demo
Schedule a personalized demo of Ravira for your dental practice. Provide your name, practice name, email, and preferred time to receive a call from founder Purnima for a 20-minute live demo.
Instructions
Request a live demo of Ravira for your dental practice.
Submit your contact info and Purnima (Ravira's founder) will reach out to schedule a personalized 20-minute demo.
Args: name: Your name (e.g. "Dr. Sarah Johnson" or "Mike - Office Manager") practice_name: Name of your dental practice email: Best email to reach you phone: Phone number (optional) best_time: Best time to call (e.g. "Tuesday morning", "weekday afternoons")
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| practice_name | Yes | ||
| Yes | |||
| phone | No | ||
| best_time | No | anytime |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- server.py:453-453 (registration)Tool registration via @mcp.tool() decorator on the request_demo function.
@mcp.tool() - server.py:454-492 (handler)The request_demo handler function that accepts contact info (name, practice_name, email, optional phone, best_time) and returns a confirmation message saying Purnima will reach out within 1 business day.
def request_demo( name: str, practice_name: str, email: str, phone: Optional[str] = None, best_time: str = "anytime", ) -> str: """ Request a live demo of Ravira for your dental practice. Submit your contact info and Purnima (Ravira's founder) will reach out to schedule a personalized 20-minute demo. Args: name: Your name (e.g. "Dr. Sarah Johnson" or "Mike - Office Manager") practice_name: Name of your dental practice email: Best email to reach you phone: Phone number (optional) best_time: Best time to call (e.g. "Tuesday morning", "weekday afternoons") """ log.info( "Demo request: name=%s practice=%s email=%s phone=%s time=%s", name, practice_name, email, phone, best_time, ) return ( f"# Demo Request Received!\n\n" f"Thank you, {name}! Here's a summary of your request:\n\n" f"- **Practice:** {practice_name}\n" f"- **Contact:** {email}" + (f" / {phone}" if phone else "") + f"\n" f"- **Best time:** {best_time}\n\n" f"**Purnima will reach out within 1 business day** to schedule your " f"personalized 20-minute Ravira demo.\n\n" f"In the meantime, you can:\n" f"- Visit [ravira.ai](https://ravira.ai) to see the product\n" f"- Try the tools in this MCP server to explore Ravira's capabilities\n\n" f"We look forward to showing you how Ravira can help {practice_name} " f"capture more patients and free up your front desk!" ) - server.py:454-460 (schema)Input schema defined via type annotations: name (str), practice_name (str), email (str), phone (Optional[str]), best_time (str, default 'anytime').
def request_demo( name: str, practice_name: str, email: str, phone: Optional[str] = None, best_time: str = "anytime", ) -> str: - server.py:50-57 (registration)The FastMCP server instance named 'ravira' that hosts all tools including request_demo.
mcp = FastMCP( "ravira", instructions=( "You are connected to Ravira — an AI receptionist built specifically for dental practices. " "Use the available tools to demonstrate how Ravira handles patient questions, show its features, " "and help dental practice owners or staff understand the product." ), )