diff --git a/apps/foo/src/main/java/org/onlab/onos/foo/SimpleNettyServer.java b/apps/foo/src/main/java/org/onlab/onos/foo/SimpleNettyServer.java
index 5578fcd..47b05cd 100644
--- a/apps/foo/src/main/java/org/onlab/onos/foo/SimpleNettyServer.java
+++ b/apps/foo/src/main/java/org/onlab/onos/foo/SimpleNettyServer.java
@@ -18,7 +18,8 @@
             }
 
         public static void startStandalone(String[] args) throws Exception {
-            NettyMessagingService server = new NettyMessagingService(8081);
+            int port = args.length > 0 ? Integer.parseInt(args[0]) : 8081;
+            NettyMessagingService server = new NettyMessagingService(port);
             server.activate();
             server.registerHandler("simple", new NettyLoggingHandler());
             server.registerHandler("echo", new NettyEchoHandler());
diff --git a/apps/foo/src/main/java/org/onlab/onos/foo/SimpleNettyServerCommand.java b/apps/foo/src/main/java/org/onlab/onos/foo/SimpleNettyServerCommand.java
index 17b2586..77371f8 100644
--- a/apps/foo/src/main/java/org/onlab/onos/foo/SimpleNettyServerCommand.java
+++ b/apps/foo/src/main/java/org/onlab/onos/foo/SimpleNettyServerCommand.java
@@ -14,22 +14,15 @@
 public class SimpleNettyServerCommand extends AbstractShellCommand {
 
     //FIXME: Replace these with parameters for
-    @Argument(index = 0, name = "serverIp", description = "Server IP address",
+    @Argument(index = 0, name = "port", description = "Port to listen",
               required = false, multiValued = false)
-    String serverIp = "127.0.0.1";
+    String port = "8081";
 
-    @Argument(index = 1, name = "workers", description = "IO workers",
-              required = false, multiValued = false)
-    String workers = "6";
-
-    @Argument(index = 2, name = "messageLength", description = "Message length (bytes)",
-              required = false, multiValued = false)
-    String messageLength = "128";
 
     @Override
     protected void execute() {
         try {
-            startStandalone(new String[]{serverIp, workers, messageLength});
+            startStandalone(new String[]{port});
         } catch (Exception e) {
             error("Unable to start server %s", e);
         }
