SLdragon/mcp-elicitation-server
If you are the rightful owner of mcp-elicitation-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
A demonstration Model Context Protocol (MCP) server showcasing elicitation capabilities.
MCP User Profile Management Server Showcasing Elicitation Capabilities
A demonstration Model Context Protocol (MCP) server showcasing elicitation capabilities.
Demo
https://github.com/user-attachments/assets/ce89872b-a015-48a6-b56f-6be6fee44ff0
Key Point
Ask response from user:
Collect info using command palette:
Success:
Project Overview
This project implements an MCP server with interactive elicitation capabilities, allowing clients to create and manage user profiles. When information is missing, the server uses MCP's elicitation feature to prompt users for required data.
Available Tools
create_user_profile
Creates a new user profile with interactive elicitation support for missing fields.
Parameters (all optional):
name(string): User's full nameemail(string): User's email addressage(number): User's agerole(string): User's role
Validation Rules:
- Name: 2-100 characters
- Email: 5-100 characters, must follow email format
- Age: Between 13-120 years
- Role: Select from predefined options (developer, designer, manager, analyst, tester)
list_users
Lists all user profiles currently stored in the system.
Installation & Setup
1. Install Dependencies
npm install
2. Start the Server
Development Mode (with file watching):
npm run dev
Production Mode:
npm start
Direct execution:
node index.js
VS Code Integration
The project comes pre-configured for VS Code MCP integration. Configuration file is located at .vscode/mcp.json:
{
"servers": {
"elicitationDemo": {
"type": "stdio",
"command": "node",
"args": ["index.js"],
"cwd": "${workspaceFolder}",
"dev": {
"watch": "*.js",
"debug": { "type": "node" }
}
}
}
}
Usage Examples
Create Complete Profile
create_user_profile({
name: "John Doe",
email: "john@example.com",
age: 28,
role: "developer"
})
Create Profile with Interactive Prompts
// Provide partial information, system will prompt for missing data
create_user_profile({
name: "Jane Smith"
// Missing email, age, role - will trigger interactive elicitation
})
List All Users
list_users()