Data 360 Query MCP Server
OfficialProvides tools for executing SQL queries against Salesforce Data Cloud, listing available tables, and describing table structures.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Data 360 Query MCP Serverdescribe the schema of the Account table"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Data 360 Query MCP Server
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 for copy-paste configuration examples.
Features
Execute SQL queries against Salesforce Data Cloud
List available tables in the database
Describe table columns and structure
Flexible authentication: SF CLI or OAuth2 with automatic fallback
Related MCP server: MCP Salesforce Lite
Adding to Cursor
Step 1: Clone and Install Dependencies
# Clone the repository
git clone https://github.com/your-org/datacloud-mcp-query.git
cd datacloud-mcp-query
# Install dependencies
pip install -r requirements.txtStep 2: Get Your Paths
You'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.pyStep 3: Set Up Authentication
Choose SF CLI (recommended) or OAuth PKCE - see Configuration section below for details.
Step 4: Add to Cursor
Option A: Using Cursor UI (Recommended)
Open Cursor IDE
Go to Cursor Settings → MCP
Click Add new global MCP server
Use one of the configuration examples below (replace paths with your actual paths from Step 2)
Enable the MCP server and click refresh to see the tool list
Option B: Edit Config File Directly
Alternatively, you can edit the MCP config file directly:
Location:
macOS:
~/Library/Application Support/Cursor/User/globalStorage/mcp-settings.jsonLinux:
~/.config/Cursor/User/globalStorage/mcp-settings.jsonWindows:
%APPDATA%\Cursor\User\globalStorage\mcp-settings.json
Add the configuration from the examples below to this file.
Configuration
The server supports two authentication methods. Choose the one that works best for your setup.
Authentication Method 1: SF CLI (Recommended)
If you already use the Salesforce CLI for development, this is the simplest option.
Prerequisites:
Install Salesforce CLI: https://developer.salesforce.com/tools/salesforcecli
Authenticate with your org:
sf org login web --alias myorg
Environment 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 fromwhich python3/Users/yourname/projects/datacloud-mcp-query/server.py→ Your full path to server.pymyorg→ Your SF CLI org alias (fromsf org list)
Authentication Method 2: OAuth PKCE
Use this method if you need a standalone setup without the SF CLI.
Prerequisites:
Create a Salesforce Connected App with PKCE enabled
See Connected App Setup Guide for detailed instructions
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 fromwhich 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 Secret
Optional environment variables (add to env if needed):
"SF_LOGIN_URL": "login.salesforce.com",
"SF_CALLBACK_URL": "http://localhost:55556/Callback"Auto-Detection Logic
The server automatically detects which authentication method to use:
If
SF_ORG_ALIASis set: Tries SF CLI authentication firstIf SF CLI is available and authentication succeeds → Uses SF CLI
If SF CLI fails → Falls back to OAuth (if configured)
If
SF_CLIENT_IDandSF_CLIENT_SECRETare set: Uses OAuth PKCE authenticationIf neither is configured: Shows error with setup instructions
Other Environment Variables
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.
Complete Configuration Example
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"]
}
}
}Troubleshooting
Problem: "Python not found" or "module not found" errors
Make sure you're using the full absolute path to Python (not just
python3)If using a virtual environment, use the venv's Python:
/path/to/venv/bin/pythonInstall the project dependencies against the same Python interpreter you configured in your Agent:
/path/to/python3 -m pip install -r requirements.txtTest your paths first:
/usr/bin/python3 /path/to/server.py(should show MCP startup logs)
Problem: Server fails to start
Check authentication is configured: Run
export SF_ORG_ALIAS=myorg && python server.pyto see error messagesFor SF CLI: Verify with
sf org listthat your org is authenticatedFor OAuth: Verify your Connected App credentials are correct
Problem: "No tools showing" in Cursor
Click the refresh button in Cursor MCP settings
Check Cursor logs for MCP server errors
Verify the server can start manually:
python server.py
Available Tools
The server provides the following tools:
query: Execute SQL queries against Data Cloud
Supports PostgreSQL dialect
Returns query results in a structured format
list_tables: List all available tables in Data Cloud
Filtered by
DEFAULT_LIST_TABLE_FILTERpattern
describe_table: Get detailed information about a specific table
Shows column names and structure
Authentication
The server supports two authentication methods:
SF CLI Authentication
Uses your existing SF CLI authentication (
sf org login web)Retrieves access tokens via
sf org displaycommandCaches tokens for 5 minutes to reduce overhead
No browser authentication required during MCP server operation
OAuth PKCE Authentication
Implements OAuth2 flow with PKCE extension
Automatically opens a browser window for authentication
Handles token exchange and refresh
Maintains session for subsequent queries
Token expires after 110 minutes and is automatically refreshed
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/forcedotcom/datacloud-mcp-query'
If you have feedback or need assistance with the MCP directory API, please join our Discord server