ワンクリックで
create-module
// Add a new datasource module to ethpandaops/panda. Triggers on: add module, new module, create module, add plugin, new plugin, create plugin, add datasource.
// Add a new datasource module to ethpandaops/panda. Triggers on: add module, new module, create module, add plugin, new plugin, create plugin, add datasource.
Query Ethereum network data via ethpandaops CLI or MCP server. Use when analyzing blockchain data, block timing, attestations, validator performance, network health, or infrastructure metrics. Provides access to ClickHouse (blockchain data), Prometheus (metrics), Loki (logs), and Dora (explorer APIs).
Run schema probing self-play loop to find and fix ClickHouse schema ambiguity in the panda repo. Use when the user wants to improve query reliability by finding where the agent picks different tables for the same question.
Debug Ethereum devnet or network issues. Use when diagnosing finality delays, network splits, offline nodes, client bugs, or general network health problems. Works for both local Kurtosis devnets and remote hosted deployments.
Install panda as an MCP server in AI coding assistants (Claude Code, Claude Desktop, Cursor). Use when setting up panda, configuring MCP, or connecting AI tools to panda. Triggers on: install mcp, setup mcp, configure mcp, register mcp, add mcp server.
Install and set up panda from scratch. Use when the user wants to install panda, get started with panda, or set up their environment. Triggers on: install panda, setup panda, get started, getting started.
Extract a reusable runbook from a successful investigation or troubleshooting session. Use after completing a multi-step diagnosis that could help future investigations.
| name | create-module |
| description | Add a new datasource module to ethpandaops/panda. Triggers on: add module, new module, create module, add plugin, new plugin, create plugin, add datasource. |
| argument-hint | <module-name> |
| disable-model-invocation | true |
Use this when adding a new integration like ClickHouse, Prometheus, Loki, Dora, or Ethnode. The architecture is module + server operations, not plugins + bespoke proxy endpoints.
Create the module folder:
modules/{name}/
├── config.go
├── module.go
├── examples.go
├── examples.yaml
└── python/{name}.py
Add these when needed:
resources.go for custom MCP resourcespkg/proxy/handlers/{name}_operations.gopkg/proxy/handlers/{name}_operations_test.gomodules/prometheus/ or modules/loki/ for simple JSON passthrough APIsmodules/clickhouse/ for streamed table results and datasource discoverymodules/dora/ or modules/ethnode/ for external HTTP APIs with curated helperspkg/app/app.go
Add reg.Add({name}module.New()) in buildModuleRegistry().pkg/server/operations_<domain>.go
Add new server-owned operation handling for the module.pkg/server/operations_dispatch.go
Wire the module's handler into dispatch.pkg/proxy/server_config.go
Add proxy server config translation only if the module needs proxy-held credentials or typed proxy config.sandbox/ethpandaops/ethpandaops/__init__.py
Add the lazy import if the module exposes a Python module.sandbox/Dockerfile
Copy modules/{name}/python/{name}.py into the installed ethpandaops package.sandbox/ethpandaops/ethpandaops/_runtime.py.POST /api/v1/operations/{module.operation}.Implement module.Module from pkg/module/module.go and only the optional capability interfaces you need:
Name, Init, ApplyDefaults, Validate, Start, StopSandboxEnvProvider, DatasourceInfoProvider, ExamplesProvider, PythonAPIDocsProvider, GettingStartedSnippetProvider, ResourceProviderclickhouse.query(...) style wrappers should call _runtime helpers and parse only at the edge.module.Modulepkg/server/operations_dispatch.gosandbox/Dockerfilego test ./... passespython3 -m py_compile ... passes for touched Python filesmake docker-sandbox builds if sandbox files changed