Skip to main content
Glama

Discourse MCP

Official
by discourse
create_user.ts2.04 kB
import { z } from "zod"; import type { RegisterFn } from "../types.js"; export const registerCreateUser: RegisterFn = (server, ctx, opts) => { if (!opts?.allowWrites) return; const schema = z.object({ username: z.string().min(1).max(20), email: z.string().email(), name: z.string().min(1).max(255), password: z.string().min(10).max(200), active: z.boolean().optional().default(true), approved: z.boolean().optional().default(true), }); server.registerTool( "discourse_create_user", { title: "Create User", description: "Create a new user account in Discourse.", inputSchema: schema.shape, }, async (args, _extra: any) => { try { const { client } = ctx.siteState.ensureSelectedSite(); const userData = { username: args.username, email: args.email, name: args.name, password: args.password, active: args.active, approved: args.approved, }; const response = await client.post("/users.json", userData) as any; if (response.success) { return { content: [{ type: "text", text: `User created successfully!\n` + `Username: ${args.username}\n` + `Name: ${args.name}\n` + `Email: ${args.email}\n` + `Status: ${response.active ? 'Active' : 'Inactive'}\n` + `Message: ${response.message || 'Account created'}` }] }; } else { return { content: [{ type: "text", text: `Failed to create user: ${response.message || 'Unknown error'}` }], isError: true }; } } catch (e: any) { return { content: [{ type: "text", text: `Failed to create user: ${e?.message || String(e)}` }], isError: true }; } } ); };

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/discourse/discourse-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server