Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ func NewRootCommand(serverVersion string) *cobra.Command {

authClientFactory := client.NewPingOneClientAuthWrapperFactory(serverVersion, mcpEnvironmentId)
// Always run on stdio transport
result.AddCommand(run.NewCommand(tokenStoreFactory, clientFactory, legacyClientFactory, authClientFactory, &mcp.StdioTransport{}))
result.AddCommand(run.NewCommand(tokenStoreFactory, clientFactory, legacyClientFactory, authClientFactory, &mcp.StdioTransport{}, serverVersion))

result.AddCommand(logout.NewCommand(tokenStoreFactory))

Expand Down
4 changes: 2 additions & 2 deletions cmd/run/run.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import (

const commandName = "run"

func NewCommand(tokenStoreFactory tokenstore.TokenStoreFactory, clientFactory sdk.ClientFactory, legacyClientFactory legacy.ClientFactory, authClientFactory client.AuthClientFactory, transport mcp.Transport) *cobra.Command {
func NewCommand(tokenStoreFactory tokenstore.TokenStoreFactory, clientFactory sdk.ClientFactory, legacyClientFactory legacy.ClientFactory, authClientFactory client.AuthClientFactory, transport mcp.Transport, version string) *cobra.Command {
var includedTools []string
var excludedTools []string
var includedToolCollections []string
Expand Down Expand Up @@ -98,7 +98,7 @@ The server will communicate over stdin/stdout.`,
warnAboutPotentialWriteToolsFiltered(cmd.Context(), includedTools)
}

err = server.Start(cmd.Context(), transport, clientFactory, legacyClientFactory, authClientFactory, tokenStore, toolFilter, grantType)
err = server.Start(cmd.Context(), version, transport, clientFactory, legacyClientFactory, authClientFactory, tokenStore, toolFilter, grantType)
if err != nil {
return errs.NewCommandError(commandName, err)
}
Expand Down
5 changes: 3 additions & 2 deletions internal/server/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,11 @@ import (
"github.com/pingidentity/pingone-mcp-server/internal/tools/validation"
)

func Start(ctx context.Context, transport mcp.Transport, clientFactory sdk.ClientFactory, legacySdkClientFactory legacy.ClientFactory, authClientFactory client.AuthClientFactory, tokenStore tokenstore.TokenStore, toolFilter *filter.Filter, grantType auth.GrantType) error {
func Start(ctx context.Context, version string, transport mcp.Transport, clientFactory sdk.ClientFactory, legacySdkClientFactory legacy.ClientFactory, authClientFactory client.AuthClientFactory, tokenStore tokenstore.TokenStore, toolFilter *filter.Filter, grantType auth.GrantType) error {
server := mcp.NewServer(&mcp.Implementation{
Name: "pingone-mcp-server",
Version: "v0.0.1",
Title: "PingOne MCP Server",
Version: version,
}, &mcp.ServerOptions{
Logger: logger.FromContext(ctx),
})
Expand Down
4 changes: 2 additions & 2 deletions internal/server/server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ func TestServer_MCPClient(t *testing.T) {
serverDone := make(chan error, 1)
go func() {
// Pass in dummy client for now, not testing tool functionality
err := server.Start(context.Background(), serverTransport, sdk.NewEmptyClientFactory(), legacy.NewEmptyClientFactory(), testutils.NewEmptyMockAuthClientFactory(), testutils.NewInMemoryTokenStore(), filter.PassthroughFilter(), defaultGrantType)
err := server.Start(context.Background(), "test-version", serverTransport, sdk.NewEmptyClientFactory(), legacy.NewEmptyClientFactory(), testutils.NewEmptyMockAuthClientFactory(), testutils.NewInMemoryTokenStore(), filter.PassthroughFilter(), defaultGrantType)
serverDone <- err
}()

Expand Down Expand Up @@ -121,7 +121,7 @@ func TestServer_ToolFiltering(t *testing.T) {
serverDone := make(chan error, 1)
go func() {
toolFilter := filter.NewFilter(tt.readOnly, tt.includedTools, tt.excludedTools, tt.includedToolCollections, tt.excludedToolCollections)
err := server.Start(context.Background(), serverTransport, sdk.NewEmptyClientFactory(), legacy.NewEmptyClientFactory(), testutils.NewEmptyMockAuthClientFactory(), testutils.NewInMemoryTokenStore(), toolFilter, defaultGrantType)
err := server.Start(context.Background(), "test-version", serverTransport, sdk.NewEmptyClientFactory(), legacy.NewEmptyClientFactory(), testutils.NewEmptyMockAuthClientFactory(), testutils.NewInMemoryTokenStore(), toolFilter, defaultGrantType)
serverDone <- err
}()

Expand Down
2 changes: 1 addition & 1 deletion internal/testutils/execute.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ func ExecuteCliRootCommand(t *testing.T, ctx context.Context, args ...string) (e
func ExecuteCliRunCommand(t *testing.T, ctx context.Context, tokenStoreFactory tokenstore.TokenStoreFactory, clientFactory sdk.ClientFactory, legacyClientFactory legacy.ClientFactory, authClientFactory client.AuthClientFactory, transport mcp.Transport, args ...string) (err error) {
t.Helper()

runCmd := run.NewCommand(tokenStoreFactory, clientFactory, legacyClientFactory, authClientFactory, transport)
runCmd := run.NewCommand(tokenStoreFactory, clientFactory, legacyClientFactory, authClientFactory, transport, TestServerVersion)
prepareTestCommand(runCmd, args...)

return runCmd.ExecuteContext(ctx)
Expand Down