Skip to main content
Glama

SMTP MCP Server

#!/usr/bin/env bash set -e # Script to publish the MCP server to Smithery # This uses the API key from the .env file # Load environment variables from .env file if [ -f .env ]; then export $(grep -v '^#' .env | xargs) fi # Check if SMITHERY_API_KEY is set if [ -z "$SMITHERY_API_KEY" ]; then echo "❌ Error: SMITHERY_API_KEY is not set in .env file" exit 1 fi echo "🔑 Using Smithery API key: ${SMITHERY_API_KEY:0:8}... (truncated for security)" # Ensure the project is built echo "🔨 Building the project..." npm run build # Create a temporary package for Smithery echo "📦 Creating Smithery package..." TEMP_DIR=$(mktemp -d) PACKAGE_DIR="$TEMP_DIR/mcp-smtp-server" mkdir -p "$PACKAGE_DIR" # Copy necessary files to the package directory echo "📋 Copying files..." cp -R build "$PACKAGE_DIR/" cp smithery.yaml "$PACKAGE_DIR/" cp package.json README.md "$PACKAGE_DIR/" # Copy scripts needed for execution mkdir -p "$PACKAGE_DIR/scripts" cp scripts/start-smithery.js "$PACKAGE_DIR/scripts/" # Create a dedicated package.json for Smithery echo "📝 Creating Smithery-specific package.json..." cat > "$PACKAGE_DIR/smithery.json" << EOL { "name": "mcp-smtp-server", "version": "1.0.0", "description": "SMTP Email MCP Server with template management", "smithery": { "displayName": "SMTP Email Server", "description": "Send emails with template support via SMTP", "startCommand": { "type": "stdio", "command": "node", "args": ["scripts/start-smithery.js"] } } } EOL # Create a tarball of the package echo "📦 Creating tarball..." cd "$TEMP_DIR" tar -czf mcp-smtp-server.tgz mcp-smtp-server TARBALL_PATH="$TEMP_DIR/mcp-smtp-server.tgz" # Attempt to publish to Smithery echo "🚀 Publishing to Smithery..." cd - # Return to original directory # Try different Smithery CLI commands for publishing echo "🔄 Attempting to publish with Smithery CLI..." # Method 1: Try using the direct package install echo "Method 1: Using direct package install..." npx @smithery/cli install "$PACKAGE_DIR" --id mcp-smtp-server --client claude --key $SMITHERY_API_KEY if [ $? -ne 0 ]; then # Method 2: Try using the tarball echo "Method 2: Using tarball install..." npx @smithery/cli install "$TARBALL_PATH" --id mcp-smtp-server --client claude --key $SMITHERY_API_KEY fi if [ $? -ne 0 ]; then # Method 3: Try to find a publish command if it exists echo "Method 3: Looking for publish command..." PUBLISH_CMD=$(npx @smithery/cli --help | grep -i publish || echo "") if [ ! -z "$PUBLISH_CMD" ]; then echo "Found publish command: $PUBLISH_CMD" npx @smithery/cli publish "$PACKAGE_DIR" --key $SMITHERY_API_KEY else echo "⚠️ No direct publish command found in Smithery CLI" fi fi # Clean up echo "🧹 Cleaning up temporary files..." rm -rf "$TEMP_DIR" echo "📌 NOTE: If none of the publishing methods worked automatically," echo " you may need to use the Smithery web interface to publish the package." echo " API: https://api.smithery.ai/v1/teams/default/servers" echo " Key: $SMITHERY_API_KEY" echo "" echo "✅ Process completed. Check above for successful publication status."

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/samihalawa/mcp-server-smtp'

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