The Privacy MCP connector routes your AI agent's tool calls to Privacy's own MCP server through Scalekit. Each user signs in to Privacy once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 10 tools.
- Tools
- 10
- What they doRead · write · destructive
- 4 · 1 · 54 read1 write5 destructive
- Users sign in with
- OAuth
- OAuth app
- Scalekit's or your own
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Privacy MCP connection
In AgentKit > Connections, create a Privacy MCP connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Scalekit credentials are available for Privacy MCP server, so you don't need to register an OAuth app.
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'privacymcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Privacy MCP:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'privacymcp_list_cards',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "privacymcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Privacy MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="privacymcp_list_cards",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolprivacymcp_get_cardRetrieve details for a specific virtual card by its token, including type, state, and spend limits.Read-onlyGet Card
Retrieve details for a specific virtual card by its token, including type, state, and spend limits.
Inputs
card_tokenstringrequired- Token of the card to retrieve
privacymcp_get_panRetrieve the full card number (PAN), CVV2, and expiration date for a virtual card.Read-onlyGet Pan
Retrieve the full card number (PAN), CVV2, and expiration date for a virtual card. Returns sensitive data.
Inputs
card_tokenstringrequired- Token of the card to retrieve
privacymcp_list_cardsList all virtual cards on your Privacy.com account with optional pagination.Read-onlyList Cards
List all virtual cards on your Privacy.com account with optional pagination.
Inputs
pageinteger- Page number for pagination (1-indexed)default
1 page_sizeinteger- Number of cards per page (1-100, default 20)default
20
privacymcp_list_transactionsList transactions on your Privacy.com account, with optional filters for card, date range, and result.Read-onlyList Transactions
List transactions on your Privacy.com account, with optional filters for card, date range, and result.
Inputs
account_tokenstring- Filter transactions by account token
beginstring- Start date (inclusive) in YYYY-MM-DD format
card_tokenstring- Filter transactions by card token
endstring- End date (exclusive) in YYYY-MM-DD format
pageinteger- Page number for pagination (1-indexed)default
1 page_sizeinteger- Number of transactions per page (1-1000, default 20)default
20 resultstring- Filter by transaction resultone of
APPROVEDDECLINED
privacymcp_update_card_memoUpdate the memo (friendly name) on a virtual card.WriteUpdate Card Memo
Update the memo (friendly name) on a virtual card.
Inputs
card_tokenstringrequired- Token of the card to update
memostringrequired- New friendly name for the card
privacymcp_close_cardPermanently close a virtual card, blocking all future transactions.DestructiveClose Card
Permanently close a virtual card, blocking all future transactions. This action is irreversible.
Inputs
card_tokenstringrequired- Token of the card
privacymcp_create_cardCreate a new virtual card on your Privacy.com account with optional spend limits and memo.DestructiveCreate Card
Create a new virtual card on your Privacy.com account with optional spend limits and memo.
Inputs
typestringrequired- Card type: SINGLE_USE (closes after first use), MERCHANT_LOCKED (locks to first merchant)one of
SINGLE_USEMERCHANT_LOCKED memostring- Friendly name for the card
spend_limitnumber- Spend limit in dollars (e.g. 25.00)
spend_limit_durationstring- How the spend limit resets: per TRANSACTION, MONTHLY, ANNUALLY, or FOREVER (lifetime)one of
TRANSACTIONMONTHLYANNUALLYFOREVER statestring- Initial card state (default: OPEN)one of
OPENPAUSED
privacymcp_pause_cardPause a virtual card to temporarily block all transactions until it is unpaused.DestructivePause Card
Pause a virtual card to temporarily block all transactions until it is unpaused.
Inputs
card_tokenstringrequired- Token of the card
privacymcp_unpause_cardRe-enable transactions on a previously paused virtual card.DestructiveUnpause Card
Re-enable transactions on a previously paused virtual card.
Inputs
card_tokenstringrequired- Token of the card
privacymcp_update_card_spend_limitUpdate the spend limit and optional reset duration for a virtual card.DestructiveUpdate Card Spend Limit
Update the spend limit and optional reset duration for a virtual card.
Inputs
card_tokenstringrequired- Token of the card to update
spend_limitnumberrequired- New spend limit in dollars (e.g. 25.00)
spend_limit_durationstring- How the spend limit resets: per TRANSACTION, MONTHLY, ANNUALLY, or FOREVER (lifetime). If omitted, keeps the current duration.one of
TRANSACTIONMONTHLYANNUALLYFOREVER
No tools match.