@agenttrust-sdk/mcp 0.2.5 → 0.2.6
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.
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
"mint": "2EGGN4fB5nkhuJQJ1mE9DrCBqmuCECSAvocMU4xbNqMY",
|
|
6
6
|
"transferAmount": "1000",
|
|
7
7
|
"signedTransfer": {
|
|
8
|
-
"signature": "
|
|
9
|
-
"explorer": "https://explorer.solana.com/tx/
|
|
8
|
+
"signature": "4fPgTL7EGJniGJgf2uQ4NkLXmwKJiF7SNW7dACvVJE8jTgUE9y5wTFbFFaNVSSJ7KAvpMQXgJ7P2y62duiga9Vmt",
|
|
9
|
+
"explorer": "https://explorer.solana.com/tx/4fPgTL7EGJniGJgf2uQ4NkLXmwKJiF7SNW7dACvVJE8jTgUE9y5wTFbFFaNVSSJ7KAvpMQXgJ7P2y62duiga9Vmt?cluster=devnet"
|
|
10
10
|
},
|
|
11
11
|
"emitFeedback": {
|
|
12
12
|
"signature": "jMobmWJUAXuL8FmQujfxW9NmeMbzADUoABzqjiMeuc5m3YXyeuZeUw1ZJc29JGsqyWQGDY8q3vrtBdamhKXraag",
|
|
@@ -19,6 +19,6 @@
|
|
|
19
19
|
"asset": "C6cuZeDT4kmCC1RXw8mzaoLGwmAMe5fHDvutAjicVi8B",
|
|
20
20
|
"atomStats": "4z9RiK6B49QZbmqPM9yNZWgfxYD3tvQ3NETU6X89f5mv"
|
|
21
21
|
},
|
|
22
|
-
"facilitatorBalanceSol": "
|
|
23
|
-
"capturedAt": "2026-05-
|
|
22
|
+
"facilitatorBalanceSol": "6.990858",
|
|
23
|
+
"capturedAt": "2026-05-07T19:29:46.411Z"
|
|
24
24
|
}
|
|
@@ -1,12 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `agenttrust_get_quantu_reputation` — read the Quantu atom_stats PDA
|
|
3
|
-
* for an agent and surface the on-chain reputation tier +
|
|
3
|
+
* for an agent and surface the on-chain reputation tier + risk fields.
|
|
4
4
|
*
|
|
5
5
|
* Quantu's atom_stats account isn't in our IDL — we fetch raw account
|
|
6
|
-
* bytes and decode the byte-offset surface PolicyVault's
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* bytes and decode the byte-offset surface PolicyVault's CounterpartyTier
|
|
7
|
+
* policy reads at gate time. Source-of-truth offsets live in
|
|
8
|
+
* `programs/policy-vault/src/ext/atom_engine.rs:21-27` and are mirrored
|
|
9
|
+
* verbatim here. If Quantu changes the layout the schema-version canary
|
|
10
|
+
* at byte 560 catches it and the tool returns a clean error rather than
|
|
11
|
+
* bogus values.
|
|
12
|
+
*
|
|
13
|
+
* Tier semantics:
|
|
14
|
+
*
|
|
15
|
+
* - `tierImmediate` is the v1 fast-path tier — settled within the
|
|
16
|
+
* same `give_feedback` tx that bumped the score. Used by the
|
|
17
|
+
* CounterpartyTier policy in v1 demo mode.
|
|
18
|
+
* - `tierConfirmed` is the post-vesting tier — only counted once the
|
|
19
|
+
* vesting window elapses. Production-mode policies prefer this.
|
|
20
|
+
*
|
|
21
|
+
* Phase P found the previous implementation read fabricated offsets
|
|
22
|
+
* (40 / 41 / 49 / 50 / 51 instead of 549 / 551 / 555 / 557) which
|
|
23
|
+
* returned `tier: 164` for an actually-tier-0 agent. 0.2.6 corrects
|
|
24
|
+
* this and adds the schema-version canary the on-chain parser uses.
|
|
10
25
|
*/
|
|
11
26
|
import { z } from "zod";
|
|
12
27
|
import type { Tool } from "../types";
|
|
@@ -26,14 +41,38 @@ interface Output {
|
|
|
26
41
|
ownerProgram: string | null;
|
|
27
42
|
ownerExpected: string;
|
|
28
43
|
ownerMatches: boolean;
|
|
44
|
+
rawByteLen: number;
|
|
45
|
+
/** Set when the schema-version canary fails or the account is undersized. */
|
|
46
|
+
error?: string;
|
|
29
47
|
reputation?: {
|
|
30
|
-
tier
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
48
|
+
/** v1 fast-path tier (0..=4). The CounterpartyTier policy reads
|
|
49
|
+
* this in v1 demo mode. */
|
|
50
|
+
tierImmediate: number;
|
|
51
|
+
/** Post-vesting confirmed tier (0..=4). Production policies prefer
|
|
52
|
+
* this once vesting windows are configured. */
|
|
53
|
+
tierConfirmed: number;
|
|
54
|
+
/** 0..=255 — lower is better. */
|
|
55
|
+
riskScore: number;
|
|
56
|
+
/** Confidence in the reputation reading, basis points (0..=10_000)
|
|
57
|
+
* per Quantu's atom_engine spec; carried as a u16 here. */
|
|
58
|
+
confidence: number;
|
|
59
|
+
/** Schema version (always 1 in v1 — checked as a canary). */
|
|
60
|
+
schemaVersion: number;
|
|
35
61
|
};
|
|
36
|
-
rawByteLen: number;
|
|
37
62
|
}
|
|
63
|
+
export declare const ATOM_STATS_SIZE = 561;
|
|
64
|
+
export declare const ATOM_STATS_RISK_SCORE_OFFSET = 549;
|
|
65
|
+
export declare const ATOM_STATS_TIER_IMMEDIATE_OFFSET = 551;
|
|
66
|
+
export declare const ATOM_STATS_TIER_CONFIRMED_OFFSET = 555;
|
|
67
|
+
export declare const ATOM_STATS_CONFIDENCE_OFFSET = 557;
|
|
68
|
+
export declare const ATOM_STATS_SCHEMA_VERSION_OFFSET = 560;
|
|
69
|
+
export declare const ATOM_STATS_SCHEMA_VERSION_EXPECTED = 1;
|
|
70
|
+
export declare const ATOM_TIER_MAX = 4;
|
|
71
|
+
/** Pure-fn bytes → reputation. Returns `{ error }` when the buffer fails any
|
|
72
|
+
* canary (size, schema_version, tier-range). Mirrors the on-chain parser's
|
|
73
|
+
* fail-loud semantics — caller surfaces the error. */
|
|
74
|
+
export declare function decodeAtomStatsBytes(data: Buffer | Uint8Array): NonNullable<Output["reputation"]> | {
|
|
75
|
+
error: string;
|
|
76
|
+
};
|
|
38
77
|
export declare const getQuantuReputationTool: Tool<Input, Output>;
|
|
39
78
|
export {};
|
|
@@ -1,16 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* `agenttrust_get_quantu_reputation` — read the Quantu atom_stats PDA
|
|
4
|
-
* for an agent and surface the on-chain reputation tier +
|
|
4
|
+
* for an agent and surface the on-chain reputation tier + risk fields.
|
|
5
5
|
*
|
|
6
6
|
* Quantu's atom_stats account isn't in our IDL — we fetch raw account
|
|
7
|
-
* bytes and decode the byte-offset surface PolicyVault's
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
7
|
+
* bytes and decode the byte-offset surface PolicyVault's CounterpartyTier
|
|
8
|
+
* policy reads at gate time. Source-of-truth offsets live in
|
|
9
|
+
* `programs/policy-vault/src/ext/atom_engine.rs:21-27` and are mirrored
|
|
10
|
+
* verbatim here. If Quantu changes the layout the schema-version canary
|
|
11
|
+
* at byte 560 catches it and the tool returns a clean error rather than
|
|
12
|
+
* bogus values.
|
|
13
|
+
*
|
|
14
|
+
* Tier semantics:
|
|
15
|
+
*
|
|
16
|
+
* - `tierImmediate` is the v1 fast-path tier — settled within the
|
|
17
|
+
* same `give_feedback` tx that bumped the score. Used by the
|
|
18
|
+
* CounterpartyTier policy in v1 demo mode.
|
|
19
|
+
* - `tierConfirmed` is the post-vesting tier — only counted once the
|
|
20
|
+
* vesting window elapses. Production-mode policies prefer this.
|
|
21
|
+
*
|
|
22
|
+
* Phase P found the previous implementation read fabricated offsets
|
|
23
|
+
* (40 / 41 / 49 / 50 / 51 instead of 549 / 551 / 555 / 557) which
|
|
24
|
+
* returned `tier: 164` for an actually-tier-0 agent. 0.2.6 corrects
|
|
25
|
+
* this and adds the schema-version canary the on-chain parser uses.
|
|
11
26
|
*/
|
|
12
27
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.getQuantuReputationTool = void 0;
|
|
28
|
+
exports.getQuantuReputationTool = exports.ATOM_TIER_MAX = exports.ATOM_STATS_SCHEMA_VERSION_EXPECTED = exports.ATOM_STATS_SCHEMA_VERSION_OFFSET = exports.ATOM_STATS_CONFIDENCE_OFFSET = exports.ATOM_STATS_TIER_CONFIRMED_OFFSET = exports.ATOM_STATS_TIER_IMMEDIATE_OFFSET = exports.ATOM_STATS_RISK_SCORE_OFFSET = exports.ATOM_STATS_SIZE = void 0;
|
|
29
|
+
exports.decodeAtomStatsBytes = decodeAtomStatsBytes;
|
|
14
30
|
const zod_1 = require("zod");
|
|
15
31
|
const chain_1 = require("../../chain");
|
|
16
32
|
const config_1 = require("../../config");
|
|
@@ -18,19 +34,56 @@ const common_1 = require("../common");
|
|
|
18
34
|
const InputSchema = zod_1.z.object({
|
|
19
35
|
agent_asset: common_1.PubkeySchema.describe("Quantu agent asset pubkey"),
|
|
20
36
|
});
|
|
21
|
-
//
|
|
22
|
-
// programs/policy-vault/src/ext/
|
|
23
|
-
//
|
|
24
|
-
//
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
37
|
+
// ---------------------------------------------------------------------------
|
|
38
|
+
// Byte-offset surface — MUST mirror programs/policy-vault/src/ext/atom_engine.rs
|
|
39
|
+
// ATOM_STATS_SIZE = 561
|
|
40
|
+
// ATOM_STATS_RISK_SCORE_OFFSET = 549
|
|
41
|
+
// ATOM_STATS_TRUST_TIER_OFFSET = 551 (immediate)
|
|
42
|
+
// ATOM_STATS_TIER_CONFIRMED_OFFSET = 555
|
|
43
|
+
// ATOM_STATS_CONFIDENCE_OFFSET = 557 (u16 LE, bytes 557..559)
|
|
44
|
+
// ATOM_STATS_SCHEMA_VERSION_OFFSET = 560
|
|
45
|
+
// ATOM_STATS_SCHEMA_VERSION_EXPECTED = 1
|
|
46
|
+
// ATOM_TIER_MAX = 4
|
|
47
|
+
// ---------------------------------------------------------------------------
|
|
48
|
+
exports.ATOM_STATS_SIZE = 561;
|
|
49
|
+
exports.ATOM_STATS_RISK_SCORE_OFFSET = 549;
|
|
50
|
+
exports.ATOM_STATS_TIER_IMMEDIATE_OFFSET = 551;
|
|
51
|
+
exports.ATOM_STATS_TIER_CONFIRMED_OFFSET = 555;
|
|
52
|
+
exports.ATOM_STATS_CONFIDENCE_OFFSET = 557;
|
|
53
|
+
exports.ATOM_STATS_SCHEMA_VERSION_OFFSET = 560;
|
|
54
|
+
exports.ATOM_STATS_SCHEMA_VERSION_EXPECTED = 1;
|
|
55
|
+
exports.ATOM_TIER_MAX = 4;
|
|
56
|
+
/** Pure-fn bytes → reputation. Returns `{ error }` when the buffer fails any
|
|
57
|
+
* canary (size, schema_version, tier-range). Mirrors the on-chain parser's
|
|
58
|
+
* fail-loud semantics — caller surfaces the error. */
|
|
59
|
+
function decodeAtomStatsBytes(data) {
|
|
60
|
+
if (data.length !== exports.ATOM_STATS_SIZE) {
|
|
61
|
+
return { error: `account size ${data.length} != expected ${exports.ATOM_STATS_SIZE}` };
|
|
62
|
+
}
|
|
63
|
+
const buf = data instanceof Buffer ? data : Buffer.from(data);
|
|
64
|
+
const schemaVersion = buf.readUInt8(exports.ATOM_STATS_SCHEMA_VERSION_OFFSET);
|
|
65
|
+
if (schemaVersion !== exports.ATOM_STATS_SCHEMA_VERSION_EXPECTED) {
|
|
66
|
+
return { error: `schema_version ${schemaVersion} != expected ${exports.ATOM_STATS_SCHEMA_VERSION_EXPECTED}` };
|
|
67
|
+
}
|
|
68
|
+
const tierImmediate = buf.readUInt8(exports.ATOM_STATS_TIER_IMMEDIATE_OFFSET);
|
|
69
|
+
const tierConfirmed = buf.readUInt8(exports.ATOM_STATS_TIER_CONFIRMED_OFFSET);
|
|
70
|
+
const riskScore = buf.readUInt8(exports.ATOM_STATS_RISK_SCORE_OFFSET);
|
|
71
|
+
const confidence = buf.readUInt16LE(exports.ATOM_STATS_CONFIDENCE_OFFSET);
|
|
72
|
+
if (tierImmediate > exports.ATOM_TIER_MAX) {
|
|
73
|
+
return { error: `tier_immediate ${tierImmediate} > ATOM_TIER_MAX ${exports.ATOM_TIER_MAX}` };
|
|
74
|
+
}
|
|
75
|
+
if (tierConfirmed > exports.ATOM_TIER_MAX) {
|
|
76
|
+
return { error: `tier_confirmed ${tierConfirmed} > ATOM_TIER_MAX ${exports.ATOM_TIER_MAX}` };
|
|
77
|
+
}
|
|
78
|
+
return { tierImmediate, tierConfirmed, riskScore, confidence, schemaVersion };
|
|
79
|
+
}
|
|
30
80
|
exports.getQuantuReputationTool = {
|
|
31
81
|
name: "agenttrust_get_quantu_reputation",
|
|
32
|
-
description: "Read the Quantu atom_stats PDA for an agent and decode
|
|
33
|
-
"
|
|
82
|
+
description: "Read the Quantu atom_stats PDA for an agent and decode the on-chain " +
|
|
83
|
+
"reputation. Returns tierImmediate (v1 fast-path tier, 0..=4) and " +
|
|
84
|
+
"tierConfirmed (post-vesting tier — production policies prefer this), " +
|
|
85
|
+
"plus riskScore (0..=255, lower is better), confidence (0..=10_000 " +
|
|
86
|
+
"basis points), and schemaVersion (canary, always 1 in v1). Same " +
|
|
34
87
|
"values PolicyVault's CounterpartyTier policy reads at gate time.",
|
|
35
88
|
inputSchema: InputSchema,
|
|
36
89
|
async handler(input, ctx) {
|
|
@@ -49,16 +102,12 @@ exports.getQuantuReputationTool = {
|
|
|
49
102
|
};
|
|
50
103
|
if (!accountInfo)
|
|
51
104
|
return out;
|
|
52
|
-
const
|
|
53
|
-
if (
|
|
105
|
+
const decoded = decodeAtomStatsBytes(accountInfo.data);
|
|
106
|
+
if ("error" in decoded) {
|
|
107
|
+
out.error = `atom_stats decode failed: ${decoded.error}`;
|
|
54
108
|
return out;
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
feedbackCount: (0, common_1.toDecString)(data.readBigUInt64LE(AS_FEEDBACK_COUNT_OFFSET)),
|
|
58
|
-
averageScore: data.readUInt8(AS_AVERAGE_SCORE_OFFSET),
|
|
59
|
-
riskScore: data.readUInt8(AS_RISK_SCORE_OFFSET),
|
|
60
|
-
confidence: data.readUInt16LE(AS_CONFIDENCE_OFFSET),
|
|
61
|
-
};
|
|
109
|
+
}
|
|
110
|
+
out.reputation = decoded;
|
|
62
111
|
return out;
|
|
63
112
|
},
|
|
64
113
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-quantu-reputation.js","sourceRoot":"","sources":["../../../src/tools/read/get-quantu-reputation.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"get-quantu-reputation.js","sourceRoot":"","sources":["../../../src/tools/read/get-quantu-reputation.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;;;AAiEH,oDAsBC;AArFD,6BAAwB;AAExB,uCAAiD;AACjD,yCAA2C;AAC3C,sCAAsD;AAGtD,MAAM,WAAW,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3B,WAAW,EAAE,qBAAY,CAAC,QAAQ,CAAC,2BAA2B,CAAC;CAChE,CAAC,CAAC;AA+BH,8EAA8E;AAC9E,iFAAiF;AACjF,gDAAgD;AAChD,gDAAgD;AAChD,6DAA6D;AAC7D,gDAAgD;AAChD,0EAA0E;AAC1E,gDAAgD;AAChD,8CAA8C;AAC9C,8CAA8C;AAC9C,8EAA8E;AACjE,QAAA,eAAe,GAAsB,GAAG,CAAC;AACzC,QAAA,4BAA4B,GAAS,GAAG,CAAC;AACzC,QAAA,gCAAgC,GAAK,GAAG,CAAC;AACzC,QAAA,gCAAgC,GAAK,GAAG,CAAC;AACzC,QAAA,4BAA4B,GAAS,GAAG,CAAC;AACzC,QAAA,gCAAgC,GAAK,GAAG,CAAC;AACzC,QAAA,kCAAkC,GAAG,CAAC,CAAC;AACvC,QAAA,aAAa,GAAwB,CAAC,CAAC;AAEpD;;uDAEuD;AACvD,SAAgB,oBAAoB,CAClC,IAAyB;IAEzB,IAAI,IAAI,CAAC,MAAM,KAAK,uBAAe,EAAE,CAAC;QACpC,OAAO,EAAE,KAAK,EAAE,gBAAgB,IAAI,CAAC,MAAM,gBAAgB,uBAAe,EAAE,EAAE,CAAC;IACjF,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,YAAY,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC,wCAAgC,CAAC,CAAC;IACtE,IAAI,aAAa,KAAK,0CAAkC,EAAE,CAAC;QACzD,OAAO,EAAE,KAAK,EAAE,kBAAkB,aAAa,gBAAgB,0CAAkC,EAAE,EAAE,CAAC;IACxG,CAAC;IACD,MAAM,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC,wCAAgC,CAAC,CAAC;IACtE,MAAM,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC,wCAAgC,CAAC,CAAC;IACtE,MAAM,SAAS,GAAO,GAAG,CAAC,SAAS,CAAC,oCAA4B,CAAC,CAAC;IAClE,MAAM,UAAU,GAAM,GAAG,CAAC,YAAY,CAAC,oCAA4B,CAAC,CAAC;IACrE,IAAI,aAAa,GAAG,qBAAa,EAAE,CAAC;QAClC,OAAO,EAAE,KAAK,EAAE,kBAAkB,aAAa,oBAAoB,qBAAa,EAAE,EAAE,CAAC;IACvF,CAAC;IACD,IAAI,aAAa,GAAG,qBAAa,EAAE,CAAC;QAClC,OAAO,EAAE,KAAK,EAAE,kBAAkB,aAAa,oBAAoB,qBAAa,EAAE,EAAE,CAAC;IACvF,CAAC;IACD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;AAChF,CAAC;AAEY,QAAA,uBAAuB,GAAwB;IAC1D,IAAI,EAAS,kCAAkC;IAC/C,WAAW,EACT,sEAAsE;QACtE,mEAAmE;QACnE,uEAAuE;QACvE,oEAAoE;QACpE,kEAAkE;QAClE,kEAAkE;IACpE,WAAW,EAAE,WAAW;IAExB,KAAK,CAAC,OAAO,CAAC,KAAY,EAAE,GAAgB;QAC1C,MAAM,KAAK,GAAS,IAAA,oBAAW,EAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAClE,MAAM,UAAU,GAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;QACpD,MAAM,GAAG,GAAW,IAAA,0BAAkB,EAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAEhF,MAAM,GAAG,GAAW;YAClB,GAAG,EAAY,GAAG,CAAC,QAAQ,EAAE;YAC7B,WAAW,EAAI,IAAA,oBAAW,EAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;YACpE,MAAM,EAAS,CAAC,CAAC,WAAW;YAC5B,YAAY,EAAG,WAAW,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,IAAI;YACpD,aAAa,EAAE,UAAU,CAAC,QAAQ,EAAE;YACpC,YAAY,EAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK;YACzE,UAAU,EAAK,WAAW,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC;SAC7C,CAAC;QACF,IAAI,CAAC,WAAW;YAAE,OAAO,GAAG,CAAC;QAE7B,MAAM,OAAO,GAAG,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;YACvB,GAAG,CAAC,KAAK,GAAG,6BAA6B,OAAO,CAAC,KAAK,EAAE,CAAC;YACzD,OAAO,GAAG,CAAC;QACb,CAAC;QACD,GAAG,CAAC,UAAU,GAAG,OAAO,CAAC;QACzB,OAAO,GAAG,CAAC;IACb,CAAC;CACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agenttrust-sdk/mcp",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.6",
|
|
4
4
|
"description": "MCP server for AgentTrust — query and call deployed Solana programs from Claude Desktop / Cursor / any MCP client",
|
|
5
5
|
"author": "AgentTrust Labs (https://agenttrust.tech)",
|
|
6
6
|
"license": "MIT",
|