edge-claw/mood-booster-agent
8004 reputation feedback, and discovery across 6 chains.
Ask AI about edge-claw/mood-booster-agent
Powered by Claude Β· Grounded in docs
I know everything about edge-claw/mood-booster-agent. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
Mood Booster Agent
English | δΈζ
An ERC-8004 registered AI Agent that delivers uplifting messages via MCP protocol. Feel good? Tip 0.001 USDC!
Why This Project?
This is a complete reference implementation of the ERC-8004 Agent interaction loop:
- On-chain Discovery β Query Identity Registry to find the agent's MCP endpoint
- MCP Communication β Connect via SSE, call tools, get results
- USDC Tipping β Reward the agent with on-chain micropayments
- Reputation Feedback β Submit on-chain feedback to Reputation Registry (
giveFeedback) - On-chain Verification β Server verifies tips and feedback via tx receipts
All 5 steps leave traceable on-chain records on ERC-8004 protocol contracts, making your wallet eligible for future ecosystem airdrops.
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
β ERC-8004 β --> β MCP Server β --> β USDC Tip β --> β Reputation β
β Identity β β (SSE) β β (ERC-20) β β Registry β
β Registry β β β β β β β
β agentId β β cheer_me_up β β 0.001 USDC β β giveFeedback β
β tokenURI β β confirm_tip β β 6 chains β β on-chain β
β agentWallet β β report_fbk β β β β reputation β
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
Discover Call Tip Feedback
On-Chain Info
| Chain | agentId | Explorer |
|---|---|---|
| BSC | 23139 | bscscan.com |
| Base | 24692 | basescan.org |
| Ethereum | 28289 | etherscan.io |
| Arbitrum | 591 | arbiscan.io |
| Optimism | 431 | optimistic.etherscan.io |
| Polygon | 233 | polygonscan.com |
- Identity Registry:
0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 - Reputation Registry:
0x8004BAa17C55a88189AE136b182e5fdA19dE9b63 - MCP Endpoint:
https://aws.tail177fbd.ts.net/sse - Tip Wallet:
0x4f5caa4fa9Dd7F92A687582b0e09234bEf49F80a
MCP Tools
| Tool | Description |
|---|---|
cheer_me_up | Get a warm, uplifting message (encouragement / compliment / wisdom / joke) |
get_tip_info | Get tipping details in JSON format for automated transfers |
confirm_tip | Report a completed USDC tip with on-chain verification |
report_feedback | Report an ERC-8004 giveFeedback transaction β leaves traceable protocol interaction on-chain |
how_to_tip | Get a complete tipping guide with code examples |
get_stats | View service statistics |
Quick Start
Run the server
cd server
npm install
node index.mjs
# MCP SSE: http://localhost:3004/sse
# REST API: http://localhost:3004/api/cheer
Docker
docker build -t mood-booster-agent .
docker run -p 3004:3004 mood-booster-agent
Full end-to-end loop
cd scripts && npm install
# Dry-run: discover β call MCP β on-chain feedback (no USDC tip)
node discover_and_tip.mjs --agent-id 23139 --chain bsc --wallet-key 0xYOUR_KEY --dry-run
# Full loop: discover β call β tip β confirm β feedback
node discover_and_tip.mjs --agent-id 23139 --chain bsc --wallet-key 0xYOUR_KEY
# Skip feedback
node discover_and_tip.mjs --agent-id 23139 --chain bsc --wallet-key 0xYOUR_KEY --no-feedback
REST API (no MCP client needed)
curl https://aws.tail177fbd.ts.net/api/cheer
curl "https://aws.tail177fbd.ts.net/api/cheer?category=joke"
Use with Claude Code
Add this to your ~/.claude/claude_code_config.json:
{
"mcpServers": {
"mood-booster": {
"type": "sse",
"url": "https://aws.tail177fbd.ts.net/sse"
}
}
}
Then in Claude Code you can say:
> Cheer me up!
> Tell me a programming joke
> How do I tip this agent?
Use with Any MCP Client
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";
const transport = new SSEClientTransport(new URL("https://aws.tail177fbd.ts.net/sse"));
const client = new Client({ name: "my-agent", version: "1.0.0" });
await client.connect(transport);
const result = await client.callTool({ name: "cheer_me_up", arguments: { category: "random" } });
console.log(result.content[0].text);
await client.close();
On-Chain Discovery
Any agent can discover this service directly from the blockchain:
import { ethers } from "ethers";
const registry = new ethers.Contract(
"0x8004A169FB4a3325136EB29fA0ceB6D2e539a432",
["function tokenURI(uint256) view returns (string)"],
new ethers.JsonRpcProvider("https://bsc-dataseed.binance.org/")
);
const uri = await registry.tokenURI(23139); // agentId on BSC
const metadata = JSON.parse(atob(uri.split(",")[1]));
console.log(metadata.services[0].endpoint); // β MCP endpoint URL
Project Structure
βββ server/ # MCP Server (Express + SSE)
β βββ index.mjs # Main server β 6 MCP tools
β βββ messages.json # Message library (32 messages, 4 categories)
β βββ package.json
βββ scripts/ # Client tools
β βββ discover_and_tip.mjs # Full loop: discover β call β tip β feedback
β βββ test_mcp.mjs # Quick MCP connection test
β βββ update_uri.mjs # Update on-chain agentURI
β βββ gen_wallets.mjs # Generate test wallets
βββ metadata/
β βββ mood_agent.json # Agent metadata (stored on-chain as base64)
βββ Dockerfile # Container build
βββ deploy.sh # One-click deploy to server
βββ restart.sh # Server restart script
Tech Stack
- Identity: ERC-8004 β AI Agent Identity Registry
- Reputation: ERC-8004 β On-chain feedback via Reputation Registry
- Protocol: MCP (Model Context Protocol) over SSE
- Payment: USDC (ERC-20) on BSC / Base / Ethereum
- Runtime: Node.js, Express, ethers.js
- Infrastructure: Tailscale Funnel (HTTPS reverse proxy)
Author
- GitHub: @edge-claw
- Twitter: @mutou1852
- Email: shgchai185@gmail.com
- Wallet:
0x4f5caa4fa9Dd7F92A687582b0e09234bEf49F80a
License
MIT
