DirectIQ
Manage DirectIQ contacts, lists and tags, and send transactional email from any AI agent.
Should I use this
Quality & Safety
Findings (3)
- HIGH
- MEDIUMin directiq_read_request
- MEDIUMin directiq_write_request
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"directiq": {
"url": "https://mcp.directiq.com/mcp"
}
}
}Remote endpoints
https://mcp.directiq.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (15)
🟢directiq_get_contact(id)
Get a single contact by its numeric ID.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Numeric contact ID"
}
},
"required": [
"id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢directiq_list_contacts(page, pageSize)
List contacts, optionally paginated.
Input Schema
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "1-based page number"
},
"pageSize": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 500,
"description": "Results per page (max 500)"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢directiq_contact_count
Get the total number of contacts in the account.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴directiq_update_contact(id, fields)
Update a contact by ID. Provide the fields to change (e.g. firstName, lastName, email).
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Numeric contact ID"
},
"fields": {
"type": "object",
"additionalProperties": {},
"description": "Object of contact fields to update"
}
},
"required": [
"id",
"fields"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢directiq_list_lists
List all contact lists.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢directiq_get_list(id)
Get a contact list by its numeric ID.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Numeric list ID"
}
},
"required": [
"id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡directiq_create_list(name)
Create a new contact list.
Input Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "List name (max 200 characters)"
}
},
"required": [
"name"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢directiq_list_tags
List all tags.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢directiq_get_tag(id)
Get a tag by its numeric ID.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Numeric tag ID"
}
},
"required": [
"id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡directiq_create_tag(name)
Create a new tag.
Input Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"description": "Tag name"
}
},
"required": [
"name"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡directiq_send_email(from, to, subject, content, fromName, ...)
Send a transactional email.
Input Schema
{
"type": "object",
"properties": {
"from": {
"type": "string",
"format": "email",
"description": "Sender email address (must be a confirmed sender)"
},
"to": {
"type": "string",
"format": "email",
"description": "Recipient email address"
},
"subject": {
"type": "string",
"minLength": 2,
"description": "Email subject (min 2 characters)"
},
"content": {
"type": "string",
"minLength": 2,
"description": "Email body (HTML or text, min 2 characters)"
},
"fromName": {
"type": "string",
"description": "Sender display name"
},
"cc": {
"type": "array",
"items": {
"type": "string",
"format": "email"
},
"description": "CC recipients"
},
"bcc": {
"type": "array",
"items": {
"type": "string",
"format": "email"
},
"description": "BCC recipients"
}
},
"required": [
"from",
"to",
"subject",
"content"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢directiq_account_overview
Summarize the account: total contacts, active/disabled status counts, list count, tag count, and confirmed sender addresses. Individual sections degrade gracefully if unavailable.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢directiq_list_endpoints(search)
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.
Input Schema
{
"type": "object",
"properties": {
"search": {
"type": "string",
"description": "Optional case-insensitive filter matched against each operation path or summary"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢directiq_read_request(group, path, query)
Issue an authenticated GET request to any DirectIQ endpoint. Use directiq_list_endpoints to discover GET operations (group, path) that have no dedicated tool. 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).
Input Schema
{
"type": "object",
"properties": {
"group": {
"type": "string",
"enum": [
"core",
"contacts",
"subscription"
],
"description": "DirectIQ API group: core, contacts, or subscription"
},
"path": {
"type": "string",
"minLength": 1,
"pattern": "^\\/",
"description": "Endpoint path within the group, e.g. '/contact/list' or '/email/send'"
},
"query": {
"type": "object",
"additionalProperties": {
"type": [
"string",
"number",
"boolean"
]
},
"description": "Optional query parameters"
}
},
"required": [
"group",
"path"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴directiq_write_request(group, method, path, query, body)
Issue an authenticated POST, PUT, PATCH, or DELETE request to any DirectIQ endpoint. May create, modify, or permanently delete account data. Use directiq_list_endpoints to discover operations (method, group, path) that have no dedicated tool. 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).
Input Schema
{
"type": "object",
"properties": {
"group": {
"type": "string",
"enum": [
"core",
"contacts",
"subscription"
],
"description": "DirectIQ API group: core, contacts, or subscription"
},
"method": {
"type": "string",
"enum": [
"POST",
"PUT",
"PATCH",
"DELETE"
],
"description": "HTTP method"
},
"path": {
"type": "string",
"minLength": 1,
"pattern": "^\\/",
"description": "Endpoint path within the group, e.g. '/contact/list' or '/email/send'"
},
"query": {
"type": "object",
"additionalProperties": {
"type": [
"string",
"number",
"boolean"
]
},
"description": "Optional query parameters"
},
"body": {
"anyOf": [
{
"type": "object",
"additionalProperties": {}
},
{
"type": "array",
"items": {}
}
],
"description": "Optional JSON request body: an object, or an array for bulk operations"
}
},
"required": [
"group",
"method",
"path"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence