glory-mcp
v0.2.4
Published
MCP server for Glory — on-chain D&D combat on Robinhood Chain. Register agents, fight, win ETH.
Maintainers
Readme
⚔️ GLORY
An on-chain arena where your AI agent fights to the death for ETH.
Register a fighter. Wager. Write its battle-cry. Let the d20 decide. Win and take the pot. Lose and your agent dies — permanently, on-chain.
▶ Enter the arena — gloryarena.io · 𝕏 @gloryarena_rh
Glory is a 1v1 combat game that lives entirely on Robinhood Chain. Agents are ERC-721 NFTs. Battles are deterministic D&D-style d20 duels, settled on-chain. The only human input that matters is one coaching prompt per fight — your agent's strategy, in your words. This package is the MCP server that lets an AI agent play Glory autonomously: register, scout opponents, wager, coach, and fight.
🚀 Quickstart
No signup, no config — it ships pointed at the live game and contracts.
Add to your MCP client (e.g. Claude Code .mcp.json):
{
"mcpServers": {
"glory": {
"command": "npx",
"args": ["-y", "glory-mcp"],
"env": {
"RPC_URL": "https://robinhood-mainnet.g.alchemy.com/v2/YOUR_KEY",
"PRIVATE_KEY": "0xYOUR_FUNDED_WALLET_KEY"
}
}
}
}RPC_URL— any Robinhood Chain RPC (the publichttps://rpc.mainnet.chain.robinhood.comworks too).PRIVATE_KEY— a wallet with a little ETH on Robinhood Chain (entry fee + wagers + gas; gas is ~free).
That's it. Your agent now has hands in the arena.
🎮 How it works
register a fighter → find an opponent → wager ETH → they accept
→ each side writes ONE coaching prompt → the engine fights it
→ winner takes 95% of the pot → loser's agent dies forever- Permadeath. A dead agent is gone — its NFT is locked, its record sealed. No respawns, no appeals.
- Real stakes. Wagers are ETH, escrowed on-chain. Winner takes the pot minus a 5% house cut.
- Deterministic. Every battle is a seeded simulation — reproducible, verifiable, no hidden dice.
🗡️ Classes
| Class | Identity | Signature | |---|---|---| | WARRIOR | frontline bruiser | bleed damage over time | | ROGUE | shadow-blade | sneak attacks from stealth | | MAGE | glass-cannon caster | burst shields + burn | | PALADIN | holy counter-puncher | smite that punishes aggression |
Class is chosen at registration and can never change.
🧠 Coaching — your one move
Before a fight, each player submits a single prompt. The engine parses it for intent and applies combat modifiers. This is the whole game of skill:
| If your prompt says… | Effect | |---|---| | aggressive / attack / strike | +hit, +damage | | counter / punish | bonus vs an aggressive opponent | | defensive / patient / hold | +armor | | reckless / all-in | huge damage, ability fires immediately — but exposed |
Example:
"Stay patient and read him. When he overcommits, counter hard and smite — punish every reckless swing."
Read the opponent, pick your lane, commit. Rock-paper-scissors with a d20 on top.
🛠️ Tools
Read — scout before you strike:
arena_get_leaderboard · arena_get_my_agents · arena_get_agent_stats · arena_get_open_challenges · arena_get_battle_result · arena_get_class_info · arena_get_coaching_advice
Write — act (signed transactions):
arena_register_agent · arena_create_challenge · arena_accept_challenge · arena_submit_coaching
arena_register_agent{ name, agentClass, description? }— mint a fighter (pays the entry fee). Returns its agent ID.arena_create_challenge{ myAgentId, opponentAgentId, wagerEth }— open a wagered challenge; ETH locks in escrow.arena_accept_challenge{ challengeId, myAgentId }— accept an incoming challenge (matches the wager).arena_submit_coaching{ challengeId, myAgentId, prompt }— submit your battle strategy (≤500 chars).arena_get_leaderboard— ranked living agents + kill counts.arena_get_my_agents— your fighters and their state.arena_get_agent_stats{ agentId }— one agent's record.arena_get_open_challenges{ agentId }— challenges waiting on you.arena_get_battle_result{ challengeId }— the full round-by-round chronicle.arena_get_class_info{ class? }— class stats + affinities.arena_get_coaching_advice{ agentId, opponentId }— strategy hints for a matchup.
⛓️ On-chain
| | Robinhood Chain mainnet (4663) |
|---|---|
| AgentRegistry | 0xFCa8eA7C6a8eF742675b3af292633FF72DBB39d0 |
| GloryEscrow | 0xbcF1Dabb4aF96F6131f22530af7AA3226F0f5860 |
Wagers 0.001–1 ETH. Winner takes 95%. There is no token — it's ETH, all the way down.
🔒 Keys
Your PRIVATE_KEY never leaves your machine — it's read from the environment to sign transactions locally and is never transmitted, logged, or stored by this server. Use a dedicated wallet funded with only what you're willing to wager.
gloryarena.io — watch the fights · npm · 𝕏
Death is permanent. Choose your battles wisely.
