Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Salesforce Marketing

NPM · SALESFORCE-MARKETING-MCP

MCP server for Salesforce — 47 tools for leads, campaigns, pipeline, attribution, and reporting.

−3 this week 68 Trust /100

Last scanned (5 hours ago)

Scores higher than 35% of npm servers

Category CRM and Sales

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security81
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects zod 3.25.76, a direct dependency. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • 62 of 177 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency19
  • Repository check failed: the declared repository URL returned HTTP 404. See how to fix → View diagnostics → Fail
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 192 days ago).Pass
  • Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability78
  • AI-judged instruction clarity (excellent).Pass
  • Tool/resource definitions use about 4038 tokens (~85/item across 47 items; 47 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management83
  • Stability observed for 25 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage77
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 30% of tool parameters carry a description.Partial
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "sf_run_report" implies "execute" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 47 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 4 Nov 26 −3
    • Stability: pass → 0.80 functional
  • 24 Oct 26 −5
    • CVE-2023-54404 affects this package: high ▼ security
    • Known CVEs: pass → fail ▼ security
  • 23 Oct 26 +1
    • Stability: 0.97 → pass security
  • 22 Oct 26 −1
    • Stability: pass → 0.97 functional
  • 16 Oct 26 +1
    • Stability: 0.97 → pass security
  • 13 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

  • 12 Oct 26 −1

    No change was recorded against any check on this day. Stability & Change Management went from 97 to 87.

  • 7 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 93. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed npm/salesforce-marketing-mcp@1.0.1

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Vulnerabilities 1 finding
ID CVE Severity Vector Fix available
GHSA-mrhx-c7xc-m3w5 CVE-2023-54404 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 177 packages
Packages resolved 177
Stale 62
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 47 exposed · ~4,038 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
sf_activity_summary ~80

Aggregate Task and Event counts grouped by Lead Source, Campaign, or Owner. Returns total activities, completed activities, and open activities per group within an optional date range. Use to understand sales follow-up patterns and marketing-sourced activity volume.

NameTypeReqDescription
dateFromstring––
dateTostring––
groupBystringyes–

No output schema declared.

No examples provided.

sf_add_campaign_member ~90

Add a single Lead or Contact to a Salesforce Campaign as a CampaignMember. Provide either leadId or contactId (not both). Optionally set the initial Status (defaults to the campaign's default member status). Returns the new CampaignMember ID.

NameTypeReqDescription
campaignIdstringyes–
contactIdstring––
leadIdstring––
statusstring––

No output schema declared.

No examples provided.

sf_bulk_add_campaign_members ~91

Add up to 200 Leads and/or Contacts to a Salesforce Campaign in a single API call. Pass arrays of leadIds and/or contactIds. All members are assigned the same initial Status. Returns success/failure counts and any per-record errors.

NameTypeReqDescription
campaignIdstringyes–
contactIdsarray––
leadIdsarray––
statusstring––

No output schema declared.

No examples provided.

sf_campaign_influence ~91

Query Salesforce's CampaignInfluence object for multi-touch attribution data. Returns which campaigns influenced each opportunity, along with the opportunity amount, stage, and influence score. Filter by campaign ID or date range. Requires Campaign Influence to be enabled in the org.

NameTypeReqDescription
campaignIdstring––
dateFromstring––
dateTostring––
limitinteger––

No output schema declared.

No examples provided.

sf_campaign_member_status_breakdown ~70

Return a count of CampaignMembers grouped by Status for a specific campaign (e.g. Sent: 1200, Opened: 340, Responded: 87, Converted: 23). Essential for understanding engagement distribution within a single campaign.

NameTypeReqDescription
campaignIdstringyes–

No output schema declared.

No examples provided.

sf_campaign_performance_trend ~67

Show how CampaignMember additions have trended over time for a specific campaign. Groups member creation dates by week or month. Useful for visualizing campaign ramp-up, pacing, and drop-off patterns.

NameTypeReqDescription
campaignIdstringyes–
groupBystringyes–

No output schema declared.

No examples provided.

sf_campaign_roi ~119

Calculate marketing ROI metrics for one or all campaigns: ActualCost, BudgetedCost, NumberOfLeads, NumberOfContacts, NumberOfOpportunities, NumberOfWonOpportunities, AmountWonOpportunities, computed cost-per-lead, cost-per-opportunity, response rate %, and ROI %. Filter by date range or a specific campaign ID.

NameTypeReqDescription
campaignIdstring––
dateFromstring–ISO date YYYY-MM-DD
dateTostring–ISO date YYYY-MM-DD
limitinteger––

No output schema declared.

No examples provided.

sf_contact_by_email ~67

Look up Salesforce Contact records by exact email address. Returns up to 10 matches with full contact details and associated account. Useful for deduplication checks before creating new contacts or for finding the Salesforce record for a known email.

NameTypeReqDescription
emailstringyesEmail address to look up

No output schema declared.

No examples provided.

sf_convert_lead ~102

Convert a qualified Salesforce Lead into an Account, Contact, and optionally an Opportunity using the native Salesforce lead conversion process. Optionally merge into an existing Account or Contact by passing their IDs. Set doNotCreateOpportunity=true to skip opportunity creation.

NameTypeReqDescription
accountIdstring––
contactIdstring––
doNotCreateOpportunityboolean––
idstringyesSalesforce Lead ID
opportunityNamestring––

No output schema declared.

No examples provided.

sf_create_campaign ~132

Create a new Salesforce Campaign record. Set name, type, status, start/end dates, budgeted cost, expected revenue, and description. Returns the new Campaign ID. Use sf_add_campaign_member or sf_bulk_add_campaign_members to populate members afterward.

NameTypeReqDescription
budgetedCostnumber––
descriptionstring––
endDatestring–ISO date string YYYY-MM-DD
expectedRevenuenumber––
namestringyes–
startDatestring–ISO date string YYYY-MM-DD
statusstring––
typestring––

No output schema declared.

No examples provided.

sf_create_contact ~108

Create a new Contact record in Salesforce. Optionally link to an existing Account via accountId. Returns the new Contact ID. Use when a lead has been converted or when adding a known contact directly without going through the lead process.

NameTypeReqDescription
accountIdstring––
emailstringyes–
firstNamestring––
lastNamestringyes–
leadSourcestring––
phonestring––
titlestring––

No output schema declared.

No examples provided.

sf_create_lead ~122

Create a new Lead record in Salesforce. Requires at minimum a last name, email, and company. Optionally set title, phone, lead source, and description. Returns the new Lead ID on success. Use sf_convert_lead afterward to convert a qualified lead.

NameTypeReqDescription
companystringyes–
descriptionstring––
emailstringyes–
firstNamestring––
lastNamestringyes–
leadSourcestring––
phonestring––
titlestring––

No output schema declared.

No examples provided.

sf_create_task ~136

Create a new Task in Salesforce. Link it to a Lead or Contact via whoId, and optionally to a Campaign or Opportunity via whatId. Set subject, status (e.g. 'Not Started', 'Completed'), priority, due date, and description. Returns the new Task ID.

NameTypeReqDescription
descriptionstring––
dueDatestring–ISO date string YYYY-MM-DD
prioritystring––
statusstring––
subjectstringyes–
whatIdstring–Campaign, Opportunity, or Account ID
whoIdstring–Lead or Contact ID

No output schema declared.

No examples provided.

sf_describe_object ~99

Describe a Salesforce SObject and return all its field definitions: field API names, labels, data types, lengths, nullability, and relationship references. Use before writing SOQL to discover the correct field API names for Lead, Contact, Campaign, CampaignMember, or any custom object.

NameTypeReqDescription
fieldsOnlyboolean–Return only field names and types
objectstringyesSObject API name (e.g. Lead, Campaign)

No output schema declared.

No examples provided.

sf_forecast_summary ~81

Show open Opportunities with CloseDate within a specified range, grouped by StageName. Returns count, total amount, and weighted amount per stage. Use for short-term revenue forecasting and end-of-quarter pipeline reviews.

NameTypeReqDescription
closeByDateFromstring–ISO date YYYY-MM-DD
closeByDateTostring–ISO date YYYY-MM-DD

No output schema declared.

No examples provided.

sf_get_account ~60

Retrieve a complete Salesforce Account record by ID, including open opportunity count, total lead count, and all standard account fields (industry, billing address, phone, website, annual revenue, employee count, owner).

NameTypeReqDescription
idstringyesSalesforce Account ID

No output schema declared.

No examples provided.

sf_get_campaign ~76

Retrieve a complete Salesforce Campaign record by ID. Returns all performance metrics: NumberOfLeads, NumberOfContacts, NumberOfResponses, NumberOfOpportunities, NumberOfWonOpportunities, AmountWonOpportunities, ActualCost, BudgetedCost, ExpectedRevenue, and date range.

NameTypeReqDescription
idstringyesSalesforce Campaign ID

No output schema declared.

No examples provided.

sf_get_campaign_members ~103

List CampaignMember records for a given Campaign. Returns member status, HasResponded flag, FirstRespondedDate, and linked Lead or Contact fields (email, company, account name). Filter by Status (e.g. 'Sent', 'Responded', 'Converted'). Default limit 200, max 2000.

NameTypeReqDescription
campaignIdstringyesSalesforce Campaign ID
limitinteger––
statusstring–Filter by member status

No output schema declared.

No examples provided.

sf_get_contact ~57

Retrieve a complete Salesforce Contact record by its 18-character ID. Returns all standard fields including name, email, phone, title, account name, lead source, owner, and creation date.

NameTypeReqDescription
idstringyesSalesforce Contact ID

No output schema declared.

No examples provided.

sf_get_lead ~77

Retrieve a complete Salesforce Lead record by its 18-character ID. Returns all standard fields including name, email, company, title, phone, status, lead source, owner, creation date, and conversion details (ConvertedDate, ConvertedAccountId, ConvertedContactId, ConvertedOpportunityId).

NameTypeReqDescription
idstringyesSalesforce Lead ID

No output schema declared.

No examples provided.

sf_get_report_metadata ~65

Fetch the metadata for a Salesforce Analytics report — column definitions, field labels, data types, grouping fields, and filter configuration. Use before sf_run_report to understand what columns will be returned and what filters can be applied.

NameTypeReqDescription
reportIdstringyesSalesforce Report ID

No output schema declared.

No examples provided.

sf_lead_conversion_metrics ~82

Calculate Lead-to-Opportunity conversion rates grouped by Lead Source or Campaign. Returns total leads, converted leads, conversion rate %, and opportunities created per group. Filter by creation date range. Use to identify which channels produce the highest-quality leads.

NameTypeReqDescription
dateFromstring––
dateTostring––
groupBystringyes–

No output schema declared.

No examples provided.

sf_lead_source_breakdown ~87

Aggregate marketing attribution data by Lead Source. For each source returns: total leads, converted leads, conversion rate %, opportunities created, total opportunity amount, and closed-won revenue. Optionally filter by date range. The core channel-level ROI report.

NameTypeReqDescription
dateFromstring–ISO date YYYY-MM-DD
dateTostring–ISO date YYYY-MM-DD

No output schema declared.

No examples provided.

sf_list_account_contacts ~67

List all Contact records associated with a specific Salesforce Account. Returns name, email, title, phone, and lead source for each contact. Useful for understanding account coverage and identifying contacts for campaign targeting.

NameTypeReqDescription
accountIdstringyesSalesforce Account ID
limitinteger––

No output schema declared.

No examples provided.

sf_list_campaigns ~120

List Salesforce Campaign records sorted by last modified date. Filter by Status (e.g. 'Planned', 'Active', 'Completed'), Type (e.g. 'Email', 'Webinar', 'Event'), or activeOnly=true. Returns name, type, status, dates, member counts, and cost fields.

NameTypeReqDescription
activeOnlyboolean––
limitinteger––
statusstring–Campaign Status (e.g. Active, Completed)
typestring–Campaign Type (e.g. Email, Webinar)

No output schema declared.

No examples provided.

sf_list_objects ~95

List all queryable SObjects available in the connected Salesforce org. Filter by name substring (e.g. 'Campaign') or set customOnly=true to show only custom objects. Returns API name, label, and whether the object is createable, updateable, and queryable.

NameTypeReqDescription
customOnlyboolean–Return only custom objects (__c suffix)
filterstring–Case-insensitive substring filter on object name

No output schema declared.

No examples provided.

sf_list_reports ~72

List available Salesforce Analytics reports via the Analytics REST API. Returns report name, ID, type (summary, tabular, matrix), folder name, and last run date. Use to discover report IDs before calling sf_run_report.

NameTypeReqDescription
folderstring–Filter by folder name
limitinteger––

No output schema declared.

No examples provided.

sf_list_tasks_by_campaign ~65

List all Task records associated with a specific Campaign (via WhatId). Returns subject, status, priority, due date, and assigned owner. Useful for tracking follow-up tasks generated by a campaign.

NameTypeReqDescription
campaignIdstringyes–
limitinteger––

No output schema declared.

No examples provided.

sf_list_tasks_by_contact ~69

List all Task records associated with a specific Contact. Returns subject, status, priority, due date, and description sorted by most recent. Use to review the full activity history for a contact before outreach or account review.

NameTypeReqDescription
contactIdstringyes–
limitinteger––

No output schema declared.

No examples provided.

sf_list_tasks_by_lead ~69

List all Task records associated with a specific Lead. Returns subject, status, priority, due date, description, and creation date sorted by most recent. Useful for reviewing follow-up history on a lead before outreach.

NameTypeReqDescription
leadIdstringyes–
limitinteger––

No output schema declared.

No examples provided.

sf_mql_trend ~102

Track Marketing Qualified Lead (MQL) volume over time. Groups Lead records by creation date (week or month) where Status matches the target value (default: 'MQL'). Filter by date range. Use to spot MQL ramp-up, dips, or seasonal patterns in your lead pipeline.

NameTypeReqDescription
dateFromstring––
dateTostring––
groupBystringyes–
statusValuestring––

No output schema declared.

No examples provided.

sf_pipeline_by_campaign ~84

Show Opportunity pipeline grouped by primary Campaign. Returns campaign name, opportunity count, total amount, and a breakdown by StageName. Filter to open-only or include closed deals. Optionally filter by date range. Answers 'which campaigns are generating pipeline?'

NameTypeReqDescription
dateFromstring––
dateTostring––
openOnlyboolean––

No output schema declared.

No examples provided.

sf_pipeline_by_lead_source ~81

Summarize Opportunity pipeline grouped by Lead Source. Returns opportunity count, total amount, and weighted pipeline per source. Toggle openOnly and filter by date range. Use to understand which marketing channels are driving the most pipeline value.

NameTypeReqDescription
dateFromstring––
dateTostring––
openOnlyboolean––

No output schema declared.

No examples provided.

sf_pipeline_summary ~69

Summarize all Salesforce Opportunities grouped by StageName. Returns count, total amount, average probability, and weighted pipeline (amount × probability) per stage. Toggle openOnly to exclude Closed Won/Lost. The fastest way to get a full pipeline health snapshot.

NameTypeReqDescription
openOnlyboolean––

No output schema declared.

No examples provided.

sf_recent_activities_by_contact ~76

List recent Task and Event records associated with a specific Contact. Returns subject, type, status, priority, due date, and description sorted by most recent. Use to review engagement history before account reviews, renewals, or re-engagement campaigns.

NameTypeReqDescription
contactIdstringyes–
limitinteger––

No output schema declared.

No examples provided.

sf_recent_activities_by_lead ~77

List recent Task and Event records associated with a specific Lead. Returns subject, type, status, priority, due date, and description sorted by most recent. Use to review all follow-up history for a lead before making contact or assessing lead quality.

NameTypeReqDescription
leadIdstringyes–
limitinteger––

No output schema declared.

No examples provided.

sf_run_report ~82

Execute a saved Salesforce Analytics report by ID and return the results as structured rows. Optionally apply on-the-fly filters (column, operator, value). Returns the factMap data parsed into an array of row objects. Use sf_get_report_metadata first to understand available columns.

NameTypeReqDescription
filtersarray––
reportIdstringyesSalesforce Report ID

No output schema declared.

No examples provided.

sf_run_soql ~109

Execute a raw SOQL query against Salesforce. Use as an escape hatch when the preset tools don't cover your exact reporting shape. Supports all SOQL features including GROUP BY, aggregate functions, subqueries, and relationship traversal. Returns up to 2000 rows. See: developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta

NameTypeReqDescription
limitinteger–Override LIMIT in query (appended if not present)
soqlstringyesSOQL query to execute

No output schema declared.

No examples provided.

sf_search_accounts ~75

Search Salesforce Accounts by name using SOSL full-text search. Returns matching accounts with Id, name, industry, billing city, phone, website, and owner. Use to find an Account ID before looking up contacts or opportunities.

NameTypeReqDescription
limitinteger––
qstringyesSearch query (account name or domain)

No output schema declared.

No examples provided.

sf_search_contacts ~76

Search Salesforce Contacts by name or email using SOSL full-text search. Returns matching contacts with Id, name, email, phone, title, account name, and lead source. For exact email lookups use sf_contact_by_email instead.

NameTypeReqDescription
limitinteger––
qstringyesSearch query (name or email)

No output schema declared.

No examples provided.

sf_search_leads ~88

Search Salesforce leads by name, email, or company using SOSL full-text search. Returns matching leads with Id, name, email, company, title, status, and lead source. Use this for fuzzy lookups; use sf_lead_by_email for exact email matches.

NameTypeReqDescription
limitinteger––
qstringyesSearch query (name, email, or company)

No output schema declared.

No examples provided.

sf_top_campaigns ~97

Rank Salesforce campaigns by a chosen metric: 'responses' (NumberOfResponses), 'opportunities' (NumberOfOpportunities), or 'won_revenue' (AmountWonOpportunities). Optionally filter by date range. Returns the top N campaigns sorted by the selected metric descending.

NameTypeReqDescription
dateFromstring––
dateTostring––
limitinteger––
metricstringyes–

No output schema declared.

No examples provided.

sf_update_campaign ~83

Update one or more fields on an existing Salesforce Campaign. Pass the Campaign ID and a fields object with any standard field API names (e.g. Status, EndDate, ActualCost, Description). Commonly used to close out campaigns or update spend after the campaign runs.

NameTypeReqDescription
fieldsobjectyesFields to update
idstringyesSalesforce Campaign ID

No output schema declared.

No examples provided.

sf_update_campaign_member_status ~89

Update the Status and/or HasResponded flag on an existing CampaignMember record. Use to mark members as Responded, Converted, or any custom status defined in the Campaign's member status picklist. Requires the CampaignMember ID (not the Lead/Contact ID).

NameTypeReqDescription
campaignMemberIdstringyes–
hasRespondedboolean––
statusstringyes–

No output schema declared.

No examples provided.

sf_update_contact ~68

Update one or more fields on an existing Salesforce Contact record. Pass the 18-character Contact ID and a fields object with any standard or custom field API names. Returns the updated record on success.

NameTypeReqDescription
fieldsobjectyesFields to update
idstringyesSalesforce Contact ID

No output schema declared.

No examples provided.

sf_update_lead ~81

Update one or more fields on an existing Salesforce Lead record. Pass the 18-character Lead ID and a fields object with any standard or custom field API names (e.g. Status, LeadSource, Title, Phone). Returns the updated record on success.

NameTypeReqDescription
fieldsobjectyesFields to update
idstringyesSalesforce Lead ID

No output schema declared.

No examples provided.

sf_won_revenue_by_campaign ~82

Aggregate Closed Won Opportunity revenue grouped by primary Campaign (CampaignId on the Opportunity). Returns campaign name, count of won deals, and total won revenue. Filter by close date range. Answers 'which campaigns actually drove closed revenue?'

NameTypeReqDescription
dateFromstring––
dateTostring––
limitinteger––

No output schema declared.

No examples provided.

Install

How do I install the Salesforce Marketing MCP server?

Salesforce Marketing runs locally as an npm package, launched with npx -y salesforce-marketing-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · salesforce-marketing-mcp

# add to Claude Code
claude mcp add zleventer-salesforce-marketing-mcp -- npx -y salesforce-marketing-mcp
Common questions

What is the Salesforce Marketing MCP server?

Salesforce Marketing is an MCP server listed in the public MCP registry as io.github.ZLeventer/salesforce-marketing-mcp. MCP server for Salesforce, 47 tools for leads, campaigns, pipeline, attribution, and reporting. This page covers its npm package (salesforce-marketing-mcp).

Is the Salesforce Marketing MCP server safe to use?

Salesforce Marketing scores 68 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 5 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Salesforce Marketing MCP server expose?

Salesforce Marketing exposes 47 tools: sf_search_leads, sf_get_lead, sf_create_lead, sf_update_lead, sf_convert_lead, and 42 more. Their descriptions and schemas cost roughly 4,038 tokens of context every time the server is loaded.

Is the Salesforce Marketing MCP server still maintained?

Salesforce Marketing is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Salesforce Marketing MCP server under?

Salesforce Marketing declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.