VeChain MCP Server
<div align="center">
<img src="./docs/images/isotipo-bg.png" alt="VeChain logo" width="140">
<p></p>
<h1>VeChain MCP Server</h1>
<p>VeChain MCP Server is an MCP server specifically designed for the VeChain network. It provides advanced functionalities such as querying the official VeChain documentation, executing HTTP requests to the Thor REST API in both Mainnet and Testnet environments, and managing cryptographic signatures through an integrated wallet.</p>
</div>
## Integration
Register the server in your MCP-aware host configuration.
```json
{
"mcpServers": {
"vechainMcp": {
"url": "https://server.smithery.ai/@leandrogavidia/vechain-mcp-server/mcp",
"type": "streamable-http"
}
}
}
```
## Tools
- ### Vechain Docs
- **Docs**
- `search_documentation`: Search VeChain Documentation.
- ### Thorest API
- **Accounts**
- `get_account`: Retrieve account details.
- **Transactions**
- `get_transaction`: Retrieve a transaction by ID.
- **Blocks**
- `get_block`: Get a VeChain block.
- **Fees**
- `get_priority_fee`: Suggest a priority fee.
- ### Wallet & signatures
- **Wallet**
- `create_wallet`: Create a VeChain wallet (mnemonic + keys).
- **Signatures**
- `sign_certificate`: Create and sign a canonical certificate.
- `sign_raw_transaction`: Sign raw transaction.
- ### Goat SDK (VeChain Tools)
- `get_address`: Get the address of the wallet
- `get_chain`: Get the chain of the wallet
- `sign_message`: Sign a message with the wallet
- `get_balance`: Get the balance of the wallet for native currency or a specific ERC20 token.
- `get_token_info_by_ticker`: Get information about a configured token (like contract address and decimals) by its ticker symbol.
- `convert_to_base_units`: Convert a token amount from human-readable units to its smallest unit (e.g., wei).
- `convert_from_base_units`: Convert a token amount from its smallest unit (e.g., wei) to human-readable units.
- `sign_typed_data_evm`: Sign an EIP-712 typed data structure (EVM)
- `get_token_allowance_evm`: Get the allowance of an ERC20 token for a spender (returns amount in base units)
- `send_token`: Send native currency or an ERC20 token to a recipient, in base units.
- `approve_token_evm`: Approve an amount (specified in base units) of an ERC20 token for a spender
- `revoke_token_approval_evm`: Revoke approval for an ERC20 token from a spender (sets allowance to 0)
---
## .env Config
- `AGENT_SECRET_KEY`: CSecret key in string format that allows your MCP server to use the signatures tools.
- `ENVIRONMENT`: Working environment, either mainnet or test.
- `USE_STREAMABLE_HTTP`: Specifies whether your MCP server will run on stdio or streamable-http.
- `PORT`: Port where your MCP server will run when using streamable-http.
- `HOST`: Host where your MCP server will run when using streamable-http.
## Run the project locally
In one terminal window, run the following command: `pnpx @modelcontextprotocol/inspector pnpx tsx ./src/index.ts` in `stdio` mode.
## Build and run
Run the command: `pnpm run build` and then: `pnpm run start`
## Deployment
To deploy this MCP server, fork this project into your GitHub account, log in to [smithery.ai](https://smithery.ai/), and click Publish server. Complete the steps, and once it is deployed, add the required environment variables in settings.
---
## License
MITTDQS
Scored across 20 tools
Most tools have distinct purposes, such as get_account for account info, send_token for transfers, and sign_message for signing. However, there is some overlap between sign_raw_transaction and sign_typed_data_evm, which both involve signing but for different data formats, potentially causing minor confusion. Overall, the descriptions help clarify differences, but the signing tools could be slightly ambiguous.
The tool names follow a consistent snake_case pattern with clear verb_noun structures, such as get_balance, send_token, and sign_message. Minor deviations exist, like convert_from_base_units and convert_to_base_units being more descriptive but still adhering to the pattern. The naming is mostly predictable and readable, with only slight variations in verb usage.
With 20 tools, the count is slightly high but reasonable for a blockchain server covering wallet management, token operations, signing, and documentation search. It includes essential functions like account queries, transfers, and approvals, though it borders on being heavy. The tools are well-scoped for the VeChain domain, but some consolidation might improve efficiency.
The tool set provides comprehensive coverage for the VeChain blockchain domain, including CRUD-like operations for accounts, tokens, and transactions, as well as wallet creation, signing, and documentation search. There are no obvious gaps; it supports core workflows from querying balances to executing transactions and managing approvals, ensuring agents can handle typical tasks without dead ends.