{"name":"io.github.eCardWidget/ecardwidget-mcp","slug":"ecardwidget-ecardwidget-mcp","title":null,"description":"Send eCards, run bulk campaigns, and automate recurring cards from your AI assistant.","url":"https://mcp.market/server/ecardwidget-ecardwidget-mcp","rating":null,"grade":"B","score":77,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":13,"stars":1,"forks":0,"downloads_week":null,"last_push_at":"2026-07-09T23:18:34.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/eCardWidget/ecardwidget-mcp","website":null,"version":"0.5.2","remotes":[],"packages":[{"registryType":"npm","identifier":"ecardwidget-mcp","version":"0.5.2","transport":{"type":"stdio"},"environmentVariables":[{"description":"Scoped eCardWidget API key (Settings → Developers → API Keys). Used as a Bearer token.","isRequired":true,"isSecret":true,"name":"ECW_API_KEY"},{"description":"Override the API base URL (default https://app.ecardwidget.com). For custom domains / testing.","default":"https://app.ecardwidget.com","name":"ECW_BASE_URL"}]}],"tools":[{"name":"ecw_create_automation","description":"Create an automation that automatically sends an eCard to directory members on a recurring personal date: 'birthday', 'anniversary' (work anniversary), or 'onboarding'. Pick the eCards it sends from (numeric ids from ecw_search_ecards \\u2014 a random one is chosen per send). Members are matched from the directory by their stored dates. Holiday/fixed-date/rule-based automations aren't created here ","write_action":true,"price_micros":0,"input_schema":null},{"name":"ecw_create_campaign","description":"Create a bulk eCard campaign as a DRAFT \\u2014 it is NOT sent. Optionally attach eCards (numeric ids from ecw_search_ecards) and directory-member recipients (ids from ecw_list_team_members). Review and send it later with ecw_send_campaign or in the dashboard.","write_action":true,"price_micros":0,"input_schema":null},{"name":"ecw_create_ecard","description":"Create a new eCard and attach it to a widget. `name` and `widget_id` are required. Supply the artwork EITHER as `image_url` (public https URL) OR `image_base64` (base64 string or data: URI) \\u2014 or neither for a text-only card. `details` is the eCard's HTML body. `options` sets any other eCard field (price, url_redirect_after_send, videoLink, disabled, customFieldsConfig, \\u2026). Get a widget_i","write_action":true,"price_micros":0,"input_schema":null},{"name":"ecw_create_widget","description":"Create a new, empty widget and configure any of its options. `name` is required. `wconfig` holds the theme/display config (colors, layout, locale, \\u2026) and defaults to {\"locale\":\"en\"}. `options` sets any other widget field (e.g. page_heading_html, page_subtitle_html, dir_force_sso, custom_fields_preset_id, merge_tag_defaults, gift_card_enabled). Returns the new widget's numeric id and vanity id","write_action":true,"price_micros":0,"input_schema":null},{"name":"ecw_deactivate_team_member","description":"Deactivate a directory team member by email (reversible \\u2014 they stop receiving automated cards but aren't deleted). Use ecw_upsert_team_member to reactivate, or ecw_delete_team_member to remove entirely.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ecw_delete_ecard","description":"Permanently delete an eCard design. Two-step: call once WITHOUT confirm_token for a preview and a confirmation token, then again WITH the token to delete. An eCard that's in use may only be deletable from the dashboard.","write_action":true,"price_micros":0,"input_schema":null},{"name":"ecw_delete_team_member","description":"Permanently delete a directory team member by email. This is a two-step, irreversible action: call once WITHOUT confirm_token to get a preview and a confirmation token, then call again WITH that confirm_token to actually delete. To deactivate instead of delete, use ecw_deactivate_team_member.","write_action":true,"price_micros":0,"input_schema":null},{"name":"ecw_delete_widget","description":"Permanently delete a widget and its eCards. Two-step: call once WITHOUT confirm_token for a preview and a confirmation token, then again WITH the token to delete. A widget that's used by automations or campaigns (or has send history) can only be deleted from the dashboard.","write_action":true,"price_micros":0,"input_schema":null},{"name":"ecw_describe_fields","description":"List the fields you can set when creating or updating a widget, eCard, campaign, or automation \\u2014 field names, types, allowed values (enums), and which are required. Call this before ecw_create_widget / ecw_create_ecard / ecw_create_campaign / ecw_create_automation to learn what to pass (including the `options` passthrough). Sourced from the eCardWidget OpenAPI spec.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ecw_duplicate_widget","description":"Create a new widget by duplicating an existing one \\u2014 the copy keeps the source's theme, settings, and eCards, so it's immediately usable. Pass the numeric id of a source widget (from ecw_list_widgets). The new widget is named 'Copy - <source name>'; rename it in the dashboard or with a follow-up update.","write_action":true,"price_micros":0,"input_schema":null},{"name":"ecw_find_team_member","description":"Look up one directory team member by email or external id.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ecw_get_widget_ecards","description":"List the eCards inside a widget, returning each eCard's `ecardid` and name. Pass a widget's vanity id (from ecw_list_widgets). Use the returned ecardid with ecw_send_ecard.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ecw_import_team_members","description":"Add or update up to … team members in one call (upsert by email). Each row is upserted individually with automatic backoff if the rate limit is hit; returns a summary of successes/failures. Once imported, target them with ecw_create_automation (recurring) or ecw_create_campaign (one-time).","write_action":false,"price_micros":0,"input_schema":null},{"name":"ecw_send_campaign","description":"Send a campaign to all of its recipients immediately. Two-step: call once WITHOUT confirm_token for a preview and a confirmation token, then call again WITH that token to send. Gift-card campaigns must be sent from the dashboard.","write_action":true,"price_micros":0,"input_schema":null},{"name":"ecw_send_ecard","description":"Send, schedule, or share a single eCard. Emails it now by default; set type='ecard_copy_link' to get a shareable link instead of emailing; set scheduled_send_date (future ISO datetime) to schedule. Get an ecard_id from ecw_get_widget_ecards or ecw_search_ecards.","write_action":true,"price_micros":0,"input_schema":null},{"name":"ecw_upsert_team_member","description":"Create or update a single directory team member, matched by email. Provide any subset of fields; email is required. For many people at once, use ecw_import_team_members. Once members exist, target them with ecw_create_automation (recurring) or ecw_create_campaign (one-time).","write_action":true,"price_micros":0,"input_schema":null},{"name":"ecw_whoami","description":"Report the eCardWidget account this connection is authenticated to and the exact capabilities of the API key: which feature areas are readable/writable, the request rate limit, and usage this hour. Call this first to understand what actions are available.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":77,"grade":"B","scanned_at":"2026-09-26T05:14:19.136Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-26T05:14:19.115Z","components":{"code":{"score":25,"max":25,"notes":["3 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":12,"max":15,"notes":["last push 78 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"ecardwidget-mcp","version":"0.5.2","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-07-09T23:16:58.912Z","repositoryUrl":"git+https://github.com/eCardWidget/ecardwidget-mcp.git"}],"repo":{"found":true,"owner":"eCardWidget","repo":"ecardwidget-mcp","archived":false,"pushedAt":"2026-07-09T23:18:34Z","stars":1,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/301345170?v=4","ownerCreatedAt":"2026-07-08T13:48:59Z","license":"MIT"},"icon":{"url":null,"source":"none"},"presence":{"stars":1,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-07-09T23:18:34.000Z","score":13}}}},"grade_history":[],"reviews":[]}