Datacloud Mcp Query — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Datacloud Mcp Query (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
This MCP server provides a seamless integration between Cursor and Salesforce Data Cloud (formerly known as CDP), allowing you to execute SQL queries directly from Cursor. The server handles OAuth authentication with Salesforce and provides tools for exploring and querying Data Cloud tables.
📚 New to this? Start with [QUICK_START.md](QUICK_START.md) for copy-paste configuration examples.
# Clone the repository
git clone https://github.com/your-org/datacloud-mcp-query.git
cd datacloud-mcp-query
# Install dependencies
pip install -r requirements.txtYou'll need the absolute paths to both Python and server.py for the MCP configuration:
# Get your Python path
which python3
# Example output: /usr/bin/python3 or /Users/yourname/.pyenv/shims/python3
# Get the full path to server.py (run from the repo directory)
pwd
# Example output: /Users/yourname/projects/datacloud-mcp-query
# Your server.py path will be: /Users/yourname/projects/datacloud-mcp-query/server.pyChoose SF CLI (recommended) or OAuth PKCE - see Configuration section below for details.
Option A: Using Cursor UI (Recommended)
Option B: Edit Config File Directly
Alternatively, you can edit the MCP config file directly:
Location:
~/Library/Application Support/Cursor/User/globalStorage/mcp-settings.json~/.config/Cursor/User/globalStorage/mcp-settings.json%APPDATA%\Cursor\User\globalStorage\mcp-settings.jsonAdd the configuration from the examples below to this file.
The server supports two authentication methods. Choose the one that works best for your setup.
If you already use the Salesforce CLI for development, this is the simplest option.
Prerequisites:
sf org login web --alias myorgEnvironment Variables:
SF_ORG_ALIAS: Your SF CLI org alias or username (e.g., "myorg")Cursor MCP Configuration:
Add this to your Cursor MCP settings (replace the paths with your actual paths from Step 2):
{
"mcpServers": {
"datacloud": {
"command": "/usr/bin/python3",
"args": ["/Users/yourname/projects/datacloud-mcp-query/server.py"],
"env": {
"SF_ORG_ALIAS": "myorg"
},
"disabled": false,
"autoApprove": ["describe_table", "list_tables"]
}
}
}What to replace:
/usr/bin/python3 → Your Python path from which python3/Users/yourname/projects/datacloud-mcp-query/server.py → Your full path to server.pymyorg → Your SF CLI org alias (from sf org list)Use this method if you need a standalone setup without the SF CLI.
Prerequisites:
Environment Variables:
SF_CLIENT_ID: Your Salesforce OAuth client IDSF_CLIENT_SECRET: Your Salesforce OAuth client secretSF_LOGIN_URL (optional): The Salesforce login URL (default: "login.salesforce.com")SF_CALLBACK_URL (optional): OAuth callback URL (default: "http://localhost:55556/Callback")Cursor MCP Configuration:
Add this to your Cursor MCP settings (replace the paths and credentials with your values):
{
"mcpServers": {
"datacloud": {
"command": "/usr/bin/python3",
"args": ["/Users/yourname/projects/datacloud-mcp-query/server.py"],
"env": {
"SF_CLIENT_ID": "3MVG9...",
"SF_CLIENT_SECRET": "ABC123..."
},
"disabled": false,
"autoApprove": ["describe_table", "list_tables"]
}
}
}What to replace:
/usr/bin/python3 → Your Python path from which python3/Users/yourname/projects/datacloud-mcp-query/server.py → Your full path to server.py3MVG9... → Your Connected App's Client IDABC123... → Your Connected App's Client SecretOptional environment variables (add to env if needed):
"SF_LOGIN_URL": "login.salesforce.com",
"SF_CALLBACK_URL": "http://localhost:55556/Callback"The server automatically detects which authentication method to use:
DEFAULT_LIST_TABLE_FILTER: Filter pattern for listing tables (default: '%'). You can use this to filter for example to known "curated" tables that all share the same prefix. You can use the SQL Like syntax to express the filters.Here's a complete, working configuration example with SF CLI authentication:
{
"mcpServers": {
"datacloud": {
"command": "/usr/local/bin/python3",
"args": ["/Users/john/projects/datacloud-mcp-query/server.py"],
"env": {
"SF_ORG_ALIAS": "my-datacloud-org"
},
"disabled": false,
"autoApprove": ["describe_table", "list_tables"]
}
}
}Problem: "Python not found" or "module not found" errors
python3)/path/to/venv/bin/python/path/to/python3 -m pip install -r requirements.txt/usr/bin/python3 /path/to/server.py (should show MCP startup logs)Problem: Server fails to start
export SF_ORG_ALIAS=myorg && python server.py to see error messagessf org list that your org is authenticatedProblem: "No tools showing" in Cursor
python server.pyThe server provides the following tools:
DEFAULT_LIST_TABLE_FILTER patternThe server supports two authentication methods:
sf org login web)sf org display command~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.