Palisade

email.palisadePublished by palisade.emailOfficial publisherv1.0.6Updated Oct 24, 2026

Monitor and manage email authentication (SPF, DKIM, DMARC, MTA-STS, BIMI) for your domains.

VerifiedStreamable HTTPWeb executableCloud & InfrastructureSecurity & Monitoring

Overview

AI-generated overview

Palisade monitors and manages email authentication (SPF, DKIM, DMARC, MTA-STS, BIMI) for your domains, letting an assistant audit DNS and work through DMARC fix

What you can do
Audit live DNS for any domain and check SPF includes against the 10-lookup limit, without an account on the public endpoint. List, create, update, delete and verify domains in the signed-in organization, and fetch the exact DNS records to publish. Read SPF diagnostics, the DMARC remediation plan, aggregate DMARC summaries and per-sender breakdowns, and manage remediation tasks. Enable hosted DMARC and MTA-STS, and manage groups, webhook endpoints and DNS provider connections. Review the activity log, subscription and billing, and create hosted prospecting PDF reports for up to ten domains.
When to use it
Useful when you want an assistant to check or fix a domain's email authentication posture, interpret DMARC reports, or track remediation work without switching between dashboards. The public endpoint suits quick read-only audits of domains you do not own in Palisade.
Requirements
Remote Streamable HTTP endpoint, or the npm package as a local stdio bridge (needs Node.js and npx). Sign-in uses OAuth through a browser on a fixed callback port 8765; no API key is used on the MCP endpoint. The public endpoint needs no account. Optional environment variables override the server URL, OAuth client id and callback port.
Before you install
Signed-in tools can create, update and delete domains, groups, webhook endpoints and reports, and can start Stripe checkout and billing portal sessions. Webhook signing secrets are returned only once, so store them immediately. Palisade only advises on DNS records; you publish them at your own provider. API keys are refused on the MCP endpoint.

Installation

In SourceWeft

  1. Open Palisade in the dashboard and add it to a workspace.
  2. Connect the required 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/email.palisade%2Fpalisade/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. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "palisade": {
      "type": "http",
      "url": "https://api.palisade.email/mcp"
    }
  }
}

README

@palisadeemail/mcp

Connect an MCP client to the Palisade Email Authentication MCP, which monitors and manages SPF, DKIM, DMARC, MTA-STS, and BIMI for your domains.

Palisade's MCP server is remote (Streamable HTTP at https://api.palisade.email/mcp). This package is a thin local bridge for stdio-based clients, using mcp-remote under the hood. It signs you in through Palisade's public OAuth client: the browser opens, you pick an organization, and the bridge holds a token scoped to it and to your role. There is no API key to create and nothing to configure.

Use it

bash
npx -y @palisadeemail/mcp

Client config (stdio)

json
{  "mcpServers": {    "palisade": {      "command": "npx",      "args": ["-y", "@palisadeemail/mcp"]    }  }}

Codex

bash
codex mcp add palisade -- npx -y @palisadeemail/mcp

Claude Code

Claude Code speaks Streamable HTTP itself, so it does not need the bridge. It signs in with the same client, on a fixed callback port:

bash
claude mcp add --transport http --client-id ryKtuiPypMeYMoL1Cmhxtz6BYrEYQbLV --callback-port 8765 palisade https://api.palisade.email/mcp

claude.ai

Add a custom connector with the URL, Authentication Always required, and OAuth client Use your own OAuth client with the client ID above and the secret left blank. See the MCP section of the developer guide.

What is refused

API keys are not accepted on the MCP endpoint; they remain the credential for the REST API. A client that registers its own OAuth client, through dynamic registration or a client ID metadata document, is refused too: the authorization server cannot attach an organization to such a client, so the endpoint answers 403 and names the client to use instead.

Without an account

https://api.palisade.email/mcp/public needs no sign-in and no Palisade account. It carries only the two tools that read public DNS for any domain, audit_domain and validate_spf_include; everything that reads or changes an organization's records lives on the signed-in endpoint above. Calls are throttled per client address.

Clients that speak Streamable HTTP connect to it directly:

bash
claude mcp add --transport http palisade-audit https://api.palisade.email/mcp/public

For stdio-only clients, point the bridge at it. The endpoint never asks for a token, so no browser opens:

json
{  "mcpServers": {    "palisade-audit": {      "command": "npx",      "args": ["-y", "@palisadeemail/mcp"],      "env": { "PALISADE_MCP_URL": "https://api.palisade.email/mcp/public" }    }  }}

Sign-in

The bridge listens on http://localhost:8765/oauth/callback while you sign in. The port is fixed because the authorization server registers exact redirect URIs; if something else holds that port, free it before connecting.

If the server connects but the Palisade tools are missing

A session that offers only authenticate / complete_authentication has not finished signing in. Those two tools come from the client's own pending-OAuth state, not from Palisade; complete the sign-in in the browser and the full list under Tools appears.

This can also mean a same-named server is configured somewhere else and is the one in effect. In Claude Code, --scope local applies only to the directory it was run in, and a palisade entry in user scope applies everywhere else. Check which entry actually wins:

bash
claude mcp get palisade

Tools

Accounts (get_account), live DNS reads for any domain (audit_domain, which scores the full SPF/DKIM/DMARC/BIMI/MTA-STS posture of a domain that need not be in your account, and validate_spf_include, which costs an SPF include against the 10-lookup limit before you add it), domains (list_domains, get_domain, which checks a domain in the account by id or by name, create_domain, update_domain, delete_domain, verify_domain), DNS setup (get_dns_records, which returns the exact records to publish at your own DNS provider), the remediation plan (get_domain_plan, which reports where a domain stands in the DMARC journey and what Palisade works next, including steps it has not opened tasks for yet), SPF diagnostics (get_spf, which reads the live record, its DNS lookup count against the 10-lookup limit, and the problems found), hosted DMARC (enable_hosted_dmarc), MTA-STS (get_mta_sts, enable_mta_sts, disable_mta_sts), remediation tasks (list_tasks, get_task, complete_task, dismiss_task), DMARC reporting (get_dmarc_summary, list_dmarc_senders, which report aggregate figures and per-source breakdowns rather than raw report XML), groups (list_groups, create_group, update_group, delete_group), billing (get_subscription, start_checkout, start_billing_portal), webhooks (list_webhook_events, list_webhook_endpoints, create_webhook_endpoint, delete_webhook_endpoint), prospecting reports (create_prospecting_report, which audits up to ten domains and returns a hosted PDF link to send a prospect, plus list_prospecting_reports, get_prospecting_report, delete_prospecting_report), DNS provider connections (list_dns_connections, get_dns_connection, and get_dns_connection_coverage, which answers whether Palisade can publish a domain's records itself instead of handing them over to be copied), and the account's activity log (list_activity_log, list_activity_log_actions).

Every tool that reads or changes Palisade's own records is scoped to the organization you signed in to; audit_domain and validate_spf_include are the exceptions, taking a domain name rather than an id and reading public DNS for anything.

create_prospecting_report also takes bare domain names, and audits every one of them, so it pays into the same live-DNS budget as audit_domain once per domain rather than once per report.

Palisade tells you which DNS records to publish; you apply them at whatever DNS provider hosts the domain. Payment happens on Stripe-hosted pages. Webhooks are the alternative to polling for long-running state changes: create_webhook_endpoint returns the signing secret once and never again, so store it when it is issued.

For coding agents

AGENTS.md says what Palisade is for, how to connect, the order of work and the rules for write tools. skills/palisade/SKILL.md is the same guidance as an installable skill, plugin.json is the agent-plugins.org manifest, and mcp.json is the stdio client config. The canonical copies are served by the product site: https://www.palisade.email/agents.md and https://www.palisade.email/.well-known/agent-skills/index.json.

Environment

All optional.

  • PALISADE_MCP_URL — override the server URL (defaults to https://api.palisade.email/mcp).
  • PALISADE_MCP_CLIENT_ID — override the OAuth client id (defaults to Palisade's public connector client).
  • PALISADE_MCP_CALLBACK_PORT — override the sign-in callback port (defaults to 8765; the authorization server must know the port you choose).

Source: README.md at commit 68caf5f

Tools

0
This server asks you to sign in, so SourceWeft could not read its tools without an account and has not indexed them. What a connected account sees can depend on that account and its permissions.

Version history

1
  1. v1.0.6LatestSep 16, 2026

Score

85% 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 listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts