@purplesquirrel/hedera-mcp 0.3.0 → 0.5.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/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.5.0
4
+
5
+ - **ABI-aware contract calls.** `query_contract` and `execute_contract` now accept `{ abi, functionName, args }` — calldata is encoded (and read results decoded) automatically via viem, with integer args coerced to BigInt from the ABI. Raw `dataHex` / `functionParametersBase64` remain as fallbacks. Agents no longer need to hand-encode selectors.
6
+ - Verified live: `test-contract-abi.mjs` reads a deployed contract by ABI — `answer()` → 73 (uint), `title()` → "hedera-mcp" (string), `ping()` → 73 (pure) — with zero hand-encoded calldata.
7
+
8
+ ## 0.4.0
9
+
10
+ - **MCP resources** (4): `hedera://network/exchange-rate`, `hedera://network/supply`, and templated `hedera://account/{id}` and `hedera://token/{id}` — addressable, keyless state agents can read by URI, alongside the 73 tools.
11
+ - **Custom fees:** `create_fungible_token` accepts an optional fixed HBAR fee + collector; `create_nft_collection` accepts royalty fees (numerator/denominator/fallback/collector).
12
+ - **Examples:** `examples/TUTORIAL.md` (build on Hedera in 5 prompts), `examples/agent-demo.md` + `examples/agent-sim.mjs` (agent-driven walkthrough), `test-contract.mjs` (Solidity E2E), `test-resources.mjs`.
13
+
3
14
  ## 0.3.0
4
15
 
5
16
  - `create_fungible_token` now supports the full authority key set — **freeze, KYC, pause, and wipe** keys (in addition to admin + supply) — enabling the complete token lifecycle.
package/README.md CHANGED
@@ -101,7 +101,7 @@ hedera_decode_transaction { transactionBase64: "<bytes>" }
101
101
 
102
102
  **Consensus / HCS (6):** create_topic · submit_message · update_topic · delete_topic · get_topic_info · get_topic_messages
103
103
 
104
- **Smart contract / EVM (6):** deploy_contract · execute_contract · update_contract · delete_contract · query_contract (eth_call) · get_contract_info
104
+ **Smart contract / EVM (6):** deploy_contract · execute_contract · update_contract · delete_contract · query_contract · get_contract_info — `execute_contract` & `query_contract` are **ABI-aware** (pass `{ abi, functionName, args }`; calldata encoded + results decoded automatically)
105
105
 
106
106
  **File (4):** create_file · append_file · update_file · delete_file
107
107
 
@@ -111,12 +111,26 @@ hedera_decode_transaction { transactionBase64: "<bytes>" }
111
111
 
112
112
  **Analytics (Mirror Node reads, 14):** get_block · get_blocks · get_account_transactions · get_token_balances · get_token_nfts · get_nft_history · get_account_allowances · get_account_token_allowances · get_account_nft_allowances · get_contract_results · get_contract_state · get_network_stake · search_accounts_by_pubkey · get_account_by_evm
113
113
 
114
+ ## Resources (4)
115
+
116
+ Besides tools, the server exposes addressable, keyless MCP **resources** agents can read by URI:
117
+
118
+ `hedera://network/exchange-rate` · `hedera://network/supply` · `hedera://account/{accountId}` · `hedera://token/{tokenId}`
119
+
120
+ ## Examples & learning
121
+
122
+ - [`examples/TUTORIAL.md`](examples/TUTORIAL.md) — **Build on Hedera in 5 prompts** (the certified→shipping learning path)
123
+ - [`examples/agent-demo.md`](examples/agent-demo.md) — wire into Claude Desktop and build by asking; `node examples/agent-sim.mjs` prints a reproducible agent transcript
124
+ - [`examples/scenarios/`](examples/scenarios/) — unique use cases, each runnable + Mirror Node-verified: **HCS notary**, **AI agent audit trail**, **agent-to-agent payments**, **self-taxing token**
125
+
114
126
  ## Verification
115
127
 
116
128
  - `npm run lint` / `npm run build` — clean against `@hashgraph/sdk` 2.81.0
117
- - `node test-battle.mjs` — **72/73** build + read tools pass against live testnet
129
+ - `node test-battle.mjs` — 72/73 in the auto-discovery suite (1 skip: `query_contract` needs a known ABI, verified separately) → **all 73 tools verified**
118
130
  - `node test-live.mjs` — **10/10 write paths executed on testnet**, Mirror Node-verified
119
131
  - `node test-battle-live.mjs` — **battle mode: 31/31 operations on testnet** across two accounts (full token lifecycle incl. freeze/KYC/pause/wipe, NFT, topic, file, scheduled transfer requiring a 2nd signer, PRNG), Mirror Node-verified
132
+ - `node test-contract.mjs` — real Solidity contract **compiled → deployed → executed → read** end-to-end (`store(42)` → `retrieve()` = 42), confirming the full EVM path and `query_contract`
133
+ - `node test-contract-abi.mjs` — **ABI-aware** `query_contract`: fed a raw ABI, it auto-encodes/decodes — `answer()` → 73 (uint), `title()` → "hedera-mcp" (string), `ping()` → 73 (pure)
120
134
 
121
135
  ## Development
122
136
 
package/dist/index.js CHANGED
@@ -27,10 +27,11 @@ import { registerFileTools } from "./tools/file.js";
27
27
  import { registerScheduleTools } from "./tools/schedule.js";
28
28
  import { registerNetworkTools } from "./tools/network.js";
29
29
  import { registerAnalyticsTools } from "./tools/analytics.js";
30
+ import { registerResources } from "./resources.js";
30
31
  const ctx = new HederaCtx();
31
32
  const server = new McpServer({
32
33
  name: "hedera-mcp",
33
- version: "0.3.0",
34
+ version: "0.5.0",
34
35
  });
35
36
  let toolCount = 0;
36
37
  const register = (name, description, shape, handler) => {
@@ -56,10 +57,11 @@ registerFileTools(register, ctx);
56
57
  registerScheduleTools(register, ctx);
57
58
  registerNetworkTools(register, ctx);
58
59
  registerAnalyticsTools(register, ctx);
60
+ const resourceCount = registerResources(server, ctx);
59
61
  async function main() {
60
62
  const transport = new StdioServerTransport();
61
63
  await server.connect(transport);
62
- console.error(`hedera-mcp running — ${toolCount} tools — ${ctx.network.name} ` +
64
+ console.error(`hedera-mcp running — ${toolCount} tools, ${resourceCount} resources — ${ctx.network.name} ` +
63
65
  `(mirror ${ctx.network.mirror})` +
64
66
  (ctx.operatorId ? ` — default payer ${ctx.operatorId.toString()}` : " — build-only, no default payer"));
65
67
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /** MCP resources — addressable, keyless Hedera state agents can read by URI
2
+ * (complements the tools). All back the public Mirror Node. */
3
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
4
+ import { HederaCtx } from "./context.js";
5
+ export declare function registerResources(server: McpServer, ctx: HederaCtx): number;
@@ -0,0 +1,20 @@
1
+ /** MCP resources — addressable, keyless Hedera state agents can read by URI
2
+ * (complements the tools). All back the public Mirror Node. */
3
+ import { ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
4
+ import { json } from "./context.js";
5
+ export function registerResources(server, ctx) {
6
+ let n = 0;
7
+ const text = async (uri, path) => ({
8
+ contents: [{ uri: uri.href, mimeType: "application/json", text: json(await ctx.mirror(path)) }],
9
+ });
10
+ server.registerResource("network-exchange-rate", "hedera://network/exchange-rate", { title: "HBAR exchange rate", description: "Current HBAR↔USD rate", mimeType: "application/json" }, async (uri) => text(uri, `/api/v1/network/exchangerate`));
11
+ n++;
12
+ server.registerResource("network-supply", "hedera://network/supply", { title: "HBAR supply", description: "Total / circulating HBAR", mimeType: "application/json" }, async (uri) => text(uri, `/api/v1/network/supply`));
13
+ n++;
14
+ server.registerResource("account", new ResourceTemplate("hedera://account/{accountId}", { list: undefined }), { title: "Hedera account", description: "Account info by id or EVM address", mimeType: "application/json" }, async (uri, vars) => text(uri, `/api/v1/accounts/${encodeURIComponent(String(vars.accountId))}`));
15
+ n++;
16
+ server.registerResource("token", new ResourceTemplate("hedera://token/{tokenId}", { list: undefined }), { title: "Hedera token", description: "Token info by id", mimeType: "application/json" }, async (uri, vars) => text(uri, `/api/v1/tokens/${encodeURIComponent(String(vars.tokenId))}`));
17
+ n++;
18
+ return n;
19
+ }
20
+ //# sourceMappingURL=resources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"AAAA;+DAC+D;AAC/D,OAAO,EAAa,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAa,IAAI,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,GAAc;IACjE,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,IAAI,GAAG,KAAK,EAAE,GAAQ,EAAE,IAAY,EAAE,EAAE,CAAC,CAAC;QAC9C,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;KAChG,CAAC,CAAC;IAEH,MAAM,CAAC,gBAAgB,CACrB,uBAAuB,EACvB,gCAAgC,EAChC,EAAE,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,uBAAuB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EACnG,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,8BAA8B,CAAC,CACzD,CAAC;IACF,CAAC,EAAE,CAAC;IAEJ,MAAM,CAAC,gBAAgB,CACrB,gBAAgB,EAChB,yBAAyB,EACzB,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,0BAA0B,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAC/F,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,wBAAwB,CAAC,CACnD,CAAC;IACF,CAAC,EAAE,CAAC;IAEJ,MAAM,CAAC,gBAAgB,CACrB,SAAS,EACT,IAAI,gBAAgB,CAAC,8BAA8B,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EACzE,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,mCAAmC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAC3G,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CACjG,CAAC;IACF,CAAC,EAAE,CAAC;IAEJ,MAAM,CAAC,gBAAgB,CACrB,OAAO,EACP,IAAI,gBAAgB,CAAC,0BAA0B,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EACrE,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EACxF,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAC7F,CAAC;IACF,CAAC,EAAE,CAAC;IAEJ,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -1,7 +1,35 @@
1
- /** Smart contract service (EVM). Writes are build-only; reads use Mirror Node eth_call. */
1
+ /** Smart contract service (EVM). Writes are build-only; reads use Mirror Node eth_call.
2
+ *
3
+ * Contract calls are ABI-aware: pass { abi, functionName, args } and the tool encodes
4
+ * the calldata (and decodes read results) via viem — no hand-encoded hex required.
5
+ * Raw `dataHex` / `functionParametersBase64` remain supported as a fallback. */
2
6
  import { z } from "zod";
7
+ import { decodeFunctionResult, encodeFunctionData } from "viem";
3
8
  import { AccountId, ContractCreateTransaction, ContractDeleteTransaction, ContractExecuteTransaction, ContractId, ContractUpdateTransaction, FileId, Hbar, } from "@hashgraph/sdk";
4
9
  import { json } from "../context.js";
10
+ // Coerce JSON args to the types viem expects, based on the function's ABI inputs
11
+ // (integers → BigInt, bool strings → boolean). Addresses/strings pass through.
12
+ function coerceArgs(abi, functionName, args = []) {
13
+ const fn = abi.find((x) => x?.type === "function" && x?.name === functionName);
14
+ const inputs = fn?.inputs ?? [];
15
+ return args.map((v, i) => {
16
+ const t = inputs[i]?.type ?? "";
17
+ if (/^u?int\d*$/.test(t) && !Array.isArray(v))
18
+ return BigInt(v);
19
+ if (t === "bool")
20
+ return typeof v === "boolean" ? v : v === "true";
21
+ return v;
22
+ });
23
+ }
24
+ // BigInt-safe JSON (decoded results often contain bigints).
25
+ function abiJson(v) {
26
+ return JSON.stringify(v, (_k, val) => (typeof val === "bigint" ? val.toString() : val), 2);
27
+ }
28
+ const ABI_FIELDS = {
29
+ abi: z.array(z.any()).optional().describe("Contract ABI (JSON array) — enables auto encode/decode"),
30
+ functionName: z.string().optional().describe("Function name to call (used with abi)"),
31
+ args: z.array(z.any()).optional().describe("Function arguments (used with abi)"),
32
+ };
5
33
  export function registerContractTools(register, ctx) {
6
34
  register("hedera_deploy_contract", "Build (unsigned) a contract deployment from bytecode already stored in a Hedera File (see hedera_create_file).", {
7
35
  bytecodeFileId: z.string().describe("File id holding the compiled bytecode (hex)"),
@@ -23,22 +51,40 @@ export function registerContractTools(register, ctx) {
23
51
  tx.setConstructorParameters(Buffer.from(a.constructorParamsBase64, "base64"));
24
52
  return ctx.buildAndRender(tx, `Deploy contract from file ${a.bytecodeFileId} · gas ${a.gas}`, a.payerAccountId);
25
53
  });
26
- register("hedera_execute_contract", "Build (unsigned) a state-changing contract call. Provide ABI-encoded calldata as base64.", {
54
+ register("hedera_execute_contract", "Build (unsigned) a state-changing contract call. Pass { abi, functionName, args } for automatic encoding, or raw functionParametersBase64.", {
27
55
  contractId: z.string().describe("Contract id (0.0.x) or EVM address"),
28
56
  gas: z.number().int().positive(),
57
+ ...ABI_FIELDS,
29
58
  functionParametersBase64: z
30
59
  .string()
31
- .describe("ABI-encoded calldata (selector + args) as base64"),
60
+ .optional()
61
+ .describe("Fallback: ABI-encoded calldata (selector + args) as base64"),
32
62
  payableAmountHbar: z.number().optional().describe("HBAR to send with the call"),
33
63
  payerAccountId: z.string().optional(),
34
64
  }, async (a) => {
65
+ let params;
66
+ if (a.abi && a.functionName) {
67
+ const hex = encodeFunctionData({
68
+ abi: a.abi,
69
+ functionName: a.functionName,
70
+ args: coerceArgs(a.abi, a.functionName, a.args),
71
+ });
72
+ params = Buffer.from(hex.slice(2), "hex");
73
+ }
74
+ else if (a.functionParametersBase64) {
75
+ params = Buffer.from(a.functionParametersBase64, "base64");
76
+ }
77
+ else {
78
+ throw new Error("Provide either { abi, functionName, args? } or functionParametersBase64.");
79
+ }
35
80
  const tx = new ContractExecuteTransaction()
36
81
  .setContractId(ContractId.fromString(a.contractId))
37
82
  .setGas(a.gas)
38
- .setFunctionParameters(Buffer.from(a.functionParametersBase64, "base64"));
83
+ .setFunctionParameters(params);
39
84
  if (a.payableAmountHbar != null)
40
85
  tx.setPayableAmount(new Hbar(a.payableAmountHbar));
41
- return ctx.buildAndRender(tx, `Execute contract ${a.contractId} · gas ${a.gas}`, a.payerAccountId);
86
+ const label = a.functionName ? `${a.functionName}()` : "calldata";
87
+ return ctx.buildAndRender(tx, `Execute contract ${a.contractId} · ${label} · gas ${a.gas}`, a.payerAccountId);
42
88
  });
43
89
  register("hedera_update_contract", "Build (unsigned) an update to a contract's memo or admin key (requires admin key to sign).", {
44
90
  contractId: z.string(),
@@ -60,19 +106,39 @@ export function registerContractTools(register, ctx) {
60
106
  .setTransferAccountId(AccountId.fromString(a.transferAccountId));
61
107
  return ctx.buildAndRender(tx, `Delete contract ${a.contractId}`, a.payerAccountId);
62
108
  });
63
- register("hedera_query_contract", "Read a contract view/pure function via the Mirror Node eth_call endpoint (keyless, no gas spent).", {
109
+ register("hedera_query_contract", "Read a contract view/pure function via Mirror Node eth_call (keyless, no gas). Pass { abi, functionName, args } for auto encode/decode, or raw dataHex.", {
64
110
  contractIdOrAddress: z.string().describe("Contract id (0.0.x) or 0x EVM address"),
65
- dataHex: z.string().describe("ABI-encoded calldata as 0x-prefixed hex"),
111
+ ...ABI_FIELDS,
112
+ dataHex: z.string().optional().describe("Fallback: ABI-encoded calldata as 0x-prefixed hex"),
66
113
  fromAddress: z.string().optional().describe("Optional 0x caller address"),
67
114
  }, async (a) => {
68
- const body = {
69
- to: a.contractIdOrAddress,
70
- data: a.dataHex.startsWith("0x") ? a.dataHex : `0x${a.dataHex}`,
71
- estimate: false,
72
- };
115
+ let data;
116
+ if (a.abi && a.functionName) {
117
+ data = encodeFunctionData({
118
+ abi: a.abi,
119
+ functionName: a.functionName,
120
+ args: coerceArgs(a.abi, a.functionName, a.args),
121
+ });
122
+ }
123
+ else if (a.dataHex) {
124
+ data = a.dataHex.startsWith("0x") ? a.dataHex : `0x${a.dataHex}`;
125
+ }
126
+ else {
127
+ throw new Error("Provide either { abi, functionName, args? } or dataHex.");
128
+ }
129
+ const body = { to: a.contractIdOrAddress, data, estimate: false };
73
130
  if (a.fromAddress)
74
131
  body.from = a.fromAddress;
75
- return json(await ctx.mirrorPost(`/api/v1/contracts/call`, body));
132
+ const res = await ctx.mirrorPost(`/api/v1/contracts/call`, body);
133
+ if (a.abi && a.functionName && res?.result) {
134
+ const decoded = decodeFunctionResult({
135
+ abi: a.abi,
136
+ functionName: a.functionName,
137
+ data: res.result,
138
+ });
139
+ return abiJson({ function: a.functionName, result: res.result, decoded });
140
+ }
141
+ return abiJson(res);
76
142
  });
77
143
  register("hedera_get_contract_info", "Read contract info (admin key, bytecode metadata, EVM address) from the Mirror Node.", { contractId: z.string() }, async (a) => json(await ctx.mirror(`/api/v1/contracts/${encodeURIComponent(a.contractId)}`)));
78
144
  }
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/tools/contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/tools/contract.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /** Token service (HTS): create, mint, burn, transfer, associate, freeze, KYC, pause, wipe, delete + reads. */
2
2
  import { z } from "zod";
3
- import { AccountAllowanceApproveTransaction, AccountId, NftId, PublicKey, TokenAirdropTransaction, TokenAssociateTransaction, TokenBurnTransaction, TokenCreateTransaction, TokenDeleteTransaction, TokenDissociateTransaction, TokenFreezeTransaction, TokenGrantKycTransaction, TokenId, TokenMintTransaction, TokenPauseTransaction, TokenRejectTransaction, TokenRevokeKycTransaction, TokenSupplyType, TokenType, TokenUnfreezeTransaction, TokenUnpauseTransaction, TokenUpdateTransaction, TokenWipeTransaction, TransferTransaction, } from "@hashgraph/sdk";
3
+ import { AccountAllowanceApproveTransaction, AccountId, CustomFixedFee, CustomRoyaltyFee, Hbar, NftId, PublicKey, TokenAirdropTransaction, TokenAssociateTransaction, TokenBurnTransaction, TokenCreateTransaction, TokenDeleteTransaction, TokenDissociateTransaction, TokenFreezeTransaction, TokenGrantKycTransaction, TokenId, TokenMintTransaction, TokenPauseTransaction, TokenRejectTransaction, TokenRevokeKycTransaction, TokenSupplyType, TokenType, TokenUnfreezeTransaction, TokenUnpauseTransaction, TokenUpdateTransaction, TokenWipeTransaction, TransferTransaction, } from "@hashgraph/sdk";
4
4
  import { json } from "../context.js";
5
5
  function maybeKey(value) {
6
6
  return value ? PublicKey.fromString(value) : undefined;
@@ -18,6 +18,8 @@ export function registerTokenTools(register, ctx) {
18
18
  kycKey: z.string().optional().describe("KYC public key (enables grant/revoke KYC)"),
19
19
  pauseKey: z.string().optional().describe("Pause public key (enables pause/unpause)"),
20
20
  wipeKey: z.string().optional().describe("Wipe public key (enables wipe)"),
21
+ customFeeHbar: z.number().positive().optional().describe("Optional fixed HBAR fee charged on each transfer"),
22
+ feeCollectorAccountId: z.string().optional().describe("Account that collects the custom fee (defaults to treasury)"),
21
23
  supplyType: z.enum(["finite", "infinite"]).optional().describe("Default infinite"),
22
24
  maxSupply: z.number().int().positive().optional().describe("Required if supplyType=finite"),
23
25
  memo: z.string().optional(),
@@ -52,6 +54,12 @@ export function registerTokenTools(register, ctx) {
52
54
  const wipe = maybeKey(a.wipeKey);
53
55
  if (wipe)
54
56
  tx.setWipeKey(wipe);
57
+ if (a.customFeeHbar != null) {
58
+ const collector = AccountId.fromString(a.feeCollectorAccountId ?? treasury.toString());
59
+ tx.setCustomFees([
60
+ new CustomFixedFee().setHbarAmount(new Hbar(a.customFeeHbar)).setFeeCollectorAccountId(collector),
61
+ ]);
62
+ }
55
63
  if (a.memo)
56
64
  tx.setTokenMemo(a.memo);
57
65
  return ctx.buildAndRender(tx, `Create fungible token ${a.name} (${a.symbol}) · treasury ${treasury} · supply ${a.initialSupply ?? 0}`, a.payerAccountId);
@@ -63,6 +71,10 @@ export function registerTokenTools(register, ctx) {
63
71
  adminKey: z.string().optional(),
64
72
  supplyKey: z.string().describe("Supply public key — required to mint NFTs"),
65
73
  maxSupply: z.number().int().positive().optional(),
74
+ royaltyNumerator: z.number().int().positive().optional().describe("Royalty fee numerator (use with denominator)"),
75
+ royaltyDenominator: z.number().int().positive().optional().describe("Royalty fee denominator"),
76
+ royaltyFallbackHbar: z.number().positive().optional().describe("Fallback HBAR fee when no fungible value is exchanged"),
77
+ royaltyCollectorAccountId: z.string().optional().describe("Royalty collector (defaults to treasury)"),
66
78
  memo: z.string().optional(),
67
79
  payerAccountId: z.string().optional(),
68
80
  }, async (a) => {
@@ -81,6 +93,17 @@ export function registerTokenTools(register, ctx) {
81
93
  const admin = maybeKey(a.adminKey);
82
94
  if (admin)
83
95
  tx.setAdminKey(admin);
96
+ if (a.royaltyNumerator != null && a.royaltyDenominator != null) {
97
+ const collector = AccountId.fromString(a.royaltyCollectorAccountId ?? treasury.toString());
98
+ const royalty = new CustomRoyaltyFee()
99
+ .setNumerator(a.royaltyNumerator)
100
+ .setDenominator(a.royaltyDenominator)
101
+ .setFeeCollectorAccountId(collector);
102
+ if (a.royaltyFallbackHbar != null) {
103
+ royalty.setFallbackFee(new CustomFixedFee().setHbarAmount(new Hbar(a.royaltyFallbackHbar)));
104
+ }
105
+ tx.setCustomFees([royalty]);
106
+ }
84
107
  if (a.memo)
85
108
  tx.setTokenMemo(a.memo);
86
109
  return ctx.buildAndRender(tx, `Create NFT collection ${a.name} (${a.symbol}) · treasury ${treasury}`, a.payerAccountId);
@@ -1 +1 @@
1
- {"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/tools/token.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/tools/token.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purplesquirrel/hedera-mcp",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "mcpName": "io.github.ExpertVagabond/hedera-mcp",
5
5
  "description": "Comprehensive MCP server for Hedera (Hashgraph) — full coverage of Account, Token (HTS), Consensus (HCS), Smart Contract (EVM), File, Schedule, and Network services. Reads via Mirror Node (keyless); writes are build-only (returns unsigned serialized transactions). Never holds keys.",
6
6
  "type": "module",
@@ -43,10 +43,12 @@
43
43
  "dependencies": {
44
44
  "@hashgraph/sdk": "^2.0.0",
45
45
  "@modelcontextprotocol/sdk": "^1.12.1",
46
+ "viem": "^2.51.3",
46
47
  "zod": "^3.23.8"
47
48
  },
48
49
  "devDependencies": {
49
50
  "@types/node": "^22.0.0",
51
+ "solc": "^0.8.35",
50
52
  "typescript": "^5.7.0"
51
53
  },
52
54
  "engines": {