@purplesquirrel/hedera-mcp 0.1.0 → 0.3.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 +13 -0
- package/README.md +31 -8
- package/dist/context.js +8 -1
- package/dist/context.js.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/tools/analytics.d.ts +3 -0
- package/dist/tools/analytics.js +20 -0
- package/dist/tools/analytics.js.map +1 -0
- package/dist/tools/contract.js +21 -1
- package/dist/tools/contract.js.map +1 -1
- package/dist/tools/file.js +21 -10
- package/dist/tools/file.js.map +1 -1
- package/dist/tools/network.js +10 -1
- package/dist/tools/network.js.map +1 -1
- package/dist/tools/schedule.js +12 -8
- package/dist/tools/schedule.js.map +1 -1
- package/dist/tools/token.js +81 -1
- package/dist/tools/token.js.map +1 -1
- package/logo.svg +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.3.0
|
|
4
|
+
|
|
5
|
+
- `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.
|
|
6
|
+
- **Battle mode** (`test-battle-live.mjs`): **31/31 operations executed on testnet** across two accounts — full token lifecycle (create-with-all-keys, mint, associate, KYC, transfer, freeze/unfreeze, pause/unpause, allowance, update, airdrop, wipe, burn, delete), NFT (create, mint, associate, transfer, allowance), topic (create/submit/update), file (create/append/update), a scheduled transfer requiring a second signer, PRNG, and hbar transfer — all Mirror Node-verified.
|
|
7
|
+
|
|
8
|
+
## 0.2.0
|
|
9
|
+
|
|
10
|
+
Expanded from 51 to **73 tools** and battle-tested end-to-end.
|
|
11
|
+
|
|
12
|
+
- **+22 tools:** token update / airdrop (HIP-904) / reject / token & NFT allowances; contract update / delete; file update; PRNG; and a 14-tool analytics layer (blocks, account transactions, token balances & NFTs, NFT history, crypto/token/NFT allowances, contract results & state, network stake, public-key & EVM-address lookups).
|
|
13
|
+
- **Fixed:** `create_schedule` now schedules an (unfrozen) transfer; removed `get_file_info` (file info requires a paid query, incompatible with keyless reads); minified-SDK transaction type labels.
|
|
14
|
+
- **Battle tested:** `test-battle.mjs` — 72/73 build+read tools pass against live testnet (1 skip: contract eth_call needs a known ABI). `test-live.mjs` — **10/10 write paths executed on testnet** (token create+mint, NFT create+mint, topic+message, file, scheduled transfer, hbar transfer, PRNG), each verified via Mirror Node.
|
|
15
|
+
|
|
3
16
|
## 0.1.0
|
|
4
17
|
|
|
5
18
|
Initial release — comprehensive build-only MCP server for Hedera (Hashgraph).
|
package/README.md
CHANGED
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|

|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
[](https://registry.modelcontextprotocol.io/v0/servers?search=hedera-mcp)
|
|
6
|
+
[](https://www.npmjs.com/package/@purplesquirrel/hedera-mcp)
|
|
7
|
+
[](./LICENSE)
|
|
8
|
+
|
|
9
|
+
**Comprehensive Model Context Protocol server for Hedera (Hashgraph).** Full coverage of every core Hedera service — Account, Token (HTS), Consensus (HCS), Smart Contract (EVM), File, Schedule, and Network — exposed as **73 MCP tools** any AI agent (Claude, Cursor, etc.) can call.
|
|
6
10
|
|
|
7
11
|
> **Build-only. Never holds keys.** Reads hit the public Mirror Node REST API (no auth). Writes return an *unsigned, frozen* transaction (base64) for you to sign and submit with your own wallet/SDK/CLI. This server never sees a private key and never executes anything.
|
|
8
12
|
|
|
@@ -30,8 +34,18 @@ The official Hedera Agent Kit ships a preconfigured MCP server, but its tool sur
|
|
|
30
34
|
|
|
31
35
|
This mirrors the posture of [goat-network-mcp](https://github.com/ExpertVagabond/goat-network-mcp): safe to run anywhere, safe to give to an autonomous agent.
|
|
32
36
|
|
|
37
|
+
Published on npm and the [MCP Registry](https://registry.modelcontextprotocol.io) as `io.github.ExpertVagabond/hedera-mcp`.
|
|
38
|
+
|
|
33
39
|
## Install
|
|
34
40
|
|
|
41
|
+
Run directly with npx (no clone needed):
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
npx @purplesquirrel/hedera-mcp
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Or from source:
|
|
48
|
+
|
|
35
49
|
```bash
|
|
36
50
|
npm install
|
|
37
51
|
npm run build
|
|
@@ -43,8 +57,8 @@ npm run build
|
|
|
43
57
|
{
|
|
44
58
|
"mcpServers": {
|
|
45
59
|
"hedera": {
|
|
46
|
-
"command": "
|
|
47
|
-
"args": ["/
|
|
60
|
+
"command": "npx",
|
|
61
|
+
"args": ["-y", "@purplesquirrel/hedera-mcp"],
|
|
48
62
|
"env": {
|
|
49
63
|
"HEDERA_NETWORK": "testnet",
|
|
50
64
|
"HEDERA_OPERATOR_ID": "0.0.1234"
|
|
@@ -79,21 +93,30 @@ hedera_decode_transaction { transactionBase64: "<bytes>" }
|
|
|
79
93
|
→ { type: "TokenCreateTransaction", transactionId, nodeAccountIds, maxTransactionFee, ... }
|
|
80
94
|
```
|
|
81
95
|
|
|
82
|
-
## Tool catalog (
|
|
96
|
+
## Tool catalog (73)
|
|
83
97
|
|
|
84
98
|
**Account (8):** create_account · transfer_hbar · update_account · delete_account · approve_hbar_allowance · get_account_info · get_account_balance · get_account_nfts
|
|
85
99
|
|
|
86
|
-
**Token / HTS (
|
|
100
|
+
**Token / HTS (23):** create_fungible_token · create_nft_collection · mint_fungible · mint_nft · burn_token · transfer_token · transfer_nft · associate_token · dissociate_token · freeze_token_account · unfreeze_token_account · grant_kyc · revoke_kyc · pause_token · unpause_token · wipe_token · delete_token · update_token · token_airdrop · reject_token · approve_token_allowance · approve_nft_allowance · get_token_info · get_nft_info
|
|
87
101
|
|
|
88
102
|
**Consensus / HCS (6):** create_topic · submit_message · update_topic · delete_topic · get_topic_info · get_topic_messages
|
|
89
103
|
|
|
90
|
-
**Smart contract / EVM (
|
|
104
|
+
**Smart contract / EVM (6):** deploy_contract · execute_contract · update_contract · delete_contract · query_contract (eth_call) · get_contract_info
|
|
91
105
|
|
|
92
|
-
**File (4):** create_file · append_file ·
|
|
106
|
+
**File (4):** create_file · append_file · update_file · delete_file
|
|
93
107
|
|
|
94
108
|
**Schedule (4):** create_schedule · sign_schedule · delete_schedule · get_schedule_info
|
|
95
109
|
|
|
96
|
-
**Network / utility (
|
|
110
|
+
**Network / utility (7):** prng · get_transaction · get_network_nodes · get_exchange_rate · get_network_supply · get_network_fees · decode_transaction
|
|
111
|
+
|
|
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
|
+
|
|
114
|
+
## Verification
|
|
115
|
+
|
|
116
|
+
- `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
|
|
118
|
+
- `node test-live.mjs` — **10/10 write paths executed on testnet**, Mirror Node-verified
|
|
119
|
+
- `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
|
|
97
120
|
|
|
98
121
|
## Development
|
|
99
122
|
|
package/dist/context.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* The only optional input is HEDERA_OPERATOR_ID — an *account id* (not a key) —
|
|
11
11
|
* used as the default payer/treasury when building transactions.
|
|
12
12
|
*/
|
|
13
|
-
import { AccountAllowanceApproveTransaction, AccountCreateTransaction, AccountDeleteTransaction, AccountId, AccountUpdateTransaction, Client, ContractCreateTransaction, ContractExecuteTransaction, FileAppendTransaction, FileCreateTransaction, FileDeleteTransaction, ScheduleCreateTransaction, ScheduleDeleteTransaction, ScheduleSignTransaction, TokenAssociateTransaction, TokenBurnTransaction, TokenCreateTransaction, TokenDeleteTransaction, TokenDissociateTransaction, TokenFreezeTransaction, TokenGrantKycTransaction, TokenMintTransaction, TokenPauseTransaction, TokenRevokeKycTransaction, TokenUnfreezeTransaction, TokenUnpauseTransaction, TokenWipeTransaction, TopicCreateTransaction, TopicDeleteTransaction, TopicMessageSubmitTransaction, TopicUpdateTransaction, TransactionId, TransferTransaction, } from "@hashgraph/sdk";
|
|
13
|
+
import { AccountAllowanceApproveTransaction, AccountCreateTransaction, AccountDeleteTransaction, AccountId, AccountUpdateTransaction, Client, ContractCreateTransaction, ContractDeleteTransaction, ContractExecuteTransaction, ContractUpdateTransaction, FileAppendTransaction, FileCreateTransaction, FileDeleteTransaction, FileUpdateTransaction, PrngTransaction, ScheduleCreateTransaction, ScheduleDeleteTransaction, ScheduleSignTransaction, TokenAirdropTransaction, TokenAssociateTransaction, TokenBurnTransaction, TokenCreateTransaction, TokenDeleteTransaction, TokenDissociateTransaction, TokenFreezeTransaction, TokenGrantKycTransaction, TokenMintTransaction, TokenPauseTransaction, TokenRejectTransaction, TokenRevokeKycTransaction, TokenUnfreezeTransaction, TokenUnpauseTransaction, TokenUpdateTransaction, TokenWipeTransaction, TopicCreateTransaction, TopicDeleteTransaction, TopicMessageSubmitTransaction, TopicUpdateTransaction, TransactionId, TransferTransaction, } from "@hashgraph/sdk";
|
|
14
14
|
import { resolveNetwork } from "./networks.js";
|
|
15
15
|
/**
|
|
16
16
|
* Resolve a human-readable transaction type. The @hashgraph/sdk bundle is
|
|
@@ -36,18 +36,25 @@ const TX_TYPES = [
|
|
|
36
36
|
[TokenUnpauseTransaction, "TokenUnpauseTransaction"],
|
|
37
37
|
[TokenWipeTransaction, "TokenWipeTransaction"],
|
|
38
38
|
[TokenDeleteTransaction, "TokenDeleteTransaction"],
|
|
39
|
+
[TokenUpdateTransaction, "TokenUpdateTransaction"],
|
|
40
|
+
[TokenAirdropTransaction, "TokenAirdropTransaction"],
|
|
41
|
+
[TokenRejectTransaction, "TokenRejectTransaction"],
|
|
39
42
|
[TopicCreateTransaction, "TopicCreateTransaction"],
|
|
40
43
|
[TopicMessageSubmitTransaction, "TopicMessageSubmitTransaction"],
|
|
41
44
|
[TopicUpdateTransaction, "TopicUpdateTransaction"],
|
|
42
45
|
[TopicDeleteTransaction, "TopicDeleteTransaction"],
|
|
43
46
|
[ContractCreateTransaction, "ContractCreateTransaction"],
|
|
44
47
|
[ContractExecuteTransaction, "ContractExecuteTransaction"],
|
|
48
|
+
[ContractUpdateTransaction, "ContractUpdateTransaction"],
|
|
49
|
+
[ContractDeleteTransaction, "ContractDeleteTransaction"],
|
|
45
50
|
[FileCreateTransaction, "FileCreateTransaction"],
|
|
46
51
|
[FileAppendTransaction, "FileAppendTransaction"],
|
|
52
|
+
[FileUpdateTransaction, "FileUpdateTransaction"],
|
|
47
53
|
[FileDeleteTransaction, "FileDeleteTransaction"],
|
|
48
54
|
[ScheduleCreateTransaction, "ScheduleCreateTransaction"],
|
|
49
55
|
[ScheduleSignTransaction, "ScheduleSignTransaction"],
|
|
50
56
|
[ScheduleDeleteTransaction, "ScheduleDeleteTransaction"],
|
|
57
|
+
[PrngTransaction, "PrngTransaction"],
|
|
51
58
|
];
|
|
52
59
|
export function resolveTxType(tx) {
|
|
53
60
|
for (const [cls, name] of TX_TYPES) {
|
package/dist/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,kCAAkC,EAClC,wBAAwB,EACxB,wBAAwB,EACxB,SAAS,EACT,wBAAwB,EACxB,MAAM,EACN,yBAAyB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,EAC7B,sBAAsB,EAEtB,aAAa,EACb,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAsB,MAAM,eAAe,CAAC;AAEnE;;;;GAIG;AACH,MAAM,QAAQ,GAAyD;IACrE,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;IAC5C,CAAC,wBAAwB,EAAE,0BAA0B,CAAC;IACtD,CAAC,wBAAwB,EAAE,0BAA0B,CAAC;IACtD,CAAC,wBAAwB,EAAE,0BAA0B,CAAC;IACtD,CAAC,kCAAkC,EAAE,oCAAoC,CAAC;IAC1E,CAAC,sBAAsB,EAAE,wBAAwB,CAAC;IAClD,CAAC,oBAAoB,EAAE,sBAAsB,CAAC;IAC9C,CAAC,oBAAoB,EAAE,sBAAsB,CAAC;IAC9C,CAAC,yBAAyB,EAAE,2BAA2B,CAAC;IACxD,CAAC,0BAA0B,EAAE,4BAA4B,CAAC;IAC1D,CAAC,sBAAsB,EAAE,wBAAwB,CAAC;IAClD,CAAC,wBAAwB,EAAE,0BAA0B,CAAC;IACtD,CAAC,wBAAwB,EAAE,0BAA0B,CAAC;IACtD,CAAC,yBAAyB,EAAE,2BAA2B,CAAC;IACxD,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;IAChD,CAAC,uBAAuB,EAAE,yBAAyB,CAAC;IACpD,CAAC,oBAAoB,EAAE,sBAAsB,CAAC;IAC9C,CAAC,sBAAsB,EAAE,wBAAwB,CAAC;IAClD,CAAC,sBAAsB,EAAE,wBAAwB,CAAC;IAClD,CAAC,6BAA6B,EAAE,+BAA+B,CAAC;IAChE,CAAC,sBAAsB,EAAE,wBAAwB,CAAC;IAClD,CAAC,sBAAsB,EAAE,wBAAwB,CAAC;IAClD,CAAC,yBAAyB,EAAE,2BAA2B,CAAC;IACxD,CAAC,0BAA0B,EAAE,4BAA4B,CAAC;IAC1D,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;IAChD,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;IAChD,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;IAChD,CAAC,yBAAyB,EAAE,2BAA2B,CAAC;IACxD,CAAC,uBAAuB,EAAE,yBAAyB,CAAC;IACpD,CAAC,yBAAyB,EAAE,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -26,10 +26,11 @@ import { registerContractTools } from "./tools/contract.js";
|
|
|
26
26
|
import { registerFileTools } from "./tools/file.js";
|
|
27
27
|
import { registerScheduleTools } from "./tools/schedule.js";
|
|
28
28
|
import { registerNetworkTools } from "./tools/network.js";
|
|
29
|
+
import { registerAnalyticsTools } from "./tools/analytics.js";
|
|
29
30
|
const ctx = new HederaCtx();
|
|
30
31
|
const server = new McpServer({
|
|
31
32
|
name: "hedera-mcp",
|
|
32
|
-
version: "0.
|
|
33
|
+
version: "0.3.0",
|
|
33
34
|
});
|
|
34
35
|
let toolCount = 0;
|
|
35
36
|
const register = (name, description, shape, handler) => {
|
|
@@ -54,6 +55,7 @@ registerContractTools(register, ctx);
|
|
|
54
55
|
registerFileTools(register, ctx);
|
|
55
56
|
registerScheduleTools(register, ctx);
|
|
56
57
|
registerNetworkTools(register, ctx);
|
|
58
|
+
registerAnalyticsTools(register, ctx);
|
|
57
59
|
async function main() {
|
|
58
60
|
const transport = new StdioServerTransport();
|
|
59
61
|
await server.connect(transport);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** Analytics: keyless Mirror Node reads — blocks, balances, allowances, contract data, staking. */
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { json } from "../context.js";
|
|
4
|
+
export function registerAnalyticsTools(register, ctx) {
|
|
5
|
+
register("hedera_get_block", "Read a block by number or hash from the Mirror Node.", { numberOrHash: z.string().describe("Block number or hash") }, async (a) => json(await ctx.mirror(`/api/v1/blocks/${encodeURIComponent(a.numberOrHash)}`)));
|
|
6
|
+
register("hedera_get_blocks", "List recent blocks from the Mirror Node.", { limit: z.number().int().min(1).max(100).optional() }, async (a) => json(await ctx.mirror(`/api/v1/blocks?limit=${a.limit ?? 10}&order=desc`)));
|
|
7
|
+
register("hedera_get_account_transactions", "List recent transactions for an account from the Mirror Node.", { accountId: z.string(), limit: z.number().int().min(1).max(100).optional() }, async (a) => json(await ctx.mirror(`/api/v1/transactions?account.id=${encodeURIComponent(a.accountId)}&limit=${a.limit ?? 25}&order=desc`)));
|
|
8
|
+
register("hedera_get_token_balances", "List the accounts holding a token and their balances, from the Mirror Node.", { tokenId: z.string(), limit: z.number().int().min(1).max(100).optional() }, async (a) => json(await ctx.mirror(`/api/v1/tokens/${encodeURIComponent(a.tokenId)}/balances?limit=${a.limit ?? 25}`)));
|
|
9
|
+
register("hedera_get_token_nfts", "List the minted NFTs (serials) of an NFT collection from the Mirror Node.", { tokenId: z.string(), limit: z.number().int().min(1).max(100).optional() }, async (a) => json(await ctx.mirror(`/api/v1/tokens/${encodeURIComponent(a.tokenId)}/nfts?limit=${a.limit ?? 25}`)));
|
|
10
|
+
register("hedera_get_nft_history", "Read the transfer/mint history of a specific NFT serial from the Mirror Node.", { tokenId: z.string(), serial: z.number().int().positive() }, async (a) => json(await ctx.mirror(`/api/v1/tokens/${encodeURIComponent(a.tokenId)}/nfts/${a.serial}/transactions?limit=25`)));
|
|
11
|
+
register("hedera_get_account_allowances", "Read an account's active HBAR (crypto) allowances from the Mirror Node.", { accountId: z.string() }, async (a) => json(await ctx.mirror(`/api/v1/accounts/${encodeURIComponent(a.accountId)}/allowances/crypto?limit=25`)));
|
|
12
|
+
register("hedera_get_account_token_allowances", "Read an account's active fungible-token allowances from the Mirror Node.", { accountId: z.string() }, async (a) => json(await ctx.mirror(`/api/v1/accounts/${encodeURIComponent(a.accountId)}/allowances/tokens?limit=25`)));
|
|
13
|
+
register("hedera_get_account_nft_allowances", "Read an account's active NFT (approve-for-all) allowances from the Mirror Node.", { accountId: z.string() }, async (a) => json(await ctx.mirror(`/api/v1/accounts/${encodeURIComponent(a.accountId)}/allowances/nfts?limit=25`)));
|
|
14
|
+
register("hedera_get_contract_results", "List recent execution results for a contract from the Mirror Node.", { contractId: z.string(), limit: z.number().int().min(1).max(100).optional() }, async (a) => json(await ctx.mirror(`/api/v1/contracts/${encodeURIComponent(a.contractId)}/results?limit=${a.limit ?? 10}&order=desc`)));
|
|
15
|
+
register("hedera_get_contract_state", "Read a contract's current storage slots from the Mirror Node.", { contractId: z.string(), limit: z.number().int().min(1).max(100).optional() }, async (a) => json(await ctx.mirror(`/api/v1/contracts/${encodeURIComponent(a.contractId)}/state?limit=${a.limit ?? 25}`)));
|
|
16
|
+
register("hedera_get_network_stake", "Read network-wide staking info (total staked, reward rate) from the Mirror Node.", {}, async () => json(await ctx.mirror(`/api/v1/network/stake`)));
|
|
17
|
+
register("hedera_search_accounts_by_pubkey", "Find accounts controlled by a given public key from the Mirror Node.", { publicKey: z.string().describe("Public key (hex/DER)") }, async (a) => json(await ctx.mirror(`/api/v1/accounts?account.publickey=${encodeURIComponent(a.publicKey)}&limit=25`)));
|
|
18
|
+
register("hedera_get_account_by_evm", "Resolve a Hedera account from a 0x EVM address via the Mirror Node.", { evmAddress: z.string().describe("0x-prefixed EVM address") }, async (a) => json(await ctx.mirror(`/api/v1/accounts/${encodeURIComponent(a.evmAddress)}`)));
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=analytics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/tools/analytics.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/contract.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** Smart contract service (EVM). Writes are build-only; reads use Mirror Node eth_call. */
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
import { ContractCreateTransaction, ContractExecuteTransaction, ContractId, FileId, Hbar, } from "@hashgraph/sdk";
|
|
3
|
+
import { AccountId, ContractCreateTransaction, ContractDeleteTransaction, ContractExecuteTransaction, ContractId, ContractUpdateTransaction, FileId, Hbar, } from "@hashgraph/sdk";
|
|
4
4
|
import { json } from "../context.js";
|
|
5
5
|
export function registerContractTools(register, ctx) {
|
|
6
6
|
register("hedera_deploy_contract", "Build (unsigned) a contract deployment from bytecode already stored in a Hedera File (see hedera_create_file).", {
|
|
@@ -40,6 +40,26 @@ export function registerContractTools(register, ctx) {
|
|
|
40
40
|
tx.setPayableAmount(new Hbar(a.payableAmountHbar));
|
|
41
41
|
return ctx.buildAndRender(tx, `Execute contract ${a.contractId} · gas ${a.gas}`, a.payerAccountId);
|
|
42
42
|
});
|
|
43
|
+
register("hedera_update_contract", "Build (unsigned) an update to a contract's memo or admin key (requires admin key to sign).", {
|
|
44
|
+
contractId: z.string(),
|
|
45
|
+
memo: z.string().optional(),
|
|
46
|
+
payerAccountId: z.string().optional(),
|
|
47
|
+
}, async (a) => {
|
|
48
|
+
const tx = new ContractUpdateTransaction().setContractId(ContractId.fromString(a.contractId));
|
|
49
|
+
if (a.memo != null)
|
|
50
|
+
tx.setContractMemo(a.memo);
|
|
51
|
+
return ctx.buildAndRender(tx, `Update contract ${a.contractId}`, a.payerAccountId);
|
|
52
|
+
});
|
|
53
|
+
register("hedera_delete_contract", "Build (unsigned) a contract deletion, transferring any balance to an account.", {
|
|
54
|
+
contractId: z.string(),
|
|
55
|
+
transferAccountId: z.string().describe("Account that receives the contract's remaining balance"),
|
|
56
|
+
payerAccountId: z.string().optional(),
|
|
57
|
+
}, async (a) => {
|
|
58
|
+
const tx = new ContractDeleteTransaction()
|
|
59
|
+
.setContractId(ContractId.fromString(a.contractId))
|
|
60
|
+
.setTransferAccountId(AccountId.fromString(a.transferAccountId));
|
|
61
|
+
return ctx.buildAndRender(tx, `Delete contract ${a.contractId}`, a.payerAccountId);
|
|
62
|
+
});
|
|
43
63
|
register("hedera_query_contract", "Read a contract view/pure function via the Mirror Node eth_call endpoint (keyless, no gas spent).", {
|
|
44
64
|
contractIdOrAddress: z.string().describe("Contract id (0.0.x) or 0x EVM address"),
|
|
45
65
|
dataHex: z.string().describe("ABI-encoded calldata as 0x-prefixed hex"),
|
|
@@ -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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"}
|
package/dist/tools/file.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
/** File service: create / append / delete files (e.g. contract bytecode)
|
|
1
|
+
/** File service: create / append / update / delete files (e.g. contract bytecode).
|
|
2
|
+
*
|
|
3
|
+
* Note: file *contents/info* require a paid consensus query (FileContentsQuery),
|
|
4
|
+
* which is incompatible with this server's keyless posture — so there is no
|
|
5
|
+
* Mirror Node-based file read tool. */
|
|
2
6
|
import { z } from "zod";
|
|
3
|
-
import { FileAppendTransaction, FileCreateTransaction, FileDeleteTransaction, FileId, PublicKey, } from "@hashgraph/sdk";
|
|
4
|
-
import { json } from "../context.js";
|
|
7
|
+
import { FileAppendTransaction, FileCreateTransaction, FileDeleteTransaction, FileId, FileUpdateTransaction, PublicKey, } from "@hashgraph/sdk";
|
|
5
8
|
export function registerFileTools(register, ctx) {
|
|
6
9
|
register("hedera_create_file", "Build (unsigned) a new file. Useful for storing compiled contract bytecode before deployment.", {
|
|
7
10
|
contents: z.string().describe("File contents (UTF-8 text or hex bytecode)"),
|
|
8
|
-
key: z.string().optional().describe("Public key controlling the file (enables append/delete)"),
|
|
11
|
+
key: z.string().optional().describe("Public key controlling the file (enables append/update/delete)"),
|
|
9
12
|
memo: z.string().optional(),
|
|
10
13
|
payerAccountId: z.string().optional(),
|
|
11
14
|
}, async (a) => {
|
|
@@ -16,20 +19,28 @@ export function registerFileTools(register, ctx) {
|
|
|
16
19
|
tx.setFileMemo(a.memo);
|
|
17
20
|
return ctx.buildAndRender(tx, `Create file (${Buffer.from(a.contents).length} bytes)`, a.payerAccountId);
|
|
18
21
|
});
|
|
19
|
-
register("hedera_append_file", "Build (unsigned) an append to an existing file (for bytecode larger than one transaction).", {
|
|
20
|
-
fileId: z.string(),
|
|
21
|
-
contents: z.string(),
|
|
22
|
-
payerAccountId: z.string().optional(),
|
|
23
|
-
}, async (a) => {
|
|
22
|
+
register("hedera_append_file", "Build (unsigned) an append to an existing file (for bytecode larger than one transaction).", { fileId: z.string(), contents: z.string(), payerAccountId: z.string().optional() }, async (a) => {
|
|
24
23
|
const tx = new FileAppendTransaction()
|
|
25
24
|
.setFileId(FileId.fromString(a.fileId))
|
|
26
25
|
.setContents(a.contents);
|
|
27
26
|
return ctx.buildAndRender(tx, `Append ${Buffer.from(a.contents).length} bytes to file ${a.fileId}`, a.payerAccountId);
|
|
28
27
|
});
|
|
28
|
+
register("hedera_update_file", "Build (unsigned) an update that replaces a file's contents and/or memo.", {
|
|
29
|
+
fileId: z.string(),
|
|
30
|
+
contents: z.string().optional(),
|
|
31
|
+
memo: z.string().optional(),
|
|
32
|
+
payerAccountId: z.string().optional(),
|
|
33
|
+
}, async (a) => {
|
|
34
|
+
const tx = new FileUpdateTransaction().setFileId(FileId.fromString(a.fileId));
|
|
35
|
+
if (a.contents != null)
|
|
36
|
+
tx.setContents(a.contents);
|
|
37
|
+
if (a.memo != null)
|
|
38
|
+
tx.setFileMemo(a.memo);
|
|
39
|
+
return ctx.buildAndRender(tx, `Update file ${a.fileId}`, a.payerAccountId);
|
|
40
|
+
});
|
|
29
41
|
register("hedera_delete_file", "Build (unsigned) a file deletion.", { fileId: z.string(), payerAccountId: z.string().optional() }, async (a) => {
|
|
30
42
|
const tx = new FileDeleteTransaction().setFileId(FileId.fromString(a.fileId));
|
|
31
43
|
return ctx.buildAndRender(tx, `Delete file ${a.fileId}`, a.payerAccountId);
|
|
32
44
|
});
|
|
33
|
-
register("hedera_get_file_info", "Read file metadata (size, keys, expiry) from the Mirror Node.", { fileId: z.string() }, async (a) => json(await ctx.mirror(`/api/v1/files/${encodeURIComponent(a.fileId)}`)));
|
|
34
45
|
}
|
|
35
46
|
//# sourceMappingURL=file.js.map
|
package/dist/tools/file.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/tools/file.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/tools/file.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/network.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** Network/utility tools: transactions, nodes, fees, supply, exchange rate, and tx decoding. */
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
import { Transaction } from "@hashgraph/sdk";
|
|
3
|
+
import { PrngTransaction, Transaction } from "@hashgraph/sdk";
|
|
4
4
|
import { json, resolveTxType } from "../context.js";
|
|
5
5
|
export function registerNetworkTools(register, ctx) {
|
|
6
6
|
register("hedera_get_transaction", "Read a transaction's records/results from the Mirror Node by transaction id.", { transactionId: z.string().describe("e.g. 0.0.1234-1700000000-000000000 or 0.0.1234@1700000000.0") }, async (a) => {
|
|
@@ -12,6 +12,15 @@ export function registerNetworkTools(register, ctx) {
|
|
|
12
12
|
register("hedera_get_exchange_rate", "Read the current HBAR↔USD exchange rate from the Mirror Node.", {}, async () => json(await ctx.mirror(`/api/v1/network/exchangerate`)));
|
|
13
13
|
register("hedera_get_network_supply", "Read total/circulating HBAR supply from the Mirror Node.", {}, async () => json(await ctx.mirror(`/api/v1/network/supply`)));
|
|
14
14
|
register("hedera_get_network_fees", "Read the current network fee schedule from the Mirror Node.", {}, async () => json(await ctx.mirror(`/api/v1/network/fees`)));
|
|
15
|
+
register("hedera_prng", "Build (unsigned) a pseudo-random number generation transaction (native on-chain RNG). Optionally bound to [0, range).", {
|
|
16
|
+
range: z.number().int().positive().optional().describe("If set, result is a uint in [0, range)"),
|
|
17
|
+
payerAccountId: z.string().optional(),
|
|
18
|
+
}, async (a) => {
|
|
19
|
+
const tx = new PrngTransaction();
|
|
20
|
+
if (a.range != null)
|
|
21
|
+
tx.setRange(a.range);
|
|
22
|
+
return ctx.buildAndRender(tx, `Generate random number${a.range != null ? ` in [0, ${a.range})` : ""}`, a.payerAccountId);
|
|
23
|
+
});
|
|
15
24
|
register("hedera_decode_transaction", "Decode a base64 transaction (e.g. one built by this server) into a human-readable summary — useful for review before signing.", { transactionBase64: z.string().describe("Base64 transaction bytes") }, async (a) => {
|
|
16
25
|
const tx = Transaction.fromBytes(Buffer.from(a.transactionBase64, "base64"));
|
|
17
26
|
return json({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/tools/network.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/tools/network.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/schedule.js
CHANGED
|
@@ -1,18 +1,22 @@
|
|
|
1
|
-
/** Scheduled transactions: wrap
|
|
1
|
+
/** Scheduled transactions: wrap an inner transfer for multi-party / threshold signing. */
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
import { PublicKey, ScheduleCreateTransaction, ScheduleDeleteTransaction, ScheduleId, ScheduleSignTransaction,
|
|
3
|
+
import { AccountId, Hbar, PublicKey, ScheduleCreateTransaction, ScheduleDeleteTransaction, ScheduleId, ScheduleSignTransaction, TransferTransaction, } from "@hashgraph/sdk";
|
|
4
4
|
import { json } from "../context.js";
|
|
5
5
|
export function registerScheduleTools(register, ctx) {
|
|
6
|
-
register("hedera_create_schedule", "Build (unsigned) a scheduled
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
register("hedera_create_schedule", "Build (unsigned) a scheduled HBAR transfer — wraps an inner transfer so multiple parties can sign before it executes.", {
|
|
7
|
+
toAccountId: z.string().describe("Recipient of the scheduled transfer"),
|
|
8
|
+
amountHbar: z.number().positive().describe("Amount in HBAR"),
|
|
9
|
+
fromAccountId: z.string().optional().describe("Sender (defaults to payer)"),
|
|
10
10
|
adminKey: z.string().optional().describe("Admin public key (enables schedule deletion)"),
|
|
11
11
|
schedulePayerAccountId: z.string().optional().describe("Account that pays when the schedule executes"),
|
|
12
12
|
memo: z.string().optional(),
|
|
13
13
|
payerAccountId: z.string().optional(),
|
|
14
14
|
}, async (a) => {
|
|
15
|
-
const
|
|
15
|
+
const from = AccountId.fromString(a.fromAccountId ?? ctx.payer(a.payerAccountId).toString());
|
|
16
|
+
// Inner transaction MUST be unfrozen for ScheduleCreate to accept it.
|
|
17
|
+
const inner = new TransferTransaction()
|
|
18
|
+
.addHbarTransfer(from, new Hbar(-a.amountHbar))
|
|
19
|
+
.addHbarTransfer(AccountId.fromString(a.toAccountId), new Hbar(a.amountHbar));
|
|
16
20
|
const tx = new ScheduleCreateTransaction().setScheduledTransaction(inner);
|
|
17
21
|
if (a.adminKey)
|
|
18
22
|
tx.setAdminKey(PublicKey.fromString(a.adminKey));
|
|
@@ -20,7 +24,7 @@ export function registerScheduleTools(register, ctx) {
|
|
|
20
24
|
tx.setPayerAccountId(a.schedulePayerAccountId);
|
|
21
25
|
if (a.memo)
|
|
22
26
|
tx.setScheduleMemo(a.memo);
|
|
23
|
-
return ctx.buildAndRender(tx, `Create
|
|
27
|
+
return ctx.buildAndRender(tx, `Create scheduled transfer ${a.amountHbar} ℏ · ${from} → ${a.toAccountId}`, a.payerAccountId);
|
|
24
28
|
});
|
|
25
29
|
register("hedera_sign_schedule", "Build (unsigned) a signature add to an existing scheduled transaction.", { scheduleId: z.string(), payerAccountId: z.string().optional() }, async (a) => {
|
|
26
30
|
const tx = new ScheduleSignTransaction().setScheduleId(ScheduleId.fromString(a.scheduleId));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule.js","sourceRoot":"","sources":["../../src/tools/schedule.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"schedule.js","sourceRoot":"","sources":["../../src/tools/schedule.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/token.js
CHANGED
|
@@ -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 { AccountId, NftId, PublicKey, TokenAssociateTransaction, TokenBurnTransaction, TokenCreateTransaction, TokenDeleteTransaction, TokenDissociateTransaction, TokenFreezeTransaction, TokenGrantKycTransaction, TokenId, TokenMintTransaction, TokenPauseTransaction, TokenRevokeKycTransaction, TokenSupplyType, TokenType, TokenUnfreezeTransaction, TokenUnpauseTransaction, TokenWipeTransaction, TransferTransaction, } from "@hashgraph/sdk";
|
|
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";
|
|
4
4
|
import { json } from "../context.js";
|
|
5
5
|
function maybeKey(value) {
|
|
6
6
|
return value ? PublicKey.fromString(value) : undefined;
|
|
@@ -14,6 +14,10 @@ export function registerTokenTools(register, ctx) {
|
|
|
14
14
|
treasuryAccountId: z.string().optional().describe("Treasury (defaults to payer)"),
|
|
15
15
|
adminKey: z.string().optional().describe("Admin public key (enables future updates)"),
|
|
16
16
|
supplyKey: z.string().optional().describe("Supply public key (enables mint/burn)"),
|
|
17
|
+
freezeKey: z.string().optional().describe("Freeze public key (enables freeze/unfreeze)"),
|
|
18
|
+
kycKey: z.string().optional().describe("KYC public key (enables grant/revoke KYC)"),
|
|
19
|
+
pauseKey: z.string().optional().describe("Pause public key (enables pause/unpause)"),
|
|
20
|
+
wipeKey: z.string().optional().describe("Wipe public key (enables wipe)"),
|
|
17
21
|
supplyType: z.enum(["finite", "infinite"]).optional().describe("Default infinite"),
|
|
18
22
|
maxSupply: z.number().int().positive().optional().describe("Required if supplyType=finite"),
|
|
19
23
|
memo: z.string().optional(),
|
|
@@ -36,6 +40,18 @@ export function registerTokenTools(register, ctx) {
|
|
|
36
40
|
const supply = maybeKey(a.supplyKey);
|
|
37
41
|
if (supply)
|
|
38
42
|
tx.setSupplyKey(supply);
|
|
43
|
+
const freeze = maybeKey(a.freezeKey);
|
|
44
|
+
if (freeze)
|
|
45
|
+
tx.setFreezeKey(freeze);
|
|
46
|
+
const kyc = maybeKey(a.kycKey);
|
|
47
|
+
if (kyc)
|
|
48
|
+
tx.setKycKey(kyc);
|
|
49
|
+
const pause = maybeKey(a.pauseKey);
|
|
50
|
+
if (pause)
|
|
51
|
+
tx.setPauseKey(pause);
|
|
52
|
+
const wipe = maybeKey(a.wipeKey);
|
|
53
|
+
if (wipe)
|
|
54
|
+
tx.setWipeKey(wipe);
|
|
39
55
|
if (a.memo)
|
|
40
56
|
tx.setTokenMemo(a.memo);
|
|
41
57
|
return ctx.buildAndRender(tx, `Create fungible token ${a.name} (${a.symbol}) · treasury ${treasury} · supply ${a.initialSupply ?? 0}`, a.payerAccountId);
|
|
@@ -187,6 +203,70 @@ export function registerTokenTools(register, ctx) {
|
|
|
187
203
|
const tx = new TokenDeleteTransaction().setTokenId(TokenId.fromString(a.tokenId));
|
|
188
204
|
return ctx.buildAndRender(tx, `Delete token ${a.tokenId}`, a.payerAccountId);
|
|
189
205
|
});
|
|
206
|
+
register("hedera_update_token", "Build (unsigned) an update to a token's name, symbol, memo, or treasury (requires the admin key to sign).", {
|
|
207
|
+
tokenId: z.string(),
|
|
208
|
+
name: z.string().optional(),
|
|
209
|
+
symbol: z.string().optional(),
|
|
210
|
+
memo: z.string().optional(),
|
|
211
|
+
treasuryAccountId: z.string().optional(),
|
|
212
|
+
payerAccountId: z.string().optional(),
|
|
213
|
+
}, async (a) => {
|
|
214
|
+
const tx = new TokenUpdateTransaction().setTokenId(TokenId.fromString(a.tokenId));
|
|
215
|
+
if (a.name != null)
|
|
216
|
+
tx.setTokenName(a.name);
|
|
217
|
+
if (a.symbol != null)
|
|
218
|
+
tx.setTokenSymbol(a.symbol);
|
|
219
|
+
if (a.memo != null)
|
|
220
|
+
tx.setTokenMemo(a.memo);
|
|
221
|
+
if (a.treasuryAccountId)
|
|
222
|
+
tx.setTreasuryAccountId(AccountId.fromString(a.treasuryAccountId));
|
|
223
|
+
return ctx.buildAndRender(tx, `Update token ${a.tokenId}`, a.payerAccountId);
|
|
224
|
+
});
|
|
225
|
+
register("hedera_token_airdrop", "Build (unsigned) a fungible-token airdrop (HIP-904) — auto-associates recipients without prior opt-in.", {
|
|
226
|
+
tokenId: z.string(),
|
|
227
|
+
fromAccountId: z.string().optional().describe("Sender (defaults to payer)"),
|
|
228
|
+
toAccountId: z.string(),
|
|
229
|
+
amount: z.number().int().positive().describe("Amount in base units"),
|
|
230
|
+
payerAccountId: z.string().optional(),
|
|
231
|
+
}, async (a) => {
|
|
232
|
+
const token = TokenId.fromString(a.tokenId);
|
|
233
|
+
const from = AccountId.fromString(a.fromAccountId ?? ctx.payer(a.payerAccountId).toString());
|
|
234
|
+
const to = AccountId.fromString(a.toAccountId);
|
|
235
|
+
const tx = new TokenAirdropTransaction()
|
|
236
|
+
.addTokenTransfer(token, from, -a.amount)
|
|
237
|
+
.addTokenTransfer(token, to, a.amount);
|
|
238
|
+
return ctx.buildAndRender(tx, `Airdrop ${a.amount} of ${a.tokenId} → ${to}`, a.payerAccountId);
|
|
239
|
+
});
|
|
240
|
+
register("hedera_reject_token", "Build (unsigned) a token rejection (HIP-904) — returns an unwanted token to its treasury.", {
|
|
241
|
+
ownerAccountId: z.string().optional().describe("Holder rejecting (defaults to payer)"),
|
|
242
|
+
tokenId: z.string(),
|
|
243
|
+
payerAccountId: z.string().optional(),
|
|
244
|
+
}, async (a) => {
|
|
245
|
+
const owner = AccountId.fromString(a.ownerAccountId ?? ctx.payer(a.payerAccountId).toString());
|
|
246
|
+
const tx = new TokenRejectTransaction().setOwnerId(owner).addTokenId(TokenId.fromString(a.tokenId));
|
|
247
|
+
return ctx.buildAndRender(tx, `Reject token ${a.tokenId} (owner ${owner})`, a.payerAccountId);
|
|
248
|
+
});
|
|
249
|
+
register("hedera_approve_token_allowance", "Build (unsigned) a fungible-token spending allowance for a spender.", {
|
|
250
|
+
tokenId: z.string(),
|
|
251
|
+
ownerAccountId: z.string().optional().describe("Owner (defaults to payer)"),
|
|
252
|
+
spenderAccountId: z.string(),
|
|
253
|
+
amount: z.number().int().positive().describe("Allowance amount in base units"),
|
|
254
|
+
payerAccountId: z.string().optional(),
|
|
255
|
+
}, async (a) => {
|
|
256
|
+
const owner = AccountId.fromString(a.ownerAccountId ?? ctx.payer(a.payerAccountId).toString());
|
|
257
|
+
const tx = new AccountAllowanceApproveTransaction().approveTokenAllowance(TokenId.fromString(a.tokenId), owner, AccountId.fromString(a.spenderAccountId), a.amount);
|
|
258
|
+
return ctx.buildAndRender(tx, `Approve ${a.amount} of ${a.tokenId} · ${owner} → ${a.spenderAccountId}`, a.payerAccountId);
|
|
259
|
+
});
|
|
260
|
+
register("hedera_approve_nft_allowance", "Build (unsigned) an NFT allowance for all serials of a collection (approve-for-all).", {
|
|
261
|
+
tokenId: z.string(),
|
|
262
|
+
ownerAccountId: z.string().optional().describe("Owner (defaults to payer)"),
|
|
263
|
+
spenderAccountId: z.string(),
|
|
264
|
+
payerAccountId: z.string().optional(),
|
|
265
|
+
}, async (a) => {
|
|
266
|
+
const owner = AccountId.fromString(a.ownerAccountId ?? ctx.payer(a.payerAccountId).toString());
|
|
267
|
+
const tx = new AccountAllowanceApproveTransaction().approveTokenNftAllowanceAllSerials(TokenId.fromString(a.tokenId), owner, AccountId.fromString(a.spenderAccountId));
|
|
268
|
+
return ctx.buildAndRender(tx, `Approve all NFTs of ${a.tokenId} · ${owner} → ${a.spenderAccountId}`, a.payerAccountId);
|
|
269
|
+
});
|
|
190
270
|
// ---- Mirror Node reads (keyless) ----
|
|
191
271
|
register("hedera_get_token_info", "Read token info (type, supply, keys, custom fees) from the Mirror Node.", { tokenId: z.string() }, async (a) => json(await ctx.mirror(`/api/v1/tokens/${encodeURIComponent(a.tokenId)}`)));
|
|
192
272
|
register("hedera_get_nft_info", "Read a specific NFT's info (owner, metadata, serial) from the Mirror Node.", { tokenId: z.string(), serial: z.number().int().positive() }, async (a) => json(await ctx.mirror(`/api/v1/tokens/${encodeURIComponent(a.tokenId)}/nfts/${a.serial}`)));
|
package/dist/tools/token.js.map
CHANGED
|
@@ -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/logo.svg
CHANGED
|
@@ -13,5 +13,5 @@
|
|
|
13
13
|
<circle cx="140" cy="100" r="11" fill="#3ec6a8"/>
|
|
14
14
|
</g>
|
|
15
15
|
<text x="190" y="92" font-family="ui-monospace, SFMono-Regular, Menlo, monospace" font-size="46" font-weight="700" fill="#ffffff">hedera-mcp</text>
|
|
16
|
-
<text x="192" y="132" font-family="ui-monospace, SFMono-Regular, Menlo, monospace" font-size="20" fill="#7a8a86">
|
|
16
|
+
<text x="192" y="132" font-family="ui-monospace, SFMono-Regular, Menlo, monospace" font-size="20" fill="#7a8a86">73 tools · build-only · never holds keys</text>
|
|
17
17
|
</svg>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@purplesquirrel/hedera-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.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",
|