Genskill Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Genskill Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
An MCP server that lets any AI agent build on GenLayer: search the docs, inspect contracts and transactions over RPC, and scaffold, lint, and test Intelligent Contracts.
genskill-mcp is a Model Context Protocol server for MCP-compatible clients (Claude Code, Cursor, VS Code, Gemini CLI, Codex, and remote MCP clients over HTTP). It combines searchable GenLayer documentation, live protocol/RPC inspection of contracts and transactions, and a contract authoring toolkit (scaffold, lint, and test Intelligent Contracts), so an agent can go from zero to a deployable contract without leaving its editor.
This project does not sign transactions or manage private keys. It supports live node inspection and contract interaction through GenLayer JSON-RPC methods such as gen_call, gen_getContractState, gen_getContractCode, gen_getContractSchema, gen_getTransactionStatus, and gen_getTransactionReceipt.
| Use | Command / URL |
|---|---|
| Local (stdio) | npx -y genskill-mcp |
| Hosted (remote) | https://genskill-mcp.vercel.app/mcp |
Per-client setup (Claude Code, Cursor, VS Code, Gemini, Codex, remote) is in the quickstarts below.
The server loads the official GenLayer docs bundle:
It parses that bundle into sections and exposes:
This repository supports two transports:
stdio for local CLI tools such as Claude Code, Codex, Cursor, VS Code, and Gemini CLIIf you are new to GenLayer, this is the fast path from zero to a deployable contract. It does not just point you at docs, it gives you working code and checks it.
Contract for a template (storage, llm-judge, web-oracle, token). The output already has the runner header pinned and avoids the common GenVM deploy-killers, so it deploys as-is.
It catches the mistakes that make a deploy finalize with a bare invalid_contract (no stack trace): a comment line directly under the runner header, an unpinned or :test / :latest runner, a missing gl.Contract class, forbidden sandbox imports (os, sys, subprocess, random, ...), and GenVM Python-subset issues such as for loops, sorted, .sort, lambda, and list / dict storage fields.
(genlayer-test) for a template, using the real fixtures (direct_vm, direct_deploy, direct_alice) and mocking web/LLM calls so tests stay deterministic.
Three guided prompts wrap the workflow for any MCP client:
And a single always-available resource, `genlayer://guide/contract-rules`, is an authoritative cheat sheet (skeleton, storage types, web/LLM/equivalence APIs, the GenVM Python-subset rules, and the deploy/finalize/debug checklist) that any connecting agent can read to get contract writing and debugging right. It tracks the latest GenLayer docs and the official write-contract / direct-tests skills.
Typical loop: scaffold, edit, genlayer_lint_contract until it is clean, deploy, then inspect it live with genlayer_get_contract_snapshot.
Live protocol tools use the configured GenLayer RPC endpoint.
GENLAYER_RPC_URL: JSON-RPC endpoint to useGENLAYER_RPC_TIMEOUT_MS: timeout for live RPC requestsIf GENLAYER_RPC_URL is not set, the server defaults to:
https://studio.genlayer.com/apiclaude mcp add --transport stdio genskill -- npx -y genskill-mcpThen start Claude Code:
claudeInside Claude Code, run:
/mcpThe genskill server and its tool endpoints should be listed.
Add this to .cursor/mcp.json:
{
"mcpServers": {
"genskill": {
"command": "npx",
"args": ["-y", "genskill-mcp"]
}
}
}[!TIP] If a Cursor version does not recognizemcpServers, usemcp_serversas the top-level key instead.
Add this to .vscode/mcp.json:
{
"servers": {
"genskill": {
"type": "stdio",
"command": "npx",
"args": ["-y", "genskill-mcp"]
}
},
"inputs": []
}Add the MCP server globally:
gemini mcp add --scope user genskill npx -y genskill-mcpConfirm it is registered:
gemini mcp listAdd the MCP server with the Codex CLI:
codex mcp add genskill -- npx -y genskill-mcpConfirm it is registered:
codex mcp listAlternatively, add this to a Codex MCP config:
[mcp_servers.genskill]
command = "npx"
args = ["-y", "genskill-mcp"]Restart Codex if needed so it reloads the MCP config.
For source-based usage instead of installing from npm:
git clone https://github.com/Jr-kenny/genskill-mcp
cd genskill-mcp npm install
npm run build node /absolute/path/to/genskill-mcp/dist/cli.jsSubstitute that node .../dist/cli.js command in any MCP client config for source-based usage over npx.
For remote MCP clients, run the HTTP entrypoint and deploy it as a public web service.
This is not Claude-specific. It is the deployed transport for any client that can connect to remote MCP servers over Streamable HTTP, including chat-style AI apps where that capability is available.
https://genskill-mcp.vercel.app/mcpGET / for a small server info responseGET /health for health checksPOST /mcp for MCP Streamable HTTP requestsUse:
https://genskill-mcp.vercel.app/mcpThis applies to Claude-hosted integrations, ChatGPT-style apps, and other remote AI clients where MCP server URLs are supported.
For local HTTP testing, run:
npm install
npm run build
npm run start:httpIt listens on port 3000 by default. Set the PORT environment variable to change it.
This repository is configured for Vercel through vercel.json and the Web-standard API functions in api/.
Public MCP endpoint on Vercel:
https://genskill-mcp.vercel.app/mcpUseful checks:
https://genskill-mcp.vercel.app/https://genskill-mcp.vercel.app/healthPOST https://genskill-mcp.vercel.app/mcp from an MCP clientNotes:
/mcp is routed to the Vercel function at /api/mcp.mjs.genlayer_refresh_docs from an MCP client or redeploy the project.High-level orchestration tools now use a canonical machine-readable response shape with:
kindsummarycurrent_stateblockersnext_actionsfallbacksdataThe autopilot and capability surfaces are capability-aware: they should prefer only actions supported by the currently configured endpoint and explicitly downgrade unsupported debug or ops paths into fallbacks.
genlayer_list_networksLists documented GenLayer network presets, chain IDs, and RPC URLs.
genlayer_start_workflow_sessionCreates a persisted workflow session from a generated contract workflow plan.
genlayer_list_workflow_sessionsLists persisted workflow sessions ordered by most recently updated.
genlayer_get_workflow_sessionReads a persisted workflow session by id.
genlayer_update_workflow_stepMarks a workflow session step as completed or pending.
genlayer_autopilot_briefGenerates a single operator-grade brief with endpoint capabilities, contract context, workflow plans, handoff steps, and relevant docs.
genlayer_load_contract_artifactLoads a local contract artifact or bytecode file and returns base64 plus file metadata.
genlayer_probe_endpoint_capabilitiesProbes which HTTP and RPC surfaces are actually exposed on the configured GenLayer deployment.
genlayer_generate_agent_handoffGenerates an explicit ordered handoff bundle so weaker agents know exactly which genskill-mcp tools to call next.
genlayer_get_contract_interfaceNormalizes a contract schema into constructor, view methods, and write methods.
genlayer_plan_contract_actionBuilds a schema-validated execution plan for deploy, read, or write actions.
genlayer_plan_contract_workflowBuilds a multi-phase contract workflow covering deploy, wait, snapshot, interaction, and diagnosis.
genlayer_run_transaction_reportOrchestrates waiting, inspection, status explanation, optional trace lookup, and optional contract snapshot into one report.
genlayer_run_contract_reportOrchestrates network context, contract snapshot, interface, workflow, and default plans into one report.
genlayer_generate_typescript_workflowGenerates GenLayerJS deploy/read/write snippets from a contract schema or deployed contract.
genlayer_generate_contract_playbookGenerates a schema-aware deployment and interaction playbook for a contract.
genlayer_node_healthCalls the configured GenLayer node HTTP GET /health endpoint.
genlayer_network_statusReturns a combined live snapshot of node health, chain id, block height, sync status, and optional debug ping status.
genlayer_balanceCalls the configured GenLayer HTTP GET /balance endpoint for the node operator.
genlayer_eth_get_balanceCalls eth_getBalance through the configured GenLayer RPC endpoint.
genlayer_raw_rpcCalls gen_*, eth_*, zks_*, or zksync_* methods directly against the configured endpoint.
genlayer_trace_transactionCalls gen_dbg_traceTransaction when the target node exposes debug methods.
genlayer_metricsFetches Prometheus-style metrics from the configured HTTP GET /metrics endpoint.
genlayer_submit_raw_transactionSubmits a signed raw transaction through eth_sendRawTransaction.
genlayer_inspect_transactionCombines gen_getTransactionStatus, gen_getTransactionReceipt, and eth_getTransactionByHash into one response.
genlayer_wait_for_transactionPolls transaction status until accepted or finalized.
genlayer_explain_transaction_statusInterprets transaction status into finality phase, appealability, and next-step guidance.
genlayer_call_contractExecutes gen_call for read, write-simulation, or deploy-simulation requests.
genlayer_get_contract_schemaCalls gen_getContractSchema for base64-encoded contract code.
genlayer_get_contract_stateCalls gen_getContractState for a deployed contract.
genlayer_get_contract_codeCalls gen_getContractCode for a deployed contract.
genlayer_get_contract_snapshotFetches state, deployed code, and derived schema in one call.
genlayer_get_transaction_statusCalls gen_getTransactionStatus for lightweight transaction polling.
genlayer_get_transaction_receiptCalls gen_getTransactionReceipt for full processed transaction data.
genlayer_syncingCalls gen_syncing on the configured endpoint.
genlayer_search_docsSearches the documentation bundle and returns ranked matches with snippets.
genlayer_refresh_docsForce-refreshes the cached GenLayer documentation bundle from the configured source. Use this after the GenLayer team ships new docs, for example new Studio GEN, payable contract, Faucet, Tip Jar, or MetaMask updates.
genlayer_read_docReads a section by slug, path, title, or fuzzy query.
genlayer_get_doc_by_slugReads a section by exact slug, path, docs URL, or resource URI.
genlayer_search_examplesSearches example-heavy sections that contain commands, code blocks, SDK snippets, or config examples.
genlayer_get_related_docsFinds related documentation pages based on section path, title, and neighborhood in the docs tree.
genlayer_list_topicsLists top-level GenLayer documentation topics with counts and example pages.
genlayer_list_sectionsLists available parsed documentation sections.
genlayer://protocol/networksDocumented GenLayer network presets, RPC URLs, and chain IDs.
genlayer://workflow/sessionsList of persisted workflow sessions.
genlayer://workflow/session/{id}Persisted workflow session with step completion state.
genlayer://workflow/autopilotSingle operator-grade brief for the configured endpoint and current contract context.
genlayer://protocol/rpc-configJSON document showing the configured RPC endpoint, timeout, and supported helper methods.
genlayer://protocol/capabilitiesProbed endpoint capabilities showing which HTTP and RPC surfaces are actually exposed.
genlayer://protocol/transaction/{txId}Combined transaction inspection resource for a specific transaction hash.
genlayer://protocol/transaction/{txId}/reportComposed transaction report with status interpretation and optional trace data when exposed.
genlayer://protocol/contract/{address}/stateCurrent accepted-state snapshot for a specific deployed contract.
genlayer://protocol/contract/{address}/snapshotCombined state, code, and schema snapshot for a specific deployed contract.
genlayer://protocol/contract/{address}/playbookSchema-aware deployment and interaction playbook for a deployed contract.
genlayer://protocol/contract/{address}/reportComposed contract report with network context, snapshot, interface, workflow, and default plans.
genlayer://protocol/contract/{address}/plansDefault workflow plus default read/write action plans for a deployed contract.
genlayer://protocol/contract/{address}/method/{method}/plan/{action}Default schema-validated plan for a specific read or write method.
genlayer://docs/indexJSON index of all parsed sections.
genlayer://docs/section/{slug}Individual documentation sections as read-only resources.
| File/Folder | Purpose |
|---|---|
src/index.ts | The server logic: loads docs, parses sections, registers tools and resources |
src/cli.ts | Entry point that starts the stdio MCP server |
src/genlayerAuthoring.ts | Contract scaffolder + linter + test scaffolder (pure, unit-tested) |
src/authoringTools.ts | Registers the authoring tools and the dev-workflow prompts |
src/mcpResponses.ts | Shared canonical response envelope helpers |
src/genlayerDocs.ts | Docs loading, caching, parsing, search, and formatting helpers |
src/genlayerRpc.ts | GenLayer RPC, HTTP ops endpoints, network presets, and transaction helpers |
src/genlayerContractToolkit.ts | Schema normalization and GenLayerJS workflow/playbook generation |
src/genlayerArtifacts.ts | Local artifact loading and hashing for artifact-driven GenLayer workflows |
src/genlayerWorkflowSessions.ts | Persisted workflow session state and session formatting helpers |
api/ | Vercel API functions for the remote MCP, health, and root endpoints |
test/ | Unit tests for the authoring module (npm test, built-in node:test) |
dist/ | Compiled JavaScript output generated by npm run build |
package.json | Dependencies, scripts, package metadata, and CLI registration |
tsconfig.json | TypeScript compiler settings |
vercel.json | Vercel routing and function configuration |
README.md | Usage and client setup |
This MCP server is a lightweight TypeScript implementation built on the official MCP SDK.
@modelcontextprotocol/sdkStdioServerTransport for local MCP clientszod to validate tool arguments# path/to/file.mdx boundaryOptional environment variables:
GENLAYER_DOCS_URL: alternate source URL or local file path for the docs bundleGENLAYER_DOCS_CACHE_FILE: cache location for the downloaded bundleGENLAYER_DOCS_REFRESH_HOURS: cache freshness window in hours, default 24GENLAYER_DOCS_TIMEOUT_MS: HTTP timeout in milliseconds, default 15000The server also refreshes stale in-memory snapshots automatically. For long-running HTTP deployments, call genlayer_refresh_docs when the GenLayer team ships new documentation and an immediate update is needed without restarting the service.
This section is only for working on the MCP server itself.
npm install
npm run build
npm run check
npm startnpm run check verifies that the server can fetch and parse the live GenLayer docs bundle.
Releases are published to npm automatically by .github/workflows/release.yml when a v* tag is pushed. One-time setup: add an npm automation token as the NPM_TOKEN repository secret (gh secret set NPM_TOKEN).
To cut a release:
npm version minor # bumps package.json, commits, creates the tag vX.Y.Z
git push --follow-tags # pushes the commit + tag; CI builds, tests, publishesThe workflow checks the tag matches package.json, runs the tests, and publishes with npm provenance. Once published, consumers update with:
npx -y genskill-mcp@latest # always newest
npm update -g genskill-mcp # if installed globallyRemote (Vercel) users need no action — the hosted endpoint auto-deploys from main; clients pick up changes on reconnect.
Built and maintained by:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.