Mini-Blockchain
This repository contains a simple blockchain demonstration implemented in Rust, integrating an MCP server to expose blockchain functionalities over a network.
Blockchain CLI in Rust
This repository contains a simple blockchain demonstration implemented in Rust. The project illustrates core Rust principles through a minimal command-line application and integrates an MCP server to expose blockchain functionalities over a network.
Overview
The application implements a basic blockchain where each block includes:
- Index: The block's position in the chain.
- Timestamp: The creation time in ISO 8601 format.
- Data: User-supplied content.
- Previous Hash: The SHA-256 hash of the previous block.
- Current Hash: The SHA-256 hash computed from the block's contents.
A menu-driven CLI lets you:
- Add a new block.
- Print the current blockchain.
- Validate the blockchain's integrity.
Technologies
- Rust: A systems programming language focused on safety and performance.
- sha2: For computing SHA-256 hashes.
- chrono: For accurate timestamping using UTC time.
- serde & serde_json: For JSON serialization (used in MCP communication).
Getting Started
Prerequisites
Build and Run
To create and run the project using Cargo, execute in your terminal:
cargo new blockchain_app
cd blockchain_app && cargo run
Note: If you cloned this repository, simply navigate into the project folder and run cargo run
.
Usage
When you run the application, the CLI displays the following options:
- Add Block: Input data to create a new block.
- Print Blockchain: Display all blocks in the blockchain.
- Validate Blockchain: Verify that each block is properly linked.
- Exit: Close the application.
MCP Server Integration
The project includes an MCP server that runs concurrently with the CLI. It listens on 127.0.0.1:7878
and allows external clients to interact with the blockchain using JSON commands.
Available MCP Commands
-
latest_block: Retrieves the latest block in the blockchain.
- Example:
echo '{"command": "latest_block"}' | nc 127.0.0.1 7878
- Sample Output:
{"status":"ok","message":"Latest block retrieved","block":{"index":0,"timestamp":"2025-02-26T10:06:59.931506+00:00","data":"Genesis Block","previous_hash":"0","hash":"f465878acf7be88a124fd7ebc9a3640793612023828d9af8ad237eefd4a1a22e"}}
- Example:
-
add_block: Adds a new block with the provided data.
- Example:
echo '{"command": "add_block", "data": "sample transaction"}' | nc 127.0.0.1 7878
- Sample Output:
{"status":"ok","message":"Block added","block":null}
- Example:
Testing the MCP Server
-
Run the Application:
Open a terminal, navigate to the project directory (blockchain_app
), and run:cargo run
You will see the CLI menu and a message indicating that the MCP server is listening on
127.0.0.1:7878
. -
Query from a Separate Terminal:
Open a new terminal window and test the MCP commands using netcat (nc
). For example:- To retrieve the latest block:
echo '{"command": "latest_block"}' | nc 127.0.0.1 7878
- To add a new block:
echo '{"command": "add_block", "data": "sample transaction"}' | nc 127.0.0.1 7878
- To retrieve the latest block:
Note: The MCP server runs in a separate thread alongside the CLI, so ensure you use a different terminal window for these tests.
Summary
This project demonstrates how to combine blockchain logic with an externally accessible MCP server in Rust. It serves as a practical example for networked tool integration.
Related MCP Servers
View all developer_tools servers →context7
by upstash
Context7 MCP provides up-to-date, version-specific documentation and code examples directly into your prompt, enhancing the capabilities of LLMs by ensuring they use the latest information.
git-mcp
by idosal
GitMCP is a free, open-source, remote Model Context Protocol (MCP) server that transforms GitHub projects into documentation hubs, enabling AI tools to access up-to-date documentation and code.
exa-mcp-server
by exa-labs
A Model Context Protocol (MCP) server allows AI assistants to use the Exa AI Search API for real-time web searches in a secure manner.
Sequential Thinking
by modelcontextprotocol
An MCP server implementation that provides a tool for dynamic and reflective problem-solving through a structured thinking process.
Everything MCP Server
by modelcontextprotocol
The Everything MCP Server is a comprehensive test server designed to demonstrate the full capabilities of the Model Context Protocol (MCP). It is not intended for production use but serves as a valuable tool for developers building MCP clients.
gateway
by centralmind
CentralMind Gateway is a tool designed to expose databases to AI agents via MCP or OpenAPI protocols, providing secure, LLM-optimized APIs.
mcpdoc
by langchain-ai
MCP LLMS-TXT Documentation Server provides a structured way to manage and retrieve LLM documentation using the Model Context Protocol.