diff --git a/pkg/grpc/server.go b/pkg/grpc/server.go
index 43f2912..fa5c521 100644
--- a/pkg/grpc/server.go
+++ b/pkg/grpc/server.go
@@ -17,7 +17,6 @@
 
 import (
 	"context"
-	"fmt"
 	"google.golang.org/grpc"
 	"google.golang.org/grpc/codes"
 	"google.golang.org/grpc/credentials"
@@ -62,7 +61,6 @@
 type GrpcServer struct {
 	gs       *grpc.Server
 	address  string
-	port     int
 	secure   bool
 	services []func(*grpc.Server)
 	probe    ReadyProbe // optional
@@ -75,14 +73,12 @@
 */
 func NewGrpcServer(
 	address string,
-	port int,
 	certs *GrpcSecurity,
 	secure bool,
 	probe ReadyProbe,
 ) *GrpcServer {
 	server := &GrpcServer{
 		address:      address,
-		port:         port,
 		secure:       secure,
 		GrpcSecurity: certs,
 		probe:        probe,
@@ -95,9 +91,7 @@
 */
 func (s *GrpcServer) Start(ctx context.Context) {
 
-	host := fmt.Sprintf("%s:%d", s.address, s.port)
-
-	lis, err := net.Listen("tcp", host)
+	lis, err := net.Listen("tcp", s.address)
 	if err != nil {
 		logger.Fatalf("failed to listen: %v", err)
 	}
diff --git a/pkg/grpc/server_test.go b/pkg/grpc/server_test.go
index df3911c..729ffc7 100644
--- a/pkg/grpc/server_test.go
+++ b/pkg/grpc/server_test.go
@@ -38,12 +38,12 @@
 }
 
 func TestNewGrpcServer(t *testing.T) {
-	server := NewGrpcServer("127.0.0.1", 1234, nil, false, nil)
+	server := NewGrpcServer("127.0.0.1:1234", nil, false, nil)
 	assert.NotNil(t, server)
 }
 
 func TestMkServerInterceptorNoProbe(t *testing.T) {
-	server := NewGrpcServer("127.0.0.1", 1234, nil, false, nil)
+	server := NewGrpcServer("127.0.0.1:1234", nil, false, nil)
 	assert.NotNil(t, server)
 
 	f := mkServerInterceptor(server)
@@ -64,7 +64,7 @@
 func TestMkServerInterceptorReady(t *testing.T) {
 	probe := &MockReadyProbe{Ready: true}
 
-	server := NewGrpcServer("127.0.0.1", 1234, nil, false, probe)
+	server := NewGrpcServer("127.0.0.1:1234", nil, false, probe)
 	assert.NotNil(t, server)
 
 	f := mkServerInterceptor(server)
@@ -85,7 +85,7 @@
 func TestMkServerInterceptorNotReady(t *testing.T) {
 	probe := &MockReadyProbe{Ready: false}
 
-	server := NewGrpcServer("127.0.0.1", 1234, nil, false, probe)
+	server := NewGrpcServer("127.0.0.1:1234", nil, false, probe)
 	assert.NotNil(t, server)
 
 	f := mkServerInterceptor(server)
