tru-mcp 0.5.2 → 0.7.0
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.
- package/README.md +29 -40
- package/dist/api-client.d.ts +12 -1
- package/dist/api-client.js +16 -2
- package/dist/api-client.js.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/init.js +110 -9
- package/dist/init.js.map +1 -1
- package/dist/server.js +171 -138
- package/dist/server.js.map +1 -1
- package/dist/tools/add_agent_signup.d.ts +23 -0
- package/dist/tools/add_agent_signup.js +60 -0
- package/dist/tools/add_agent_signup.js.map +1 -0
- package/dist/tools/authenticate.js +1 -1
- package/dist/tools/authenticate.js.map +1 -1
- package/dist/tools/check_charge_status.js +1 -1
- package/dist/tools/check_charge_status.js.map +1 -1
- package/dist/tools/check_request_status.js +1 -1
- package/dist/tools/check_request_status.js.map +1 -1
- package/dist/tools/connect_stripe.js +10 -4
- package/dist/tools/connect_stripe.js.map +1 -1
- package/dist/tools/create_charge.d.ts +2 -0
- package/dist/tools/create_charge.js +76 -18
- package/dist/tools/create_charge.js.map +1 -1
- package/dist/tools/discover_api.js +16 -14
- package/dist/tools/discover_api.js.map +1 -1
- package/dist/tools/discover_apps.js +2 -2
- package/dist/tools/discover_apps.js.map +1 -1
- package/dist/tools/discover_products.d.ts +23 -0
- package/dist/tools/discover_products.js +55 -0
- package/dist/tools/discover_products.js.map +1 -0
- package/dist/tools/get_started.js +125 -54
- package/dist/tools/get_started.js.map +1 -1
- package/dist/tools/initiate_oauth.js +7 -3
- package/dist/tools/initiate_oauth.js.map +1 -1
- package/dist/tools/provision_user.js +1 -1
- package/dist/tools/provision_user.js.map +1 -1
- package/dist/tools/read_skill.js +2 -2
- package/dist/tools/read_skill.js.map +1 -1
- package/dist/tools/register_app.js +96 -10
- package/dist/tools/register_app.js.map +1 -1
- package/dist/tools/request_user_data.js +2 -2
- package/dist/tools/request_user_data.js.map +1 -1
- package/dist/tools/request_virtual_card.js +67 -7
- package/dist/tools/request_virtual_card.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import {
|
|
2
|
+
import { exec } from "child_process";
|
|
3
|
+
import { requestAgentCard, getChargeStatus } from "../api-client.js";
|
|
3
4
|
import { getSourceLabel, saveSourceLabel, getSuggestedLabel } from "../server.js";
|
|
5
|
+
const BASE_URL = process.env.TRU_API_URL || "https://tru.so";
|
|
6
|
+
function sleep(ms) {
|
|
7
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
8
|
+
}
|
|
9
|
+
function openBrowser(url) {
|
|
10
|
+
const platform = process.platform;
|
|
11
|
+
const cmd = platform === "darwin" ? "open" :
|
|
12
|
+
platform === "win32" ? "start" :
|
|
13
|
+
"xdg-open";
|
|
14
|
+
exec(`${cmd} "${url}"`);
|
|
15
|
+
}
|
|
4
16
|
export const requestVirtualCardTool = {
|
|
5
|
-
name: "
|
|
17
|
+
name: "get_card",
|
|
6
18
|
description: "Request a one-time virtual card to make a purchase on behalf of a user. " +
|
|
7
19
|
"The card is issued instantly if the user's agent rules allow it. " +
|
|
8
20
|
"If the amount exceeds the user's spending limits, the request is escalated " +
|
|
@@ -81,17 +93,65 @@ export const requestVirtualCardTool = {
|
|
|
81
93
|
}
|
|
82
94
|
const result = await requestAgentCard(args.email, args.amount_cents, args.description, args.target_service, args.currency, args.action, args.app_id, sourceLabel);
|
|
83
95
|
if (result.status === "escalated") {
|
|
96
|
+
const chargeId = result.charge_request_id;
|
|
97
|
+
const approveUrl = `${BASE_URL}/billing/approve/${chargeId}`;
|
|
98
|
+
openBrowser(approveUrl);
|
|
99
|
+
const amount = (args.amount_cents / 100).toFixed(2);
|
|
100
|
+
// Poll for approval (every 2s, up to 5 min)
|
|
101
|
+
const maxAttempts = 150;
|
|
102
|
+
let attempts = 0;
|
|
103
|
+
while (attempts < maxAttempts) {
|
|
104
|
+
await sleep(2000);
|
|
105
|
+
attempts++;
|
|
106
|
+
try {
|
|
107
|
+
const status = await getChargeStatus(chargeId);
|
|
108
|
+
if (status.status === "completed" || status.status === "approved") {
|
|
109
|
+
// Re-fetch the card details — they should be available now
|
|
110
|
+
// For virtual cards, the card is issued after approval
|
|
111
|
+
return {
|
|
112
|
+
content: [
|
|
113
|
+
{
|
|
114
|
+
type: "text",
|
|
115
|
+
text: [
|
|
116
|
+
`Purchase approved by user.`,
|
|
117
|
+
`Amount: $${amount} ${args.currency || "USD"}`,
|
|
118
|
+
`Charge request ID: ${chargeId}`,
|
|
119
|
+
``,
|
|
120
|
+
`The virtual card has been issued. Use check_payment_status to retrieve card details.`,
|
|
121
|
+
].join("\n"),
|
|
122
|
+
},
|
|
123
|
+
],
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
if (status.status === "rejected" || status.status === "cancelled") {
|
|
127
|
+
return {
|
|
128
|
+
content: [
|
|
129
|
+
{
|
|
130
|
+
type: "text",
|
|
131
|
+
text: [
|
|
132
|
+
`Purchase ${status.status} by user.`,
|
|
133
|
+
`Amount: $${amount} ${args.currency || "USD"}`,
|
|
134
|
+
`Charge request ID: ${chargeId}`,
|
|
135
|
+
].join("\n"),
|
|
136
|
+
},
|
|
137
|
+
],
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
// Keep polling
|
|
143
|
+
}
|
|
144
|
+
}
|
|
84
145
|
return {
|
|
85
146
|
content: [
|
|
86
147
|
{
|
|
87
148
|
type: "text",
|
|
88
149
|
text: [
|
|
89
|
-
`
|
|
150
|
+
`Purchase is still pending after 5 minutes.`,
|
|
90
151
|
`Reason: ${result.rule_evaluation?.reason || "Exceeds spending limits"}`,
|
|
91
|
-
`Charge request ID: ${
|
|
92
|
-
|
|
93
|
-
`
|
|
94
|
-
`You can check the status with the check_request_status tool.`,
|
|
152
|
+
`Charge request ID: ${chargeId}`,
|
|
153
|
+
`Approval page: ${approveUrl}`,
|
|
154
|
+
`You can check the status later with the check_payment_status tool.`,
|
|
95
155
|
].join("\n"),
|
|
96
156
|
},
|
|
97
157
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request_virtual_card.js","sourceRoot":"","sources":["../../src/tools/request_virtual_card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"request_virtual_card.js","sourceRoot":"","sources":["../../src/tools/request_virtual_card.ts"],"names":[],"mappings":"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"}
|