genskill-mcp
An MCP server that lets AI agents build on GenLayer by searching documentation, inspecting contracts and transactions over RPC, and scaffolding, linting, and testing Intelligent Contracts.
README
genskill-mcp
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.
Install
| 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.
What this server does
The server loads the official GenLayer docs bundle:
It parses that bundle into sections and exposes:
- searchable MCP tools
- a browsable docs index resource
- individual section resources
- live GenLayer JSON-RPC tools for contract and transaction inspection
- a browsable RPC configuration resource
- contract authoring tools: scaffold a starter contract and lint it before deploy
- guided MCP prompts for writing, testing, and debugging contracts
This repository supports two transports:
stdiofor local CLI tools such as Claude Code, Codex, Cursor, VS Code, and Gemini CLI- Streamable HTTP for deployed remote MCP usage
Build a contract (authoring tools, new in 2.2)
If 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.
genlayer_scaffold_contractgenerates a working starter Intelligent 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.genlayer_lint_contractruns static pre-deploy checks on contract source. It catches the mistakes that make a deploy finalize with a bareinvalid_contract(no stack trace): a comment line directly under the runner header, an unpinned or:test/:latestrunner, a missinggl.Contractclass, forbidden sandbox imports (os,sys,subprocess,random, ...), and GenVM Python-subset issues such asforloops,sorted,.sort,lambda, andlist/dictstorage fields.genlayer_scaffold_testgenerates a fast direct-mode test (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:
genlayer_write_contractscaffold, decide what needs consensus, then lint.genlayer_test_contractdirect-mode then integration testing.genlayer_debug_deploythe checklist for a deploy that errored on-chain.
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.
RPC configuration
Live protocol tools use the configured GenLayer RPC endpoint.
GENLAYER_RPC_URL: JSON-RPC endpoint to useGENLAYER_RPC_TIMEOUT_MS: timeout for live RPC requests
If GENLAYER_RPC_URL is not set, the server defaults to:
https://studio.genlayer.com/api
Quickstart for Claude Code
claude mcp add --transport stdio genskill -- npx -y genskill-mcp
Then start Claude Code:
claude
Inside Claude Code, run:
/mcp
The genskill server and its tool endpoints should be listed.
Quickstart for Cursor (per-project)
Add this to .cursor/mcp.json:
{
"mcpServers": {
"genskill": {
"command": "npx",
"args": ["-y", "genskill-mcp"]
}
}
}
[!TIP] If a Cursor version does not recognize
mcpServers, usemcp_serversas the top-level key instead.
Quickstart for VS Code (per-workspace)
Add this to .vscode/mcp.json:
{
"servers": {
"genskill": {
"type": "stdio",
"command": "npx",
"args": ["-y", "genskill-mcp"]
}
},
"inputs": []
}
Quickstart for Gemini CLI
Add the MCP server globally:
gemini mcp add --scope user genskill npx -y genskill-mcp
Confirm it is registered:
gemini mcp list
Quickstart for Codex
Add the MCP server with the Codex CLI:
codex mcp add genskill -- npx -y genskill-mcp
Confirm it is registered:
codex mcp list
Alternatively, 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.
Quickstart from source
For source-based usage instead of installing from npm:
-
Clone the repo:
git clone https://github.com/Jr-kenny/genskill-mcp cd genskill-mcp -
Install dependencies and build:
npm install npm run build -
Run the local entrypoint:
node /absolute/path/to/genskill-mcp/dist/cli.js
Substitute that node .../dist/cli.js command in any MCP client config for source-based usage over npx.
Quickstart for remote MCP clients
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.
-
Deploy this repository to Vercel.
-
The deployed MCP endpoint is:
https://genskill-mcp.vercel.app/mcp -
The deployed service also exposes:
GET /for a small server info responseGET /healthfor health checksPOST /mcpfor MCP Streamable HTTP requests
-
Add the deployed MCP URL in a remote MCP client as an HTTP MCP server.
Use:
https://genskill-mcp.vercel.app/mcp
This 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:http
It listens on port 3000 by default. Set the PORT environment variable to change it.
Vercel deployment
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/mcp
Useful checks:
https://genskill-mcp.vercel.app/https://genskill-mcp.vercel.app/healthPOST https://genskill-mcp.vercel.app/mcpfrom an MCP client
Notes:
/mcpis routed to the Vercel function at/api/mcp.mjs.- The Vercel endpoint uses the MCP SDK Web-standard Streamable HTTP transport in stateless mode.
- POST requests return JSON responses where possible, which is friendlier for serverless hosting than holding long SSE streams open.
- If the docs update while the service is already deployed, call
genlayer_refresh_docsfrom an MCP client or redeploy the project.
Tool endpoints
High-level orchestration tools now use a canonical machine-readable response shape with:
kindsummarycurrent_stateblockersnext_actionsfallbacksdata
The 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.
Live protocol tools
-
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 HTTPGET /healthendpoint. -
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 HTTPGET /balanceendpoint for the node operator. -
genlayer_eth_get_balanceCallseth_getBalancethrough the configured GenLayer RPC endpoint. -
genlayer_raw_rpcCallsgen_*,eth_*,zks_*, orzksync_*methods directly against the configured endpoint. -
genlayer_trace_transactionCallsgen_dbg_traceTransactionwhen the target node exposes debug methods. -
genlayer_metricsFetches Prometheus-style metrics from the configured HTTPGET /metricsendpoint. -
genlayer_submit_raw_transactionSubmits a signed raw transaction througheth_sendRawTransaction. -
genlayer_inspect_transactionCombinesgen_getTransactionStatus,gen_getTransactionReceipt, andeth_getTransactionByHashinto one response. -
genlayer_wait_for_transactionPolls transaction status untilacceptedorfinalized. -
genlayer_explain_transaction_statusInterprets transaction status into finality phase, appealability, and next-step guidance. -
genlayer_call_contractExecutesgen_callfor read, write-simulation, or deploy-simulation requests. -
genlayer_get_contract_schemaCallsgen_getContractSchemafor base64-encoded contract code. -
genlayer_get_contract_stateCallsgen_getContractStatefor a deployed contract. -
genlayer_get_contract_codeCallsgen_getContractCodefor a deployed contract. -
genlayer_get_contract_snapshotFetches state, deployed code, and derived schema in one call. -
genlayer_get_transaction_statusCallsgen_getTransactionStatusfor lightweight transaction polling. -
genlayer_get_transaction_receiptCallsgen_getTransactionReceiptfor full processed transaction data. -
genlayer_syncingCallsgen_syncingon the configured endpoint.
Documentation tools
-
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.
Resources
-
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.
Project structure
| 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 |
How it's built
This MCP server is a lightweight TypeScript implementation built on the official MCP SDK.
Core components
- Built on
@modelcontextprotocol/sdk - Uses
StdioServerTransportfor local MCP clients - Uses
zodto validate tool arguments - Fetches the GenLayer docs bundle from the official docs site
- Parses the bundle into section-level resources based on each
# path/to/file.mdxboundary - Uses a simple deterministic ranking function over titles, slugs, paths, and body text
Configuration
Optional 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, default24GENLAYER_DOCS_TIMEOUT_MS: HTTP timeout in milliseconds, default15000
The 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.
Local development
This section is only for working on the MCP server itself.
npm install
npm run build
npm run check
npm start
npm run check verifies that the server can fetch and parse the live GenLayer docs bundle.
Releasing (maintainers)
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, publishes
The 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 globally
Remote (Vercel) users need no action — the hosted endpoint auto-deploys from
main; clients pick up changes on reconnect.
Credits
Built and maintained by:
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.