salesforce-deployment-guard
Enables analyzing Salesforce deployment logs, validating metadata manifests, assessing permission risks, and generating remediation plans through deterministic, local-only rules.
README
Salesforce Deployment Guard MCP
A local-only Model Context Protocol server that turns Salesforce-style deployment evidence into structured findings and remediation steps.
This is a clean-room portfolio project. It uses deterministic rules and synthetic examples—no Salesforce org, credentials, LLM, telemetry, or network access.
Tools
| Tool | Purpose |
|---|---|
analyze_deployment_log |
Classifies missing metadata, invalid references, Apex test failures, permission failures, malformed XML, and unknown evidence. |
validate_metadata_manifest |
Detects missing dependencies, duplicates, invalid names, self-dependencies, and cycles. |
assess_permission_risk |
Flags broad system permissions, object Modify All, duplicate changes, and write-without-read combinations. |
build_remediation_plan |
Turns findings into a deterministic, priority-ordered checklist. |
Every tool is read-only and returns both human-readable text and structured JSON.
Quick start
Requirements: Node.js 20.19 or newer.
git clone https://github.com/qpulce-dev/salesforce-deployment-guard-mcp.git
cd salesforce-deployment-guard-mcp
npm ci
npm run verify
npm run build
Connect an MCP client
Codex CLI:
codex mcp add salesforce-deployment-guard -- node "/absolute/path/to/salesforce-deployment-guard-mcp/dist/server.js"
Claude Desktop-compatible configuration:
{
"mcpServers": {
"salesforce-deployment-guard": {
"command": "node",
"args": [
"/absolute/path/to/salesforce-deployment-guard-mcp/dist/server.js"
]
}
}
}
Restart the client after changing its MCP configuration.
Live MCP transcript
Captured from a real MCP client connected to the built server over stdio:
connected: salesforce-deployment-guard-mcp
tools: analyze_deployment_log, validate_metadata_manifest, assess_permission_risk, build_remediation_plan
call: analyze_deployment_log
arguments: {"log":"Error: no CustomField named Demo__c.Region__c found"}
{
"status": "issues_found",
"findings": [
{
"code": "SF_MISSING_METADATA",
"category": "missing_dependency",
"severity": "error",
"evidence": "Error: no CustomField named Demo__c.Region__c found",
"likelyCause": "A referenced metadata component is absent from the deployment set or target org.",
"nextChecks": [
"Confirm the referenced component exists in source control.",
"Add the dependency to the deployment manifest before its consumer."
]
}
]
}
The fixtures/ directory contains additional synthetic inputs.
Architecture
MCP client
-> Zod input schema
-> small tool handler
-> deterministic domain function
-> structured JSON + concise text
src/server.tsregisters tools and owns stdio startup.src/domain/contains pure diagnostic and planning logic.src/tools/result.tsformats stable MCP responses.tests/covers domain behavior, privacy rules, and a real stdio MCP handshake.fixtures/contains synthetic examples only.
Verification
npm run verify
That command runs formatting, ESLint, strict TypeScript checks, 39 tests, a production build, and the privacy scan. The MCP smoke test launches the built server, negotiates a client connection, lists all four tools, and calls one tool.
CI runs the same verification on Node.js 20.19 and 22.
Privacy and security
- No runtime network calls.
- No data persistence or telemetry.
- No environment variables or credentials required.
- Inputs are bounded before analysis.
- Errors do not return stack traces or local paths.
- Included examples use names such as
Demo__candDemo_Access. - The privacy scanner reports only file and rule identifiers, never matched secret text.
For an extra local organization-name check:
PRIVATE_ORG_NAMES="Private Org One,Private Org Two" npm run privacy:scan
Do not paste real production logs into public issues, commits, or fixtures.
Limits
This server provides deterministic review guidance. It does not connect to Salesforce, validate against a live org, replace a security review, or guarantee deployment success. Unknown evidence stays classified as unknown.
License
MIT © 2026 Queanu Pulce
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.