An MCP server that enables AI assistants to interact with the Hive blockchain through the Model Context Protocol.
This server provides a bridge between AI assistants (like Claude) and the Hive blockchain, allowing AI models to:
- Fetch account information and history
- Retrieve blog posts and discussions
- Get posts by tag or user
- Vote on content and create posts (when properly authenticated)
- Send HIVE or HBD tokens to other accounts
- Sign and verify messages with Hive keys
- Send and receive encrypted messages
-
create-post
- Creates a structured prompt to guide the AI through creating a new Hive post with the right format and tags -
analyze-account
- Generates a prompt to analyze a Hive account's statistics, posting history, and activity patterns
-
get_account_info
- Get detailed information about a Hive blockchain account -
get_post_content
- Retrieve a specific post by author and permlink -
get_posts_by_tag
- Retrieve posts by tag and category (trending, hot, etc.) -
get_posts_by_user
- Fetch posts from a specific user or their feed -
get_account_history
- Get transaction history for an account with optional operation filtering -
get_chain_properties
- Fetch current Hive blockchain properties and statistics -
get_vesting_delegations
- Get a list of vesting delegations made by a specific account
-
vote_on_post
- Vote on Hive content (requires posting key) -
create_post
- Create new blog posts on the Hive blockchain (requires posting key) -
create_comment
- Comment on existing posts or reply to comments (requires posting key) -
send_token
- Send HIVE or HBD cryptocurrency to other accounts (requires active key)
-
sign_message
- Sign a message using a Hive private key -
verify_signature
- Verify a message signature against a Hive public key
-
encrypt_message
- Encrypt a message for a specific Hive account -
decrypt_message
- Decrypt an encrypted message from a specific Hive account -
send_encrypted_message
- Send an encrypted message using a token transfer -
get_encrypted_messages
- Retrieve and optionally decrypt messages from account history
The MCP Inspector provides an interactive interface for testing and debugging the server:
npx @modelcontextprotocol/inspector npx @gluneau/hive-mcp-server
To enable authenticated operations (voting, posting, sending tokens), you'll need to set environment variables:
export HIVE_USERNAME=your-hive-username
export HIVE_POSTING_KEY=your-hive-posting-private-key # For content operations
export HIVE_ACTIVE_KEY=your-hive-active-private-key # For token transfers
export HIVE_MEMO_KEY=your-hive-memo-private-key # For encrypted messaging
Security Note: Never share your private keys or commit them to version control. Use environment variables or a secure configuration approach.
To use this server with Claude Desktop:
-
Ensure you have Claude Desktop installed
-
Open or create the Claude configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- Linux:
~/.config/Claude/claude_desktop_config.json
- macOS:
-
Add this server to your configuration:
{
"mcpServers": {
"hive": {
"command": "npx",
"args": ["-y", "@gluneau/hive-mcp-server"],
"env": {
"HIVE_USERNAME": "your-hive-username",
"HIVE_POSTING_KEY": "your-hive-posting-private-key",
"HIVE_ACTIVE_KEY": "your-hive-active-private-key",
"HIVE_MEMO_KEY": "your-hive-memo-private-key"
}
}
}
}
The same JSON configuration works for Windsurf (in windsurf_config.json
) and for Cursor (in ~/.cursor/mcp.json
for version >= 0.47).
In previous versions, you'll have to use the 1 line command format in the MCP section of the Settings :
env HIVE_USERNAME=your-hive-username env HIVE_POSTING_KEY=your-hive-posting-private-key env HIVE_ACTIVE_KEY=your-hive-active-private-key env HIVE_MEMO_KEY=your-hive-memo-private-key npx -y @gluneau/hive-mcp-server
Once connected to an MCP client, you can ask questions like:
- "What are the trending posts in the #photography tag on Hive?"
- "Show me the recent posts from username 'alice'"
- "What's the account balance and details for 'bob'?"
- "Get the transaction history for 'charlie'"
- "Can you upvote the post by 'dave' with permlink 'my-awesome-post'?"
- "Create a new post on Hive about AI technology"
- "Send 1 HIVE to user 'frank' with the memo 'Thanks for your help!'"
- "Sign this message with my Hive posting key: 'Verifying my identity'"
- "What are the current Hive blockchain properties?"
- "Show me the vesting delegations made by user 'grace'"
- "Encrypt this message for user 'alice': 'This is a secret message'"
- "Decrypt this message from 'bob': '#4f3a5b...'"
- "Send an encrypted message to 'charlie' saying 'Let's meet tomorrow'"
- "Show me my encrypted messages and decrypt them"
- "Get the last 10 encrypted messages I've exchanged with 'dave'"
Fetches detailed information about a Hive blockchain account including balance, authority, voting power, and other metrics.
- Parameters:
-
username
: Hive username to fetch information for
-
Retrieves a specific Hive blog post identified by author and permlink.
- Parameters:
-
author
: Author of the post -
permlink
: Permlink of the post
-
Retrieves Hive posts filtered by a specific tag and sorted by a category.
- Parameters:
-
category
: Sorting category (trending, hot, created, etc.) -
tag
: The tag to filter posts by -
limit
: Number of posts to return (1-20)
-
Retrieves posts authored by or in the feed of a specific Hive user.
- Parameters:
-
category
: Type of user posts to fetch (blog or feed) -
username
: Hive username to fetch posts for -
limit
: Number of posts to return (1-20)
-
Retrieves transaction history for a Hive account with optional operation type filtering.
- Parameters:
-
username
: Hive username -
limit
: Number of operations to return -
operation_filter
: Optional list of operation types to filter for
-
Fetch current Hive blockchain properties and statistics.
- Parameters: None
Get a list of vesting delegations made by a specific Hive account.
- Parameters:
-
username
: Hive account to get delegations for -
limit
: Maximum number of delegations to retrieve -
from
: Optional starting account for pagination
-
Vote on a Hive post (upvote or downvote) using the configured Hive account.
- Parameters:
-
author
: Author of the post to vote on -
permlink
: Permlink of the post to vote on -
weight
: Vote weight from -10000 (100% downvote) to 10000 (100% upvote)
-
Create a new blog post on the Hive blockchain using the configured account.
- Parameters:
-
title
: Title of the blog post -
body
: Content of the blog post (Markdown supported) -
tags
: Tags for the post - Various optional parameters for rewards, beneficiaries, etc.
-
Create a comment on an existing Hive post or reply to another comment.
- Parameters:
-
parent_author
: Username of the post author or comment you're replying to -
parent_permlink
: Permlink of the post or comment you're replying to -
body
: Content of the comment (Markdown supported) - Various optional parameters for rewards, beneficiaries, etc.
-
Send HIVE or HBD tokens to another Hive account using the configured account.
- Parameters:
-
to
: Recipient Hive username -
amount
: Amount of tokens to send -
currency
: Currency to send (HIVE or HBD) -
memo
: Optional memo to include with the transaction
-
Sign a message using a Hive private key from environment variables.
- Parameters:
-
message
: Message to sign -
key_type
: Type of key to use (posting, active, or memo)
-
Verify a digital signature against a Hive public key.
- Parameters:
-
message_hash
: The SHA-256 hash of the message in hex format -
signature
: Signature string to verify -
public_key
: Public key to verify against
-
Encrypt a message for a specific Hive account using memo encryption.
- Parameters:
-
message
: Message to encrypt -
recipient
: Hive username of the recipient
-
Decrypt an encrypted message received from a specific Hive account.
- Parameters:
-
encrypted_message
: Encrypted message (starts with #) -
sender
: Hive username of the sender
-
Send an encrypted message to a Hive account using a small token transfer.
- Parameters:
-
message
: Message to encrypt and send -
recipient
: Hive username of the recipient -
amount
: Amount of HIVE to send (minimum 0.001, default: 0.001)
-
Retrieve encrypted messages from account history with optional decryption.
- Parameters:
-
username
: Hive username to fetch encrypted messages for -
limit
: Maximum number of messages to retrieve (default: 20) -
decrypt
: Whether to attempt decryption of messages (default: false)
-
-
src/index.ts
- Main server implementation -
src/tools/
- Implementation of all tools -
src/schemas/
- Zod schemas for tool parameters -
src/utils/
- Utility functions for interacting with the Hive blockchain -
src/config/
- Client Configuration and log level handling
- @hiveio/dhive - Hive blockchain client
- @modelcontextprotocol/sdk - MCP SDK
- zod - Schema validation
ISC
Contributions are welcome! Please feel free to submit a Pull Request.
See the CONTRIBUTING.md file for more detailed contribution guidelines.