Tough Customer MCP
Integrates with GitHub for repository management and deployment workflows when setting up the MCP server on Vercel.
Built as a Next.js application, serving as the framework for the MCP server implementation and UI components.
Supports deployment to Vercel hosting platform, with instructions for linking GitHub repositories and deploying production instances.
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., "@Tough Customer MCPcreate a tough customer roleplay scenario for me"
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.
Tough Customer MCP
Remote MCP server (Next.js on Vercel) that exposes the Tough Customer roleplay setup workflow to LLM clients (Claude, ChatGPT, MCP Inspector).
Auth model: Model B — Supabase Auth is the OAuth Authorization Server.
Claude carries a Supabase-issued JWT, never a raw Salesforce token.
Salesforce is a downstream backend; users link it once at /connect, and
the MCP server stores an envelope-encrypted refresh token and mints
short-lived SF access tokens per request. SOQL runs WITH USER_MODE, so
Salesforce enforces FLS + sharing as the linked end user.
See userstories.md (especially §2.1, §2.2, §2.7) for the full architecture
and security rationale.
Endpoints
Route | Purpose |
| MCP streamable-HTTP endpoint (connect Claude here) |
| RFC 9728 metadata pointing at the Supabase AS |
| One-time Salesforce account-linking UI |
| Begins SF PKCE flow |
| SF redirect target — server-side token exchange + vault save |
| Removes SF link, revokes refresh token at SF |
| Supabase Google OAuth glue |
| Landing page |
Related MCP server: RPG MCP Server
Tools exposed
list_opportunitieslist_voiceslist_scenariosget_opportunity_contactscreate_roleplay_sessionPrompt:
setup_sales_roleplay
Local development
npm install
cp .env.example .env.local # fill in the values
npm run dev
# http://localhost:3000
# MCP endpoint: http://localhost:3000/mcpFor local dev without Supabase / Salesforce, set TC_MODE=mock — the server
serves in-memory data and skips auth.
Inspect with the MCP Inspector:
npx @modelcontextprotocol/inspector
# Transport: Streamable HTTP
# URL: http://localhost:3000/mcpDeploy to Vercel
gh repo create mcp --public --source=. --remote=origin --push
npx vercel link
npx vercel --prodProvision Supabase via the Vercel Marketplace integration so
NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, and
SUPABASE_SERVICE_ROLE_KEY are auto-populated across all environments.
Apply database migrations:
supabase db pushCustom domains (production):
mcp.toughcustomer.ai→ this Vercel projectapp.toughcustomer.ai→ this Vercel project (alias; serves/connect)auth.toughcustomer.ai→ Supabase (custom hostname; seedocs/CUSTOM_DOMAIN.md)
Salesforce setup
The Connected App is a downstream backend, not the AS for Claude.
See docs/SALESFORCE_SETUP.md for the Connected App runbook and
docs/SALESFORCE_OBJECTS.md for the custom objects + fields the SF admin
must create. No Apex deploy required — the MCP server uses SF REST
GraphQL exclusively, which enforces FLS + sharing for all profiles
including admins.
Vault graduation
v1 encrypts SF refresh tokens with AES-256-GCM keyed by the VAULT_KEY_V1
env var. Before any non-internal customer connects real Salesforce data,
graduate to Supabase Vault or external KMS — see docs/VAULT_V2.md.
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.
Related MCP Servers
- Flicense-qualityDmaintenanceAn MCP server that enables users to manage, search, and apply specialized AI personas within Claude Desktop and Claude Code CLI. It features a local-first architecture with YAML-based storage for organizing curated prompts and role collections.Last updated1
- AlicenseAqualityCmaintenanceAn immersive Role-Playing Game server built on the Model Context Protocol for interactive storytelling with AI assistants like Claude.Last updated72014MIT
- Flicense-qualityBmaintenanceAn MCP server that enables Claude to deploy full-stack web apps to Cloudflare, including databases, authentication, and file storage, directly through natural language.Last updated
- Flicense-qualityDmaintenanceAn MCP server that lets you switch between different MCP configuration profiles directly from inside Claude Desktop.Last updated
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
MCP server for AI dialogue using various LLM models via AceDataCloud
Cloud-hosted MCP server for durable AI memory
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/toughcustomerai/mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server