Ts Mcp Hedera — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Ts Mcp Hedera (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A TypeScript Model Context Protocol (MCP) server that exposes Hedera blockchain functionality as tools for AI assistants and applications.
This MCP server provides access to essential Hedera blockchain operations through a clean, standardized interface. It enables AI assistants to interact with the Hedera network for account management, consensus messaging, and HBAR transfers.
ts-hedera-mcp/
├── src/
│ ├── index.ts # Main server entry point
│ ├── config/
│ │ └── hedera-config.ts # Hedera network configuration
│ ├── schemas/
│ │ └── hedera-schemas.ts # Zod validation schemas
│ ├── services/
│ │ └── hedera-service.ts # Core Hedera blockchain operations
│ └── tools/
│ └── hedera-tools.ts # MCP tool definitions
├── Dockerfile # Container configuration
├── docker-compose.yml # Docker Compose deployment
├── env.example # Environment variables example
├── package.json # Project dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── README.md # This filecreate_accountCreates a new Hedera account with an optional initial balance.
Parameters:
initialBalance (optional): Initial balance in HBAR (default: 0)Returns: Account ID, public key, private key, and transaction details
get_account_infoRetrieves detailed information about a Hedera account.
Parameters:
accountId (required): Account ID in format 0.0.xxxxxReturns: Account balance, key, staking info, and other account details
create_topicCreates a new Hedera Consensus Service topic for messaging.
Parameters:
memo (optional): Description for the topic (max 100 characters)Returns: Topic ID and transaction details
send_topic_messageSends a message to a Hedera Consensus Service topic.
Parameters:
topicId (required): Topic ID in format 0.0.xxxxxmessage (required): Message content (max 1024 characters)Returns: Message confirmation and transaction details
transfer_hbarTransfers HBAR from one account to another.
Parameters:
fromAccountId (required): Source account IDtoAccountId (required): Destination account IDamount (required): Amount in HBARfromPrivateKey (required): Private key of source accountReturns: Transfer confirmation and transaction details
git clone <repository-url>
cd ts-hedera-mcp pnpm install cp env.example .envEdit .env with your Hedera credentials:
HEDERA_OPERATOR_ACCOUNT_ID=0.0.12345
HEDERA_OPERATOR_PRIVATE_KEY=302e020100300506032b65700422042012345...
HEDERA_NETWORK=testnet pnpm run build pnpm start#### Option 1: Docker Compose (Recommended)
cp env.example .envEdit .env with your Hedera credentials.
docker-compose up -d docker-compose logs -f ts-hedera-mcp docker-compose down#### Option 2: Manual Docker Build
docker build -t ts-hedera-mcp . docker run -e HEDERA_OPERATOR_ACCOUNT_ID=0.0.12345 \
-e HEDERA_OPERATOR_PRIVATE_KEY=your_private_key \
-e HEDERA_NETWORK=testnet \
ts-hedera-mcpAdd to your claude_desktop_config.json:
{
"mcpServers": {
"hedera": {
"command": "node",
"args": ["/path/to/ts-hedera-mcp/dist/index.js"],
"env": {
"HEDERA_OPERATOR_ACCOUNT_ID": "0.0.12345",
"HEDERA_OPERATOR_PRIVATE_KEY": "your_private_key",
"HEDERA_NETWORK": "testnet"
}
}
}
}#### Using Docker Compose
First, start the service with Docker Compose:
docker-compose up -dThen configure your MCP client to connect via stdio:
{
"mcpServers": {
"hedera": {
"command": "docker",
"args": ["exec", "-i", "ts-hedera-mcp", "node", "dist/index.js"]
}
}
}#### Using Direct Docker Run
{
"mcpServers": {
"hedera": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"HEDERA_OPERATOR_ACCOUNT_ID=0.0.12345",
"-e",
"HEDERA_OPERATOR_PRIVATE_KEY=your_private_key",
"-e",
"HEDERA_NETWORK=testnet",
"ts-hedera-mcp"
]
}
}
}The server uses stdio transport and follows the MCP protocol standard, making it compatible with any MCP client implementation.
| Variable | Required | Default | Description |
|---|---|---|---|
HEDERA_OPERATOR_ACCOUNT_ID | Yes | - | Your Hedera account ID |
HEDERA_OPERATOR_PRIVATE_KEY | Yes | - | Your Hedera account private key |
HEDERA_NETWORK | No | testnet | Hedera network (testnet/mainnet/previewnet) |
pnpm run build: Compile TypeScript to JavaScriptpnpm run start: Run the compiled serverpnpm run dev: Watch mode for developmentpnpm run clean: Remove compiled filesThe server follows clean architecture principles:
config/): Handles environment setup and client configurationschemas/): Zod validation schemas for type safetyservices/): Core business logic for Hedera operationstools/): MCP tool definitions and schemasindex.ts): MCP server setup and request routingThe project uses Zod for runtime type validation:
<Operation>ArgsSchema)All operations include comprehensive error handling and detailed logging:
[SERVER], [TOOL], [HEDERA], [CONFIG])#### Logging Categories
[SERVER] - MCP server lifecycle and request handling[TOOL] - Tool execution, validation, and results[HEDERA] - Blockchain operations and transaction details[CONFIG] - Environment setup and client configuration0.0.xxxxx)The application includes comprehensive logging by default. All logs are output to stderr using console.error() and include structured prefixes for easy filtering:
# View all logs
docker-compose logs -f ts-hedera-mcp
# Filter by category (if using grep)
docker-compose logs -f ts-hedera-mcp | grep "\[HEDERA\]" # Blockchain operations
docker-compose logs -f ts-hedera-mcp | grep "\[TOOL\]" # Tool execution
docker-compose logs -f ts-hedera-mcp | grep "\[SERVER\]" # Server lifecycle
docker-compose logs -f ts-hedera-mcp | grep "\[CONFIG\]" # ConfigurationSet NODE_ENV=development for any additional framework-level debugging.
{
"tool": "create_account",
"arguments": {
"initialBalance": 10
}
}{
"tool": "get_account_info",
"arguments": {
"accountId": "0.0.12345"
}
}{
"tool": "transfer_hbar",
"arguments": {
"fromAccountId": "0.0.12345",
"toAccountId": "0.0.67890",
"amount": 5,
"fromPrivateKey": "your_private_key"
}
}MIT License - see LICENSE file for details
For issues and questions:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.