create-plugin
Installation
SKILL.md
Create New Plugin
Add a datasource plugin following the existing patterns.
Files to Create
plugins/{name}/
├── config.go # Config struct + Validate() + ApplyDefaults()
├── plugin.go # Implements plugin.Plugin interface
├── examples.go # Embeds examples.yaml
├── examples.yaml # Query examples
└── python/{name}.py # Sandbox module (connects via proxy)
Plus:
pkg/proxy/handlers/{name}.go- Reverse proxy handler
Templates
Copy from plugins/prometheus/ for a simple plugin, or plugins/clickhouse/ for one with schema discovery.
Registration Steps
- builder.go - Import and add
reg.Add({name}plugin.New()) - builder.go - Add case to
buildProxy()type switch - pkg/proxy/proxy.go - Add field to
Optionsstruct - pkg/proxy/proxy.go - Register handler in
Start() - sandbox/ethpandaops/ethpandaops/init.py - Add to lazy imports
- Copy Python module to
sandbox/ethpandaops/ethpandaops/
Key Rules
- Credentials NEVER go to sandbox - use
SandboxEnv()for metadata only - ProxyConfig() returns credentials for the proxy handler
- Python module reads
ETHPANDAOPS_{NAME}_DATASOURCESenv var (JSON, no creds) - Python module calls proxy at
/{name}/{instance}/...
Checklist
- Implements all
plugin.Pluginmethods (seepkg/plugin/plugin.go) - Proxy handler follows pattern in
pkg/proxy/handlers/prometheus.go -
make lint && make testpass -
make docker-sandboxbuilds
Related skills
More from ethpandaops/mcp
query
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).
14create-runbook
Extract a reusable runbook from a successful investigation or troubleshooting session. Use after completing a multi-step diagnosis that could help future investigations.
14