@agent-shield/mcp 0.1.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.
Files changed (86) hide show
  1. package/README.md +124 -0
  2. package/dist/config.d.ts +12 -0
  3. package/dist/config.d.ts.map +1 -0
  4. package/dist/config.js +75 -0
  5. package/dist/config.js.map +1 -0
  6. package/dist/errors.d.ts +22 -0
  7. package/dist/errors.d.ts.map +1 -0
  8. package/dist/errors.js +244 -0
  9. package/dist/errors.js.map +1 -0
  10. package/dist/index.d.ts +3 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +206 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/resources/activity.d.ts +3 -0
  15. package/dist/resources/activity.d.ts.map +1 -0
  16. package/dist/resources/activity.js +33 -0
  17. package/dist/resources/activity.js.map +1 -0
  18. package/dist/resources/index.d.ts +4 -0
  19. package/dist/resources/index.d.ts.map +1 -0
  20. package/dist/resources/index.js +10 -0
  21. package/dist/resources/index.js.map +1 -0
  22. package/dist/resources/policy.d.ts +3 -0
  23. package/dist/resources/policy.d.ts.map +1 -0
  24. package/dist/resources/policy.js +36 -0
  25. package/dist/resources/policy.js.map +1 -0
  26. package/dist/resources/spending.d.ts +3 -0
  27. package/dist/resources/spending.d.ts.map +1 -0
  28. package/dist/resources/spending.js +39 -0
  29. package/dist/resources/spending.js.map +1 -0
  30. package/dist/tools/check-spending.d.ts +24 -0
  31. package/dist/tools/check-spending.d.ts.map +1 -0
  32. package/dist/tools/check-spending.js +60 -0
  33. package/dist/tools/check-spending.js.map +1 -0
  34. package/dist/tools/check-vault.d.ts +36 -0
  35. package/dist/tools/check-vault.d.ts.map +1 -0
  36. package/dist/tools/check-vault.js +110 -0
  37. package/dist/tools/check-vault.js.map +1 -0
  38. package/dist/tools/close-position.d.ts +49 -0
  39. package/dist/tools/close-position.d.ts.map +1 -0
  40. package/dist/tools/close-position.js +65 -0
  41. package/dist/tools/close-position.js.map +1 -0
  42. package/dist/tools/create-vault.d.ts +72 -0
  43. package/dist/tools/create-vault.d.ts.map +1 -0
  44. package/dist/tools/create-vault.js +75 -0
  45. package/dist/tools/create-vault.js.map +1 -0
  46. package/dist/tools/deposit.d.ts +36 -0
  47. package/dist/tools/deposit.d.ts.map +1 -0
  48. package/dist/tools/deposit.js +35 -0
  49. package/dist/tools/deposit.js.map +1 -0
  50. package/dist/tools/execute-swap.d.ts +49 -0
  51. package/dist/tools/execute-swap.d.ts.map +1 -0
  52. package/dist/tools/execute-swap.js +58 -0
  53. package/dist/tools/execute-swap.js.map +1 -0
  54. package/dist/tools/index.d.ts +13 -0
  55. package/dist/tools/index.d.ts.map +1 -0
  56. package/dist/tools/index.js +52 -0
  57. package/dist/tools/index.js.map +1 -0
  58. package/dist/tools/open-position.d.ts +61 -0
  59. package/dist/tools/open-position.d.ts.map +1 -0
  60. package/dist/tools/open-position.js +70 -0
  61. package/dist/tools/open-position.js.map +1 -0
  62. package/dist/tools/reactivate-vault.d.ts +30 -0
  63. package/dist/tools/reactivate-vault.d.ts.map +1 -0
  64. package/dist/tools/reactivate-vault.js +41 -0
  65. package/dist/tools/reactivate-vault.js.map +1 -0
  66. package/dist/tools/register-agent.d.ts +30 -0
  67. package/dist/tools/register-agent.d.ts.map +1 -0
  68. package/dist/tools/register-agent.js +36 -0
  69. package/dist/tools/register-agent.js.map +1 -0
  70. package/dist/tools/revoke-agent.d.ts +24 -0
  71. package/dist/tools/revoke-agent.d.ts.map +1 -0
  72. package/dist/tools/revoke-agent.js +34 -0
  73. package/dist/tools/revoke-agent.js.map +1 -0
  74. package/dist/tools/update-policy.d.ts +72 -0
  75. package/dist/tools/update-policy.d.ts.map +1 -0
  76. package/dist/tools/update-policy.js +90 -0
  77. package/dist/tools/update-policy.js.map +1 -0
  78. package/dist/tools/withdraw.d.ts +36 -0
  79. package/dist/tools/withdraw.d.ts.map +1 -0
  80. package/dist/tools/withdraw.js +34 -0
  81. package/dist/tools/withdraw.js.map +1 -0
  82. package/dist/utils.d.ts +11 -0
  83. package/dist/utils.d.ts.map +1 -0
  84. package/dist/utils.js +69 -0
  85. package/dist/utils.js.map +1 -0
  86. package/package.json +51 -0
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.withdrawTool = exports.withdrawSchema = void 0;
4
+ exports.withdraw = withdraw;
5
+ const zod_1 = require("zod");
6
+ const utils_1 = require("../utils");
7
+ const errors_1 = require("../errors");
8
+ exports.withdrawSchema = zod_1.z.object({
9
+ vault: zod_1.z.string().describe("Vault PDA address (base58)"),
10
+ mint: zod_1.z.string().describe("Token mint address (base58)"),
11
+ amount: zod_1.z.string().describe("Amount in token base units (e.g. lamports)"),
12
+ });
13
+ async function withdraw(client, input) {
14
+ try {
15
+ const sig = await client.withdraw((0, utils_1.toPublicKey)(input.vault), (0, utils_1.toPublicKey)(input.mint), (0, utils_1.toBN)(input.amount));
16
+ return [
17
+ "## Withdrawal Successful",
18
+ `- **Vault:** ${input.vault}`,
19
+ `- **Token:** ${input.mint}`,
20
+ `- **Amount:** ${input.amount}`,
21
+ `- **Transaction:** ${sig}`,
22
+ ].join("\n");
23
+ }
24
+ catch (error) {
25
+ return (0, errors_1.formatError)(error);
26
+ }
27
+ }
28
+ exports.withdrawTool = {
29
+ name: "shield_withdraw",
30
+ description: "Withdraw tokens from an AgentShield vault. Owner-only operation.",
31
+ schema: exports.withdrawSchema,
32
+ handler: withdraw,
33
+ };
34
+ //# sourceMappingURL=withdraw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withdraw.js","sourceRoot":"","sources":["../../src/tools/withdraw.ts"],"names":[],"mappings":";;;AAaA,4BAqBC;AAlCD,6BAAwB;AAExB,oCAA6C;AAC7C,sCAAwC;AAE3B,QAAA,cAAc,GAAG,OAAC,CAAC,MAAM,CAAC;IACrC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACxD,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IACxD,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;CAC1E,CAAC,CAAC;AAII,KAAK,UAAU,QAAQ,CAC5B,MAAyB,EACzB,KAAoB;IAEpB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,CAC/B,IAAA,mBAAW,EAAC,KAAK,CAAC,KAAK,CAAC,EACxB,IAAA,mBAAW,EAAC,KAAK,CAAC,IAAI,CAAC,EACvB,IAAA,YAAI,EAAC,KAAK,CAAC,MAAM,CAAC,CACnB,CAAC;QAEF,OAAO;YACL,0BAA0B;YAC1B,gBAAgB,KAAK,CAAC,KAAK,EAAE;YAC7B,gBAAgB,KAAK,CAAC,IAAI,EAAE;YAC5B,iBAAiB,KAAK,CAAC,MAAM,EAAE;YAC/B,sBAAsB,GAAG,EAAE;SAC5B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAA,oBAAW,EAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC;AAEY,QAAA,YAAY,GAAG;IAC1B,IAAI,EAAE,iBAAiB;IACvB,WAAW,EACT,kEAAkE;IACpE,MAAM,EAAE,sBAAc;IACtB,OAAO,EAAE,QAAQ;CAClB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { PublicKey } from "@solana/web3.js";
2
+ import { BN } from "@coral-xyz/anchor";
3
+ import type { VaultStatus, ActionType } from "@agent-shield/sdk";
4
+ export declare function toPublicKey(value: string): PublicKey;
5
+ export declare function toBN(value: string): BN;
6
+ export declare function formatVaultStatus(status: VaultStatus): string;
7
+ export declare function formatActionType(action: ActionType): string;
8
+ export declare function formatBN(value: BN): string;
9
+ export declare function formatTimestamp(ts: BN): string;
10
+ export declare function formatLamports(lamports: BN, decimals?: number): string;
11
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AACvC,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACX,MAAM,mBAAmB,CAAC;AAE3B,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAMpD;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,EAAE,CAQtC;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAK7D;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAS3D;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,EAAE,GAAG,MAAM,CAE1C;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAG9C;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,EAAE,EAAE,QAAQ,GAAE,MAAU,GAAG,MAAM,CAOzE"}
package/dist/utils.js ADDED
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toPublicKey = toPublicKey;
4
+ exports.toBN = toBN;
5
+ exports.formatVaultStatus = formatVaultStatus;
6
+ exports.formatActionType = formatActionType;
7
+ exports.formatBN = formatBN;
8
+ exports.formatTimestamp = formatTimestamp;
9
+ exports.formatLamports = formatLamports;
10
+ const web3_js_1 = require("@solana/web3.js");
11
+ const anchor_1 = require("@coral-xyz/anchor");
12
+ function toPublicKey(value) {
13
+ try {
14
+ return new web3_js_1.PublicKey(value);
15
+ }
16
+ catch {
17
+ throw new Error(`Invalid public key: "${value}"`);
18
+ }
19
+ }
20
+ function toBN(value) {
21
+ try {
22
+ return new anchor_1.BN(value);
23
+ }
24
+ catch {
25
+ throw new Error(`Invalid numeric value: "${value}". Provide a decimal integer string.`);
26
+ }
27
+ }
28
+ function formatVaultStatus(status) {
29
+ if ("active" in status)
30
+ return "Active";
31
+ if ("frozen" in status)
32
+ return "Frozen";
33
+ if ("closed" in status)
34
+ return "Closed";
35
+ return "Unknown";
36
+ }
37
+ function formatActionType(action) {
38
+ if ("swap" in action)
39
+ return "Swap";
40
+ if ("openPosition" in action)
41
+ return "Open Position";
42
+ if ("closePosition" in action)
43
+ return "Close Position";
44
+ if ("increasePosition" in action)
45
+ return "Increase Position";
46
+ if ("decreasePosition" in action)
47
+ return "Decrease Position";
48
+ if ("deposit" in action)
49
+ return "Deposit";
50
+ if ("withdraw" in action)
51
+ return "Withdraw";
52
+ return "Unknown";
53
+ }
54
+ function formatBN(value) {
55
+ return value.toString();
56
+ }
57
+ function formatTimestamp(ts) {
58
+ const ms = ts.toNumber() * 1000;
59
+ return new Date(ms).toISOString();
60
+ }
61
+ function formatLamports(lamports, decimals = 9) {
62
+ const str = lamports.toString().padStart(decimals + 1, "0");
63
+ const whole = str.slice(0, str.length - decimals) || "0";
64
+ const frac = str.slice(str.length - decimals);
65
+ // Trim trailing zeros
66
+ const trimmed = frac.replace(/0+$/, "");
67
+ return trimmed ? `${whole}.${trimmed}` : whole;
68
+ }
69
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;AAOA,kCAMC;AAED,oBAQC;AAED,8CAKC;AAED,4CASC;AAED,4BAEC;AAED,0CAGC;AAED,wCAOC;AA3DD,6CAA4C;AAC5C,8CAAuC;AAMvC,SAAgB,WAAW,CAAC,KAAa;IACvC,IAAI,CAAC;QACH,OAAO,IAAI,mBAAS,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,GAAG,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED,SAAgB,IAAI,CAAC,KAAa;IAChC,IAAI,CAAC;QACH,OAAO,IAAI,WAAE,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,2BAA2B,KAAK,sCAAsC,CACvE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAgB,iBAAiB,CAAC,MAAmB;IACnD,IAAI,QAAQ,IAAI,MAAM;QAAE,OAAO,QAAQ,CAAC;IACxC,IAAI,QAAQ,IAAI,MAAM;QAAE,OAAO,QAAQ,CAAC;IACxC,IAAI,QAAQ,IAAI,MAAM;QAAE,OAAO,QAAQ,CAAC;IACxC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,gBAAgB,CAAC,MAAkB;IACjD,IAAI,MAAM,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IACpC,IAAI,cAAc,IAAI,MAAM;QAAE,OAAO,eAAe,CAAC;IACrD,IAAI,eAAe,IAAI,MAAM;QAAE,OAAO,gBAAgB,CAAC;IACvD,IAAI,kBAAkB,IAAI,MAAM;QAAE,OAAO,mBAAmB,CAAC;IAC7D,IAAI,kBAAkB,IAAI,MAAM;QAAE,OAAO,mBAAmB,CAAC;IAC7D,IAAI,SAAS,IAAI,MAAM;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,UAAU,IAAI,MAAM;QAAE,OAAO,UAAU,CAAC;IAC5C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,QAAQ,CAAC,KAAS;IAChC,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC1B,CAAC;AAED,SAAgB,eAAe,CAAC,EAAM;IACpC,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;IAChC,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AACpC,CAAC;AAED,SAAgB,cAAc,CAAC,QAAY,EAAE,WAAmB,CAAC;IAC/D,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,GAAG,CAAC;IACzD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC;IAC9C,sBAAsB;IACtB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxC,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AACjD,CAAC"}
package/package.json ADDED
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "@agent-shield/mcp",
3
+ "version": "0.1.0",
4
+ "description": "MCP server for AgentShield — manage on-chain vaults and enforce policies via AI tools",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "bin": {
8
+ "agent-shield-mcp": "dist/index.js"
9
+ },
10
+ "files": [
11
+ "dist/**/*",
12
+ "README.md"
13
+ ],
14
+ "engines": {
15
+ "node": ">=18.0.0"
16
+ },
17
+ "dependencies": {
18
+ "@modelcontextprotocol/sdk": "^1.12.1"
19
+ },
20
+ "peerDependencies": {
21
+ "@agent-shield/sdk": ">=0.1.5",
22
+ "@coral-xyz/anchor": ">=0.32.1",
23
+ "@solana/web3.js": ">=1.95.0",
24
+ "zod": ">=3.25.0"
25
+ },
26
+ "devDependencies": {
27
+ "@coral-xyz/anchor": "^0.32.1",
28
+ "@solana/web3.js": "^1.95.0",
29
+ "@types/chai": "^4.3.11",
30
+ "@types/mocha": "^10.0.6",
31
+ "@types/sinon": "^17.0.3",
32
+ "zod": "^3.25.0",
33
+ "chai": "^4.4.1",
34
+ "mocha": "^10.3.0",
35
+ "sinon": "^17.0.1",
36
+ "ts-node": "^10.9.2",
37
+ "typescript": "^5.3.3",
38
+ "@agent-shield/sdk": "0.1.6"
39
+ },
40
+ "license": "MIT",
41
+ "repository": {
42
+ "type": "git",
43
+ "url": "https://github.com/agent-shield/agent-shield",
44
+ "directory": "packages/mcp"
45
+ },
46
+ "scripts": {
47
+ "build": "tsc",
48
+ "clean": "rm -rf dist",
49
+ "test": "mocha --require ts-node/register 'tests/*.test.ts' 'tests/**/*.test.ts' --timeout 30000"
50
+ }
51
+ }