soql_queryLABSCO SUMMARY
Small on purpose, and it holds write access.
The whole surface is eight tools, which is a reasonable answer for anyone who wants an assistant to answer questions about their Salesforce data without adopting a large integration. Two things follow from the scope: update and delete are in the set, so the access token you supply is the limit on what can be changed, and the recommended order — describe the object before creating against it — is worth following, since Salesforce's reference fields are not guessable.
What it is
A lightweight Salesforce MCP server giving an assistant access to Salesforce objects and records. The author positions it as suited to prototyping and small projects rather than as a complete platform integration.
What you get
- Query tools —
soql_queryto execute SOQL,search_recordsto search across multiple objects with a limit and pagination, andget_recordto retrieve one record by ID - CRUD on records:
create_record,update_recordanddelete_record - Metadata to build queries against —
describe_object_definitionfor object metadata and field information with pagination, andlist_avail_objectsfor the objects available in the org - Guidance built into the tool descriptions: describe the object first so the reference fields are known before creating a record, and confirm before UPDATE and DELETE operations
- Built-in rate limiting alongside the Salesforce authentication
Requirements
A Salesforce org — developer or production — with a Connected App configured, from which you take the two required environment variables: SALESFORCE_ACCESS_TOKEN and SALESFORCE_INSTANCE_URL. Python 3.10 or higher. The published package is mcp-salesforce-lite on PyPI; the recommended client configuration runs it with uvx --from mcp-salesforce-lite mcp-salesforce-lite. For development, uv sync or poetry install from a clone. MIT licensed.
Setup effort
One command plus a key — uvx --from mcp-salesforce-lite mcp-salesforce-lite, then supply credentials
USE CASES
Answering a question about your pipeline
Run SOQL against the org directly instead of exporting a report first.
Finding a record when you only have a fragment
Search across several objects with paging, then pull the full record by its ID.
Creating a record correctly the first time
Describe the object to see its fields and references before building the create call.
Fixing data from the conversation
Update or delete records directly — confirm first, as the tool descriptions ask.
8 tools
Listed in project docs. Your client may show a different list.
search_recordsget_recordcreate_recordupdate_recorddelete_recorddescribe_object_definitionlist_avail_objectsBEFORE YOU INSTALL
What to know first
Tools you get
8 tools named in the project's documentation.
Requires
- uvx on PATH
- Python 3.10 or later
- SALESFORCE_ACCESS_TOKEN in your environment
- SALESFORCE_INSTANCE_URL in your environment
Where it runs
All 3 documented setups run the server on your machine.
INSTALLATION
Connect your client
Server setup
uvx --from mcp-salesforce-lite mcp-salesforce-liteMCP Clients
Claude Desktop — uvx
{
"mcpServers": {
"salesforce-lite": {
"command": "uvx",
"args": [
"--from",
"mcp-salesforce-lite",
"mcp-salesforce-lite"
],
"env": {
"SALESFORCE_ACCESS_TOKEN": "<YOUR_SALESFORCE_ACCESS_TOKEN>",
"SALESFORCE_INSTANCE_URL": "<YOUR_SALESFORCE_INSTANCE_URL>"
}
}
}
}Claude Desktop — Local uv
{
"mcpServers": {
"salesforce-lite": {
"command": "uv",
"args": [
"--directory",
"<YOUR_PATH_TO_MCP_SALESFORCE_LITE>",
"run",
"python",
"src/mcp_salesforce_lite/server.py"
],
"env": {
"SALESFORCE_ACCESS_TOKEN": "<YOUR_SALESFORCE_ACCESS_TOKEN>",
"SALESFORCE_INSTANCE_URL": "<YOUR_SALESFORCE_INSTANCE_URL>"
}
}
}
}Claude Desktop — Local Python
{
"mcpServers": {
"salesforce-lite": {
"command": "python",
"args": [
"<YOUR_PATH_TO_MCP_SALESFORCE_LITE>/src/mcp_salesforce_lite/server.py"
],
"env": {
"SALESFORCE_ACCESS_TOKEN": "<YOUR_SALESFORCE_ACCESS_TOKEN>",
"SALESFORCE_INSTANCE_URL": "<YOUR_SALESFORCE_INSTANCE_URL>"
}
}
}
}