npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

gmink-mcp

v1.0.1

Published

Focused MCP server for the Ink GM family powering gm.ink — DailyGM, DailyAgentGM, and DailyGMPlus. The 15 dailygm_* tools from inkonchain-mcp, packaged as a standalone server for agents that only want the GM surface.

Readme

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 identicalgmink-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