Skip to main content
Glama
hieuluongxuan

HimiTrace MCP Server

README.md
# HimiTrace MCP Server — Blockchain Product Traceability for AI Agents (TypeScript Port)

[![Polygon Mainnet](https://img.shields.io/badge/Network-Polygon_Mainnet-8247E5?style=flat-square&logo=polygon&logoColor=white)](https://polygonscan.com/address/0xFF7A3429427aFda56b2994B2F3eeF4464b851EE0)
[![Model Context Protocol](https://img.shields.io/badge/Protocol-MCP-blue?style=flat-square)](https://modelcontextprotocol.io)
[![Node.js](https://img.shields.io/badge/Node.js-20+-339933?style=flat-square&logo=node.js&logoColor=white)](https://nodejs.org/)

HimiTrace is a Model Context Protocol (MCP) server that connects AI agents directly to the Polygon Mainnet blockchain to check product authenticity, verify origins, and inspect supply chain event lineages. Developed by **HimiTek** (himitek.com), it bridges immutable on-chain trust data with natural language queries for AI agents.

This allows any MCP-compatible AI agent (such as Claude Desktop, Cursor, Windsurf, or ChatGPT) to query, track, and audit physical goods on-chain in plain language.

---

## Key Features

- **On-Chain Verification:** Verify if a product or batch ID is registered on the Polygon blockchain (tamper-proof, immutable).
- **Supply Chain Timeline (GS1 EPCIS compatible):** Retrieve the full chronological event log of a product (harvesting, processing, packaging, shipping) directly from Polygon.
- **Certificate Verification:** Access quality certificates (USDA Organic, VietGAP, Fair Trade, etc.) stored on IPFS with their hashes anchored on-chain.
- **BOM (Bill of Materials) Lineage:** Trace parent-child merge/split relationships of raw material batches.
- **Zero Gas Cost:** All read operations from the smart contract are 100% free and do not require any crypto tokens (POL) to be spent by the AI agent.

---

## Technical Specifications

- **Contract Address:** `0xFF7A3429427aFda56b2994B2F3eeF4464b851EE0`
- **Network:** Polygon Mainnet (Chain ID: `137`)
- **Framework:** built on Anthropic's Model Context Protocol (MCP) SDK using TypeScript and `ethers.js` (v6).

---

## Installation & Setup

### 1. Prerequisites
- Node.js v20 or higher
- npm

### 2. Install Dependencies
Clone the repository and install the packages:
```bash
npm install
```

### 3. Build the Project
Compile TypeScript to Javascript:
```bash
npm run build
```

### 4. Test Connection
Ensure that the server can connect to the Polygon contract and query tools locally:
```bash
npm run test:local
```
If you see `ALL TESTS PASSED`, your environment is configured correctly.

---

## Connecting to AI Clients

### 1. Claude Desktop
Add HimiTrace MCP to your Claude Desktop configuration file.

- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`

Add the following to the `mcpServers` object:
```json
{
  "mcpServers": {
    "himitrace-mcp": {
      "command": "node",
      "args": [
        "C:/path/to/your/himitrace-mcp/dist/index.js"
      ]
    }
  }
}
```
*Note: Make sure to replace `C:/path/to/your/himitrace-mcp/dist/index.js` with the actual absolute path to your compiled entry point.*

### 2. Cursor or Windsurf IDE
In Cursor settings:
1. Go to **Settings > Features > MCP**.
2. Click **+ Add New MCP Server**.
3. Fill in the fields:
   - **Name:** `HimiTrace`
   - **Type:** `command`
   - **Command:** `node "C:/path/to/your/himitrace-mcp/dist/index.js"`

---

## Available Tools

AI agents can execute the following tools:

### 1. `verify_product`
Checks if a product exists on-chain and retrieves its registration parameters.
- **Argument:** `product_id` (string, e.g., `LOT-20260315-A1B2C3`)
- **Returns:** JSON containing verification status, name, origin, owner, registration date, and explorer links.

### 2. `get_trace_history`
Retrieves the complete supply chain history (timeline) of a product.
- **Argument:** `product_id` (string)
- **Returns:** Chronological array of events, including event types, timestamps, custom payload data (GS1 EPCIS standard), and the recorder's blockchain wallet address.

### 3. `get_certificates`
Retrieves certificates attached to a product.
- **Argument:** `product_id` (string)
- **Returns:** Lists certificate types, issuers, dates of issue/expiration, and secure IPFS gateway links.

### 4. `get_batch_lineage`
Traces the Bill of Materials (BOM) lineage (splits and merges of batches).
- **Argument:** `batch_id` (string)
- **Returns:** Parent-child relationships, quantities, and units of raw material inputs.

### 5. `check_product_exists`
Quick check for product presence.
- **Argument:** `product_id` (string)
- **Returns:** True/False status.

### 6. `get_system_stats`
Provides overall system statistics.
- **Returns:** Registered products count, contract details, and wallet balance.

---

## Available Resources

AI agents can reference the following static resources:

- `himitrace://info`: General system documentation, compliant industries, and standards.
- `himitrace://contract`: Blockchain metadata (chain_id, RPC node, contract code version).
- `himitrace://pricing`: Pricing tiers for API limits (Free, Pro, Enterprise).

---

## License & Support
Developed and maintained by **HimiTek Joint Stock Company**.
- Website: [himitek.com](https://himitek.com)
- Support Email: [mcp@himitek.com](mailto:mcp@himitek.com)
- Portal: [trace.himitek.vn](https://trace.himitek.vn)

TDQS

A3.9/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct aspect: existence check, basic info, batch lineage, certificates, system stats, and supply chain timeline. No two tools have overlapping purposes.

Naming Consistency4/5

All tools follow verb_noun pattern in snake_case, but there's a minor inconsistency with 'check_product_exists' vs 'verify_product' both dealing with existence using different verbs.

Tool Count5/5

6 tools is well-scoped for a blockchain traceability domain, covering essential queries without being excessive or insufficient.

Completeness4/5

Covers main read operations: existence, details, batch lineage, certificates, history, and system stats. Missing write operations like registration or update, but for a query-focused server it's reasonably complete.

Maintenance

ActivityInactive
ResponsivenessNo issues