MCP Elicitation and Apps Demo
MCP Elicitation and Apps Demo
A minimal MCP server demo with Elicitation and MCP Apps support for webinar presentations.
Features
Elicitation Tool:
book_appointmentwith SQLite persistenceMCP App:
view_appointmentswith interactive HTML UITailwind CSS: Modern, responsive interface
Real-time Data: Live appointment statistics
SQLite Database: Data persistence and sample data
HTTP Transport: Endpoint at
http://localhost:3000/mcp
Related MCP server: MCP Appointment Booking Server
MCP Apps Feature
This demo now includes MCP Apps support with:
Interactive HTML interface rendered in MCP hosts
Tailwind CSS for modern styling
Real-time appointment data visualization
Statistics dashboard
Sample data pre-loaded
Database Schema
CREATE TABLE appointments (
id INTEGER PRIMARY KEY AUTOINCREMENT,
person TEXT NOT NULL,
duration_minutes INTEGER NOT NULL,
created_at TEXT NOT NULL
);Installation
# Install dependencies
npm install
# Build TypeScript
npm run buildRunning the Demo
Elicitation Demo (Original)
# Start the original elicitation server
npm start
# Or for development with auto-reload:
npm run devMCP Apps Demo (New)
# Start the MCP Apps server
npm run start:apps
# Or for development with auto-reload:
npm run dev:appsSimple Test
To see the expected flow:
npm run testWebinar Flow
Start server:
npm startConnect an MCP client to
http://localhost:3000/mcpAsk: "Book an appointment with John"
Elicitation asks for duration: 30 / 60 / 90 minutes
Choose 60
Open
appointments.dbin a SQLite GUIShow the inserted row with John, 60 minutes, and timestamp
Tool Specifications
Book Appointment (Elicitation Demo)
Name: book_appointment
Initial input:
{
"person": "string"
}Elicitation (when duration is missing):
Message: "How long should the appointment be?"
Schema: Enum of 30, 60, or 90 minutes
Result: Inserts into SQLite and returns confirmation message.
View Appointments (MCP App)
Name: view_appointments
Input: None required
Result: Opens an interactive HTML interface with:
List of all appointments
Statistics dashboard (total appointments, total duration, average duration)
Real-time data refresh
Modern Tailwind CSS styling
MCP App Features:
Interactive UI rendered directly in MCP hosts
HTML content served via MCP resources API
Real-time data from SQLite database
Code Structure
Original Demo
src/server-simple.ts- Simple MCP server with Elicitation logicsrc/db.ts- SQLite database operationsappointments.db- SQLite database file (created on first run)
MCP Apps Demo
src/server-apps.ts- Extended server with MCP Apps supportsrc/appointments-ui.html- Interactive HTML interface with Tailwind CSSappointments.db- Shared SQLite database with sample data
Key Implementation Points
Tool starts - Receives
personparameterElicitation - Detects missing
duration_minutes, returnsinputRequiredContinue - After user provides duration, completes operation and saves to DB
Testing
You can test both servers using any MCP-compatible client (Claude Desktop, VS Code with MCP extension, etc.) by connecting to http://localhost:3000/mcp.
Testing Elicitation Demo
Connect to
http://localhost:3000/mcpCall
book_appointmentwith{"person": "John"}Server will elicit for duration (30/60/90 minutes)
Provide duration to complete the appointment
Testing MCP Apps Demo
Start the MCP Apps server:
npm run start:appsConnect to
http://localhost:3000/mcpCall
view_appointments(no parameters needed)MCP host will render the interactive HTML interface
Explore appointments with statistics and real-time data
Requirements
Node.js 18+
SQLite GUI (for viewing the database during demo)
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceAn MCP server that enables interaction with OnSched's consumer-facing appointment scheduling API through natural language, allowing users to manage bookings, appointments, and scheduling operations.
- Alicense-qualityDmaintenanceAn MCP server that enables users to book, cancel, reschedule, and list appointments through natural language interactions. It uses YAML configurations for agent behavior and function logic to manage appointment data and availability.MIT
- Alicense-qualityDmaintenanceEnables users to manage medical appointments by searching for doctors, checking availability, and booking sessions through a natural language interface. It serves as a reference implementation for advanced MCP features like symptom-based specialist recommendations and multi-step scheduling workflows.15MIT
- Flicense-qualityDmaintenanceA demonstration MCP server that shows how to use elicitations to ask users for preferences during a video search tool execution.1
Related MCP Connectors
An AI concierge that turns static forms into adaptive AI conversations. From any MCP client.
MCP server for the Fail Modes taxonomy — a knowledge base of AI system failure modes
Remote MCP for MCP consent scope receipt, structured receipts, audit logs, and reviewer-ready eviden
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/artemreva-hub/Otus.AI_For_Dev.Webinar14.MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server