salesforce-metadata-mcp 2.1.4 → 2.3.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 +143 -0
- package/README.md +176 -19
- package/dist/index.js +4 -4
- package/dist/schemas/index.js +628 -0
- package/dist/services/deployment.js +24 -1
- package/dist/services/salesforce.js +1461 -0
- package/dist/tools/agentforce.js +3 -3
- package/dist/tools/apex.js +71 -3
- package/dist/tools/automation.js +25 -2
- package/dist/tools/data.js +86 -0
- package/dist/tools/deployment.js +40 -4
- package/dist/tools/experience.js +52 -2
- package/dist/tools/index.js +8 -0
- package/dist/tools/integrations.js +22 -2
- package/dist/tools/objects.js +42 -2
- package/dist/tools/omnichannel.js +279 -0
- package/dist/tools/omnistudio.js +280 -0
- package/dist/tools/reports.js +46 -0
- package/dist/tools/security.js +82 -2
- package/dist/tools/ui.js +72 -2
- package/package.json +26 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,148 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [2.3.0] - 2026-05-28
|
|
4
|
+
|
|
5
|
+
### New Tools — 30 Additions Across 8 Categories
|
|
6
|
+
|
|
7
|
+
#### OmniStudio — FlexCards (4 new)
|
|
8
|
+
- `sf_create_flexcard` — Create an OmniStudio FlexCard (OmniUiCard) with data source, fields, actions, and states
|
|
9
|
+
- `sf_update_flexcard` — Update an existing FlexCard definition
|
|
10
|
+
- `sf_activate_flexcard` — Activate a FlexCard so it is visible on Lightning pages and Experience Cloud sites
|
|
11
|
+
- `sf_get_flexcard` — Retrieve a FlexCard's full configuration
|
|
12
|
+
|
|
13
|
+
#### OmniStudio — OmniScripts (4 new)
|
|
14
|
+
- `sf_create_omniscript` — Create an OmniScript guided interaction flow (Type/SubType/Language)
|
|
15
|
+
- `sf_update_omniscript` — Update an OmniScript's metadata properties
|
|
16
|
+
- `sf_activate_omniscript` — Activate an OmniScript for use in FlexCards and Experience Cloud
|
|
17
|
+
- `sf_get_omniscript` — Retrieve an OmniScript's configuration
|
|
18
|
+
|
|
19
|
+
#### OmniStudio — DataRaptors (2 new)
|
|
20
|
+
- `sf_create_dataraptor` — Create a DataRaptor interface (Extract, Transform, or Load) with field mappings
|
|
21
|
+
- `sf_get_dataraptor` — Retrieve a DataRaptor's configuration and mappings
|
|
22
|
+
|
|
23
|
+
#### OmniStudio — Integration Procedures (4 new)
|
|
24
|
+
- `sf_create_integration_procedure` — Create an Integration Procedure (server-side OmniScript orchestration)
|
|
25
|
+
- `sf_update_integration_procedure` — Update an Integration Procedure's metadata
|
|
26
|
+
- `sf_get_integration_procedure` — Retrieve an Integration Procedure's configuration
|
|
27
|
+
- `sf_activate_integration_procedure` — Activate an Integration Procedure
|
|
28
|
+
|
|
29
|
+
#### OmniStudio — Calculation Matrix & Procedure (2 new)
|
|
30
|
+
- `sf_create_calculation_matrix` — Create a Calculation Matrix for rule-based lookups and decision tables
|
|
31
|
+
- `sf_create_calculation_procedure` — Create a Calculation Procedure orchestrating multi-step calculations
|
|
32
|
+
|
|
33
|
+
#### OmniChannel — Service Channels & Routing (6 new)
|
|
34
|
+
- `sf_create_service_channel` — Create an OmniChannel Service Channel (Case, Chat, Messaging, Voice, Email, Custom)
|
|
35
|
+
- `sf_create_routing_configuration` — Create a Routing Configuration (LeastActive, MostAvailable, ExternalRouting)
|
|
36
|
+
- `sf_create_queue_routing_config` — Link a Routing Configuration to a Queue for OmniChannel routing
|
|
37
|
+
- `sf_create_presence_configuration` — Create a Presence Configuration (PresenceUserConfig) with channel assignments
|
|
38
|
+
- `sf_create_presence_status` — Create a Presence Status (Online, Busy, Offline) for agents
|
|
39
|
+
- `sf_assign_presence_status` — Grant Presence Status access to Profiles and Permission Sets
|
|
40
|
+
|
|
41
|
+
#### OmniChannel — Skills & Field Service (4 new)
|
|
42
|
+
- `sf_create_skill` — Create a Skill for skill-based routing or Field Service Lightning
|
|
43
|
+
- `sf_assign_skill_to_agent` — Assign a Skill to a service agent (creates ServiceResource if needed)
|
|
44
|
+
- `sf_create_service_territory` — Create a Field Service Service Territory with optional operating hours
|
|
45
|
+
- `sf_create_work_type` — Create a Field Service Work Type with duration, block times, and skill requirements
|
|
46
|
+
|
|
47
|
+
#### Messaging, Chat & Voice (4 new)
|
|
48
|
+
- `sf_create_messaging_channel` — Create a Messaging Channel (SMS, WhatsApp, Facebook, Apple Messages, etc.)
|
|
49
|
+
- `sf_create_chat_button` — Create a Live Chat button for embedding on websites
|
|
50
|
+
- `sf_create_embedded_service` — Create an Embedded Service deployment bundling Chat or Messaging for websites
|
|
51
|
+
- `sf_create_bot_routing` — Configure Einstein Bot escalation to a human agent queue via BotVersion transfer dialog
|
|
52
|
+
|
|
53
|
+
### Bug Fixes
|
|
54
|
+
- Fixed `SetExperienceSiteBrandingSchema` — parameters now correctly match the `setExperienceSiteBranding` service function (`brandingSetName`, `label`, `properties[]` instead of individual color fields)
|
|
55
|
+
|
|
56
|
+
### CI/CD
|
|
57
|
+
- Added `.github/workflows/ci.yml` — build and module load validation on every push/PR
|
|
58
|
+
- Added `.github/workflows/publish.yml` — automated npm publish on `v*` tag push
|
|
59
|
+
- Added `.github/workflows/sf-release-monitor.yml` — opens a release review issue 3× per year (Feb, Jun, Oct)
|
|
60
|
+
- Added `.github/workflows/api-version-bump.yml` — auto PR to bump API version on Salesforce release dates
|
|
61
|
+
- Added `.github/ISSUE_TEMPLATE/sf-release-review.md` — structured checklist for Salesforce release reviews
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## [2.2.0] - 2026-05-28
|
|
66
|
+
|
|
67
|
+
### New Tools — 47 Additions Across 10 Categories
|
|
68
|
+
|
|
69
|
+
#### Objects & Fields (4 new)
|
|
70
|
+
- `sf_update_custom_object` — Update label, plural label, description, and feature toggles on an existing custom object
|
|
71
|
+
- `sf_update_custom_field` — Update label, description, help text, required, unique, or default value on an existing field
|
|
72
|
+
- `sf_create_relationship_field` — Create Lookup or Master-Detail relationship fields with delete constraint control
|
|
73
|
+
- `sf_create_formula_field` — Create formula fields with Text, Number, Currency, Date, DateTime, Checkbox, or Percent return types
|
|
74
|
+
|
|
75
|
+
#### Security & Access (8 new)
|
|
76
|
+
- `sf_assign_permission_set` — Assign a Permission Set to a user by username or userId
|
|
77
|
+
- `sf_create_permission_set_group` — Create a Permission Set Group combining multiple Permission Sets
|
|
78
|
+
- `sf_update_permission_set` — Add or modify object and field permissions on an existing Permission Set
|
|
79
|
+
- `sf_create_muting_permission_set` — Create a Muting Permission Set to suppress permissions within a Permission Set Group
|
|
80
|
+
- `sf_set_field_level_security` — Set read/edit field-level security across multiple Profiles and Permission Sets in one call
|
|
81
|
+
- `sf_set_org_wide_defaults` — Set the org-wide default sharing model (Private, Read, ReadWrite) for any object
|
|
82
|
+
- `sf_clone_profile` — Clone an existing Profile under a new name, inheriting all permissions
|
|
83
|
+
- `sf_update_profile` — Update object permissions, field security, tab visibility, and app visibility on a Profile
|
|
84
|
+
|
|
85
|
+
#### UI & Page Layouts (7 new)
|
|
86
|
+
- `sf_update_page_layout` — Read and update an existing Page Layout (rename/label changes)
|
|
87
|
+
- `sf_assign_page_layout` — Assign a Page Layout to one or more Profiles for a given object
|
|
88
|
+
- `sf_create_lightning_record_page` — Create a Lightning Record Page (FlexiPage) with regions and components
|
|
89
|
+
- `sf_create_lightning_home_page` — Create a Lightning Home Page (FlexiPage) with regions and components
|
|
90
|
+
- `sf_update_lightning_page` — Update an existing Lightning Page label
|
|
91
|
+
- `sf_assign_lightning_page` — Assign a Lightning Page to an Experience Cloud site via Connect API
|
|
92
|
+
- `sf_assign_compact_layout` — Set the default compact layout assignment for an object
|
|
93
|
+
|
|
94
|
+
#### Automation (2 new)
|
|
95
|
+
- `sf_activate_flow` — Activate the latest version of a Flow via the Tooling API
|
|
96
|
+
- `sf_create_quick_action` — Create Quick Actions (Create, Update, LogACall, SendEmail, Flow, Visualforce) for objects or globally
|
|
97
|
+
|
|
98
|
+
#### Apex, Visualforce & Aura (5 new)
|
|
99
|
+
- `sf_update_apex_class` — Redeploy an Apex class with updated source code
|
|
100
|
+
- `sf_get_apex_class` — Retrieve Apex class source code and metadata via Tooling API
|
|
101
|
+
- `sf_get_code_coverage` — Get Apex code coverage percentages per class from the last test run
|
|
102
|
+
- `sf_create_visualforce_page` — Deploy a Visualforce page via zip-based Metadata API
|
|
103
|
+
- `sf_create_aura_component` — Deploy an Aura component bundle (markup, controller, helper, CSS)
|
|
104
|
+
|
|
105
|
+
#### Reports & Dashboards (4 new)
|
|
106
|
+
- `sf_create_report` — Create Salesforce Reports (Tabular, Summary, Matrix, Joined) with filters and columns
|
|
107
|
+
- `sf_update_dashboard` — Update title or description on an existing Dashboard
|
|
108
|
+
- `sf_create_report_folder` — Create Report or Dashboard folders with access control
|
|
109
|
+
- `sf_share_report_folder` — Share a Report or Dashboard folder with users, roles, groups, or territories
|
|
110
|
+
|
|
111
|
+
#### Users & Data (8 new)
|
|
112
|
+
- `sf_create_user` — Create a new Salesforce user with profile, role, and locale settings
|
|
113
|
+
- `sf_update_user` — Update user properties (name, email, title, department, active status)
|
|
114
|
+
- `sf_assign_queue_member` — Add a user to an existing Queue
|
|
115
|
+
- `sf_create_public_group` — Create a Public Group for sharing rules or email distribution
|
|
116
|
+
- `sf_query_records` — Execute SOQL queries to read records (full SOQL or structured params)
|
|
117
|
+
- `sf_create_record` — Create a single SObject record via REST API
|
|
118
|
+
- `sf_update_record` — Update an existing SObject record by ID via REST API
|
|
119
|
+
- `sf_bulk_import_records` — Bulk insert/upsert/update/delete records via Bulk API 2.0 with CSV data
|
|
120
|
+
|
|
121
|
+
#### Integrations (2 new)
|
|
122
|
+
- `sf_create_outbound_message` — Create Workflow Outbound Messages for SOAP-based external integrations
|
|
123
|
+
- `sf_create_auth_provider` — Create OAuth 2.0 Auth Providers for third-party identity and Named Credentials
|
|
124
|
+
|
|
125
|
+
#### Deployment & Metadata (3 new, 1 enhanced)
|
|
126
|
+
- `sf_validate_deployment` — Run a check-only deployment to validate metadata without making changes
|
|
127
|
+
- `sf_list_metadata` — List all metadata components of a given type in the org
|
|
128
|
+
- `sf_deploy_metadata` _(enhanced)_ — Added `testLevel` parameter (NoTestRun, RunSpecifiedTests, RunLocalTests, RunAllTestsInOrg)
|
|
129
|
+
|
|
130
|
+
#### Experience Cloud (5 new)
|
|
131
|
+
- `sf_publish_experience_site` — Publish an Experience Cloud site to make pending changes live
|
|
132
|
+
- `sf_update_experience_site` — Update site settings: description, guest user access, guest profile
|
|
133
|
+
- `sf_create_navigation_menu` — Create Navigation Menus with items linking to pages or external URLs
|
|
134
|
+
- `sf_add_experience_site_members` — Add member profiles/permission sets to an Experience Cloud site
|
|
135
|
+
- `sf_set_experience_site_branding` — Apply branding properties (colors, fonts, logos) via BrandingSet
|
|
136
|
+
|
|
137
|
+
### Infrastructure
|
|
138
|
+
- Added `patch()` and `del()` methods to the REST client (`createClient`)
|
|
139
|
+
- Added `buildVFPageZip()` — builds Visualforce page deploy zip
|
|
140
|
+
- Added `buildAuraZip()` — builds Aura component bundle deploy zip
|
|
141
|
+
- API version updated to 66.0 in `sf_deploy_metadata` (was 62.0)
|
|
142
|
+
- Bulk API 2.0 job management: create → upload CSV → close → poll
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
3
146
|
## [2.1.4] - 2026-05-28
|
|
4
147
|
|
|
5
148
|
### New Tools — Agentforce CRUD & Debugging
|
package/README.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# salesforce-metadata-mcp
|
|
2
2
|
|
|
3
|
-
[](https://npmjs.com/package/salesforce-metadata-mcp)
|
|
4
4
|
[](LICENSE)
|
|
5
5
|
[](https://modelcontextprotocol.io)
|
|
6
6
|
|
|
7
|
-
**The most comprehensive Salesforce
|
|
7
|
+
**The most comprehensive Salesforce MCP server.** 140+ 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, bulk data, users, reports, security, and more.
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -46,7 +46,43 @@ See [SETUP.md](SETUP.md) for all authentication methods and detailed setup instr
|
|
|
46
46
|
|
|
47
47
|
---
|
|
48
48
|
|
|
49
|
-
##
|
|
49
|
+
## What's New in v2.3.0
|
|
50
|
+
|
|
51
|
+
30 new tools across 8 categories:
|
|
52
|
+
|
|
53
|
+
- **OmniStudio — FlexCards** — Create, update, activate, and get FlexCards (OmniUiCard)
|
|
54
|
+
- **OmniStudio — OmniScripts** — Create, update, activate, and get OmniScripts
|
|
55
|
+
- **OmniStudio — DataRaptors** — Create Extract/Transform/Load DataRaptor interfaces
|
|
56
|
+
- **OmniStudio — Integration Procedures** — Create, update, activate, and get Integration Procedures
|
|
57
|
+
- **OmniStudio — Calculation Matrix & Procedure** — Create decision tables and multi-step calculation procedures
|
|
58
|
+
- **OmniChannel — Service Channels & Routing** — Service Channels, Routing Configurations, Queue links, Presence Configurations and Statuses
|
|
59
|
+
- **OmniChannel — Skills & Field Service** — Create skills, assign to agents, create Service Territories and Work Types
|
|
60
|
+
- **Messaging, Chat & Voice** — Messaging Channels (SMS/WhatsApp/etc.), Live Chat Buttons, Embedded Service deployments, Bot escalation routing
|
|
61
|
+
|
|
62
|
+
See [CHANGELOG.md](CHANGELOG.md) for the full release notes.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## What's New in v2.2.0
|
|
67
|
+
|
|
68
|
+
47 new tools across 10 categories:
|
|
69
|
+
|
|
70
|
+
- **Objects & Fields** — Update objects/fields, create relationship fields (Lookup/Master-Detail), formula fields
|
|
71
|
+
- **Security** — Assign permission sets, create PSGs, set field-level security, set OWDs, clone/update profiles
|
|
72
|
+
- **UI & Layouts** — Update page layouts, assign layouts to profiles, create/update/assign Lightning pages, set compact layouts
|
|
73
|
+
- **Automation** — Activate flows, create Quick Actions
|
|
74
|
+
- **Apex/VF/Aura** — Update Apex classes, get class source, get code coverage, deploy Visualforce pages, deploy Aura components
|
|
75
|
+
- **Reports & Dashboards** — Create reports, update dashboards, create/share report folders
|
|
76
|
+
- **Users & Data** — Create/update users, assign queue members, create public groups, query/create/update records, bulk import via Bulk API 2.0
|
|
77
|
+
- **Integrations** — Create Outbound Messages, create Auth Providers
|
|
78
|
+
- **Deployment** — Validate deployments (check-only), list metadata components
|
|
79
|
+
- **Experience Cloud** — Publish sites, update site settings, create navigation menus, add member profiles, apply branding
|
|
80
|
+
|
|
81
|
+
See [CHANGELOG.md](CHANGELOG.md) for the full release notes.
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Tools (140+)
|
|
50
86
|
|
|
51
87
|
### Objects & Fields
|
|
52
88
|
| Tool | Description |
|
|
@@ -54,6 +90,10 @@ See [SETUP.md](SETUP.md) for all authentication methods and detailed setup instr
|
|
|
54
90
|
| `sf_create_custom_object` | Create a custom object with all settings |
|
|
55
91
|
| `sf_create_custom_field` | Create a field on any object (all types) |
|
|
56
92
|
| `sf_add_picklist_values` | Add values to existing picklist fields |
|
|
93
|
+
| `sf_update_custom_object` | Update label, description, or feature toggles on an existing object |
|
|
94
|
+
| `sf_update_custom_field` | Update label, description, help text, required, or default value on an existing field |
|
|
95
|
+
| `sf_create_relationship_field` | Create Lookup or Master-Detail relationship fields |
|
|
96
|
+
| `sf_create_formula_field` | Create formula fields with any return type |
|
|
57
97
|
| `sf_create_custom_metadata_type` | Create a Custom Metadata Type (__mdt) |
|
|
58
98
|
| `sf_create_custom_metadata_record` | Create records for a Custom Metadata Type |
|
|
59
99
|
| `sf_create_custom_label` | Create or update Custom Labels |
|
|
@@ -69,6 +109,7 @@ See [SETUP.md](SETUP.md) for all authentication methods and detailed setup instr
|
|
|
69
109
|
| Tool | Description |
|
|
70
110
|
|------|-------------|
|
|
71
111
|
| `sf_create_flow` | Create any Flow type with advanced elements |
|
|
112
|
+
| `sf_activate_flow` | Activate the latest version of a Flow |
|
|
72
113
|
| `sf_create_approval_process` | Create multi-step approval processes |
|
|
73
114
|
| `sf_create_validation_rule` | Create data validation rules |
|
|
74
115
|
| `sf_create_workflow_field_update` | Create workflow field update actions |
|
|
@@ -81,36 +122,57 @@ See [SETUP.md](SETUP.md) for all authentication methods and detailed setup instr
|
|
|
81
122
|
| `sf_create_duplicate_rule` | Create duplicate detection rules |
|
|
82
123
|
| `sf_create_apex_email_service` | Create inbound Apex email services |
|
|
83
124
|
| `sf_create_scheduled_job` | Schedule an Apex class via cron |
|
|
125
|
+
| `sf_create_quick_action` | Create Quick Actions for records or globally |
|
|
84
126
|
|
|
85
127
|
### Security & Access
|
|
86
128
|
| Tool | Description |
|
|
87
129
|
|------|-------------|
|
|
88
130
|
| `sf_create_permission_set` | Create Permission Sets with all permissions |
|
|
131
|
+
| `sf_assign_permission_set` | Assign a Permission Set to a user |
|
|
132
|
+
| `sf_create_permission_set_group` | Create Permission Set Groups |
|
|
133
|
+
| `sf_update_permission_set` | Update object and field permissions on a Permission Set |
|
|
134
|
+
| `sf_create_muting_permission_set` | Create a Muting Permission Set for a group |
|
|
135
|
+
| `sf_set_field_level_security` | Set field read/edit access across Profiles and Permission Sets |
|
|
136
|
+
| `sf_set_org_wide_defaults` | Set org-wide default sharing model for an object |
|
|
137
|
+
| `sf_clone_profile` | Clone an existing Profile to a new name |
|
|
138
|
+
| `sf_update_profile` | Update object/field permissions, tabs, and app visibility on a Profile |
|
|
89
139
|
| `sf_create_role` | Create roles in the role hierarchy |
|
|
90
140
|
| `sf_create_queue` | Create queues with members and objects |
|
|
91
141
|
| `sf_create_named_credential` | Create Named Credentials for callouts |
|
|
92
142
|
|
|
93
|
-
### UI &
|
|
143
|
+
### UI & Page Layouts
|
|
94
144
|
| Tool | Description |
|
|
95
145
|
|------|-------------|
|
|
96
146
|
| `sf_create_lightning_app` | Create Lightning Apps with nav/utility bars |
|
|
97
147
|
| `sf_create_tab` | Create Custom Tabs for objects |
|
|
98
148
|
| `sf_create_compact_layout` | Create Compact Layouts (highlights panel) |
|
|
149
|
+
| `sf_assign_compact_layout` | Set the default compact layout for an object |
|
|
99
150
|
| `sf_create_list_view` | Create List Views with filters and columns |
|
|
100
151
|
| `sf_create_email_template` | Create HTML/text email templates |
|
|
101
152
|
| `sf_create_static_resource` | Create Static Resources from text content |
|
|
102
153
|
| `sf_create_custom_notification_type` | Create Custom Notification Types |
|
|
103
154
|
| `sf_create_report_type` | Create Custom Report Types |
|
|
104
155
|
| `sf_create_dashboard` | Create Dashboards with components |
|
|
105
|
-
|
|
106
|
-
|
|
156
|
+
| `sf_update_page_layout` | Update an existing Page Layout |
|
|
157
|
+
| `sf_assign_page_layout` | Assign a Page Layout to Profiles |
|
|
158
|
+
| `sf_create_lightning_record_page` | Create a Lightning Record Page (FlexiPage) |
|
|
159
|
+
| `sf_create_lightning_home_page` | Create a Lightning Home Page (FlexiPage) |
|
|
160
|
+
| `sf_update_lightning_page` | Update an existing Lightning Page |
|
|
161
|
+
| `sf_assign_lightning_page` | Assign a Lightning Page to an Experience site |
|
|
162
|
+
|
|
163
|
+
### Apex, Visualforce & Aura
|
|
107
164
|
| Tool | Description |
|
|
108
165
|
|------|-------------|
|
|
109
166
|
| `sf_create_apex_class` | Deploy any Apex class to the org |
|
|
167
|
+
| `sf_update_apex_class` | Update an existing Apex class |
|
|
168
|
+
| `sf_get_apex_class` | Retrieve Apex class source via Tooling API |
|
|
169
|
+
| `sf_get_code_coverage` | Get Apex code coverage percentages |
|
|
110
170
|
| `sf_create_apex_trigger` | Deploy an Apex trigger on any object |
|
|
111
171
|
| `sf_create_apex_test_class` | Deploy test classes, optionally run tests |
|
|
112
172
|
| `sf_run_apex_tests` | Run test classes and get pass/fail results |
|
|
113
173
|
| `sf_execute_anonymous_apex` | Execute anonymous Apex and see output |
|
|
174
|
+
| `sf_create_visualforce_page` | Deploy a Visualforce page |
|
|
175
|
+
| `sf_create_aura_component` | Deploy an Aura component bundle |
|
|
114
176
|
|
|
115
177
|
### LWC Development
|
|
116
178
|
| Tool | Description |
|
|
@@ -118,36 +180,113 @@ See [SETUP.md](SETUP.md) for all authentication methods and detailed setup instr
|
|
|
118
180
|
| `sf_create_lwc` | Deploy a full LWC with HTML, JS, CSS |
|
|
119
181
|
| `sf_update_lwc` | Update an existing LWC component |
|
|
120
182
|
|
|
183
|
+
### Reports & Dashboards
|
|
184
|
+
| Tool | Description |
|
|
185
|
+
|------|-------------|
|
|
186
|
+
| `sf_create_report` | Create Salesforce Reports (Tabular, Summary, Matrix, Joined) |
|
|
187
|
+
| `sf_update_dashboard` | Update title or description on a Dashboard |
|
|
188
|
+
| `sf_create_report_folder` | Create Report or Dashboard folders |
|
|
189
|
+
| `sf_share_report_folder` | Share report/dashboard folders with users, roles, or groups |
|
|
190
|
+
|
|
191
|
+
### Users & Data
|
|
192
|
+
| Tool | Description |
|
|
193
|
+
|------|-------------|
|
|
194
|
+
| `sf_create_user` | Create a new Salesforce user |
|
|
195
|
+
| `sf_update_user` | Update user properties (name, email, active status) |
|
|
196
|
+
| `sf_assign_queue_member` | Add a user to a Queue |
|
|
197
|
+
| `sf_create_public_group` | Create a Public Group for sharing or email |
|
|
198
|
+
| `sf_query_records` | Execute SOQL queries to read records |
|
|
199
|
+
| `sf_create_record` | Create a single SObject record |
|
|
200
|
+
| `sf_update_record` | Update an existing SObject record by ID |
|
|
201
|
+
| `sf_bulk_import_records` | Bulk insert/upsert/update/delete via Bulk API 2.0 |
|
|
202
|
+
|
|
121
203
|
### Experience Cloud
|
|
122
204
|
| Tool | Description |
|
|
123
205
|
|------|-------------|
|
|
124
206
|
| `sf_create_experience_site` | Create Experience Cloud sites |
|
|
125
207
|
| `sf_create_experience_page` | Create pages within Experience sites |
|
|
208
|
+
| `sf_publish_experience_site` | Publish a site to make changes live |
|
|
209
|
+
| `sf_update_experience_site` | Update site settings (description, guest access) |
|
|
210
|
+
| `sf_create_navigation_menu` | Create Navigation Menus for a site |
|
|
211
|
+
| `sf_add_experience_site_members` | Add member profiles/permission sets to a site |
|
|
212
|
+
| `sf_set_experience_site_branding` | Apply branding (colors, fonts, logos) to a site |
|
|
126
213
|
|
|
127
214
|
### Agentforce
|
|
128
215
|
| Tool | Description |
|
|
129
216
|
|------|-------------|
|
|
130
|
-
| `sf_create_agent` | Create Agentforce Agents |
|
|
131
|
-
| `sf_create_agent_topic` | Create Agent Topics
|
|
132
|
-
| `sf_create_agent_action` | Create Agent Actions linked to Flows
|
|
217
|
+
| `sf_create_agent` | Create Agentforce Agents (EinsteinCopilot/ExternalCopilot) |
|
|
218
|
+
| `sf_create_agent_topic` | Create Agent Topics (GenAiPlugin) |
|
|
219
|
+
| `sf_create_agent_action` | Create Agent Actions (GenAiFunction) linked to Flows or Apex |
|
|
220
|
+
| `sf_create_agent_planner` | Create GenAiPlannerBundle linking topics to agent |
|
|
221
|
+
| `sf_activate_agent` | Activate an agent |
|
|
222
|
+
| `sf_deactivate_agent` | Deactivate an agent before modifications |
|
|
223
|
+
| `sf_get_agent` | Get full agent configuration |
|
|
224
|
+
| `sf_list_agents` | List all agents in the org |
|
|
225
|
+
| `sf_update_agent_topic` | Update an agent topic (auto deactivate/reactivate) |
|
|
226
|
+
| `sf_update_agent_action` | Update an agent action and regenerate schema files |
|
|
227
|
+
| `sf_delete_agent` | Delete an agent and optionally its topics/actions |
|
|
228
|
+
| `sf_test_agent` | Send a test message and get the agent's response |
|
|
229
|
+
| `sf_get_agent_logs` | Query ConversationDefinitionEventLog for debug info |
|
|
133
230
|
|
|
134
231
|
### External Integrations
|
|
135
232
|
| Tool | Description |
|
|
136
233
|
|------|-------------|
|
|
137
234
|
| `sf_create_connected_app` | Create OAuth Connected Apps |
|
|
138
|
-
| `sf_create_external_data_source` | Create External Data Sources
|
|
235
|
+
| `sf_create_external_data_source` | Create External Data Sources |
|
|
139
236
|
| `sf_create_external_object` | Create External Objects (__x) |
|
|
140
237
|
| `sf_create_remote_site_setting` | Whitelist external URLs for callouts |
|
|
141
238
|
| `sf_create_csp_setting` | Create CSP trusted sites for LWC |
|
|
239
|
+
| `sf_create_outbound_message` | Create Workflow Outbound Messages |
|
|
240
|
+
| `sf_create_auth_provider` | Create OAuth Auth Providers |
|
|
142
241
|
|
|
143
242
|
### Change Sets & Deployment
|
|
144
243
|
| Tool | Description |
|
|
145
244
|
|------|-------------|
|
|
146
245
|
| `sf_create_outbound_change_set` | Create Outbound Change Sets |
|
|
147
246
|
| `sf_add_to_change_set` | Add components to a change set |
|
|
148
|
-
| `sf_deploy_metadata` | Deploy metadata
|
|
247
|
+
| `sf_deploy_metadata` | Deploy metadata (with testLevel support) |
|
|
248
|
+
| `sf_validate_deployment` | Validate deployment without making changes |
|
|
149
249
|
| `sf_check_deploy_status` | Check deployment job status |
|
|
150
250
|
| `sf_retrieve_metadata` | Retrieve metadata from the org |
|
|
251
|
+
| `sf_list_metadata` | List all components of a metadata type |
|
|
252
|
+
|
|
253
|
+
### OmniStudio
|
|
254
|
+
| Tool | Description |
|
|
255
|
+
|------|-------------|
|
|
256
|
+
| `sf_create_flexcard` | Create an OmniStudio FlexCard with data source, fields, and actions |
|
|
257
|
+
| `sf_update_flexcard` | Update an existing FlexCard |
|
|
258
|
+
| `sf_activate_flexcard` | Activate a FlexCard |
|
|
259
|
+
| `sf_get_flexcard` | Get FlexCard configuration |
|
|
260
|
+
| `sf_create_omniscript` | Create an OmniScript guided interaction flow |
|
|
261
|
+
| `sf_update_omniscript` | Update an OmniScript |
|
|
262
|
+
| `sf_activate_omniscript` | Activate an OmniScript |
|
|
263
|
+
| `sf_get_omniscript` | Get OmniScript configuration |
|
|
264
|
+
| `sf_create_dataraptor` | Create a DataRaptor interface (Extract/Transform/Load) |
|
|
265
|
+
| `sf_get_dataraptor` | Get DataRaptor configuration |
|
|
266
|
+
| `sf_create_integration_procedure` | Create an Integration Procedure |
|
|
267
|
+
| `sf_update_integration_procedure` | Update an Integration Procedure |
|
|
268
|
+
| `sf_get_integration_procedure` | Get Integration Procedure configuration |
|
|
269
|
+
| `sf_activate_integration_procedure` | Activate an Integration Procedure |
|
|
270
|
+
| `sf_create_calculation_matrix` | Create a Calculation Matrix for rule-based lookups |
|
|
271
|
+
| `sf_create_calculation_procedure` | Create a Calculation Procedure with multi-step logic |
|
|
272
|
+
|
|
273
|
+
### OmniChannel & Field Service
|
|
274
|
+
| Tool | Description |
|
|
275
|
+
|------|-------------|
|
|
276
|
+
| `sf_create_service_channel` | Create an OmniChannel Service Channel |
|
|
277
|
+
| `sf_create_routing_configuration` | Create a Routing Configuration |
|
|
278
|
+
| `sf_create_queue_routing_config` | Link a Routing Configuration to a Queue |
|
|
279
|
+
| `sf_create_presence_configuration` | Create a Presence Configuration for agents |
|
|
280
|
+
| `sf_create_presence_status` | Create a Presence Status |
|
|
281
|
+
| `sf_assign_presence_status` | Assign Presence Status to Profiles/Permission Sets |
|
|
282
|
+
| `sf_create_skill` | Create a Skill for routing or Field Service |
|
|
283
|
+
| `sf_assign_skill_to_agent` | Assign a Skill to a service agent |
|
|
284
|
+
| `sf_create_service_territory` | Create a Field Service Service Territory |
|
|
285
|
+
| `sf_create_work_type` | Create a Field Service Work Type |
|
|
286
|
+
| `sf_create_messaging_channel` | Create a Messaging Channel (SMS, WhatsApp, etc.) |
|
|
287
|
+
| `sf_create_chat_button` | Create a Live Chat Button |
|
|
288
|
+
| `sf_create_embedded_service` | Create an Embedded Service deployment |
|
|
289
|
+
| `sf_create_bot_routing` | Configure bot escalation to a human agent queue |
|
|
151
290
|
|
|
152
291
|
### MCP Server Management
|
|
153
292
|
| Tool | Description |
|
|
@@ -164,16 +303,19 @@ See [SETUP.md](SETUP.md) for all authentication methods and detailed setup instr
|
|
|
164
303
|
> "Create a custom object called Project__c with fields: Name (text), Status__c (picklist: Planning/Active/Complete), Budget__c (currency), then add a validation rule requiring Budget when Status is Active."
|
|
165
304
|
|
|
166
305
|
**Deploy Apex:**
|
|
167
|
-
> "Create an Apex class called OpportunityService that queries all Opps with Amount > 100000. Then create a test class for it."
|
|
306
|
+
> "Create an Apex class called OpportunityService that queries all Opps with Amount > 100000. Then create a test class for it and get the code coverage."
|
|
168
307
|
|
|
169
|
-
**Create
|
|
170
|
-
> "Create
|
|
308
|
+
**Create an Agentforce agent:**
|
|
309
|
+
> "Create an Agentforce agent called CRMAssistant that can create Account records. Build the flow, action, topic, planner, and agent — then activate it."
|
|
171
310
|
|
|
172
|
-
**Set up
|
|
173
|
-
> "Create a
|
|
311
|
+
**Set up Experience Cloud:**
|
|
312
|
+
> "Create a customer portal Experience Cloud site, add the Customer Community Plus Login profile as a member, create a home navigation menu, and publish the site."
|
|
174
313
|
|
|
175
|
-
**
|
|
176
|
-
> "
|
|
314
|
+
**Bulk data import:**
|
|
315
|
+
> "Import 500 Account records from this CSV data using Bulk API 2.0."
|
|
316
|
+
|
|
317
|
+
**Security setup:**
|
|
318
|
+
> "Create a permission set called Sales_Ops, grant read/edit on Opportunity and Account, set field-level security for Amount to readable and editable for the Sales profile and the Sales_Ops permission set."
|
|
177
319
|
|
|
178
320
|
---
|
|
179
321
|
|
|
@@ -195,13 +337,28 @@ See [SETUP.md](SETUP.md) for all authentication methods and detailed setup instr
|
|
|
195
337
|
## Documentation
|
|
196
338
|
|
|
197
339
|
- [SETUP.md](SETUP.md) — Prerequisites, authentication, Claude configuration
|
|
198
|
-
- [TOOLS.md](TOOLS.md) — All
|
|
340
|
+
- [TOOLS.md](TOOLS.md) — All 110+ tools with full parameter documentation
|
|
199
341
|
- [AGENTFORCE.md](AGENTFORCE.md) — Agentforce agent creation guide
|
|
200
342
|
- [APEX_LWC.md](APEX_LWC.md) — Apex and LWC development guide
|
|
201
343
|
- [CHANGELOG.md](CHANGELOG.md) — Version history
|
|
202
344
|
|
|
203
345
|
---
|
|
204
346
|
|
|
347
|
+
## CI/CD & Maintenance
|
|
348
|
+
|
|
349
|
+
This repository includes GitHub Actions workflows for automated maintenance:
|
|
350
|
+
|
|
351
|
+
| Workflow | Trigger | Action |
|
|
352
|
+
|----------|---------|--------|
|
|
353
|
+
| `ci.yml` | Push / PR | Build and verify module loads |
|
|
354
|
+
| `publish.yml` | Push tag `v*` | Publish to npm with provenance |
|
|
355
|
+
| `sf-release-monitor.yml` | Feb 1, Jun 1, Oct 1 | Opens a Salesforce release review issue |
|
|
356
|
+
| `api-version-bump.yml` | Feb 1, Jun 1, Oct 1 | Creates a PR to bump the API version |
|
|
357
|
+
|
|
358
|
+
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.
|
|
359
|
+
|
|
360
|
+
---
|
|
361
|
+
|
|
205
362
|
## License
|
|
206
363
|
|
|
207
364
|
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.
|
|
9
|
+
version: "2.3.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.
|
|
16
|
+
console.error("Salesforce Metadata MCP server v2.3.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.
|
|
41
|
+
res.end(JSON.stringify({ status: "ok", server: "salesforce-metadata-mcp", version: "2.3.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.
|
|
67
|
+
console.error(`Salesforce Metadata MCP server v2.3.0 running on http://localhost:${port}/mcp`);
|
|
68
68
|
});
|
|
69
69
|
}
|
|
70
70
|
// ─── Entry point ──────────────────────────────────────────────────────────────
|