gnomcp
Gno smart-contract skill + MCP server for gno.land: interrealm semantics, security auditing, Render() authoring, idiomatic patterns, and on-
Open source Open in the app JSON README (API)
About
Gno smart-contract skill + MCP server for gno.land: interrealm semantics, security auditing, Render() authoring, idiomatic patterns, and on-chain tools (read, deploy, call, sessions).
Details
- Kind
- Plugins
- Topic
- Cloud & DevOps
- Publisher
- gnoverse
- Origin
- gemini
- Category
- ferramentas
- Version
- 0.11.0
- Stars
- 3
- Forks
- 4
- Open pull requests
- 7
- Last push
- 2026-09-07T11:09:19Z
- Repository state
- ativo
- Language
- Go
- License
- Apache-2.0
- Added
- 2026-08-30 14:13:39
- Updated
- 2026-08-30 14:13:39
- Origin id
gnoverse/gno-mcp
README
# gnomcp [](https://github.com/gnoverse/gno-mcp/releases/latest) [](LICENSE) [](https://github.com/gnoverse/gno-mcp/pkgs/container/gnomcp) > MCP server + agent skill for [gno.land](https://gno.land). `gnomcp` connects gno.land to any MCP client (Claude Code, Claude Desktop, Cursor, Gemini CLI, OpenCode, …): read realms, evaluate expressions, inspect accounts, manage testnet keys, and simulate or broadcast transactions. - **MCP server** — the tools to read and write gno.land from your agent, with safety built in. - **`gno` skill** — the knowledge layer for coding agents: interrealm semantics, security taxonomy, idiomatic patterns, `Render()` conventions, stdlib surface. > [!WARNING] > **Work in progress — unaudited and pre-release.** > > - The tool API can still change, and the session write path will be reworked. > - Writes are confined to dev/testnet — no code path signs on mainnet or betanet. > - Upgrading isn't guaranteed to preserve your configuration: re-running the installer rebuilds the MCP registration. > > Read [docs/security.md](docs/security.md) and file issues when something looks off. ## Install One command installs everything — the server **binary** and the **plugin** (skills + agents). It downloads the binary into `~/.local/bin` (verifying the checksum) and wires up the clients it can: Claude Code, Gemini CLI, and Codex automatically, OpenCode with printed steps. ```bash curl -fsSL https://raw.githubusercontent.com/gnoverse/gno-mcp/main/scripts/install.sh | sh ``` This runs a script from the internet on your machine — read [the script](scripts/install.sh) first. When it finishes, restart your editor or agent so it loads gnomcp. To upgrade later, run the same command again: it moves the binary to the newest release, and refreshes the plugin for Claude Code and Gemini CLI. Codex and OpenCode manage the plugin themselves — see [docs/gnomcp.md](docs/gnomcp.md#install). Other clients (Cursor, Claude Desktop, …), manual install, building from source, and Docker → **[docs/gnomcp.md](docs/gnomcp.md#install)**. ## What you can do gnomcp ships pointed at the public testnet and a local gnodev node — nothing to configure: | Profile | Chain-id | RPC | |---------|----------|-----| | `testnet` | `pearl-1` | `https://rpc.pearl.testnets.gno.land:443` | | `local` | `dev` | `http://127.0.0.1:26657` (local [gnodev](https://docs.gno.land/builders/local-dev-with-gnodev) node) | | `sapphire` | `sapphire-1` | `https://rpc.sapphire.testnets.gno.land:443` (sunset predecessor — still writable) | Then talk to your agent in plain language. New to gno.land? Just ask it to teach you — it gauges your background and gives you a hands-on tour (the `gno-onboard` skill). Otherwise: ### Explore a chain > *"Which chain is this, is the node live, and what realms exist under gno.land/r/test? Show me what the counter realm renders."* Reads live state — node status, the realm catalog, account balances, a realm's source and rendered page — grounded in real queries, never guessed. Works immediately, on any chain. ### Build and deploy a realm — `gno-build` > *"Deploy a check-in board at gno.land/r/test/checkin: anyone can check in, it records their address, and reading it back lists everyone so far. Then check in yourself."* Your agent writes the realm, tests it locally, runs a security pass, then — once you pick where it runs — funds a key from the faucet, deploys, and makes a real call to prove it works. You get working on-chain code and the transaction that proves it. ### Audit a realm before you trust it — `gno-audit` > *"Give me a formal security audit of gno.land/r/test/vault before I route user data through it."* Fetches the on-chain source (read-only — works on mainnet too) and returns an evidence-backed report: findings with quoted lines and severity, plus an honest note on what it did and didn't check. Nothing is mutated. ### Debug a failed transaction — `gno-debug` > *"My transaction failed with insufficient_funds — what happened?"* Classifies the error, reproduces it cheaply without broadcasting, applies the fix, and re-runs to prove it works — telling you which identity signed each attempt. ### Act as yourself, safely — sessions > *"From now on write as my account g1… , not your own key. Bump the counter at gno.land/r/test/counter as me."* Your agent proposes a scoped session and hands you a `gnokey` command to authorize on your own machine — it never touches your keys. Once you approve, it writes as you, within the limits you set, and tells you exactly how to revoke. Under all of these, the `gno` skill gives your agent the language, idioms, and security model; the workflows above build on it. Skill authoring → [docs/skills.md](docs/skills.md). ## Tools 25 tools, grouped by what they touch: - **Chain reads** — render realms, evaluate expressions, read packages, inspect accounts and status. Work immediately. - **Indexer reads** — list realms, deploy and transaction history, on-chain activity. Need a profile with an indexer URL. - **Writes** — call functions, run code, deploy packages. Need a funded agent key or an active session. - **Sessions & keys** — propose and revoke user sessions; generate, list, fund, delete agent keys, and transfer ugnot between a profile's own keys. Full catalog → [docs/tools.md](docs/tools.md). ## Configuration gnomcp can reach any gno.land chain. Dev and testnet chains are read/write; mainnet and betanet are read-only — inspect and audit deployed code, but no signing on real-funds chains. Beyond the built-in `testnet` and `local` defaults, save the chains you use as named **profiles** with `gnomcp profile add` (written to `profiles.toml`), so gnomcp remembers them between runs. A profile can also carry an indexer URL, or a master address for user-session writes (dev/testnet only). Profile fields and the signing model → [Configuration](docs/gnomcp.md#configuration) · [Write authorization](docs/gnomcp.md#write-authorization). ## Security - **Keys stay in `gnokey`** — gnomcp never sees a mnemonic; the user signs sessions on their own machine. - **No signing on real-funds chains** — writes are gated to dev/testnet; mainnet and betanet are read-only. - **Chain output can't hijack the agent** — every chain-derived byte is wrapped in an untrusted-content envelope. - **Bounded reads** — output is budgeted and summarized, never silently truncated. - **Every write is logged** — an append-only audit trail of the tool, profile, result, and signer. - **Structured errors** — machine-routable codes and recovery hints, so the agent fails forward. Full posture and threat model → [docs/security.md](docs/security.md). ## Development ```bash make test # Unit tests (no network) make test-integration # In-process node + live tests (build tag: integration) make lint # go vet + gofmt -l make build # bin/gnomcp make dev # go run ./cmd/gnomcp (starts MCP server) ``` Built against the official MCP Go SDK (`github.com/modelcontextprotocol/go-sdk`) and `github.com/gnolang/gno/gno.land/pkg/gnoclient` for chain RPC. Testing: see [`test/README.md`](test/README.md) for the four test layers (unit / integration / agent e2e / manual). ## Roadmap - Thin the skills toward the [gnolang/gno](https://github.com/gnolang/gno) monorepo as the single source of truth, less hand-distilled content - Docker as the canonical deployment - a2a serve mode (agent-to-agent realm bridge) - External security audit before any "stable" claim ## License Apache-2.0. See [LICENSE](LICENSE).