About
API wrapped around our salesforce database
README
A wrapper around our Salesforce database, which contains embedded case summaries. This provides some focused tools to LLMs via the Model Context Protocol.
The raw data is sourced from Salesforce via a Fivetran connection. This populates a schema in a TimescaleDB database. A separate process generates LLM summaries of the support cases, and then embeddings of those summaries. This service searches those summaries.
API
All methods are exposed as MCP tools and REST API endpoints.
Salesforce Case Summary Semantic Search
Searches the Salesforce case summaries for relevant entries based on a semantic embedding of the search prompt.
Tool name
: semanticSearchSalesforceCaseSummaries
API endpoint
: GET /api/semantic-search/salesforce-case-summaries
Input
(use query parameters for REST API)
{
"prompt": "Why can't I connect to my database?",
"limit": 10, // optional, default is 10
}
Output
{
"results": [
{
"case_id": "500Nv000005HMfaIAG",
"summary": "# Some content ...",
"distance": 0.40739564321624144,
},
// more results...
],
}
Development
Cloning and running the server locally.
git clone [email protected]:timescale/tiger-salesforce-mcp-server.git
Building
Run npm i to install dependencies and build the project. Use npm run watch to rebuild on changes.
Create a .env file based on the .env.sample file.
cp .env.sample .env
Testing
The MCP Inspector is very handy.
npm run inspector
| Field | Value |
|---|---|
| Transport Type | STDIO |
| Command | node |
| Arguments | dist/index.js |
Testing in Claude Desktop
Create/edit the file ~/Library/Application Support/Claude/claude_desktop_config.json to add an entry like the following, making sure to use the absolute path to your local tiger-salesforce-mcp-server project, and real database credentials.
{
"mcpServers": {
"tiger-salesforce": {
"command": "node",
"args": [
"/absolute/path/to/tiger-salesforce-mcp-server/dist/index.js",
"stdio"
],
"env": {
"PGHOST": "x.y.tsdb.cloud.timescale.com",
"PGDATABASE": "tsdb",
"PGPORT": "32467",
"PGUSER": "readonly_mcp_user",
"PGPASSWORD": "abc123",
"OPENAI_API_KEY": "sk-svcacct"
}
}
}
}
Deployment
We use a Helm chart to deploy to Kubernetes. See the chart/ directory for details.
The service is accessible to other services in the cluster via the DNS name tiger-salesforce-mcp-server.savannah-system.svc.cluster.local.
Secrets
Run the following to create the necessary sealed secrets. Be sure to fill in the correct values.
kubectl -n savannah-system create secret generic tiger-salesforce-mcp-server-database \
--dry-run=client \
--from-literal=user="readonly_mcp_user" \
--from-literal=password="abc123" \
--from-literal=database="tsdb" \
--from-literal=host="x.y.tsdb.cloud.timescale.com" \
--from-literal=port="34240" \
-o yaml | kubeseal -o yaml
kubectl -n savannah-system create secret generic tiger-salesforce-mcp-server-openai \
--dry-run=client \
--from-literal=apiKey="sk-svcacct-" \
-o yaml | kubeseal -o yaml
kubectl -n savannah-system create secret generic tiger-salesforce-mcp-server-logfire \
--dry-run=client \
--from-literal=token="pylf_v1_us_" \
-o yaml | kubeseal -o yaml
kubectl -n savannah-system create secret generic tiger-salesforce-mcp-server-tailscale \
--dry-run=client \
--from-literal=authkey="tskey-auth-" \
-o yaml | kubeseal -o yaml
Update ./chart/values/dev.yaml with the output.
Installing Tiger Salesforce
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/timescale/tiger-salesforce-mcp-serverFAQ
Is Tiger Salesforce MCP free?
Yes, Tiger Salesforce MCP is free — one-click install via Unyly at no cost.
Does Tiger Salesforce need an API key?
No, Tiger Salesforce runs without API keys or environment variables.
Is Tiger Salesforce hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Tiger Salesforce in Claude Desktop, Claude Code or Cursor?
Open Tiger Salesforce on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Postgres
Query your database in natural language
by Anthropicwenb1n-dev/SmartDB_MCP
Connect to multiple databases at once (MySQL, PostgreSQL, SQL Server, MariaDB, Dameng, Oracle) for operations, health analysis and SQL optimization.
by wenb1n-devPostgres Server
This server enables interaction with PostgreSQL databases through the Model Context Protocol, optimized for the AWS Bedrock AgentCore Runtime. It provides tools
by madhurprashPostgreSQL
Read-only database access with schema inspection.
by modelcontextprotocolRedis
Interact with Redis key-value stores.
by modelcontextprotocolSQLite
Database interaction and business intelligence capabilities.
by modelcontextprotocolmxcp
Open-source framework for building enterprise-grade MCP servers using just YAML, SQL, and Python, with built-in auth, monitoring, ETL and policy enforcement.
by raw-labsjulien040/anyquery
Query apps with SQL from a single local-first binary; also connects to PostgreSQL, MySQL and SQLite-compatible databases.
by julien040drakonkat/wizzy-mcp-tmdb
Search and retrieve movie, TV show and person information from The Movie Database (TMDB) API.
by drakonkatlongevity-genie/opengenes-mcp
Query the OpenGenes database for aging and longevity research.
by longevity-genieCompare Tiger Salesforce with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All data MCPs
