salesforce-metadata-mcp 2.2.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,109 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.4.0] - 2026-05-28
4
+
5
+ ### New Tools — 14 Additions Across 6 Categories
6
+
7
+ #### Lightning Pages & App Builder (2 new)
8
+ - `sf_create_lightning_app_page` — Create a Lightning App Page (FlexiPage of type AppPage) for use in Lightning Apps
9
+ - `sf_create_letterhead` — Create email letterheads (Letterhead metadata) for Classic email templates
10
+
11
+ #### Users & Data Management (2 new)
12
+ - `sf_delete_record` — Delete a single SObject record by ID via REST API
13
+ - `sf_send_email` — Send email from Salesforce via the emailSimple invocable action
14
+
15
+ #### Audit Trail & Monitoring (4 new)
16
+ - `sf_get_setup_audit_trail` — Query SetupAuditTrail for org configuration change history (last 6 months)
17
+ - `sf_get_login_history` — Query LoginHistory for user login activity (source IP, browser, status)
18
+ - `sf_get_event_logs` — Fetch and parse EventLogFile entries (Login, API, Report, Flow, Apex, LightningPageView, etc.)
19
+ - `sf_get_field_history` — Query {Object}History for field-level change history on a specific record
20
+
21
+ #### Deployment & Org Management (1 new)
22
+ - `sf_compare_orgs` — Compare metadata between two orgs using SF CLI aliases; returns components only in source, only in target, or different in both
23
+
24
+ #### Integration & Connectivity (2 new)
25
+ - `sf_create_certificate` — Create a self-signed Certificate (Certificate metadata) for callout signing and SSO
26
+ - `sf_create_event_relay` — Create an EventRelayConfig to relay Platform Events or CDC to Amazon EventBridge or another event bus
27
+
28
+ #### Einstein & AI Features (3 new)
29
+ - `sf_create_einstein_prediction` — Create an Einstein Prediction Builder definition (MLPredictionDefinition metadata) for binary classification or regression
30
+ - `sf_create_next_best_action` — Create a Next Best Action recommendation strategy (RecommendationStrategy metadata)
31
+ - `sf_create_einstein_bot` — Create a classic Einstein Bot with ML domain and conversation dialogs (Bot + BotVersion metadata)
32
+
33
+ ### Notes on Existing Tools
34
+ The following tools requested in v2.4.0 were already present from earlier releases and are unchanged:
35
+ - Security & Permissions: `sf_create_permission_set_group`, `sf_create_muting_permission_set`, `sf_set_field_level_security`, `sf_set_org_wide_defaults`, `sf_clone_profile`, `sf_update_profile`
36
+ - Lightning Pages: `sf_create_lightning_record_page`, `sf_create_lightning_home_page`, `sf_update_lightning_page`, `sf_assign_lightning_page`, `sf_assign_compact_layout`
37
+ - Reports & Dashboards: `sf_create_report`, `sf_update_dashboard`, `sf_create_report_folder`, `sf_share_report_folder`
38
+ - Users & Data: `sf_create_user`, `sf_update_user`, `sf_assign_queue_member`, `sf_create_public_group`, `sf_query_records`, `sf_create_record`, `sf_update_record`, `sf_bulk_import_records`
39
+ - Deployment: `sf_validate_deployment`, `sf_list_metadata`
40
+ - Integrations: `sf_create_outbound_message`, `sf_create_auth_provider`
41
+ - GitHub Actions workflows: present since v2.3.0 (ci.yml, publish.yml, sf-release-monitor.yml, api-version-bump.yml)
42
+
43
+ ---
44
+
45
+ ## [2.3.0] - 2026-05-28
46
+
47
+ ### New Tools — 30 Additions Across 8 Categories
48
+
49
+ #### OmniStudio — FlexCards (4 new)
50
+ - `sf_create_flexcard` — Create an OmniStudio FlexCard (OmniUiCard) with data source, fields, actions, and states
51
+ - `sf_update_flexcard` — Update an existing FlexCard definition
52
+ - `sf_activate_flexcard` — Activate a FlexCard so it is visible on Lightning pages and Experience Cloud sites
53
+ - `sf_get_flexcard` — Retrieve a FlexCard's full configuration
54
+
55
+ #### OmniStudio — OmniScripts (4 new)
56
+ - `sf_create_omniscript` — Create an OmniScript guided interaction flow (Type/SubType/Language)
57
+ - `sf_update_omniscript` — Update an OmniScript's metadata properties
58
+ - `sf_activate_omniscript` — Activate an OmniScript for use in FlexCards and Experience Cloud
59
+ - `sf_get_omniscript` — Retrieve an OmniScript's configuration
60
+
61
+ #### OmniStudio — DataRaptors (2 new)
62
+ - `sf_create_dataraptor` — Create a DataRaptor interface (Extract, Transform, or Load) with field mappings
63
+ - `sf_get_dataraptor` — Retrieve a DataRaptor's configuration and mappings
64
+
65
+ #### OmniStudio — Integration Procedures (4 new)
66
+ - `sf_create_integration_procedure` — Create an Integration Procedure (server-side OmniScript orchestration)
67
+ - `sf_update_integration_procedure` — Update an Integration Procedure's metadata
68
+ - `sf_get_integration_procedure` — Retrieve an Integration Procedure's configuration
69
+ - `sf_activate_integration_procedure` — Activate an Integration Procedure
70
+
71
+ #### OmniStudio — Calculation Matrix & Procedure (2 new)
72
+ - `sf_create_calculation_matrix` — Create a Calculation Matrix for rule-based lookups and decision tables
73
+ - `sf_create_calculation_procedure` — Create a Calculation Procedure orchestrating multi-step calculations
74
+
75
+ #### OmniChannel — Service Channels & Routing (6 new)
76
+ - `sf_create_service_channel` — Create an OmniChannel Service Channel (Case, Chat, Messaging, Voice, Email, Custom)
77
+ - `sf_create_routing_configuration` — Create a Routing Configuration (LeastActive, MostAvailable, ExternalRouting)
78
+ - `sf_create_queue_routing_config` — Link a Routing Configuration to a Queue for OmniChannel routing
79
+ - `sf_create_presence_configuration` — Create a Presence Configuration (PresenceUserConfig) with channel assignments
80
+ - `sf_create_presence_status` — Create a Presence Status (Online, Busy, Offline) for agents
81
+ - `sf_assign_presence_status` — Grant Presence Status access to Profiles and Permission Sets
82
+
83
+ #### OmniChannel — Skills & Field Service (4 new)
84
+ - `sf_create_skill` — Create a Skill for skill-based routing or Field Service Lightning
85
+ - `sf_assign_skill_to_agent` — Assign a Skill to a service agent (creates ServiceResource if needed)
86
+ - `sf_create_service_territory` — Create a Field Service Service Territory with optional operating hours
87
+ - `sf_create_work_type` — Create a Field Service Work Type with duration, block times, and skill requirements
88
+
89
+ #### Messaging, Chat & Voice (4 new)
90
+ - `sf_create_messaging_channel` — Create a Messaging Channel (SMS, WhatsApp, Facebook, Apple Messages, etc.)
91
+ - `sf_create_chat_button` — Create a Live Chat button for embedding on websites
92
+ - `sf_create_embedded_service` — Create an Embedded Service deployment bundling Chat or Messaging for websites
93
+ - `sf_create_bot_routing` — Configure Einstein Bot escalation to a human agent queue via BotVersion transfer dialog
94
+
95
+ ### Bug Fixes
96
+ - Fixed `SetExperienceSiteBrandingSchema` — parameters now correctly match the `setExperienceSiteBranding` service function (`brandingSetName`, `label`, `properties[]` instead of individual color fields)
97
+
98
+ ### CI/CD
99
+ - Added `.github/workflows/ci.yml` — build and module load validation on every push/PR
100
+ - Added `.github/workflows/publish.yml` — automated npm publish on `v*` tag push
101
+ - Added `.github/workflows/sf-release-monitor.yml` — opens a release review issue 3× per year (Feb, Jun, Oct)
102
+ - Added `.github/workflows/api-version-bump.yml` — auto PR to bump API version on Salesforce release dates
103
+ - Added `.github/ISSUE_TEMPLATE/sf-release-review.md` — structured checklist for Salesforce release reviews
104
+
105
+ ---
106
+
3
107
  ## [2.2.0] - 2026-05-28
4
108
 
5
109
  ### New Tools — 47 Additions Across 10 Categories
package/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # salesforce-metadata-mcp
2
2
 
3
- [![Version](https://img.shields.io/badge/version-2.2.0-blue.svg)](https://npmjs.com/package/salesforce-metadata-mcp)
3
+ [![Version](https://img.shields.io/badge/version-2.4.0-blue.svg)](https://npmjs.com/package/salesforce-metadata-mcp)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
5
5
  [![MCP Compatible](https://img.shields.io/badge/MCP-Compatible-green.svg)](https://modelcontextprotocol.io)
6
6
 
7
- **The most comprehensive Salesforce MCP server.** 110+ tools for building, configuring, and automating Salesforce orgs directly from Claude or any MCP client — covering metadata, Apex, LWC, Agentforce agents, Experience Cloud, bulk data, users, reports, security, and more.
7
+ **The most comprehensive Salesforce MCP server.** 155+ tools for building, configuring, and automating Salesforce orgs directly from Claude or any MCP client — covering metadata, Apex, LWC, Agentforce agents, OmniStudio, OmniChannel, Experience Cloud, Field Service, Messaging, Einstein AI, audit trail, bulk data, users, reports, security, and more.
8
8
 
9
9
  ---
10
10
 
@@ -46,6 +46,41 @@ See [SETUP.md](SETUP.md) for all authentication methods and detailed setup instr
46
46
 
47
47
  ---
48
48
 
49
+ ## What's New in v2.4.0
50
+
51
+ 14 new tools across 6 categories:
52
+
53
+ - **Lightning App Page** — `sf_create_lightning_app_page` for Lightning App tab pages
54
+ - **Letterhead** — `sf_create_letterhead` for Classic email template branding
55
+ - **Record Delete** — `sf_delete_record` via REST API
56
+ - **Email** — `sf_send_email` via the emailSimple invocable action
57
+ - **Audit Trail** — `sf_get_setup_audit_trail`, `sf_get_login_history`, `sf_get_event_logs`, `sf_get_field_history`
58
+ - **Org Comparison** — `sf_compare_orgs` using SF CLI aliases
59
+ - **Certificates** — `sf_create_certificate` (self-signed, for callout signing/SSO)
60
+ - **Event Relay** — `sf_create_event_relay` to Amazon EventBridge or event bus
61
+ - **Einstein AI** — `sf_create_einstein_prediction`, `sf_create_next_best_action`, `sf_create_einstein_bot`
62
+
63
+ See [CHANGELOG.md](CHANGELOG.md) for full release notes.
64
+
65
+ ---
66
+
67
+ ## What's New in v2.3.0
68
+
69
+ 30 new tools across 8 categories:
70
+
71
+ - **OmniStudio — FlexCards** — Create, update, activate, and get FlexCards (OmniUiCard)
72
+ - **OmniStudio — OmniScripts** — Create, update, activate, and get OmniScripts
73
+ - **OmniStudio — DataRaptors** — Create Extract/Transform/Load DataRaptor interfaces
74
+ - **OmniStudio — Integration Procedures** — Create, update, activate, and get Integration Procedures
75
+ - **OmniStudio — Calculation Matrix & Procedure** — Create decision tables and multi-step calculation procedures
76
+ - **OmniChannel — Service Channels & Routing** — Service Channels, Routing Configurations, Queue links, Presence Configurations and Statuses
77
+ - **OmniChannel — Skills & Field Service** — Create skills, assign to agents, create Service Territories and Work Types
78
+ - **Messaging, Chat & Voice** — Messaging Channels (SMS/WhatsApp/etc.), Live Chat Buttons, Embedded Service deployments, Bot escalation routing
79
+
80
+ See [CHANGELOG.md](CHANGELOG.md) for the full release notes.
81
+
82
+ ---
83
+
49
84
  ## What's New in v2.2.0
50
85
 
51
86
  47 new tools across 10 categories:
@@ -65,7 +100,7 @@ See [CHANGELOG.md](CHANGELOG.md) for the full release notes.
65
100
 
66
101
  ---
67
102
 
68
- ## Tools (110+)
103
+ ## Tools (155+)
69
104
 
70
105
  ### Objects & Fields
71
106
  | Tool | Description |
@@ -142,6 +177,8 @@ See [CHANGELOG.md](CHANGELOG.md) for the full release notes.
142
177
  | `sf_create_lightning_home_page` | Create a Lightning Home Page (FlexiPage) |
143
178
  | `sf_update_lightning_page` | Update an existing Lightning Page |
144
179
  | `sf_assign_lightning_page` | Assign a Lightning Page to an Experience site |
180
+ | `sf_create_lightning_app_page` | Create a Lightning App Page (FlexiPage for App tabs) |
181
+ | `sf_create_letterhead` | Create an email letterhead for Classic email templates |
145
182
 
146
183
  ### Apex, Visualforce & Aura
147
184
  | Tool | Description |
@@ -182,6 +219,8 @@ See [CHANGELOG.md](CHANGELOG.md) for the full release notes.
182
219
  | `sf_create_record` | Create a single SObject record |
183
220
  | `sf_update_record` | Update an existing SObject record by ID |
184
221
  | `sf_bulk_import_records` | Bulk insert/upsert/update/delete via Bulk API 2.0 |
222
+ | `sf_delete_record` | Delete a single SObject record by ID |
223
+ | `sf_send_email` | Send email from Salesforce via the emailSimple action |
185
224
 
186
225
  ### Experience Cloud
187
226
  | Tool | Description |
@@ -221,6 +260,8 @@ See [CHANGELOG.md](CHANGELOG.md) for the full release notes.
221
260
  | `sf_create_csp_setting` | Create CSP trusted sites for LWC |
222
261
  | `sf_create_outbound_message` | Create Workflow Outbound Messages |
223
262
  | `sf_create_auth_provider` | Create OAuth Auth Providers |
263
+ | `sf_create_certificate` | Create a self-signed Certificate for callout signing/SSO |
264
+ | `sf_create_event_relay` | Create an Event Relay to Amazon EventBridge or event bus |
224
265
 
225
266
  ### Change Sets & Deployment
226
267
  | Tool | Description |
@@ -232,6 +273,60 @@ See [CHANGELOG.md](CHANGELOG.md) for the full release notes.
232
273
  | `sf_check_deploy_status` | Check deployment job status |
233
274
  | `sf_retrieve_metadata` | Retrieve metadata from the org |
234
275
  | `sf_list_metadata` | List all components of a metadata type |
276
+ | `sf_compare_orgs` | Compare metadata between two orgs using SF CLI aliases |
277
+
278
+ ### OmniStudio
279
+ | Tool | Description |
280
+ |------|-------------|
281
+ | `sf_create_flexcard` | Create an OmniStudio FlexCard with data source, fields, and actions |
282
+ | `sf_update_flexcard` | Update an existing FlexCard |
283
+ | `sf_activate_flexcard` | Activate a FlexCard |
284
+ | `sf_get_flexcard` | Get FlexCard configuration |
285
+ | `sf_create_omniscript` | Create an OmniScript guided interaction flow |
286
+ | `sf_update_omniscript` | Update an OmniScript |
287
+ | `sf_activate_omniscript` | Activate an OmniScript |
288
+ | `sf_get_omniscript` | Get OmniScript configuration |
289
+ | `sf_create_dataraptor` | Create a DataRaptor interface (Extract/Transform/Load) |
290
+ | `sf_get_dataraptor` | Get DataRaptor configuration |
291
+ | `sf_create_integration_procedure` | Create an Integration Procedure |
292
+ | `sf_update_integration_procedure` | Update an Integration Procedure |
293
+ | `sf_get_integration_procedure` | Get Integration Procedure configuration |
294
+ | `sf_activate_integration_procedure` | Activate an Integration Procedure |
295
+ | `sf_create_calculation_matrix` | Create a Calculation Matrix for rule-based lookups |
296
+ | `sf_create_calculation_procedure` | Create a Calculation Procedure with multi-step logic |
297
+
298
+ ### Audit Trail & Monitoring
299
+ | Tool | Description |
300
+ |------|-------------|
301
+ | `sf_get_setup_audit_trail` | Query SetupAuditTrail for org configuration change history |
302
+ | `sf_get_login_history` | Query LoginHistory for user login activity |
303
+ | `sf_get_event_logs` | Fetch and parse EventLogFile entries (Login, API, Flow, Apex, etc.) |
304
+ | `sf_get_field_history` | Get field-level change history for a specific record |
305
+
306
+ ### Einstein & AI
307
+ | Tool | Description |
308
+ |------|-------------|
309
+ | `sf_create_einstein_prediction` | Create an Einstein Prediction Builder definition |
310
+ | `sf_create_next_best_action` | Create a Next Best Action recommendation strategy |
311
+ | `sf_create_einstein_bot` | Create a classic Einstein Bot with dialogs |
312
+
313
+ ### OmniChannel & Field Service
314
+ | Tool | Description |
315
+ |------|-------------|
316
+ | `sf_create_service_channel` | Create an OmniChannel Service Channel |
317
+ | `sf_create_routing_configuration` | Create a Routing Configuration |
318
+ | `sf_create_queue_routing_config` | Link a Routing Configuration to a Queue |
319
+ | `sf_create_presence_configuration` | Create a Presence Configuration for agents |
320
+ | `sf_create_presence_status` | Create a Presence Status |
321
+ | `sf_assign_presence_status` | Assign Presence Status to Profiles/Permission Sets |
322
+ | `sf_create_skill` | Create a Skill for routing or Field Service |
323
+ | `sf_assign_skill_to_agent` | Assign a Skill to a service agent |
324
+ | `sf_create_service_territory` | Create a Field Service Service Territory |
325
+ | `sf_create_work_type` | Create a Field Service Work Type |
326
+ | `sf_create_messaging_channel` | Create a Messaging Channel (SMS, WhatsApp, etc.) |
327
+ | `sf_create_chat_button` | Create a Live Chat Button |
328
+ | `sf_create_embedded_service` | Create an Embedded Service deployment |
329
+ | `sf_create_bot_routing` | Configure bot escalation to a human agent queue |
235
330
 
236
331
  ### MCP Server Management
237
332
  | Tool | Description |
@@ -289,6 +384,21 @@ See [CHANGELOG.md](CHANGELOG.md) for the full release notes.
289
384
 
290
385
  ---
291
386
 
387
+ ## CI/CD & Maintenance
388
+
389
+ This repository includes GitHub Actions workflows for automated maintenance:
390
+
391
+ | Workflow | Trigger | Action |
392
+ |----------|---------|--------|
393
+ | `ci.yml` | Push / PR | Build and verify module loads |
394
+ | `publish.yml` | Push tag `v*` | Publish to npm with provenance |
395
+ | `sf-release-monitor.yml` | Feb 1, Jun 1, Oct 1 | Opens a Salesforce release review issue |
396
+ | `api-version-bump.yml` | Feb 1, Jun 1, Oct 1 | Creates a PR to bump the API version |
397
+
398
+ To publish a new version: bump the version in `package.json`, update `CHANGELOG.md`, then push a `vX.Y.Z` tag. The publish workflow handles the rest.
399
+
400
+ ---
401
+
292
402
  ## License
293
403
 
294
404
  MIT
package/dist/index.js CHANGED
@@ -6,14 +6,14 @@ import { createServer } from "http";
6
6
  import { registerTools } from "./tools/index.js";
7
7
  const server = new McpServer({
8
8
  name: "salesforce-metadata-mcp",
9
- version: "2.1.0",
9
+ version: "2.4.0",
10
10
  });
11
11
  registerTools(server);
12
12
  // ─── Transport: stdio ─────────────────────────────────────────────────────────
13
13
  async function runStdio() {
14
14
  const transport = new StdioServerTransport();
15
15
  await server.connect(transport);
16
- console.error("Salesforce Metadata MCP server v2.2.0 running on stdio");
16
+ console.error("Salesforce Metadata MCP server v2.4.0 running on stdio");
17
17
  }
18
18
  // ─── Transport: HTTP ──────────────────────────────────────────────────────────
19
19
  function readBody(req) {
@@ -38,7 +38,7 @@ async function runHTTP() {
38
38
  const url = req.url ?? "/";
39
39
  if (url === "/health" && req.method === "GET") {
40
40
  res.writeHead(200, { "Content-Type": "application/json" });
41
- res.end(JSON.stringify({ status: "ok", server: "salesforce-metadata-mcp", version: "2.1.0" }));
41
+ res.end(JSON.stringify({ status: "ok", server: "salesforce-metadata-mcp", version: "2.4.0"}));
42
42
  return;
43
43
  }
44
44
  if (url === "/mcp" && req.method === "POST") {
@@ -64,7 +64,7 @@ async function runHTTP() {
64
64
  res.end(JSON.stringify({ error: "Not found" }));
65
65
  });
66
66
  httpServer.listen(port, () => {
67
- console.error(`Salesforce Metadata MCP server v2.2.0 running on http://localhost:${port}/mcp`);
67
+ console.error(`Salesforce Metadata MCP server v2.4.0 running on http://localhost:${port}/mcp`);
68
68
  });
69
69
  }
70
70
  // ─── Entry point ──────────────────────────────────────────────────────────────