diff --git a/.gitignore b/.gitignore index aaadf73..027c395 100644 --- a/.gitignore +++ b/.gitignore @@ -27,6 +27,9 @@ go.work.sum # env file .env +# binary +kubernetes-extension + # Editor/IDE # .idea/ # .vscode/ diff --git a/CHANGELOG.md b/CHANGELOG.md index 7dd6fd2..085f740 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.0.2] - 2025-01-26 + +### Changed + +- Moved from gevals to mcpchecker + ## [0.0.1] - 2025-01-20 ### Added diff --git a/Makefile b/Makefile index c404477..8e6cf3f 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -BINARY_NAME := gevals-kubernetes-extension +BINARY_NAME := kubernetes-extension GOOS ?= $(shell go env GOOS) GOARCH ?= $(shell go env GOARCH) diff --git a/README.md b/README.md index b4d6a83..b4cbe12 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# gevals-kubernetes-extension +# kubernetes-extension -A [gevals](https://github.com/genmcp/gevals) extension that provides Kubernetes resource operations for task setup, verification, and cleanup. +A [mcpchecker](https://github.com/mcpchecker/mcpchecker) extension that provides Kubernetes resource operations for task setup, verification, and cleanup. -This extension enables declarative Kubernetes interactions within gevals tasks. It also provides verification-specific operations that don't belong in MCP server tools but are essential for evaluating them. For example, waiting for a pod to reach a specific condition isn't useful as an MCP tool, but is exactly what you need to verify that an MCP server correctly modified a pod. +This extension enables declarative Kubernetes interactions within mcpchecker tasks. It also provides verification-specific operations that don't belong in MCP server tools but are essential for evaluating them. For example, waiting for a pod to reach a specific condition isn't useful as an MCP tool, but is exactly what you need to verify that an MCP server correctly modified a pod. ## Operations @@ -27,7 +27,7 @@ config: mcpConfigFile: mcp-config.yaml extensions: kubernetes: - package: https://github.com/genmcp/gevals-kubernetes-extension@v0.0.1 + package: https://github.com/mcpchecker/kubernetes-extension@v0.0.2 config: kubeconfig: ~/.kube/config # optional, defaults to ~/.kube/config taskSets: diff --git a/cmd/main.go b/cmd/main.go index 5cc037b..0048743 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -7,7 +7,7 @@ import ( "os/signal" "syscall" - "github.com/genmcp/gevals-kubernetes-extension/pkg/extension" + "github.com/mcpchecker/kubernetes-extension/pkg/extension" ) func main() { diff --git a/go.mod b/go.mod index 0282510..01a3f94 100644 --- a/go.mod +++ b/go.mod @@ -1,10 +1,10 @@ -module github.com/genmcp/gevals-kubernetes-extension +module github.com/mcpchecker/kubernetes-extension go 1.25.5 require ( - github.com/genmcp/gevals v0.0.2-rc.1 github.com/google/jsonschema-go v0.4.2 + github.com/mcpchecker/mcpchecker v0.0.3 k8s.io/apimachinery v0.35.0 k8s.io/client-go v0.35.0 ) @@ -20,13 +20,13 @@ require ( github.com/spf13/pflag v1.0.10 // indirect github.com/x448/float16 v0.8.4 // indirect go.yaml.in/yaml/v2 v2.4.3 // indirect - golang.org/x/exp/event v0.0.0-20251125195548-87e1e737ad39 // indirect - golang.org/x/exp/jsonrpc2 v0.0.0-20251219203646-944ab1f22d93 // indirect - golang.org/x/net v0.47.0 // indirect - golang.org/x/oauth2 v0.33.0 // indirect - golang.org/x/sys v0.38.0 // indirect - golang.org/x/term v0.37.0 // indirect - golang.org/x/text v0.31.0 // indirect + golang.org/x/exp/event v0.0.0-20260112195511-716be5621a96 // indirect + golang.org/x/exp/jsonrpc2 v0.0.0-20260112195511-716be5621a96 // indirect + golang.org/x/net v0.49.0 // indirect + golang.org/x/oauth2 v0.34.0 // indirect + golang.org/x/sys v0.40.0 // indirect + golang.org/x/term v0.39.0 // indirect + golang.org/x/text v0.33.0 // indirect golang.org/x/time v0.9.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect gopkg.in/inf.v0 v0.9.1 // indirect diff --git a/go.sum b/go.sum index bb2237f..2fb4a68 100644 --- a/go.sum +++ b/go.sum @@ -6,14 +6,12 @@ github.com/emicklei/go-restful/v3 v3.12.2 h1:DhwDP0vY3k8ZzE0RunuJy8GhNpPL6zqLkDf github.com/emicklei/go-restful/v3 v3.12.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM= github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= -github.com/genmcp/gevals v0.0.2-rc.1 h1:8JcVwiJNVRcBcYWJpN5kOOxbkm1AaoKBtGWIGNk+SeY= -github.com/genmcp/gevals v0.0.2-rc.1/go.mod h1:YuGxHNuRkq47+0DAEH0EQY1IJ4TUH/29ysnWA2JOLeA= github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-openapi/jsonpointer v0.22.1 h1:sHYI1He3b9NqJ4wXLoJDKmUmHkWy/L7rtEo92JUxBNk= -github.com/go-openapi/jsonpointer v0.22.1/go.mod h1:pQT9OsLkfz1yWoMgYFy4x3U5GY5nUlsOn1qSBH5MkCM= -github.com/go-openapi/jsonreference v0.21.3 h1:96Dn+MRPa0nYAR8DR1E03SblB5FJvh7W6krPI0Z7qMc= -github.com/go-openapi/jsonreference v0.21.3/go.mod h1:RqkUP0MrLf37HqxZxrIAtTWW4ZJIK1VzduhXYBEeGc4= +github.com/go-openapi/jsonpointer v0.22.4 h1:dZtK82WlNpVLDW2jlA1YCiVJFVqkED1MegOUy9kR5T4= +github.com/go-openapi/jsonpointer v0.22.4/go.mod h1:elX9+UgznpFhgBuaMQ7iu4lvvX1nvNsesQ3oxmYTw80= +github.com/go-openapi/jsonreference v0.21.4 h1:24qaE2y9bx/q3uRK/qN+TDwbok1NhbSmGjjySRCHtC8= +github.com/go-openapi/jsonreference v0.21.4/go.mod h1:rIENPTjDbLpzQmQWCj5kKj3ZlmEh+EFVbz3RTUh30/4= github.com/go-openapi/swag v0.25.4 h1:OyUPUFYDPDBMkqyxOTkqDYFnrhuhi9NR6QVUvIochMU= github.com/go-openapi/swag v0.25.4/go.mod h1:zNfJ9WZABGHCFg2RnY0S4IOkAcVTzJ6z2Bi+Q4i6qFQ= github.com/go-openapi/swag/cmdutils v0.25.4 h1:8rYhB5n6WawR192/BfUu2iVlxqVR9aRgGJP6WaBoW+4= @@ -49,6 +47,8 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/mcpchecker/mcpchecker v0.0.3 h1:/6V+6a1vvkjjoebmP9V2gl3sh2phnaUbMb9hQnt5rsU= +github.com/mcpchecker/mcpchecker v0.0.3/go.mod h1:15Hh69Ou6hXPW/Y4anmZs1goa/EdU+QBKGJvhsrcfXE= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -74,26 +74,26 @@ go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0= go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= -golang.org/x/exp/event v0.0.0-20251125195548-87e1e737ad39 h1:f5EV5KaFNN+jMNyN1tqh/XVz+blqdHTmm4QVrPChISw= -golang.org/x/exp/event v0.0.0-20251125195548-87e1e737ad39/go.mod h1:Sq4N4Q6DTQBFxWLvGHTLn9kAanCxrb/6EL3jADLxrIU= -golang.org/x/exp/jsonrpc2 v0.0.0-20251219203646-944ab1f22d93 h1:ZabgC+unQj2M9lE6PttK7ggcnal9oiamCCEaC0z5gSc= -golang.org/x/exp/jsonrpc2 v0.0.0-20251219203646-944ab1f22d93/go.mod h1:WwgJrh4tB4NUHMIiKK4ZXXQvqpz1wCl9jTFiiQtk9DM= -golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= -golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= -golang.org/x/oauth2 v0.33.0 h1:4Q+qn+E5z8gPRJfmRy7C2gGG3T4jIprK6aSYgTXGRpo= -golang.org/x/oauth2 v0.33.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= -golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= -golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= -golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU= -golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254= -golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= -golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= +golang.org/x/exp/event v0.0.0-20260112195511-716be5621a96 h1:l+bY+u9cx/1NImWfu0OVcMmlK19fFvQEXUrm3c/qj/o= +golang.org/x/exp/event v0.0.0-20260112195511-716be5621a96/go.mod h1:Mdr2zZUK+6kOEaz94oXdRj8dk4gD0X6uJ5tlEy7hG04= +golang.org/x/exp/jsonrpc2 v0.0.0-20260112195511-716be5621a96 h1:cN9X2vSBmT3Ruw2UlbJNLJh0iBqTmtSB0dRfh5aumiY= +golang.org/x/exp/jsonrpc2 v0.0.0-20260112195511-716be5621a96/go.mod h1:FGo2nTjljKiUliOH66kiDGWw1Hl9sPoyb/bFuIxjzeQ= +golang.org/x/net v0.49.0 h1:eeHFmOGUTtaaPSGNmjBKpbng9MulQsJURQUAfUwY++o= +golang.org/x/net v0.49.0/go.mod h1:/ysNB2EvaqvesRkuLAyjI1ycPZlQHM3q01F02UY/MV8= +golang.org/x/oauth2 v0.34.0 h1:hqK/t4AKgbqWkdkcAeI8XLmbK+4m4G5YeQRrmiotGlw= +golang.org/x/oauth2 v0.34.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= +golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ= +golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/term v0.39.0 h1:RclSuaJf32jOqZz74CkPA9qFuVTX7vhLlpfj/IGWlqY= +golang.org/x/term v0.39.0/go.mod h1:yxzUCTP/U+FzoxfdKmLaA0RV1WgE0VY7hXBwKtY/4ww= +golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE= +golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8= golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY= golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da h1:noIWHXmPHxILtqtCOPIhSt0ABwskkZKjD3bXGnZGpNY= golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= -google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE= -google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= +google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= +google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/evanphx/json-patch.v4 v4.13.0 h1:czT3CmqEaQ1aanPc5SdlgQrrEIb8w/wwCvWWnfEbYzo= diff --git a/pkg/extension/create.go b/pkg/extension/create.go index c53e3b9..6246c1d 100644 --- a/pkg/extension/create.go +++ b/pkg/extension/create.go @@ -4,7 +4,7 @@ import ( "context" "fmt" - "github.com/genmcp/gevals/pkg/extension/sdk" + "github.com/mcpchecker/mcpchecker/pkg/extension/sdk" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" ) diff --git a/pkg/extension/create_test.go b/pkg/extension/create_test.go index 71f43da..215fc65 100644 --- a/pkg/extension/create_test.go +++ b/pkg/extension/create_test.go @@ -5,7 +5,7 @@ import ( "errors" "testing" - "github.com/genmcp/gevals/pkg/extension/sdk" + "github.com/mcpchecker/mcpchecker/pkg/extension/sdk" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime/schema" ) diff --git a/pkg/extension/delete.go b/pkg/extension/delete.go index e448ccd..df6bcd4 100644 --- a/pkg/extension/delete.go +++ b/pkg/extension/delete.go @@ -4,7 +4,7 @@ import ( "context" "fmt" - "github.com/genmcp/gevals/pkg/extension/sdk" + "github.com/mcpchecker/mcpchecker/pkg/extension/sdk" apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) diff --git a/pkg/extension/delete_test.go b/pkg/extension/delete_test.go index fa1ba1d..9ca0d25 100644 --- a/pkg/extension/delete_test.go +++ b/pkg/extension/delete_test.go @@ -4,7 +4,7 @@ import ( "context" "testing" - "github.com/genmcp/gevals/pkg/extension/sdk" + "github.com/mcpchecker/mcpchecker/pkg/extension/sdk" apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" diff --git a/pkg/extension/extension.go b/pkg/extension/extension.go index caadff3..59fd236 100644 --- a/pkg/extension/extension.go +++ b/pkg/extension/extension.go @@ -7,7 +7,7 @@ import ( "path/filepath" "strings" - "github.com/genmcp/gevals/pkg/extension/sdk" + "github.com/mcpchecker/mcpchecker/pkg/extension/sdk" "k8s.io/client-go/dynamic" "k8s.io/client-go/tools/clientcmd" ) diff --git a/pkg/extension/operations.go b/pkg/extension/operations.go index 291e30e..92fdd28 100644 --- a/pkg/extension/operations.go +++ b/pkg/extension/operations.go @@ -1,7 +1,7 @@ package extension import ( - "github.com/genmcp/gevals/pkg/extension/sdk" + "github.com/mcpchecker/mcpchecker/pkg/extension/sdk" "github.com/google/jsonschema-go/jsonschema" ) diff --git a/pkg/extension/wait.go b/pkg/extension/wait.go index d1cd9dc..f19d4b1 100644 --- a/pkg/extension/wait.go +++ b/pkg/extension/wait.go @@ -5,7 +5,7 @@ import ( "fmt" "time" - "github.com/genmcp/gevals/pkg/extension/sdk" + "github.com/mcpchecker/mcpchecker/pkg/extension/sdk" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/util/wait" ) diff --git a/pkg/extension/wait_test.go b/pkg/extension/wait_test.go index 71f0bcd..9697566 100644 --- a/pkg/extension/wait_test.go +++ b/pkg/extension/wait_test.go @@ -4,7 +4,7 @@ import ( "context" "testing" - "github.com/genmcp/gevals/pkg/extension/sdk" + "github.com/mcpchecker/mcpchecker/pkg/extension/sdk" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime/schema" )