Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (tru-mcp) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
tru MCP Server
MCP server for tru — auth and billing API in one. Verify identity, charge users, issue virtual cards, and get risk signals on every user. Payments flow to your existing Stripe account.
Quick Setup
npx tru-mcp initThis detects your MCP client (Claude Code, Claude Desktop, Cursor) and writes the config automatically.
Don't have an API key yet? That's fine — add the MCP server first, then ask your agent to run get_started. It walks you through the entire setup.
Manual Config
Add to your .mcp.json (Claude Code) or equivalent:
{
"mcpServers": {
"tru": {
"command": "npx",
"args": ["-y", "tru-mcp"],
"env": {
"TRU_API_URL": "https://tru-by29.onrender.com",
"TRU_API_KEY": "your_api_key_here"
}
}
}
}Environment Variables
| Variable | Required | Description |
|---|---|---|
TRU_API_KEY |
Yes | Your tru API key (starts with tru_ak_) |
TRU_API_URL |
No | tru server URL (default: https://tru-by29.onrender.com) |
Getting Started
The MCP tools walk you through setup step by step:
get_started— Full guide: what tru is, why it matters, risk signals, setup walkthroughregister_app— Create your app, get an API keyconnect_stripe— Link your Stripe account to receive payments
After that, you're live. All the tools below work immediately.
Tools
| Tool | Description |
|---|---|
| Setup | |
get_started |
Full setup guide — what tru is, how to integrate, risk signals explained |
register_app |
Register a new app on tru and get an API key |
connect_stripe |
Link your existing Stripe account to receive payments |
| Identity & Credentials | |
check_identity |
Verify a user + get risk signals (level, score, card funding, country) |
request_credentials |
Request verified data from a user's vault (name, email, phone, address) |
check_request_status |
Poll the status of a credential request |
| Billing | |
create_charge |
Create a direct charge or subscription |
check_charge_status |
Check the status of a charge request |
request_virtual_card |
Issue a single-use virtual card for agent purchases |
| Discovery | |
discover_apps |
Browse registered apps on the tru platform |
read_skill |
Read an app's agent skill guide |
initiate_oauth |
Start an OAuth login flow with a tru-registered app |
Why tru?
- Risk signals from day one — every user carries a risk profile built from Stripe Radar. Use risk level, score, card funding type, country, and fingerprint reuse to set trial length, spending limits, and feature access.
- Auth + billing in one API — stop stitching together Stripe, an identity provider, a KYC vendor, and your own spending controls.
- Payments to your Stripe — connect via OAuth, money flows to your existing account. Same dashboard, same bank, same everything.
- Users control spending — they set per-app rules ("auto-approve under $10"), which builds trust and increases conversion.
Example: Developer Setup
Developer: I want to integrate tru into my app
Agent: → get_started()
Here's how tru works...
Agent: Let's register your app.
→ register_app(service_name: "my-app", display_name: "My App", owner_email: "dev@example.com")
✓ App created — API key: tru_ak_...
Agent: Now let's connect your Stripe account.
→ connect_stripe(service_name: "my-app")
Open this URL to authorize: https://connect.stripe.com/oauth/authorize?...
Agent: You're live. Charges approved by tru users will flow to your Stripe account.Example: End User Flow
User: Sign me up for that new service
Agent: → check_identity(email: "user@example.com")
✓ Verified — risk: low, score: 12, debit card, US
Agent: → request_credentials(email: "user@example.com", fields: ["name", "email"])
⏳ Pending — approve on your tru dashboard
Agent: → check_request_status(request_id: "req_abc123")
✓ Approved — got name and email
Agent: → create_charge(email: "user@example.com", amount_cents: 999, description: "Monthly plan")
✓ Auto-approved by spending rulesLicense
MIT