DirectIQ

com.directiq.mcpPublished by mcp.directiq.comOfficial publisherv0.2.0Updated Oct 30, 2026

Manage DirectIQ contacts, lists and tags, see campaign results, and send transactional email.

VerifiedStreamable HTTPWeb executableCommunication & CollaborationBusiness & Commerce

Overview

AI-generated overview

Hosted DirectIQ MCP server for managing email marketing contacts, lists, tags and campaigns, and sending transactional email from an AI assistant.

What you can do
  • Summarize the account and browse contacts, lists, segments and tags, including counts and membership
  • Create, update, upsert, tag, untag and permanently delete contacts, lists and tags
  • List campaigns and automation flows, and read performance stats and per-contact reports for opens, clicks, bounces and unsubscribes
  • Send a single transactional email from a confirmed sender address
  • Discover other DirectIQ API operations and issue authenticated read or write requests to them
When to use it
Useful when you want an assistant to work inside a DirectIQ email marketing account: auditing contacts and lists, cleaning up tags, reviewing how a campaign performed, or sending a one-off transactional message without opening the dashboard.
Requirements
Remote Streamable HTTP endpoint hosted by DirectIQ; nothing to install. Requires a DirectIQ account and an API key from the dashboard, sent in the x-api-key header (or as a Bearer token). Some clients need the mcp-remote bridge. Network access to the DirectIQ endpoint.
Before you install
The API key grants the account's permissions; keep it out of chat and repositories and rotate it if exposed. Many tools overwrite or permanently delete contacts, lists and tags, and the generic write request tool can change or bulk-delete data. Sending email reaches real recipients, cannot be recalled, and counts toward the sending plan. Keep tool-approval prompts on and auto-approve only read-only tools.

Installation

In SourceWeft

  1. Open DirectIQ in the dashboard and add it to a workspace.
  2. Connect x-api-key credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.directiq.mcp%2Fdirectiq/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "directiq": {
      "type": "http",
      "url": "https://mcp.directiq.com/mcp",
      "headers": {
        "x-api-key": "<YOUR_API_KEY>"
      }
    }
  }
}

README

DirectIQ MCP Server

[MCP Registry] [License: MIT] [DirectIQ MCP connector] [mcptry]

Connect Claude, ChatGPT, Cursor, VS Code, Windsurf, and any other Model Context Protocol client to your DirectIQ account. Manage contacts, lists, and tags, see how your campaigns performed, and send transactional email in plain language.

DirectIQ is an email marketing and transactional email platform for small businesses, with fast human support and pay-as-you-go pricing. → directiq.com

  • Endpoint: https://mcp.directiq.com/mcp
  • Transport: Streamable HTTP (remote, hosted by DirectIQ, nothing to install)
  • Auth: DirectIQ API key in the x-api-key header, or Authorization: Bearer <key> (OAuth coming soon)
  • Server card: https://mcp.directiq.com/.well-known/mcp/server-card.json
  • Registry name: com.directiq.mcp/directiq

This repository holds the public documentation, registry metadata, and client configuration for the hosted DirectIQ MCP server at mcp.directiq.com, operated by DirectIQ. There is nothing to install or build.

Quick start

  1. Get an API key: log in to the DirectIQ dashboard, then go to Settings → API Keys and copy or generate a key. No account yet? Sign up free.
  2. Add the server to your client: see the snippets below.
  3. Try a prompt: "Give me an overview of my DirectIQ account."

Client setup

Cursor

Add to Cursor. This link opens Cursor with the config filled in. Replace YOUR_DIRECTIQ_API_KEY with your key.

Or add it manually to ~/.cursor/mcp.json:

json
{  "mcpServers": {    "directiq": {      "url": "https://mcp.directiq.com/mcp",      "headers": { "x-api-key": "YOUR_DIRECTIQ_API_KEY" }    }  }}

VS Code (GitHub Copilot)

Add to .vscode/mcp.json. VS Code prompts for the key and stores it securely:

json
{  "inputs": [    { "type": "promptString", "id": "directiq_api_key", "description": "DirectIQ API key", "password": true }  ],  "servers": {    "directiq": {      "type": "http",      "url": "https://mcp.directiq.com/mcp",      "headers": { "x-api-key": "${input:directiq_api_key}" }    }  }}

Claude Code

bash
claude mcp add --transport http directiq https://mcp.directiq.com/mcp --header "x-api-key: YOUR_DIRECTIQ_API_KEY"

Claude Desktop

Until OAuth ships, use the mcp-remote bridge in claude_desktop_config.json:

json
{  "mcpServers": {    "directiq": {      "command": "npx",      "args": ["-y", "mcp-remote", "https://mcp.directiq.com/mcp", "--header", "x-api-key:${DIRECTIQ_API_KEY}"],      "env": { "DIRECTIQ_API_KEY": "YOUR_DIRECTIQ_API_KEY" }    }  }}

Windsurf

~/.codeium/windsurf/mcp_config.json:

json
{  "mcpServers": {    "directiq": {      "serverUrl": "https://mcp.directiq.com/mcp",      "headers": { "x-api-key": "YOUR_DIRECTIQ_API_KEY" }    }  }}

OpenAI Codex

~/.codex/config.toml, after setting export DIRECTIQ_API_KEY=...:

toml
[mcp_servers.directiq]url = "https://mcp.directiq.com/mcp"env_http_headers = { "x-api-key" = "DIRECTIQ_API_KEY" }

Any other MCP client

SettingValue
TransportStreamable HTTP
URLhttps://mcp.directiq.com/mcp
Headerx-api-key: <your DirectIQ API key>

Tools

30 tools, grouped by what they work on. Full inputs for each tool are in the tool reference.

ToolWhat it doesBehavior
Account
directiq_account_overviewSummarize the account in one call: total contacts, active/disabled status counts, list count, tag count, and confirmed sender addresses.read-only
Contacts
directiq_get_contactGet one contact by numeric ID: email, first and last name, status, created and updated dates, tags, lists, and notes.read-only
directiq_list_contactsList contacts one page at a time, oldest first, with each contact's ID, email, name, status, tags, and lists.read-only
directiq_contact_countReturn the total number of contacts in the account as a single number.read-only
directiq_upsert_contactAdd a contact to a list, creating the contact if the email is new or updating its name if it already exists.destructive, idempotent
directiq_update_contactUpdate fields on an existing contact by ID, such as firstName, lastName, or email.destructive, idempotent
directiq_delete_contactPermanently delete a contact by ID, removing it from every list and tag.destructive, idempotent
Lists and segments
directiq_list_listsList every contact list in the account with its ID and name.read-only
directiq_get_listGet one contact list by ID: name, created and modified dates, and total, active, and disabled contact counts.read-only
directiq_create_listCreate a new, empty contact list and return it with its new ID.write
directiq_rename_listRename a contact list by ID.destructive, idempotent
directiq_delete_listPermanently delete a contact list by ID.destructive, idempotent
directiq_add_contact_to_listAdd an existing contact (by contact ID) to a list.write, idempotent
directiq_remove_contact_from_listRemove a contact from one list.destructive, idempotent
directiq_list_segmentsList saved segments (rule-based groups of contacts) with their IDs and names.read-only
Tags
directiq_list_tagsList every tag in the account with its ID and name.read-only
directiq_get_tagGet one tag by ID with its name and details.read-only
directiq_create_tagCreate a new tag and return it with its ID.write
directiq_rename_tagRename a tag by ID.destructive, idempotent
directiq_delete_tagPermanently delete a tag by ID and remove it from every contact.destructive, idempotent
directiq_tag_contactApply one or more tags to a contact by contact ID.write, idempotent
directiq_untag_contactRemove a tag from a contact, identified by the contact email and the tag name.destructive, idempotent
Campaigns and results
directiq_list_campaignsList email campaigns and automation flows with ID, name, type (Regular or Flow), status, subject, sender, target lists, recipient count, and scheduled send time.read-only
directiq_get_campaignGet one campaign by ID: name, type, status, subject, sender, target lists and segments, template ID, recipient count, and scheduled send time.read-only
directiq_campaign_statsSummarize how a campaign performed: counts of recipients, opens, clicks, bounces, unsubscribes, and complaints, plus open, click, bounce, and unsubscribe rates as percentages of recipients.read-only
directiq_campaign_reportList the contacts behind one campaign result, one page at a time: who received, opened, clicked, bounced, unsubscribed, or complained.read-only
Transactional email
directiq_send_emailSend one transactional email (a receipt, confirmation, or one-to-one message) immediately.write, open-world
Any other endpoint
directiq_list_endpointsList known DirectIQ API operations (HTTP method, API group, path, summary).read-only
directiq_read_requestIssue an authenticated GET request to any DirectIQ endpoint and return the JSON response.read-only
directiq_write_requestIssue an authenticated POST, PUT, PATCH, or DELETE request to any DirectIQ endpoint.destructive

Every tool declares MCP annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) so your client can ask for confirmation before changes. Full API schemas: https://rest.directiq.com/{core|contacts|subscription}/swagger/index.html.

Documentation

Example prompts

  • "Give me an overview of my DirectIQ account: contacts, lists, tags, and confirmed senders."
  • "How did my last campaign do? Show open, click, and unsubscribe rates."
  • "Who clicked in the 'Fall Promo' campaign?"
  • "Add [email protected] to my Newsletter list as Jamie Lee and tag them 'vip'."
  • "Create a list called 'Fall Promo 2026', then move everyone tagged 'vip' into it."
  • "Send a transactional email from [email protected] to [email protected] with the subject 'Order confirmed' and a short thank-you message."

Security and data handling

  • Your API key is sent only as the x-api-key header over HTTPS to mcp.directiq.com. Never paste it into chat or commit it to a repository.
  • The server acts with the permissions of the API key's DirectIQ account. Revoke or rotate keys anytime in Settings → API Keys.
  • Emails can only be sent from confirmed sender addresses on your account.
  • Tools marked destructive above can overwrite or permanently delete data (for example directiq_delete_contact, directiq_delete_list, and directiq_write_request). Keep your client's tool-approval prompts on, and only auto-approve read-only tools.
  • Tool calls without an API key are rejected with HTTP 401; listing the tools works without one.
  • Privacy policy: https://www.directiq.com/privacy-policy · Terms: https://www.directiq.com/terms-of-service

Pricing

The MCP server is free to use. Emails sent through it count toward your normal DirectIQ plan, including pay-as-you-go. See directiq.com/pricing.

Support

Changelog

See CHANGELOG.md.

License

The documentation and configuration in this repository are licensed under the MIT License. The DirectIQ service itself is governed by the DirectIQ Terms of Service.

Source: README.md at commit 1cf65d9

Tools

30

directiq_account_overview

Account Overview

Summarize the account in one call: total contacts, active/disabled status counts, list count, tag count, and confirmed sender addresses. A good first call in a conversation, and the way to find a valid "from" address for directiq_send_email. Each section that fails to load is returned as { error } without failing the rest.

Takes no parameters.

directiq_get_contact

Get Contact

Get one contact by numeric ID: email, first and last name, status, created and updated dates, tags, lists, and notes. Use when you already have the ID; to find a contact, page through directiq_list_contacts. Returns an error if no contact has that ID.

Parametersidrequired

directiq_list_contacts

List Contacts

List contacts one page at a time, oldest first, with each contact's ID, email, name, status, tags, and lists. Returns { pageNumber, totalCount, result, hasNextPage }; request the next pageNumber while hasNextPage is true. Use to browse contacts or find an ID. For just the total, use directiq_contact_count instead.

ParameterspageSizepageNumber

directiq_contact_count

Contact Count

Return the total number of contacts in the account as a single number. Use for a quick count; for counts plus active/disabled status, lists, tags, and senders, use directiq_account_overview.

Takes no parameters.

directiq_upsert_contact

Add or Update Contact

Add a contact to a list, creating the contact if the email is new or updating its name if it already exists. Optionally applies tags (created if missing). Use this to create contacts; to change other fields on an existing contact, use directiq_update_contact. Returns import counts (inserted, alreadyExisting, addedToList); emails on a suppression or bounce list are counted but not added.

ParameterstagsemailrequiredlistIdrequiredlastNamefirstName

directiq_update_contact

Update Contact

Update fields on an existing contact by ID, such as firstName, lastName, or email. Only the fields you pass change, and they overwrite the current values. To create a contact, use directiq_upsert_contact; to change list or tag membership, use the list and tag tools.

Parametersidrequiredfieldsrequired

directiq_delete_contact

Delete Contact

Permanently delete a contact by ID, removing it from every list and tag. This cannot be undone. Confirm with the user first; to only take a contact off one list, use directiq_remove_contact_from_list.

Parametersidrequired

directiq_list_lists

List Contact Lists

List every contact list in the account with its ID and name. Use to find a list ID before adding contacts, sending campaigns, or calling directiq_get_list.

Takes no parameters.

directiq_get_list

Get Contact List

Get one contact list by ID: name, created and modified dates, and total, active, and disabled contact counts. Use directiq_list_lists to find the ID. Returns an error if no list has that ID.

Parametersidrequired

directiq_create_list

Create Contact List

Create a new, empty contact list and return it with its new ID. Calling it twice creates two lists with the same name, so check directiq_list_lists first. Add contacts afterwards with directiq_upsert_contact or directiq_add_contact_to_list.

Parametersnamerequired

directiq_rename_list

Rename Contact List

Rename a contact list by ID. Its contacts are unchanged; the previous name is overwritten.

Parametersidrequirednamerequired

directiq_delete_list

Delete Contact List

Permanently delete a contact list by ID. The contacts themselves are kept, but their membership in this list is lost. This cannot be undone; confirm with the user first.

Parametersidrequired

directiq_add_contact_to_list

Add Contact to List

Add an existing contact (by contact ID) to a list. Adding a contact that is already on the list has no effect. To add someone by email who may not exist yet, use directiq_upsert_contact.

ParameterslistIdrequiredcontactIdrequired

directiq_remove_contact_from_list

Remove Contact from List

Remove a contact from one list. The contact stays in the account and on its other lists; to delete the contact entirely, use directiq_delete_contact.

ParameterslistIdrequiredcontactIdrequired

directiq_list_segments

List Segments

List saved segments (rule-based groups of contacts) with their IDs and names. Returns an empty array if the account has none. Segments are managed in the DirectIQ dashboard.

Takes no parameters.

directiq_list_tags

List Tags

List every tag in the account with its ID and name. Use to check whether a tag exists or to find its ID before renaming or deleting it.

Takes no parameters.

directiq_get_tag

Get Tag

Get one tag by ID with its name and details. Use directiq_list_tags to find the ID. Returns an error if no tag has that ID.

Parametersidrequired

directiq_create_tag

Create Tag

Create a new tag and return it with its ID. Check directiq_list_tags first to avoid duplicates. To tag a contact, use directiq_tag_contact, which also creates missing tags.

Parametersnamerequired

directiq_rename_tag

Rename Tag

Rename a tag by ID. Contacts keep the tag under its new name; the previous name is overwritten.

Parametersidrequirednamerequired

directiq_delete_tag

Delete Tag

Permanently delete a tag by ID and remove it from every contact. Contacts are kept. This cannot be undone; confirm with the user first.

Parametersidrequired

directiq_tag_contact

Tag Contact

Apply one or more tags to a contact by contact ID. Tags that do not exist yet are created. Applying a tag the contact already has has no effect.

ParameterstagsrequiredcontactIdrequired

directiq_untag_contact

Untag Contact

Remove a tag from a contact, identified by the contact email and the tag name. The tag itself and the contact are kept; to delete the tag everywhere, use directiq_delete_tag.

Parameterstagrequiredemailrequired

directiq_list_campaigns

List Campaigns

List email campaigns and automation flows with ID, name, type (Regular or Flow), status, subject, sender, target lists, recipient count, and scheduled send time. Returns { campaigns, nextPageToken }; pass nextPageToken back to get the next page (null means no more). Use the IDs with directiq_campaign_stats for performance.

ParametersnextPageToken

directiq_get_campaign

Get Campaign

Get one campaign by ID: name, type, status, subject, sender, target lists and segments, template ID, recipient count, and scheduled send time. For opens, clicks, and other results, use directiq_campaign_stats.

Parametersidrequired

directiq_campaign_stats

Campaign Stats

Summarize how a campaign performed: counts of recipients, opens, clicks, bounces, unsubscribes, and complaints, plus open, click, bounce, and unsubscribe rates as percentages of recipients. Use directiq_campaign_report to see which contacts did what. A section that fails to load is returned as an error without failing the rest.

ParameterscampaignIdrequired

directiq_campaign_report

Campaign Report

List the contacts behind one campaign result, one page at a time: who received, opened, clicked, bounced, unsubscribed, or complained. Returns { totalCount, result }. Optionally filter to one email address, or for clicks, to one link. For totals and rates only, use directiq_campaign_stats.

ParameterslinktyperequiredemailpageSizecampaignIdrequiredpageNumber

directiq_send_email

Send Transactional Email

Send one transactional email (a receipt, confirmation, or one-to-one message) immediately. It is delivered to real recipients and cannot be recalled, and it counts toward the account’s sending plan. The from address must be a confirmed sender on the account (see directiq_account_overview). Not for bulk marketing: campaigns are sent from the DirectIQ dashboard.

ParameterscctorequiredbccfromrequiredcontentrequiredsubjectrequiredfromName

directiq_list_endpoints

List DirectIQ Endpoints

List known DirectIQ API operations (HTTP method, API group, path, summary). Optionally filter by a search term. Call GET operations with directiq_read_request and POST/PUT/PATCH/DELETE operations with directiq_write_request.

Parameterssearch

directiq_read_request

DirectIQ Read Request

Issue an authenticated GET request to any DirectIQ endpoint and return the JSON response. Prefer a dedicated directiq_* tool when one exists; use this for read operations without one, found with directiq_list_endpoints (e.g. segments for a contact, email client reports). Full request/response schemas for each group are in the DirectIQ API docs at https://rest.directiq.com/{group}/swagger/index.html (core, contacts, subscription).

Parameterspathrequiredgrouprequiredquery

directiq_write_request

DirectIQ Write Request

Issue an authenticated POST, PUT, PATCH, or DELETE request to any DirectIQ endpoint. May create, modify, or permanently delete account data, including bulk operations. Prefer a dedicated directiq_* tool when one exists; use this only for operations without one, found with directiq_list_endpoints, and confirm destructive calls with the user first. Full request/response schemas for each group are in the DirectIQ API docs at https://rest.directiq.com/{group}/swagger/index.html (core, contacts, subscription).

Parametersbodypathrequiredgrouprequiredquerymethodrequired

Version history

2
  1. v0.2.0LatestOct 30, 2026
  2. v0.1.0Oct 23, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts