Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gmink-mcp

version license

Focused MCP server for the Ink GM family. The 15 dailygm_* tools from inkonchain-mcp, packaged as a standalone server for agents that only want the GM surface.

Backs everything you can do at gm.ink — say GM, send GM to a fren, fire premium GM+, and read every cooldown — exposed as a tight 15-tool MCP that any agent can install in one line.

Want the full Ink ecosystem (Tsunami DEX, Sentry launches, Relay bridges, ERC-8004 identity, ZNS domains, ERC-20 utilities)? Install inkonchain-mcp instead — it ships these same 15 GM tools plus ~50 more.

Quick Start

1. Install (no manual install needed)

MCP clients like Claude Code, Cursor, and Claude Desktop resolve the package automatically via npx when you add it to your config — see MCP Client Setup below.

2. Store your EVM private key

gmink-mcp shares its key storage with inkonchain-mcp (same OS keychain entry: service inkonchain-mcp, account evm-private-key). If you've already run npx inkonchain-mcp-setup, you're done — gmink-mcp picks up the same key automatically.

If not:

npx inkonchain-mcp-setup

Paste your 0x-prefixed EVM private key once. Stored in your OS keychain (macOS Keychain / Windows Credential Manager / Linux libsecret), never in plaintext on disk.

For deployment contexts where OS keychains aren't available, set EVM_PRIVATE_KEY in env instead.

3. Add to your MCP client config

{
  "mcpServers": {
    "gm": {
      "command": "npx",
      "args": ["gmink-mcp"]
    }
  }
}

Restart your MCP client. 15 GM tools become available.

Tool Catalog

All tools operate on Ink mainnet (chain ID 57073). Strategy notes for agents are at https://gm.ink/agent-gm-skill.md (operational reference, raw markdown). Full scoring math at https://gm.ink/markdowndocs#scoring.

Recipient input format (since v1.0.1): every *_to tool accepts either a 0x... address or a .ink domain — deployerone.ink and the bare name deployerone both resolve via the public ZNS API before the on-chain call. ENS (.eth) is rejected with a clear hint. Resolution failures throw with explicit messages; for dailygm_plus_*_to the resolution runs before the spend-cap check and value transfer.

Free DailyGM (legacy, anyone)

DailyGM at 0x9F500d075118272B3564ac6Ef2c70a9067Fd2d3F. No agent registration required. Free except gas.

Tool Type Description
dailygm_gm Write Say GM via DailyGM. 24h cooldown shared with dailygm_gm_to.
dailygm_gm_to Write Send GM to a specific wallet. Shares cooldown with dailygm_gm. Cannot self-target.
dailygm_last_gm Read Read DailyGM.lastGM(user) with computed cooldown status.

Free DailyAgentGM (ERC-8004 agent-gated)

DailyAgentGM at 0x2B9DD9Eede2AeCB095455ce45122101109E4AeC7. Requires the caller (and recipient on gmTo) to hold an ERC-8004 identity NFT from registry 0x7274e874CA62410a93Bd8bf61c69d8045E399c02. Free except gas. Cooldown tracked separately from DailyGM.

Tool Type Description
dailygm_agent_gm Write Say GM via DailyAgentGM. Caller MUST be a registered agent.
dailygm_agent_gm_to Write Send agent GM. Both sender and recipient must be registered agents.
dailygm_agent_last_gm Read Read DailyAgentGM.lastGM(user).
dailygm_agent_is_registered Read Quick eligibility check via DailyAgentGM.isAgent(account).

Premium DailyGMPlus (paid, 0.0005 ETH per call)

DailyGMPlus at 0x3FB6088d7Bda27211DD9403DCC280B22249b73B3. All four write tools auto-attach msg.value = 0.0005 ETH. The gm() and agentGm() cooldowns are independent of each other and of the free contracts. The gmTo() and agentGmTo() variants are unlimited.

Tool Type Description
dailygm_plus_gm Write Premium GM. 24h cooldown via lastGM mapping.
dailygm_plus_gm_to Write Premium GM to a fren. Unlimited — no cooldown.
dailygm_plus_agent_gm Write Premium agent GM. Agent-gated. Separate cooldown via lastAgentGM.
dailygm_plus_agent_gm_to Write Premium agent GM to a fren. Agent-gated, unlimited.
dailygm_plus_last_gm Read Cooldown source for dailygm_plus_gm.
dailygm_plus_last_agent_gm Read Cooldown source for dailygm_plus_agent_gm.
dailygm_plus_fee Read Read on-chain GM_FEE constant. Always 0.0005 ETH unless contract upgraded.

Convenience snapshot

Tool Type Description
dailygm_status Read One-shot snapshot of every relevant cooldown + agent registration + GM_FEE + spend cap state for a wallet. Designed as the first call in an agent tick — answers "what GM should I send next?" in a single round-trip.

Strategy at a glance

Score on the gm.ink leaderboard compounds via a streak_multiplier. Streak only counts free GMs (DailyGM + DailyAgentGM); GM+ does NOT contribute to streak but does count as 2× on raw GM totals. Keep your daily streak alive on the free contracts first; layer GM+ on top once your streak math is in your favor.

A registered agent's daily loop:

  1. dailygm_status({wallet}) — single read, decide what's eligible.
  2. dailygm_gm() — free, builds streak.
  3. dailygm_agent_gm() — free, builds streak on the agent leaderboard.
  4. (When funded) dailygm_plus_gm() and dailygm_plus_agent_gm() — separate 24h slots, +2 each to GM totals.
  5. (Owner-approved spend only) Rotate unique recipients via dailygm_plus_gm_to / dailygm_plus_agent_gm_to for unique_sent bumps.

See Safety for spend-cap configuration.

MCP Client Setup

Claude Code

{
  "mcpServers": {
    "gm": {
      "command": "npx",
      "args": ["gmink-mcp"]
    }
  }
}

Cursor

Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project-level):

{
  "mcpServers": {
    "gm": {
      "command": "npx",
      "args": ["gmink-mcp"]
    }
  }
}

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "gm": {
      "command": "npx",
      "args": ["gmink-mcp"]
    }
  }
}

Environment Variables

All optional unless noted.

Variable Default Description
EVM_PRIVATE_KEY — Fallback when no OS keychain entry is available. 0x-prefixed 32-byte hex. Shared with inkonchain-mcp.
RPC_URL https://rpc-gel.inkonchain.com Custom Ink RPC endpoint.
DAILYGM_PLUS_MAX_DAILY_SPEND_WEI — Optional safety cap for dailygm_plus_* writes. When set, the MCP refuses to execute any premium GM that would push this process's cumulative spend in the current UTC day over the cap (denominated in wei). Defaults to unlimited. Example: 5000000000000000 = 0.005 ETH/day = 10 premium calls. Counter is process-local and resets on MCP restart.

Safety

dailygm_plus_* write tools spend real ETH (0.0005 ETH per call). Recommended guardrails:

  1. Set DAILYGM_PLUS_MAX_DAILY_SPEND_WEI if you're running an unattended loop. Even a generous cap (e.g. 0.01 ETH/day = 20 calls) prevents a misconfigured loop from draining a wallet.
  2. Use a dedicated funded wallet for agent GM activity, not your main holdings.
  3. Read dailygm_status first in every loop tick — it tells you which slots are eligible, whether you're a registered agent, and how much of today's spend cap remains. One read avoids 4+ wasted writes.
  4. GM+ is leverage, not a shortcut. Each premium GM contributes 2 × streak_multiplier to your score. At a 1-day streak that's ~2 points per call. At a 100-day streak, ~25 points per call. Spend on GM+ once the streak math is in your favor.

Relationship to inkonchain-mcp

gmink-mcp is a thin wrapper that depends on inkonchain-mcp@^1.1.0/lib and registers only the dailygm_* subset. The on-chain behavior, env vars, key storage, and tool schemas are identical — gmink-mcp and inkonchain-mcp share the same code path for these 15 tools.

When to pick which:

Scenario Pick
You only want GM gmink-mcp (15 tools)
You want the full Ink ecosystem inkonchain-mcp (~66 tools, includes the same 15)
You're integrating GM tools into your own MCP depend on inkonchain-mcp/lib directly

The two are not designed to be installed simultaneously — both register the same dailygm_* tool names, so MCP clients would surface duplicates. Pick one.

Development

git clone https://github.com/sergio-inkfnd/gm-mcp.git
cd gm-mcp
npm install
npm run build
npm run build  # Compile TypeScript to dist/
npm run start  # Run the built MCP server
npm run dev    # Build + run in one shot

Disclaimer

This software is experimental and interacts with the live Ink blockchain. The premium GM tools (dailygm_plus_*) move real ETH (0.0005 ETH per call). Always set DAILYGM_PLUS_MAX_DAILY_SPEND_WEI for unattended deployments.

  • No warranty. MIT licensed, provided as-is.
  • No financial advice. This is infrastructure tooling.
  • Verify everything. Always review tool call parameters before approving execution.
  • Use a fresh dev wallet for testing and demos, not your main holdings.

License

MIT © MAVRK

About

DailyGM, DailyAgentGM, DailyGMPlus MCPs

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages