{"name":"io.github.inotakeh/symbol","slug":"inotakeh-symbol","title":null,"description":"Read-only MCP server for the Symbol blockchain (XYM): node health, harvesting, voting keys.","url":"https://mcp.market/server/inotakeh-symbol","rating":null,"grade":"A","score":89,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":30,"stars":1,"forks":0,"downloads_week":327,"last_push_at":"2026-09-19T16:04:54.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/inotakeh/symbol-mcp-server","website":null,"version":"0.4.0","remotes":[],"packages":[{"registryType":"npm","identifier":"symbol-mcp-server","version":"0.4.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"Base URL of the Symbol REST node to query, e.g. https://your-node.example:3001","isRequired":true,"format":"string","name":"SYMBOL_NODE_URL"},{"description":"IANA time zone for local date/time output, e.g. Asia/Tokyo (default UTC)","format":"string","name":"SYMBOL_TIMEZONE"},{"description":"Comma-separated REST URLs of reference nodes for symbol_network_compare (optional)","format":"string","name":"SYMBOL_REFERENCE_NODES"}]}],"tools":[{"name":"symbol_account_get","description":"Get a Symbol account by address, public key or namespace name (alice, alice.pay; resolved to its address alias and reported in accountResolution): address in base32 and hex, public key, account type, all mosaic balances (with alias names and divisibility-adjusted amounts), importance, supplemental keys (linked/node/vrf/voting), whether delegated harvesting is configured, and multisig settings if t","write_action":false,"price_micros":0,"input_schema":null},{"name":"symbol_address_parse","description":"Validate and convert a Symbol address or public key: reports whether the value is a valid base32 address, hex address or public key, gives the address in base32, hex and dashed form, the network encoded in it (N = mainnet, T = testnet) and whether that matches the configured node, and for a public key the derived address on every known network. Addresses and keys are checked offline; a namespace n","write_action":false,"price_micros":0,"input_schema":null},{"name":"symbol_delegation_diagnose","description":"Diagnose whether an account's delegated harvesting is active and, if not, where it stops: account exists, balance within minHarvesterBalance/maxHarvesterBalance, importance above zero (or blocks until the next recalculation), linked/VRF/node keys registered, node key equal to the configured node's nodePublicKey, remote key unlocked on the configured node, account type, harvested blocks in the last","write_action":false,"price_micros":0,"input_schema":null},{"name":"symbol_fee_estimate","description":"Estimate the fee for a Symbol transaction of a given size from the current fee multipliers of the configured node (fee = size in bytes x multiplier). Returns slow (minimum accepted by this node), average, median and fast (highest recent) tiers in XYM and raw units. Nothing is signed or sent.","write_action":false,"price_micros":0,"input_schema":null},{"name":"symbol_finality_participation","description":"Check whether a Symbol account's voting key actually took part in finalization voting: for the requested epoch (default: the latest finalized one) and optionally the N epochs before it, read the finalization proof from the node and report per epoch whether one of the account's registered voting keys signed both stages (prevote and precommit), only one, or none, plus the number of signatures in eac","write_action":false,"price_micros":0,"input_schema":null},{"name":"symbol_harvester_watch","description":"Compare the delegated harvesters currently unlocked on the configured node (/node/unlockedaccount) with the previous call: which remote keys were added or removed, the count delta, and min / max / average over the snapshots of the last 30 days. Snapshots (public keys, heights and times only) are kept in one file per node under SYMBOL_STATE_DIR; without that variable the tool reports the current li","write_action":false,"price_micros":0,"input_schema":null},{"name":"symbol_harvesting_income","description":"Use this tool whenever the user asks about harvesting rewards, harvest income, or earnings for a period (e.g. 'last month', 'this year', 'per day'). Do not use symbol_transaction_search or a browser for this; harvest rewards are receipts, not transactions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"symbol_harvesting_status","description":"Report delegated harvesting on the configured node: how many remote harvester keys are unlocked (/node/unlockedaccount) and the network limits (minHarvesterBalance, maxHarvesterBalance, harvestBeneficiaryPercentage). With an account, also checks whether its linked key is unlocked on this node, whether its balance and importance allow harvesting, and lists warnings.","write_action":false,"price_micros":0,"input_schema":null},{"name":"symbol_mosaic_get","description":"Describe a Symbol mosaic (token) by hex id or alias name such as symbol.xym: alias, total supply (divisibility-adjusted and raw), divisibility, flags (supplyMutable, transferable, restrictable, revokable), owner address, start height, and duration with the estimated expiry date (duration 0 means unlimited).","write_action":false,"price_micros":0,"input_schema":null},{"name":"symbol_namespace_get","description":"Describe a Symbol namespace by name (e.g. symbol.xym) or hex id: owner address, root or sub namespace, every level with its name, alias target (mosaic id or address), start and end height, and the estimated expiry date and remaining blocks (root namespaces registered forever report unlimited).","write_action":false,"price_micros":0,"input_schema":null},{"name":"symbol_network_compare","description":"Compare the configured node with the reference nodes listed in SYMBOL_REFERENCE_NODES: height, finalized height and finalization epoch of each, the best values seen, how far the own node is behind, and lagging flags (more than 10 blocks behind). Only the configured node and the listed reference nodes are ever contacted. Takes no arguments.","write_action":false,"price_micros":0,"input_schema":null},{"name":"symbol_network_info","description":"Describe the Symbol network the configured node belongs to: network name and identifier, generation hash seed, current and finalized block height, finalization epoch, block target time, voting set grouping, epoch adjustment, the native currency mosaic (XYM) id/alias/divisibility, and current transaction fee multipliers. Takes no arguments; the node is fixed by SYMBOL_NODE_URL.","write_action":false,"price_micros":0,"input_schema":null},{"name":"symbol_node_health","description":"Check whether the configured Symbol node (SYMBOL_NODE_URL) is running healthily right now: API node and database status from /node/health (a 503 answer is read, not treated as a failure), node database block count versus chain height, node clock versus the local clock, finalization lag in blocks and minutes, and the node roles (is it a voting node). Six checks in a fixed order, each ok/warn/fail/u","write_action":false,"price_micros":0,"input_schema":null},{"name":"symbol_node_status","description":"Report the health of the configured Symbol node (SYMBOL_NODE_URL): friendly name, host, roles (Peer/API/Voting), software version, network, API and database health, current and finalized height, finalization epoch, peer count, and whether the node is in sync (latest block older than 5 minutes means not synced). Takes no arguments.","write_action":false,"price_micros":0,"input_schema":null},{"name":"symbol_time_convert","description":"Convert between a Symbol block height, finalization epoch, network timestamp (milliseconds since the network epoch) and wall-clock time (UTC plus local time when SYMBOL_TIMEZONE is set). Pass exactly one of height, epoch or timestamp. Past heights use the real block time; future heights and epochs are estimated from the measured average block time and flagged isEstimate.","write_action":false,"price_micros":0,"input_schema":null},{"name":"symbol_transaction_get","description":"Look up a Symbol transaction by hash. Checks the confirmed, unconfirmed and partial (aggregate bonded awaiting cosignatures) groups and reports which one it was found in, or not_found. Returns the type name, signer address, recipient, mosaics with alias names and divisibility-adjusted amounts, the decoded message (plain text, or a note when encrypted), fees in XYM, block height and time, and for a","write_action":false,"price_micros":0,"input_schema":null},{"name":"symbol_transaction_search","description":"List confirmed transactions involving a Symbol account (as signer or recipient), newest first by default, optionally filtered by type. Each row has the type name, hash, height and time, signer and recipient addresses, mosaics with alias names and adjusted amounts, decoded message and fees. Paginated: 10 to 100 rows per page; the summary says how to fetch the next page.","write_action":false,"price_micros":0,"input_schema":null},{"name":"symbol_transaction_status","description":"Check where one or more Symbol transactions stand right now by hash: confirmed (in a block, with the height), unconfirmed (in the mempool), partial (aggregate bonded waiting for cosignatures), failed (with the node's validation code and its meaning) or not_found. Use it right after announcing a transaction, for example a voting/VRF/node key link, to see whether it went through; use symbol_transact","write_action":false,"price_micros":0,"input_schema":null},{"name":"symbol_version_drift","description":"Check whether the configured Symbol node's software version is behind the network majority: reads the node's own version (/node/info) and REST version (/node/server), collects the versions of the peers the node knows (/node/peers) and of the reference nodes in SYMBOL_REFERENCE_NODES, and reports the version distribution, the majority version, the share of the sample running something newer, and a ","write_action":false,"price_micros":0,"input_schema":null},{"name":"symbol_voting_key_status","description":"For a Symbol voting node account, list every registered voting key with its start/end epoch and status (expired, active, future), and for active or upcoming keys compute the remaining epochs, blocks and days, the estimated expiry date/time, and a recommended renewal window (7 to 3 days before expiry). Also reports the current finalization epoch, network limits (max keys per account, min/max key li","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":89,"grade":"A","scanned_at":"2026-09-19T19:45:57.576Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T19:45:57.554Z","components":{"code":{"score":25,"max":25,"notes":["63 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":6,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"symbol-mcp-server","version":"0.4.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-09-19T14:10:08.387Z","repositoryUrl":"git+https://github.com/inotakeh/symbol-mcp-server.git","weeklyDownloads":327}],"repo":{"found":true,"owner":"inotakeh","repo":"symbol-mcp-server","archived":false,"pushedAt":"2026-09-19T16:04:54Z","stars":1,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/327499914?v=4","ownerCreatedAt":"2026-09-10T12:46:45Z","license":"MIT"},"icon":{"url":null,"source":"none"},"presence":{"stars":1,"forks":0,"downloadsWeek":327,"license":"MIT","lastPushAt":"2026-09-19T16:04:54.000Z","score":30}}}},"grade_history":[],"reviews":[]}