@aibtc/mcp-server 1.0.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 (178) hide show
  1. package/README.md +340 -0
  2. package/dist/api.d.ts +9 -0
  3. package/dist/api.d.ts.map +1 -0
  4. package/dist/api.js +79 -0
  5. package/dist/api.js.map +1 -0
  6. package/dist/config/contracts.d.ts +169 -0
  7. package/dist/config/contracts.d.ts.map +1 -0
  8. package/dist/config/contracts.js +250 -0
  9. package/dist/config/contracts.js.map +1 -0
  10. package/dist/config/index.d.ts +3 -0
  11. package/dist/config/index.d.ts.map +1 -0
  12. package/dist/config/index.js +3 -0
  13. package/dist/config/index.js.map +1 -0
  14. package/dist/config/networks.d.ts +11 -0
  15. package/dist/config/networks.d.ts.map +1 -0
  16. package/dist/config/networks.js +21 -0
  17. package/dist/config/networks.js.map +1 -0
  18. package/dist/endpoints/index.d.ts +2 -0
  19. package/dist/endpoints/index.d.ts.map +1 -0
  20. package/dist/endpoints/index.js +2 -0
  21. package/dist/endpoints/index.js.map +1 -0
  22. package/dist/endpoints/registry.d.ts +38 -0
  23. package/dist/endpoints/registry.d.ts.map +1 -0
  24. package/dist/endpoints/registry.js +935 -0
  25. package/dist/endpoints/registry.js.map +1 -0
  26. package/dist/index.d.ts +3 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +79 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/services/bitflow.service.d.ts +159 -0
  31. package/dist/services/bitflow.service.d.ts.map +1 -0
  32. package/dist/services/bitflow.service.js +325 -0
  33. package/dist/services/bitflow.service.js.map +1 -0
  34. package/dist/services/bns.service.d.ts +87 -0
  35. package/dist/services/bns.service.d.ts.map +1 -0
  36. package/dist/services/bns.service.js +312 -0
  37. package/dist/services/bns.service.js.map +1 -0
  38. package/dist/services/defi.service.d.ts +146 -0
  39. package/dist/services/defi.service.d.ts.map +1 -0
  40. package/dist/services/defi.service.js +461 -0
  41. package/dist/services/defi.service.js.map +1 -0
  42. package/dist/services/hiro-api.d.ts +438 -0
  43. package/dist/services/hiro-api.d.ts.map +1 -0
  44. package/dist/services/hiro-api.js +376 -0
  45. package/dist/services/hiro-api.js.map +1 -0
  46. package/dist/services/nft.service.d.ts +70 -0
  47. package/dist/services/nft.service.d.ts.map +1 -0
  48. package/dist/services/nft.service.js +148 -0
  49. package/dist/services/nft.service.js.map +1 -0
  50. package/dist/services/sbtc.service.d.ts +44 -0
  51. package/dist/services/sbtc.service.d.ts.map +1 -0
  52. package/dist/services/sbtc.service.js +100 -0
  53. package/dist/services/sbtc.service.js.map +1 -0
  54. package/dist/services/scaffold.service.d.ts +41 -0
  55. package/dist/services/scaffold.service.d.ts.map +1 -0
  56. package/dist/services/scaffold.service.js +1055 -0
  57. package/dist/services/scaffold.service.js.map +1 -0
  58. package/dist/services/stacking.service.d.ts +58 -0
  59. package/dist/services/stacking.service.d.ts.map +1 -0
  60. package/dist/services/stacking.service.js +153 -0
  61. package/dist/services/stacking.service.js.map +1 -0
  62. package/dist/services/tokens.service.d.ts +62 -0
  63. package/dist/services/tokens.service.d.ts.map +1 -0
  64. package/dist/services/tokens.service.js +119 -0
  65. package/dist/services/tokens.service.js.map +1 -0
  66. package/dist/services/wallet-manager.d.ts +107 -0
  67. package/dist/services/wallet-manager.d.ts.map +1 -0
  68. package/dist/services/wallet-manager.js +389 -0
  69. package/dist/services/wallet-manager.js.map +1 -0
  70. package/dist/services/x402.service.d.ts +26 -0
  71. package/dist/services/x402.service.d.ts.map +1 -0
  72. package/dist/services/x402.service.js +125 -0
  73. package/dist/services/x402.service.js.map +1 -0
  74. package/dist/tools/bitflow.tools.d.ts +3 -0
  75. package/dist/tools/bitflow.tools.d.ts.map +1 -0
  76. package/dist/tools/bitflow.tools.js +501 -0
  77. package/dist/tools/bitflow.tools.js.map +1 -0
  78. package/dist/tools/bns.tools.d.ts +3 -0
  79. package/dist/tools/bns.tools.d.ts.map +1 -0
  80. package/dist/tools/bns.tools.js +164 -0
  81. package/dist/tools/bns.tools.js.map +1 -0
  82. package/dist/tools/contract.tools.d.ts +3 -0
  83. package/dist/tools/contract.tools.d.ts.map +1 -0
  84. package/dist/tools/contract.tools.js +126 -0
  85. package/dist/tools/contract.tools.js.map +1 -0
  86. package/dist/tools/defi.tools.d.ts +3 -0
  87. package/dist/tools/defi.tools.d.ts.map +1 -0
  88. package/dist/tools/defi.tools.js +425 -0
  89. package/dist/tools/defi.tools.js.map +1 -0
  90. package/dist/tools/endpoint.tools.d.ts +3 -0
  91. package/dist/tools/endpoint.tools.d.ts.map +1 -0
  92. package/dist/tools/endpoint.tools.js +157 -0
  93. package/dist/tools/endpoint.tools.js.map +1 -0
  94. package/dist/tools/index.d.ts +6 -0
  95. package/dist/tools/index.d.ts.map +1 -0
  96. package/dist/tools/index.js +52 -0
  97. package/dist/tools/index.js.map +1 -0
  98. package/dist/tools/nft.tools.d.ts +3 -0
  99. package/dist/tools/nft.tools.d.ts.map +1 -0
  100. package/dist/tools/nft.tools.js +154 -0
  101. package/dist/tools/nft.tools.js.map +1 -0
  102. package/dist/tools/openrouter.tools.d.ts +3 -0
  103. package/dist/tools/openrouter.tools.d.ts.map +1 -0
  104. package/dist/tools/openrouter.tools.js +664 -0
  105. package/dist/tools/openrouter.tools.js.map +1 -0
  106. package/dist/tools/query.tools.d.ts +3 -0
  107. package/dist/tools/query.tools.d.ts.map +1 -0
  108. package/dist/tools/query.tools.js +209 -0
  109. package/dist/tools/query.tools.js.map +1 -0
  110. package/dist/tools/sbtc.tools.d.ts +3 -0
  111. package/dist/tools/sbtc.tools.d.ts.map +1 -0
  112. package/dist/tools/sbtc.tools.js +103 -0
  113. package/dist/tools/sbtc.tools.js.map +1 -0
  114. package/dist/tools/scaffold.tools.d.ts +3 -0
  115. package/dist/tools/scaffold.tools.d.ts.map +1 -0
  116. package/dist/tools/scaffold.tools.js +216 -0
  117. package/dist/tools/scaffold.tools.js.map +1 -0
  118. package/dist/tools/stacking.tools.d.ts +3 -0
  119. package/dist/tools/stacking.tools.d.ts.map +1 -0
  120. package/dist/tools/stacking.tools.js +112 -0
  121. package/dist/tools/stacking.tools.js.map +1 -0
  122. package/dist/tools/tokens.tools.d.ts +3 -0
  123. package/dist/tools/tokens.tools.d.ts.map +1 -0
  124. package/dist/tools/tokens.tools.js +154 -0
  125. package/dist/tools/tokens.tools.js.map +1 -0
  126. package/dist/tools/transfer.tools.d.ts +3 -0
  127. package/dist/tools/transfer.tools.d.ts.map +1 -0
  128. package/dist/tools/transfer.tools.js +62 -0
  129. package/dist/tools/transfer.tools.js.map +1 -0
  130. package/dist/tools/wallet-management.tools.d.ts +6 -0
  131. package/dist/tools/wallet-management.tools.d.ts.map +1 -0
  132. package/dist/tools/wallet-management.tools.js +390 -0
  133. package/dist/tools/wallet-management.tools.js.map +1 -0
  134. package/dist/tools/wallet.tools.d.ts +3 -0
  135. package/dist/tools/wallet.tools.d.ts.map +1 -0
  136. package/dist/tools/wallet.tools.js +105 -0
  137. package/dist/tools/wallet.tools.js.map +1 -0
  138. package/dist/transactions/builder.d.ts +56 -0
  139. package/dist/transactions/builder.d.ts.map +1 -0
  140. package/dist/transactions/builder.js +134 -0
  141. package/dist/transactions/builder.js.map +1 -0
  142. package/dist/transactions/clarity-values.d.ts +67 -0
  143. package/dist/transactions/clarity-values.d.ts.map +1 -0
  144. package/dist/transactions/clarity-values.js +169 -0
  145. package/dist/transactions/clarity-values.js.map +1 -0
  146. package/dist/transactions/post-conditions.d.ts +27 -0
  147. package/dist/transactions/post-conditions.d.ts.map +1 -0
  148. package/dist/transactions/post-conditions.js +101 -0
  149. package/dist/transactions/post-conditions.js.map +1 -0
  150. package/dist/utils/encryption.d.ts +33 -0
  151. package/dist/utils/encryption.d.ts.map +1 -0
  152. package/dist/utils/encryption.js +110 -0
  153. package/dist/utils/encryption.js.map +1 -0
  154. package/dist/utils/errors.d.ts +84 -0
  155. package/dist/utils/errors.d.ts.map +1 -0
  156. package/dist/utils/errors.js +132 -0
  157. package/dist/utils/errors.js.map +1 -0
  158. package/dist/utils/formatting.d.ts +51 -0
  159. package/dist/utils/formatting.d.ts.map +1 -0
  160. package/dist/utils/formatting.js +114 -0
  161. package/dist/utils/formatting.js.map +1 -0
  162. package/dist/utils/index.d.ts +6 -0
  163. package/dist/utils/index.d.ts.map +1 -0
  164. package/dist/utils/index.js +6 -0
  165. package/dist/utils/index.js.map +1 -0
  166. package/dist/utils/storage.d.ts +90 -0
  167. package/dist/utils/storage.d.ts.map +1 -0
  168. package/dist/utils/storage.js +196 -0
  169. package/dist/utils/storage.js.map +1 -0
  170. package/dist/utils/validation.d.ts +67 -0
  171. package/dist/utils/validation.d.ts.map +1 -0
  172. package/dist/utils/validation.js +74 -0
  173. package/dist/utils/validation.js.map +1 -0
  174. package/dist/wallet.d.ts +86 -0
  175. package/dist/wallet.d.ts.map +1 -0
  176. package/dist/wallet.js +279 -0
  177. package/dist/wallet.js.map +1 -0
  178. package/package.json +58 -0
package/dist/wallet.js ADDED
@@ -0,0 +1,279 @@
1
+ import { generateWallet, getStxAddress } from "@stacks/wallet-sdk";
2
+ import { makeSTXTokenTransfer, makeContractCall, makeContractDeploy, broadcastTransaction, PostConditionMode, stringAsciiCV, stringUtf8CV, intCV, uintCV, boolCV, principalCV, bufferCV, listCV, tupleCV, noneCV, someCV, } from "@stacks/transactions";
3
+ export async function mnemonicToAccount(mnemonic, network) {
4
+ const wallet = await generateWallet({
5
+ secretKey: mnemonic,
6
+ password: "",
7
+ });
8
+ const account = wallet.accounts[0];
9
+ const address = getStxAddress(account, network);
10
+ return {
11
+ address,
12
+ privateKey: account.stxPrivateKey,
13
+ network,
14
+ };
15
+ }
16
+ export function getStacksNetwork(network) {
17
+ return network === "mainnet" ? "mainnet" : "testnet";
18
+ }
19
+ export function getApiBaseUrl(network) {
20
+ return network === "mainnet"
21
+ ? "https://api.mainnet.hiro.so"
22
+ : "https://api.testnet.hiro.so";
23
+ }
24
+ /**
25
+ * Get account info including nonce and balance from the Stacks API
26
+ */
27
+ export async function getAccountInfo(address, network) {
28
+ const baseUrl = getApiBaseUrl(network);
29
+ const response = await fetch(`${baseUrl}/v2/accounts/${address}`);
30
+ if (!response.ok) {
31
+ throw new Error(`Failed to get account info: ${response.statusText}`);
32
+ }
33
+ const data = await response.json();
34
+ return {
35
+ nonce: data.nonce,
36
+ balance: data.balance,
37
+ };
38
+ }
39
+ /**
40
+ * Get STX balance for an address
41
+ */
42
+ export async function getStxBalance(address, network) {
43
+ const baseUrl = getApiBaseUrl(network);
44
+ const response = await fetch(`${baseUrl}/extended/v1/address/${address}/stx`);
45
+ if (!response.ok) {
46
+ throw new Error(`Failed to get STX balance: ${response.statusText}`);
47
+ }
48
+ const data = await response.json();
49
+ return {
50
+ stx: data.balance,
51
+ stxLocked: data.locked,
52
+ };
53
+ }
54
+ /**
55
+ * Transfer STX tokens to a recipient
56
+ */
57
+ export async function transferStx(account, recipient, amount, memo) {
58
+ const networkName = getStacksNetwork(account.network);
59
+ const transaction = await makeSTXTokenTransfer({
60
+ recipient,
61
+ amount,
62
+ senderKey: account.privateKey,
63
+ network: networkName,
64
+ memo: memo || "",
65
+ });
66
+ const broadcastResponse = await broadcastTransaction({
67
+ transaction,
68
+ network: networkName,
69
+ });
70
+ if ("error" in broadcastResponse) {
71
+ throw new Error(`Broadcast failed: ${broadcastResponse.error} - ${broadcastResponse.reason}`);
72
+ }
73
+ return {
74
+ txid: broadcastResponse.txid,
75
+ rawTx: Buffer.from(transaction.serialize()).toString("hex"),
76
+ };
77
+ }
78
+ /**
79
+ * Call a smart contract function
80
+ */
81
+ export async function callContract(account, options) {
82
+ const networkName = getStacksNetwork(account.network);
83
+ const transaction = await makeContractCall({
84
+ contractAddress: options.contractAddress,
85
+ contractName: options.contractName,
86
+ functionName: options.functionName,
87
+ functionArgs: options.functionArgs,
88
+ senderKey: account.privateKey,
89
+ network: networkName,
90
+ postConditionMode: options.postConditionMode || PostConditionMode.Deny,
91
+ });
92
+ const broadcastResponse = await broadcastTransaction({
93
+ transaction,
94
+ network: networkName,
95
+ });
96
+ if ("error" in broadcastResponse) {
97
+ throw new Error(`Broadcast failed: ${broadcastResponse.error} - ${broadcastResponse.reason}`);
98
+ }
99
+ return {
100
+ txid: broadcastResponse.txid,
101
+ rawTx: Buffer.from(transaction.serialize()).toString("hex"),
102
+ };
103
+ }
104
+ /**
105
+ * Deploy a smart contract
106
+ */
107
+ export async function deployContract(account, options) {
108
+ const networkName = getStacksNetwork(account.network);
109
+ const transaction = await makeContractDeploy({
110
+ contractName: options.contractName,
111
+ codeBody: options.codeBody,
112
+ senderKey: account.privateKey,
113
+ network: networkName,
114
+ });
115
+ const broadcastResponse = await broadcastTransaction({
116
+ transaction,
117
+ network: networkName,
118
+ });
119
+ if ("error" in broadcastResponse) {
120
+ throw new Error(`Broadcast failed: ${broadcastResponse.error} - ${broadcastResponse.reason}`);
121
+ }
122
+ return {
123
+ txid: broadcastResponse.txid,
124
+ rawTx: Buffer.from(transaction.serialize()).toString("hex"),
125
+ };
126
+ }
127
+ /**
128
+ * Sign a transaction without broadcasting (for offline signing)
129
+ */
130
+ export async function signStxTransfer(account, recipient, amount, memo) {
131
+ const networkName = getStacksNetwork(account.network);
132
+ const transaction = await makeSTXTokenTransfer({
133
+ recipient,
134
+ amount,
135
+ senderKey: account.privateKey,
136
+ network: networkName,
137
+ memo: memo || "",
138
+ });
139
+ return {
140
+ signedTx: Buffer.from(transaction.serialize()).toString("hex"),
141
+ txid: transaction.txid(),
142
+ };
143
+ }
144
+ /**
145
+ * Sign a contract call without broadcasting
146
+ */
147
+ export async function signContractCall(account, options) {
148
+ const networkName = getStacksNetwork(account.network);
149
+ const transaction = await makeContractCall({
150
+ contractAddress: options.contractAddress,
151
+ contractName: options.contractName,
152
+ functionName: options.functionName,
153
+ functionArgs: options.functionArgs,
154
+ senderKey: account.privateKey,
155
+ network: networkName,
156
+ postConditionMode: options.postConditionMode || PostConditionMode.Deny,
157
+ });
158
+ return {
159
+ signedTx: Buffer.from(transaction.serialize()).toString("hex"),
160
+ txid: transaction.txid(),
161
+ };
162
+ }
163
+ /**
164
+ * Broadcast a pre-signed transaction
165
+ */
166
+ export async function broadcastSignedTransaction(signedTx, network) {
167
+ const baseUrl = getApiBaseUrl(network);
168
+ const txBuffer = Buffer.from(signedTx, "hex");
169
+ const response = await fetch(`${baseUrl}/v2/transactions`, {
170
+ method: "POST",
171
+ headers: {
172
+ "Content-Type": "application/octet-stream",
173
+ },
174
+ body: txBuffer,
175
+ });
176
+ if (!response.ok) {
177
+ const errorText = await response.text();
178
+ throw new Error(`Broadcast failed: ${response.statusText} - ${errorText}`);
179
+ }
180
+ const txid = await response.text();
181
+ return { txid: txid.replace(/"/g, "") };
182
+ }
183
+ /**
184
+ * Get transaction status
185
+ */
186
+ export async function getTransactionStatus(txid, network) {
187
+ const baseUrl = getApiBaseUrl(network);
188
+ const response = await fetch(`${baseUrl}/extended/v1/tx/${txid}`);
189
+ if (!response.ok) {
190
+ if (response.status === 404) {
191
+ return { status: "pending" };
192
+ }
193
+ throw new Error(`Failed to get transaction status: ${response.statusText}`);
194
+ }
195
+ const data = await response.json();
196
+ return {
197
+ status: data.tx_status,
198
+ block_height: data.block_height,
199
+ tx_result: data.tx_result,
200
+ };
201
+ }
202
+ /**
203
+ * Parse a JSON argument into a ClarityValue
204
+ * Supports: string, number, boolean, principal, buffer, list, tuple, optional
205
+ */
206
+ export function parseArgToClarityValue(arg) {
207
+ if (arg === null || arg === undefined) {
208
+ return noneCV();
209
+ }
210
+ if (typeof arg === "boolean") {
211
+ return boolCV(arg);
212
+ }
213
+ if (typeof arg === "number") {
214
+ if (Number.isInteger(arg)) {
215
+ return arg >= 0 ? uintCV(arg) : intCV(arg);
216
+ }
217
+ throw new Error("Floating point numbers not supported in Clarity");
218
+ }
219
+ if (typeof arg === "string") {
220
+ // Check if it's a principal (Stacks address pattern)
221
+ if (arg.match(/^S[A-Z0-9]{38,}(\.[a-zA-Z][a-zA-Z0-9-]*)?$/)) {
222
+ return principalCV(arg);
223
+ }
224
+ // Default to string-utf8
225
+ return stringUtf8CV(arg);
226
+ }
227
+ if (Buffer.isBuffer(arg) || arg instanceof Uint8Array) {
228
+ return bufferCV(arg);
229
+ }
230
+ if (Array.isArray(arg)) {
231
+ return listCV(arg.map(parseArgToClarityValue));
232
+ }
233
+ if (typeof arg === "object") {
234
+ const obj = arg;
235
+ // Check for typed values with explicit type field
236
+ if ("type" in obj && "value" in obj) {
237
+ const typedArg = obj;
238
+ switch (typedArg.type) {
239
+ case "uint":
240
+ return uintCV(BigInt(typedArg.value));
241
+ case "int":
242
+ return intCV(BigInt(typedArg.value));
243
+ case "string-ascii":
244
+ return stringAsciiCV(typedArg.value);
245
+ case "string-utf8":
246
+ return stringUtf8CV(typedArg.value);
247
+ case "bool":
248
+ return boolCV(typedArg.value);
249
+ case "principal":
250
+ return principalCV(typedArg.value);
251
+ case "buffer":
252
+ return bufferCV(Buffer.from(typedArg.value, "hex"));
253
+ case "none":
254
+ return noneCV();
255
+ case "some":
256
+ return someCV(parseArgToClarityValue(typedArg.value));
257
+ case "list":
258
+ return listCV(typedArg.value.map(parseArgToClarityValue));
259
+ case "tuple": {
260
+ const tupleData = {};
261
+ for (const [key, val] of Object.entries(typedArg.value)) {
262
+ tupleData[key] = parseArgToClarityValue(val);
263
+ }
264
+ return tupleCV(tupleData);
265
+ }
266
+ default:
267
+ throw new Error(`Unknown type: ${typedArg.type}`);
268
+ }
269
+ }
270
+ // Treat as tuple
271
+ const tupleData = {};
272
+ for (const [key, val] of Object.entries(obj)) {
273
+ tupleData[key] = parseArgToClarityValue(val);
274
+ }
275
+ return tupleCV(tupleData);
276
+ }
277
+ throw new Error(`Cannot convert argument to ClarityValue: ${JSON.stringify(arg)}`);
278
+ }
279
+ //# sourceMappingURL=wallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "@aibtc/mcp-server",
3
+ "version": "1.0.0",
4
+ "description": "Claude Code MCP server for x402 endpoint discovery and execution with Stacks wallet integration",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": {
8
+ "aibtc-mcp-server": "./dist/index.js"
9
+ },
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "start": "node dist/index.js",
13
+ "dev": "tsx src/index.ts",
14
+ "prepublishOnly": "npm run build"
15
+ },
16
+ "files": [
17
+ "dist",
18
+ "README.md"
19
+ ],
20
+ "keywords": [
21
+ "claude",
22
+ "claude-code",
23
+ "mcp",
24
+ "model-context-protocol",
25
+ "x402",
26
+ "stacks",
27
+ "blockchain",
28
+ "crypto",
29
+ "payments",
30
+ "aibtc"
31
+ ],
32
+ "author": "aibtcdev",
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "https://github.com/aibtcdev/aibtc-mcp-server.git"
36
+ },
37
+ "homepage": "https://github.com/aibtcdev/aibtc-mcp-server#readme",
38
+ "license": "MIT",
39
+ "dependencies": {
40
+ "@bitflowlabs/core-sdk": "^2.4.0",
41
+ "@modelcontextprotocol/sdk": "^1.25.2",
42
+ "@scure/bip39": "^2.0.1",
43
+ "@stacks/network": "^7.3.1",
44
+ "@stacks/transactions": "^7.3.1",
45
+ "@stacks/wallet-sdk": "^7.2.0",
46
+ "alex-sdk": "^3.2.1",
47
+ "axios": "^1.13.2",
48
+ "dotenv": "^17.2.3",
49
+ "tslib": "^2.8.1",
50
+ "x402-stacks": "^1.1.1",
51
+ "zod": "^4.3.5"
52
+ },
53
+ "devDependencies": {
54
+ "@types/node": "^22.0.0",
55
+ "tsx": "^4.19.0",
56
+ "typescript": "^5.7.0"
57
+ }
58
+ }