create-plugin
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
Weekly Installs
5
Repository
ethpandaops/mcpGitHub Stars
1
First Seen
Feb 20, 2026
Security Audits
Installed on
opencode5
gemini-cli5
claude-code5
github-copilot5
codex5
kimi-cli5