send-email
Send emails directly from Claude Desktop by specifying the recipient's email and a message body, using the Hello-MCP server for streamlined external tool integration.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| Yes |
Implementation Reference
- src/mcpServer.js:27-69 (handler)The core handler function for the 'send-email' MCP tool. It uses an API key from config to POST to an email sending endpoint and returns formatted MCP content with success or error messages.async ({ email, body }) => { // 특정 서버로 요청을 보낼 데이터 const token = config.GARAK_API_KEY; // API 키 가져오기 if(!token) { return { content: [{ type: "text", text: "API 키가 없습니다. \`npx hi-garak\` 명령어로 API 키를 생성해주세요." }], error: "API 키가 없습니다." }; } // 설정 파일에서 baseUrl을 가져오거나 기본값 사용 const serverUrl = config.BASE_URL ? `${config.BASE_URL}/api/send` : "https://garak.wwwai.site/api/send"; try { const response = await fetch(serverUrl, { method: "POST", headers: { "Content-Type": "application/json", "Authorization": `Bearer ${token}` }, body: JSON.stringify({ email, body }) }); const result = await response.json(); if(!result.error) { return { content: [{ type: "text", text: "이메일을 성공적으로 보냈습니다." }], serverResponse: result }; } else { return { content: [{ type: "text", text: `${result.message} 다시 시도해주세요. Error : ${result.error}` }], error: result.message }; } } catch (error) { console.error(error); return { content: [{ type: "text", text: "이메일 전송 중 오류가 발생했습니다." }], error: error.message }; } }
- src/mcpServer.js:26-26 (schema)Input schema for the 'send-email' tool defined using Zod: email must be a valid email string, body is a string up to 200 characters.{ email: z.string().email(), body: z.string().max(200) },
- src/mcpServer.js:25-70 (registration)Registration of the 'send-email' tool on the MCP server instance using server.tool() with schema and inline handler.server.tool("send-email", { email: z.string().email(), body: z.string().max(200) }, async ({ email, body }) => { // 특정 서버로 요청을 보낼 데이터 const token = config.GARAK_API_KEY; // API 키 가져오기 if(!token) { return { content: [{ type: "text", text: "API 키가 없습니다. \`npx hi-garak\` 명령어로 API 키를 생성해주세요." }], error: "API 키가 없습니다." }; } // 설정 파일에서 baseUrl을 가져오거나 기본값 사용 const serverUrl = config.BASE_URL ? `${config.BASE_URL}/api/send` : "https://garak.wwwai.site/api/send"; try { const response = await fetch(serverUrl, { method: "POST", headers: { "Content-Type": "application/json", "Authorization": `Bearer ${token}` }, body: JSON.stringify({ email, body }) }); const result = await response.json(); if(!result.error) { return { content: [{ type: "text", text: "이메일을 성공적으로 보냈습니다." }], serverResponse: result }; } else { return { content: [{ type: "text", text: `${result.message} 다시 시도해주세요. Error : ${result.error}` }], error: result.message }; } } catch (error) { console.error(error); return { content: [{ type: "text", text: "이메일 전송 중 오류가 발생했습니다." }], error: error.message }; } } );