u/Realistic-Ad-3649

Is Anyone Here Reinventing The Salesforce MCP Wheel?

Is Anyone Here Reinventing The Salesforce MCP Wheel?

Hello Beniofforcers,

Hope this message finds you well!

The reason I have decided to publish this post is to understand if anyone has set MCP up for real. For real means FOR REAL. Not the vanilla "SOQL-querying, aggregation & records CRUD" out of the box stuff to impress illiterate people. I mean the "Joe-the-SDR asks his average question and the playbook is playing a symphony for Joe, nwhile some serious shit is happening on Salesforce org without hitting the limits" stuff.

I am curious about any experience in general. But I have one problem that keeps me uneasy: when this whole MCP drama had started, I tried their self-hosted servers a couple of times. And all the times it was a nightmare, especially the niche platforms like Revenue Cloud. Totally useless garbade back then. And it was hard for me to understand why the Claude Code + SF CLI + some knowledge from --help works amazing, but the same Claude configuration with their MCP is lobotomized.

But the businesses wanted their MCP YESTERDAY. And they demanded it to replicate already existing business flows WITH AGENTS. And since WE ARE ALL HERE NOT FOR THE MONEY, I started thinking hard about how to do that. The problem was the Salesforce-hosted MCP server was basically useless (at that time). And I would never want to maintain some custom service that would basically replicate the Salesforce capabilities, right? RIGHT?

So I did that, and it worked out!

The Power Of The Sun, In The Palm Of My Hand. I can literally build HTML sloppy snippets as a side component in Cowork mode to render any UX on the flight. And these snippets, as well as the other playbooks, are executing the necessary methods in the right sequence.

But here comes another question: was/is it worth it? I mean if the Salesforce official MCP can be now configured in a similar way (IDK with some moronic Agentforce declarative metadata records), then I am a total idiot to keep my baby alive and not migrating over now to avoid the legacy tax.

But if Salesforce is still being Salesforce, then their self-hosted MCP solution is a half-baked wannabe. And I am not a total idiot.

PLEASE TELL ME YOUR STORIES

---

## TL;DR

Python FastAPI service that is running on AWS (internal-only ingress, ILB-fronted) that speaks MCP JSON-RPC 2.0 at `POST /mcp` and wraps Salesforce via the `simple-salesforce` SDK.

- Authentication: OAuth 2.1 + PKCE; the gateway is its own authorization server, wrapping a Salesforce External Client App (ECA) locked to one org. Bearer tokens stored in Firestore.

- Log Out: each bearer maps to a per-user SF session (`access_token` + `refresh_token` + `instance_url`); a fresh `SfdcClient` is built per request with auto-refresh.

- Tool surface: ~50 MCP tools (query/search, sObject schema, tasks/events, contacts, document-driven updates, insights/recommendations). Defined declaratively in `TOOLS_DEFINITIONS`, dispatched through `sfdc_tools.dispatch_tool`. Three already-extracted feature modules (`tools/sales_insights.py`, `apps/sobject_manager/`, `apps/sobject_query/`) follow the same `TOOLS_DEFINITIONS + WRITE_TOOL_TO_RECIPE + dispatch()` contract.

- Bulk Path*: Bulk API 2.0 for >100-row exports, returned as a CSV artifact via `GET /apps/sobject-query/exports/{id}.csv`.

- Persistence: Amplify (bearer→session, OAuth tokens, write audit log), S3 (schema/describe cache), `/tmp` (short-lived Bulk CSVs).

- Infrastructure: Config Connector CRDs + ArgoCD (Terraform). GitHub Actions for Docker build + deploy.

---

u/Realistic-Ad-3649 — 2 days ago