Skip to main content
Glama
ngh1105
by ngh1105

GenLayer CLI MCP

GenLayerプロジェクトを操作する必要があるAIエージェント向けのMCPサーバーです。

以下の機能を提供します:

  • genlayer: GenLayer CLIへのフルアクセス

  • genvm_lint: genvm-lintへのアクセス

  • genlayer_deploy: genlayer-jsを使用したコントラクトのデプロイ

  • check_tools: ローカルツールの可用性と秘密鍵の設定確認

このサーバーはstdioトランスポートを使用し、spawn(command, args)でコマンドを実行します。

要件

  • Node.js 18以上

  • PATH上にGenLayer CLIがインストールされていること

  • PATH上にGenVM linterがインストールされていること

外部ツールのインストール:

npm install -g genlayer
py -3.12 -m pip install genvm-linter

ツールの確認:

genlayer --version
genvm-lint --version

Related MCP server: MCP Plus

MCP設定

このパッケージをnpmに公開する場合:

{
  "mcpServers": {
    "genlayer-cli": {
      "command": "npx",
      "args": ["-y", "genlayer-cli-mcp"],
      "env": {
        "GENLAYER_PRIVATE_KEY": "0x_your_private_key_here"
      }
    }
  }
}

このリポジトリから実行する場合:

{
  "mcpServers": {
    "genlayer-cli": {
      "command": "node",
      "args": ["E:\\genlayer-cli-mcp\\dist\\index.js"],
      "env": {
        "GENLAYER_PRIVATE_KEY": "0x_your_private_key_here"
      }
    }
  }
}

利用可能な秘密鍵の環境変数名:

  • GENLAYER_PRIVATE_KEY

  • GENLAYER_PRV_KEY

  • GENLAYER_PRIVKEY

  • PRIVATE_KEY

秘密鍵は、0xで始まる64桁の16進数、または生の64桁の16進数のいずれかです。設定された鍵が見つからない、または無効な場合、genlayer_deployは新しい秘密鍵を生成し、同じツール呼び出し内でそれを使用してデプロイを行います。新しい鍵が生成された場合、レスポンスにその鍵が含まれるため、保存しておくことができます。

ローカル開発

cd E:\genlayer-cli-mcp
npm install
npm run build
npm run smoke

サーバーの実行:

node E:\genlayer-cli-mcp\dist\index.js

ローカルでのパッケージ化:

npm pack

npmへの公開:

npm login
npm publish --access public

ツール

check_tools

nodegenlayerpythongenvm-lint、および秘密鍵の設定を確認します。

AIプロンプトの例:

Use MCP tool check_tools from genlayer-cli.

genlayer

コマンドへのフルアクセス権限で genlayer <args...> を実行します。

例:

{
  "args": ["--version"]
}

生のCLIを通じたデプロイの例:

{
  "args": [
    "deploy",
    "--contract",
    "E:\\path\\to\\contract.py",
    "--rpc",
    "http://localhost:4000/api"
  ],
  "timeoutMs": 120000
}

genvm_lint

genvm-lint <args...> を実行します。

例:

{
  "args": ["check", "E:\\path\\to\\contract.py"],
  "timeoutMs": 120000
}

genlayer_deploy

genlayer-js を通じてIntelligent Contractをデプロイします。

秘密鍵のフォールバックを処理するため、AIエージェントにはこのデプロイツールが推奨されます:

  1. ツール入力から privateKey が提供されている場合はそれを使用します。

  2. そうでない場合、有効であればMCP設定の環境変数から秘密鍵を使用します。

  3. それも無効な場合、新しい秘密鍵を生成します。

  4. 選択または生成された秘密鍵を使用して直ちにデプロイします。

例:

{
  "contractPath": "E:\\path\\to\\contract.py",
  "chain": "localnet",
  "rpcUrl": "http://localhost:4000/api",
  "autoFundLocalnet": true,
  "waitForReceipt": true,
  "receiptStatus": "ACCEPTED",
  "timeoutMs": 120000
}

オプションフィールド:

{
  "privateKey": "0x...",
  "args": [],
  "kwargs": {},
  "cwd": "E:\\project",
  "leaderOnly": false,
  "consensusMaxRotations": 5,
  "initializeConsensus": true,
  "fundAmount": 10,
  "receiptRetries": 50,
  "receiptIntervalMs": 5000,
  "exposePrivateKey": false
}

サポートされているチェーン:

  • localnet

  • studionet

  • testnetAsimov

  • testnetBradbury

エージェント設定例

stdio経由のMCPをサポートするコーディングエージェントには、同じMCPサーバー定義を使用してください。秘密鍵は独自のテストネット/ローカル鍵に置き換えるか、genlayer_deployでデプロイ時に新しい鍵を生成させたい場合は無効なままにしておいてください。

Codex

CodexのMCP設定にこのMCPサーバーを追加します:

{
  "mcpServers": {
    "genlayer-cli": {
      "command": "npx",
      "args": ["-y", "genlayer-cli-mcp"],
      "env": {
        "GENLAYER_PRIVATE_KEY": "0x_your_private_key_here"
      }
    }
  }
}

推奨されるCodexプロンプト:

Use MCP tool check_tools from genlayer-cli and tell me whether deploy can use the configured private key.

Then lint my GenLayer contract with genvm_lint.

If lint passes, deploy it with genlayer_deploy using:
{
  "contractPath": "E:\\path\\to\\contract.py",
  "chain": "localnet",
  "rpcUrl": "http://localhost:4000/api",
  "autoFundLocalnet": true,
  "waitForReceipt": true,
  "receiptStatus": "ACCEPTED"
}

Antigravity

AntigravityのMCP設定にこのMCPサーバーを追加します:

{
  "mcpServers": {
    "genlayer-cli": {
      "command": "npx",
      "args": ["-y", "genlayer-cli-mcp"],
      "env": {
        "GENLAYER_PRIVATE_KEY": "0x_your_private_key_here"
      }
    }
  }
}

推奨されるAntigravityプロンプト:

Use the genlayer-cli MCP server.

First call check_tools.
Then run genvm_lint on:
{
  "args": ["check", "E:\\path\\to\\contract.py"]
}

If the contract is valid, call genlayer_deploy. If the configured MCP private key is invalid, let the MCP tool generate a new private key and deploy with it automatically.

Claude Code

Claude CodeのMCP追加コマンドでサーバーを追加します:

claude mcp add genlayer-cli -- npx -y genlayer-cli-mcp

Claude Codeの設定でMCP設定内の環境変数がサポートされている場合は、以下を追加します:

{
  "GENLAYER_PRIVATE_KEY": "0x_your_private_key_here"
}

代替のローカルソースコマンド:

claude mcp add genlayer-cli -- node E:\genlayer-cli-mcp\dist\index.js

推奨されるClaude Codeプロンプト:

Use the genlayer-cli MCP server.

1. Call check_tools.
2. Run genvm_lint for E:\path\to\contract.py.
3. If lint succeeds, deploy with genlayer_deploy.
4. If the private key in MCP config is missing or invalid, generate a new private key and deploy with that generated key in the same tool call.

Arguments:
{
  "contractPath": "E:\\path\\to\\contract.py",
  "chain": "localnet",
  "rpcUrl": "http://localhost:4000/api",
  "autoFundLocalnet": true,
  "waitForReceipt": true,
  "receiptStatus": "ACCEPTED"
}

セキュリティ

このMCPサーバーは、意図的にGenLayerコマンドへのフルアクセスを許可しています。AIエージェントは deploywriteupstopinit などの状態を変更するコマンドを実行できます。

信頼できるAIクライアントと有効化されたツールを使用する場合を除き、メインネットの秘密鍵をMCP設定に入れないでください。

Available Tools

4 tools
check_toolsA

Check whether node, genlayer, python, and genvm-lint are available to this MCP server.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It accurately describes a read-only check operation with no side effects. Could mention output format but adequate for simple health check.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with purpose, no extraneous words. Highly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but the simple check tool's behavior is largely conveyed. Could clarify what 'available' means (e.g., installed, running), but sufficiently complete for low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so schema coverage is 100%. Description need not add parameter info. Baseline score of 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it checks availability of specific tools (node, genlayer, python, genvm-lint). Verb 'Check' plus explicit list distinguishes it from sibling tools that perform actions like deploy or lint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. It is implied it should be used as a precondition check, but no direct advice or exclusion criteria are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

genlayerB

Run the GenLayer CLI with full command access. This can perform state-changing operations.

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNoArguments passed to the command.
cwdNoWorking directory for the command. Defaults to the MCP server cwd.
timeoutMsNoTimeout in milliseconds. Defaults to 120000.
envNoExtra environment variables merged over the MCP server environment.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description notes that it 'can perform state-changing operations', which is a key behavioral trait. However, no annotations are provided, and the description lacks details on security, error handling, or resource impact.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise with two sentences, no fluff. While efficient, it could include a bit more context without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (4 parameters, no output schema, no annotations), the description is adequate but not fully complete. It does not describe return values or potential side effects beyond stating state-changing operations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear parameter descriptions. The description does not add significant meaning beyond the schema, meeting the baseline for this dimension.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Run the GenLayer CLI' with 'full command access', distinguishing it from sibling tools like genlayer_deploy and genvm_lint. However, it is somewhat broad without specifying typical commands.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus the sibling tools. There is no mention of scenarios or alternatives, leaving the agent to infer usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

genlayer_deployB

Deploy a GenLayer Intelligent Contract with genlayer-js. Accepts privateKey; generates one when missing or invalid.

ParametersJSON Schema
NameRequiredDescriptionDefault
contractPathYesPath to the Intelligent Contract source file.
privateKeyNoGenLayer private key. If missing or invalid, a new private key is generated with genlayer-js.
argsNoConstructor arguments passed to deployContract.
kwargsNoKeyword constructor arguments passed to deployContract.
rpcUrlNoCustom GenLayer RPC endpoint.
chainNoGenLayer chain used when creating the SDK client.localnet
cwdNoBase directory for resolving contractPath. Defaults to MCP server cwd.
leaderOnlyNo
consensusMaxRotationsNo
initializeConsensusNo
autoFundLocalnetNoCall localnet sim_fundAccount before deploy. Only works on localnet.
fundAmountNo
waitForReceiptNo
receiptStatusNoACCEPTED
receiptRetriesNo
receiptIntervalMsNo
timeoutMsNo
exposePrivateKeyNoReturn the generated/used private key in output. Defaults false to avoid leaking secrets.

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

In the absence of annotations, the description bears full responsibility for disclosing behavioral traits. It mentions the key generation fallback for privateKey but fails to disclose other significant behaviors such as error handling, side effects, or return value structure. This is insufficient for an 18-parameter tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two short sentences that front-load the core purpose and immediately add an important behavioral note. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (18 optional parameters, one required), the description is far from complete. It lacks information about error handling, output structure, behavior of optional parameters, or any post-deployment steps. An output schema would help, but it is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50%, so the baseline is 3. The description adds value by explaining the privateKey fallback behavior beyond the schema. However, it does not compensate for the remaining 50% of parameters that lack schema descriptions, resulting in only marginal improvement.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it deploys a GenLayer Intelligent Contract using genlayer-js, which is a specific verb-resource combination. It distinguishes itself from sibling tools like check_tools, genlayer, and genvm_lint, which serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or context for usage. It only describes the action without any contextual usage advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

genvm_lintC

Run genvm-lint for GenVM contract linting, validation, schema extraction, typechecking, setup, or downloads.

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNoArguments passed to the command.
cwdNoWorking directory for the command. Defaults to the MCP server cwd.
timeoutMsNoTimeout in milliseconds. Defaults to 120000.
envNoExtra environment variables merged over the MCP server environment.

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It fails to disclose behavioral traits like side effects (e.g., file modifications, network requests), error handling, or required permissions. The description does not elaborate on what the tool does beyond running a command.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise but lacks structure and prioritization. It lists multiple functions without highlighting the primary use case. It could be more efficiently organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool that runs a command, it is critical to mention that it returns stdout/stderr or exit code. No output schema is provided, and the description does not explain what the tool returns. Important behavioral context is missing, making it incomplete for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so the schema already documents the parameters (args, cwd, timeoutMs, env). The description adds no extra meaning beyond what the schema provides. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states that the tool runs genvm-lint for various tasks like linting, validation, schema extraction, etc., but it lists multiple purposes without a clear single focus. The verb 'Run' is generic and does not distinguish this tool from sibling tools like 'genlayer' or 'genlayer_deploy'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, such as 'check_tools' or 'genlayer'. There is no mention of prerequisites, limitations, or context in which this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 4 tool updatesv0.1.0
    • First observedcheck_tools
    • First observedgenlayer
    • First observedgenlayer_deploy
    • First observedgenvm_lint

TDQS

B3.3/5.0
Disambiguation5/5

Each tool targets a clearly distinct function: checking environment availability, running arbitrary CLI commands, deploying contracts, and linting. No overlap in purpose.

Naming Consistency3/5

Tool names are inconsistent: 'check_tools' uses verb_noun, 'genlayer' is a single word, 'genlayer_deploy' and 'genvm_lint' use prefix_verb pattern. Mixed conventions reduce predictability.

Tool Count4/5

Four tools is reasonable for a CLI wrapper server, covering core operations without being too few or excessive.

Completeness4/5

The set covers essential actions: environment check, CLI execution, deployment, and linting. Missing other possible genlayer commands, but core workflow is covered.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ngh1105/genlayer-cli-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server