You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
MCP servers can request additional information from users through the elicitation feature. This is useful for interactive workflows where the server needs user input or confirmation:
1178
+
MCP servers can request non-sensitive information from users through the form elicitation capability. This is useful for interactive workflows where the server needs user input or confirmation:
1179
1179
1180
1180
```typescript
1181
1181
// Server-side: Restaurant booking tool that asks for alternatives
@@ -1207,7 +1207,7 @@ server.registerTool(
1207
1207
1208
1208
if (!available) {
1209
1209
// Ask user if they want to try alternative dates
1210
-
const result =awaitserver.server.elicitInput({
1210
+
const result =awaitserver.server.elicitFormInput({
1211
1211
message: `No tables available at ${restaurant} on ${date}. Would you like to check alternative dates?`,
1212
1212
requestedSchema: {
1213
1213
type: 'object',
@@ -1274,7 +1274,7 @@ server.registerTool(
1274
1274
);
1275
1275
```
1276
1276
1277
-
Client-side: Handle elicitation requests
1277
+
On the client side, handle form elicitation requests:
1278
1278
1279
1279
```typescript
1280
1280
// This is a placeholder - implement based on your UI framework
**Note**: Elicitation requires client support. Clients must declare the `elicitation` capability during initialization.
1302
+
Elicitation is a client capability. Clients must declare the `elicitation` capability during initialization:
1303
+
1304
+
```typescript
1305
+
const client =newClient(
1306
+
{
1307
+
name: 'example-client',
1308
+
version: '1.0.0'
1309
+
},
1310
+
{
1311
+
capabilities: {
1312
+
elicitation: {
1313
+
form: {}
1314
+
}
1315
+
}
1316
+
}
1317
+
);
1318
+
```
1319
+
1320
+
**Note**: Form elicitation **must** only be used to gather non-sensitive information. For sensitive information such as API keys or secrets, use URL elicitation instead.
1321
+
1322
+
### Eliciting URL Actions
1323
+
1324
+
MCP servers can prompt the user to perform a URL-based action through URL elicitation. This is useful for securely gathering sensitive information such as API keys or secrets, or for redirecting users to secure web-based flows.
1325
+
1326
+
```typescript
1327
+
// Server-side: Prompt the user to navigate to a URL
1328
+
const result =awaitserver.server.elicitURLInput({
1329
+
message: 'Please enter your API key',
1330
+
requestedSchema: {
1331
+
type: 'string'
1332
+
}
1333
+
});
1334
+
1335
+
// Alternative, return an error from within a tool:
1336
+
thrownewUrlElicitationRequiredError([
1337
+
{
1338
+
mode: 'url',
1339
+
message: 'This tool requires a payment confirmation. Open the link to confirm payment!',
0 commit comments