tru-mcp 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -21,7 +21,7 @@ export const OWL_BANNER = `
21
21
  export const SECTIONS = [
22
22
  { number: 1, name: "Register", milestones: ["authenticate", "scan_codebase", "register_app", "api_key_saved"] },
23
23
  { number: 2, name: "Payments", milestones: ["stripe_oauth_started", "stripe_connected", "products_synced", "products_configured", "products_skipped"] },
24
- { number: 3, name: "Integration", milestones: ["add_middleware", "choose_billing_model", "build_provision", "register_provision_url", "validate_integration"] },
24
+ { number: 3, name: "Integration", milestones: ["add_middleware", "choose_billing_model", "validate_integration"] },
25
25
  { number: 4, name: "Go Live", milestones: ["validate_discovery"] },
26
26
  ];
27
27
  // ─── Shared code snippets ────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"setup_content.js","sourceRoot":"","sources":["../../src/tools/setup_content.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup_content.js","sourceRoot":"","sources":["../../src/tools/setup_content.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { z } from "zod";
2
2
  import { getAppDetails } from "tru-cli/api-client";
3
3
  import { getStoredApp } from "tru-cli/config";
4
- import { BASE_URL, SIGNATURE_VERIFICATION_SETUP, PROVISION_ENDPOINT_CODE, computeSectionStatuses, formatStatusTable, } from "./setup_content.js";
4
+ import { BASE_URL, computeSectionStatuses, formatStatusTable, } from "./setup_content.js";
5
5
  // ─── Section content generators ──────────────────────────────────
6
6
  function section1_Register() {
7
7
  return `## Phase 1: Register — "You exist on tru"
@@ -193,92 +193,86 @@ Then continue to the next section.
193
193
 
194
194
  ### Next
195
195
 
196
- Payments are wired up — charges flow directly to your Stripe account. Next: build the provision endpoint so users get instant access after purchase.
196
+ Payments are wired up — charges flow directly to your Stripe account. Next: add tru() to your endpoints.
197
197
 
198
198
  Call \`dev_setup_guide(section: 3)\` to continue.`;
199
199
  }
200
200
  function section3_Provisioning() {
201
201
  return `## Phase 3: Integration — "Your endpoints accept agent payments"
202
202
 
203
- **Why this matters:** This is the actual integration — adding \`trux()\` to your endpoints so they accept payments, choosing how you want to charge, and setting up automatic account creation for new users.
203
+ **Why this matters:** This is the actual integration — adding \`tru()\` to your endpoints so they accept payments and choosing how you want to charge.
204
204
 
205
- ### Step 1: Add tru-402 to your endpoints
205
+ ### Step 1: Add tru() to your endpoints
206
206
 
207
- Find the API endpoints you want to monetize (e.g. the main generation/processing endpoint). Wrap them with \`trux()\`:
207
+ Find the API endpoints you want to monetize. Add one line — \`tru()\` before your handler:
208
208
 
209
209
  \`\`\`javascript
210
- import { trux } from 'tru-402';
210
+ import { tru } from 'tru-402';
211
211
 
212
212
  app.post('/api/generate',
213
- trux({ amount: 0.05 }),
213
+ tru({ amount: (req) => getPrice(req.body.model) }),
214
214
  (req, res) => {
215
- // req.tru = { email, name, userId, cardBrand, cardLast4, agentName }
215
+ // req.tru = { email, name, userId }
216
+ // Authenticated user — no API key needed
216
217
  res.json({ result: generate(req) });
217
218
  }
218
219
  );
219
220
  \`\`\`
220
221
 
221
- **Existing users are not affected.** The middleware automatically passes through requests that already have auth — API keys (\`X-API-Key\` header), Bearer tokens, session cookies. Only requests with NO existing auth hit the 402 flow. If the app has a custom auth check, use the \`passthrough\` option:
222
+ That's it. One line. No provision endpoint, no webhook secrets, no login forms.
223
+
224
+ \`tru()\` handles everything:
225
+ - **Authentication** — users sign in via Stripe Link (10 seconds)
226
+ - **Payment tracking** — usage is recorded and settled daily
227
+ - **Identity** — your handler receives \`req.tru\` with the verified user
228
+
229
+ The \`amount\` can be a fixed number or a function that returns the price based on the request (model, resolution, etc.). Read the request body to determine the cost.
230
+
231
+ **Existing users are not affected.** Requests with existing auth (API keys, Bearer tokens, session cookies) pass through automatically. Only unauthenticated requests hit the 402 payment flow. If the app has a custom auth check:
222
232
 
223
233
  \`\`\`javascript
224
- trux({
225
- amount: 0.05,
226
- passthrough: (req) => req.headers['x-custom-auth'] != null,
234
+ tru({
235
+ amount: (req) => getPrice(req.body.model),
236
+ passthrough: (req) => req.headers['x-api-key'] != null,
227
237
  })
228
238
  \`\`\`
229
239
 
230
240
  Report your milestone: \`reportSetupProgress({ milestone: "add_middleware" })\`
231
241
 
232
- ### Step 2: Choose your billing model
242
+ ### Step 2: Set your pricing
233
243
 
234
- **Use AskUserQuestion** to ask the developer how they want to charge:
244
+ **Use AskUserQuestion** to understand how the app charges:
235
245
 
236
- question: "How do you want to charge new users?\\n\\n1. Fixed price every request costs the same (e.g. $0.05)\\n2. Free credits then pay — new users get free usage, then pay when credits run out\\n3. Dynamic pricing — price depends on the request (model, size, tokens, etc.)"
237
- header: "Billing Model"
246
+ question: "How is your API priced?\\n\\nI need to know so I can configure the amount function in tru(). This determines what users pay per request."
247
+ header: "Pricing"
238
248
  options:
239
- - label: "Fixed price"
240
- description: "Every request costs the same amount"
241
- - label: "Free credits then pay"
242
- description: "Give new users free usage, charge when credits run out"
243
- - label: "Dynamic pricing"
244
- description: "Price varies based on the request"
245
-
246
- **If they choose "Fixed price"**, the middleware is already set up correctly with a static amount. No changes needed.
247
-
248
- **If they choose "Free credits then pay"**, update the middleware to use an async \`amount\` function. The \`amount\` function receives \`req\` with \`req.tru\` already populated (identity-first), so it can look up the user's balance:
249
-
250
- \`\`\`javascript
251
- trux({
252
- amount: async (req) => {
253
- if (!req.tru) return 0.05; // price shown in 402 challenge
254
- const user = await db.getUser(req.tru.email);
255
- return user?.credits > 0 ? 0 : 0.05; // free while credits last
256
- }
257
- })
258
- \`\`\`
259
-
260
- When amount is \`0\`: tru still requires identity (user must sign up via Stripe Link), but charges nothing. The request passes through and the app's handler decrements a credit.
261
-
262
- When amount is \`> 0\`: tru tracks the usage and settles it daily — one Stripe charge per user per day.
249
+ - label: "Same price for every request"
250
+ description: "e.g. $0.002 per generation"
251
+ - label: "Price varies by model or parameters"
252
+ description: "e.g. different costs for different AI models"
253
+ - label: "I'll explain"
254
+ description: ""
263
255
 
264
- The "credits" are entirely the app's concept — a number in the app's database. tru doesn't manage credits. The app grants them at signup (in the provision endpoint, next step) and decrements them in the handler.
256
+ Based on their answer, configure the \`amount\` parameter in the \`tru()\` call:
265
257
 
266
- **If they choose "Dynamic pricing"**, the amount function can return different values based on the request body:
258
+ **If same price:** use a number: \`tru({ amount: 0.002 })\`
267
259
 
260
+ **If variable:** use a function that reads the request to determine the price:
268
261
  \`\`\`javascript
269
- trux({
262
+ tru({
270
263
  amount: (req) => {
271
- if (!req.tru) return 0.05; // default for 402 challenge
272
- return req.body.model === 'premium' ? 0.25 : 0.05;
264
+ const model = req.body.model || 'default';
265
+ const prices = { 'flux': 0.003, 'sdxl': 0.001, 'premium': 0.01 };
266
+ return prices[model] || 0.002;
273
267
  }
274
268
  })
275
269
  \`\`\`
276
270
 
277
- The amount function can be sync or async. When \`req.tru\` is not set (first 402 challenge, before the user is identified), return a default price — this is what appears in the 402 response.
271
+ The amount function can be sync or async. When \`req.tru\` is not set (first 402 challenge), return a default/representative price — this is what appears in the 402 response to give users an idea of the cost.
278
272
 
279
273
  Report your milestone: \`reportSetupProgress({ milestone: "choose_billing_model" })\`
280
274
 
281
- ### Step 2b: Free trial (optional)
275
+ ### Step 3: Free trial (optional)
282
276
 
283
277
  **Use AskUserQuestion** to ask about free trials:
284
278
 
@@ -299,104 +293,28 @@ If they choose a dollar amount, convert to cents and call:
299
293
  dev_update_app(free_trial_cents: 500)
300
294
  \`\`\`
301
295
 
302
- If they type a custom amount, parse the number, convert to cents (multiply by 100), then call dev_update_app. For example if they type "25", call \`dev_update_app(free_trial_cents: 2500)\`.
303
-
304
- **How it works for the developer:** Your code returns the normal price per request. tru checks if the user has trial credit remaining. If yes, tru deducts from the trial — no paid usage is recorded. When the trial runs out, tru starts recording paid usage and settling daily. The developer does not need to track credits or change their pricing logic.
305
-
306
- ### Step 3: Build the provision endpoint
307
-
308
- When a new user signs up through tru, tru calls your provision endpoint with their verified identity. Your app creates an account and returns credentials. This is how users go from "I just signed up" to "I have an account" — instantly.
309
-
310
- Register it with tru:
311
-
312
- \`\`\`
313
- dev_set_provision_url(provision_url: "http://localhost:PORT/api/tru/provision")
314
- \`\`\`
315
-
316
- Use the actual URL where the endpoint will run (localhost during development, production URL later).
317
-
318
- When a user is provisioned, tru sends their verified info plus any purchases they've made:
319
-
320
- \`\`\`json
321
- {
322
- "email": "user@example.com",
323
- "name": "Jane Doe",
324
- "tru_user_id": "user@example.com",
325
- "purchases": [
326
- {
327
- "charge_id": "uuid",
328
- "amount_cents": 499,
329
- "currency": "usd",
330
- "type": "recurring",
331
- "interval": "month",
332
- "description": "Pro plan",
333
- "status": "approved",
334
- "product": {
335
- "id": "uuid",
336
- "name": "Pro Plan",
337
- "stripe_product_id": "prod_xyz",
338
- "stripe_price_id": "price_abc"
339
- }
340
- }
341
- ]
342
- }
343
- \`\`\`
344
-
345
- The \`purchases\` array is only present when the user has approved charges — fully backwards compatible.
346
-
347
- **If the developer chose "Free credits then pay"**, the provision endpoint should grant initial credits:
348
-
349
- \`\`\`javascript
350
- app.post('/api/tru/provision', (req, res) => {
351
- if (!verifyTruSignature(req.headers['x-tru-signature'], req.rawBody)) {
352
- return res.status(401).json({ error: 'Invalid signature' });
353
- }
354
-
355
- const { email, name } = req.body;
356
- const existing = findAccountByEmail(email);
357
- if (existing) {
358
- return res.json({ api_key: existing.apiKey, account_id: existing.id });
359
- }
360
-
361
- // Create account with free credits
362
- const account = createAccount(email, name);
363
- account.balance_cents = 25; // $0.25 free (5 requests at $0.05)
364
- res.json({ api_key: account.apiKey, account_id: account.id });
365
- });
366
- \`\`\`
367
-
368
- One account per verified identity — free credits can't be abused because tru verifies identity via Stripe Link (real email + real card on file).
369
-
370
- **Important:** tru does not retry failed provision calls. Make the endpoint **idempotent** — if called twice with the same email, return the existing account instead of creating a duplicate.
371
-
372
- ${SIGNATURE_VERIFICATION_SETUP}
373
-
374
- **For the standard provision endpoint (fixed price or dynamic pricing):**
375
-
376
- ${PROVISION_ENDPOINT_CODE}
377
-
378
- The \`TRU_APP_SECRET\` used for signature verification is the app secret you saved to \`.env\` in Phase 1. The code reads it from \`process.env.TRU_APP_SECRET\`. If you saved it correctly in Phase 1, no additional secret setup is needed here.
379
-
380
- **Checkpoint:** Tell the developer: "I've built your provision endpoint. Restart your server if it doesn't auto-reload, then I'll test it." After the server is running, send a test POST to the provision endpoint to confirm it responds (a 401 from signature verification is fine — it means the endpoint exists and is checking signatures correctly). If it returns 404 or connection refused, help the developer fix the issue before continuing.
296
+ If they type a custom amount, parse the number, convert to cents (multiply by 100), then call dev_update_app.
381
297
 
382
298
  ### Step 4: Validate
383
299
 
384
- Tell the developer: "Restart your server if it doesn't auto-reload, then I'll validate the integration."
300
+ Tell the developer: "Restart your server if it doesn't auto-reload, then I'll run validation. I'll test two things:
301
+
302
+ 1. That unauthenticated requests get a 402 response (tru is working)
303
+ 2. That requests WITH an API key DON'T get 402 (existing users aren't affected)
385
304
 
386
- Run \`dev_validate(service_name, scope: "provision")\` to verify: app registration, Stripe connection, middleware, and provisioning endpoint. This scoped validation skips discovery and frontend checks (those come in Phase 4). Fix any issues found. Re-run validation after each fix until all checks pass.
305
+ For the second test, I'll send a request with a dummy API key. Your server will probably return 401 (invalid key) that's expected and correct. It just proves that tru() let the request through instead of blocking it with a 402."
387
306
 
388
- Focus on these checks:
307
+ Run \`dev_validate(service_name)\` to verify:
389
308
  - App registered with API key
390
309
  - Stripe connected
391
- - Provision endpoint exists and responds
392
- - Provision endpoint accepts signed requests and returns credentials
393
- - Charge creation works
310
+ - \`tru()\` returns 402 on unauthenticated requests
311
+ - Existing auth (API keys) bypasses tru()
394
312
 
395
- If any of these fail, fix the issue before continuing.
313
+ Fix any issues. Re-run until all checks pass.
396
314
 
397
315
  ### Next
398
316
 
399
- Your endpoints now accept agent payments, and new users get accounts automatically. Next: go live.
317
+ Your endpoints now accept agent payments. Next: go live.
400
318
 
401
319
  Call \`dev_setup_guide(section: 4)\` to finish up.`;
402
320
  }
@@ -409,7 +327,7 @@ Explain to the developer how tru works now that they've set it up:
409
327
 
410
328
  "Here's what you just built. It's simple and elegant:
411
329
 
412
- 1. **\`trux()\` wraps your existing endpoints.** Any request without a tru identity gets a 402 Payment Required response. Existing users with API keys are completely unaffected — they pass right through.
330
+ 1. **\`tru()\` wraps your existing endpoints.** Any request without a tru identity gets a 402 Payment Required response. Existing users with API keys are completely unaffected — they pass right through.
413
331
 
414
332
  2. **The 402 response is self-documenting.** It contains step-by-step instructions that any AI agent can follow — create a login session, authenticate the user, and retry. The agent doesn't need to know about tru in advance. The protocol IS the documentation.
415
333
 
@@ -437,9 +355,9 @@ Use AskUserQuestion:
437
355
 
438
356
  If they say yes:
439
357
  1. Search the codebase for documentation files: README.md, docs.html, docs/, openapi.json, or any file that looks like API documentation
440
- 2. Read the \`trux()\` configuration from the code to get the actual per-request price
358
+ 2. Read the \`tru()\` configuration from the code to get the actual per-request price
441
359
  3. Add a "Pricing" section with:
442
- - The per-request price (from their trux config)
360
+ - The per-request price (from their tru config)
443
361
  - Free trial amount if configured (from the app's free_trial_cents)
444
362
  - How new users get started ("call any endpoint — the API returns payment instructions automatically")
445
363
  - How existing users authenticate ("pass your API key via X-API-Key header")
@@ -484,6 +402,7 @@ If they say yes:
484
402
  Share these links with the developer:
485
403
  - **Your tru dashboard:** [${BASE_URL}/admin](${BASE_URL}/admin) — manage your app, view charges, monitor activity
486
404
  - **App settings:** [${BASE_URL}/admin/settings](${BASE_URL}/admin/settings) — update app profile, switch Stripe modes, manage API keys
405
+ - **FAQ:** [${BASE_URL}/faq](${BASE_URL}/faq) — how billing, trials, settlement, and auto-upgrade work
487
406
 
488
407
  If the developer connected in **test mode**, remind them: "You're running in test mode — great for testing the full flow with card \`4242424242424242\`. When you're ready for real payments, just ask me to run \`dev_connect_stripe\` in live mode and I'll help you switch."
489
408
 
@@ -1 +1 @@
1
- {"version":3,"file":"setup_guide.js","sourceRoot":"","sources":["../../src/tools/setup_guide.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup_guide.js","sourceRoot":"","sources":["../../src/tools/setup_guide.ts"],"names":[],"mappings":"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"}
@@ -282,9 +282,9 @@ async function checkFrontend(websiteUrl, serviceName, app) {
282
282
  }
283
283
  export const validateIntegrationTool = {
284
284
  name: "dev_validate",
285
- description: "Validate an app's tru integration. Checks platform config (registration, Stripe, skill, provision URL), " +
286
- "tests the provision endpoint, and scans the frontend for tru.js SDK usage and common mis-integrations. " +
287
- "Returns a checklist with pass/fail per check and actionable fixes for failures.",
285
+ description: "Validate an app's tru integration. Checks platform config (registration, Stripe), " +
286
+ "verifies tru() returns 402 on unauthenticated requests, confirms API key auth passes through, " +
287
+ "and returns a checklist with pass/fail per check and actionable fixes for failures.",
288
288
  inputSchema: {
289
289
  service_name: z
290
290
  .string()
@@ -343,7 +343,51 @@ export const validateIntegrationTool = {
343
343
  }
344
344
  }
345
345
  const allDetectedSteps = ["validate_integration"];
346
- // Section 2: Provision endpoint check (with signed payload)
346
+ // Section 2: tru() endpoint checks
347
+ // Test that unauthenticated requests return 402
348
+ if (app?.website) {
349
+ try {
350
+ // Try common API endpoints to find one protected by tru()
351
+ const testPaths = ['/api/generate', '/api/v1/generate', '/api/create', '/api/run'];
352
+ let found402 = false;
353
+ for (const path of testPaths) {
354
+ try {
355
+ const res = await fetch(new URL(path, app.website).href, {
356
+ method: 'POST',
357
+ headers: { 'Content-Type': 'application/json' },
358
+ body: JSON.stringify({}),
359
+ });
360
+ if (res.status === 402) {
361
+ const body = await res.json().catch(() => ({}));
362
+ allChecks.push(pass("402 response", `${path} returns 402 with payment instructions`));
363
+ found402 = true;
364
+ // Test that requests with auth headers bypass tru() (don't get 402)
365
+ const authRes = await fetch(new URL(path, app.website).href, {
366
+ method: 'POST',
367
+ headers: { 'Content-Type': 'application/json', 'X-API-Key': 'validation_passthrough_test' },
368
+ body: JSON.stringify({}),
369
+ });
370
+ if (authRes.status !== 402) {
371
+ allChecks.push(pass("Existing auth passthrough", `Requests with API keys bypass payment (got ${authRes.status}). Existing users won't be affected.`));
372
+ }
373
+ else {
374
+ allChecks.push(fail("Existing auth passthrough", `Requests with X-API-Key header still got 402. Add passthrough: (req) => req.headers['x-api-key'] != null to your tru() config.`));
375
+ }
376
+ break;
377
+ }
378
+ }
379
+ catch { /* endpoint doesn't exist, try next */ }
380
+ }
381
+ if (!found402) {
382
+ allChecks.push(fail("402 response", "No endpoint returned 402. Make sure tru() is added to at least one API endpoint."));
383
+ }
384
+ }
385
+ catch (err) {
386
+ const message = err instanceof Error ? err.message : String(err);
387
+ allChecks.push(fail("402 response", `Could not reach app: ${message}`));
388
+ }
389
+ }
390
+ // Provision endpoint (optional — not required for per-request billing)
347
391
  const provisionUrl = fullApp.provision_url;
348
392
  const webhookSecret = fullApp.webhook_secret;
349
393
  if (provisionUrl) {
@@ -353,9 +397,6 @@ export const validateIntegrationTool = {
353
397
  allDetectedSteps.push("build_provision");
354
398
  }
355
399
  }
356
- else if (!appDetailError) {
357
- allChecks.push(fail("Provision URL", "No provision_url registered. After building the provision endpoint, register it: `dev_set_provision_url(provision_url: \"http://...\")`."));
358
- }
359
400
  // Section 2b: Charge creation test
360
401
  if (app?.stripe_connected) {
361
402
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"validate_integration.js","sourceRoot":"","sources":["../../src/tools/validate_integration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate_integration.js","sourceRoot":"","sources":["../../src/tools/validate_integration.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tru-mcp",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "MCP server for tru — portable identity, billing, and provisioning for AI-native apps",
5
5
  "type": "module",
6
6
  "bin": {