11#!/usr/bin/env node
2+ import { AgentMailClient , AgentMailEnvironment } from 'agentmail'
3+ import { AgentMailToolkit } from 'agentmail-toolkit/mcp'
4+
25import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'
36import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
47
5- import { AgentMailToolkit } from 'agentmail-toolkit/mcp'
6-
7- function parseToolsArg ( ) : string [ ] | undefined {
8+ const parseToolsArg = ( ) => {
89 const args = process . argv . slice ( 2 )
910
1011 const toolsIndex = args . indexOf ( '--tools' )
@@ -19,11 +20,31 @@ function parseToolsArg(): string[] | undefined {
1920 return toolsArg . split ( ',' ) . map ( ( tool ) => tool . trim ( ) )
2021}
2122
22- async function main ( ) {
23+ const parseAgentMailEnv = ( ) => {
24+ const env = process . env . AGENTMAIL_ENVIRONMENT ?. toLowerCase ( )
25+
26+ switch ( env ) {
27+ case 'development' :
28+ case 'dev' :
29+ return AgentMailEnvironment . Development
30+ case 'production' :
31+ case 'prod' :
32+ default :
33+ return AgentMailEnvironment . Production
34+ }
35+ }
36+
37+ const main = async ( ) => {
38+ const environment = parseAgentMailEnv ( )
39+ const toolNames = parseToolsArg ( )
40+
41+ const client = new AgentMailClient ( { environment } )
42+ const toolkit = new AgentMailToolkit ( client )
43+
2344 const server = new McpServer ( { name : 'AgentMail' , version : '0.1.0' } )
2445 const transport = new StdioServerTransport ( )
2546
26- for ( const tool of new AgentMailToolkit ( ) . getTools ( parseToolsArg ( ) ) ) {
47+ for ( const tool of toolkit . getTools ( toolNames ) ) {
2748 server . tool ( tool . name , tool . description , tool . paramsSchema , tool . callback )
2849 }
2950
0 commit comments