discord_update_membership_screening
Configure membership screening forms to require new members to review rules and answer questions before joining a Discord server.
Instructions
Update the membership screening form: set a description and rules/questions that new members must agree to before joining.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| guild_id | Yes | ||
| description | No | Welcome message shown at the top of the screening form. | |
| form_fields | No | List of rules/questions. Each item has: label (the rule title), values (array of rule lines), required (boolean). |
Implementation Reference
- src/tools/screening.ts:54-70 (handler)Implementation of the `discord_update_membership_screening` tool handler, which fetches current screening state and patches it with new description/fields.
case "discord_update_membership_screening": { const guildId = validateId(args.guild_id, "guild_id"); const current = await discord.rest.get(`/guilds/${guildId}/member-verification`) as Record<string, unknown>; const body: Record<string, unknown> = { version: current.version }; if (args.description !== undefined) body.description = args.description as string; if (args.form_fields !== undefined) { const fields = args.form_fields as { label: string; values: string[]; required?: boolean }[]; body.form_fields = fields.map((f) => ({ field_type: "TERMS", label: f.label, values: f.values, required: f.required ?? true, })); } const updated = await discord.rest.patch(`/guilds/${guildId}/member-verification`, { body }); return { content: [{ type: "text", text: `✅ Membership screening updated.\n${JSON.stringify(updated, null, 2)}` }] }; } - src/tools/screening.ts:15-39 (schema)Input schema definition for the `discord_update_membership_screening` tool.
{ name: "discord_update_membership_screening", description: "Update the membership screening form: set a description and rules/questions that new members must agree to before joining.", inputSchema: { type: "object", properties: { guild_id: { type: "string" }, description: { type: "string", description: "Welcome message shown at the top of the screening form." }, form_fields: { type: "array", description: "List of rules/questions. Each item has: label (the rule title), values (array of rule lines), required (boolean).", items: { type: "object", properties: { label: { type: "string", description: "Title/question for this field." }, values: { type: "array", items: { type: "string" }, description: "Array of rule lines or answer options." }, required: { type: "boolean", description: "Whether this field is required (default true)." }, }, required: ["label", "values"], }, }, }, required: ["guild_id"], }, },