diff --git a/lib/nodets/test/server.ts b/lib/nodets/test/server.ts
new file mode 100644
index 0000000..2da53ae
--- /dev/null
+++ b/lib/nodets/test/server.ts
@@ -0,0 +1,26 @@
+import thrift = require("thrift");
+var program = require('commander');
+import ThriftTest = require('./gen-nodejs/ThriftTest');
+import test_handler = require('./test_handler');
+
+
+program
+  .option('--port <port>', 'Set thrift server port', 9090)
+  .option('--promise', 'test with promise style functions')
+  .option('--protocol', '"Set thrift protocol (binary) [protocol]"')
+  .parse(process.argv);
+
+var port: number = program.port;
+
+var options: thrift.ServerOptions = {
+  transport: thrift.TBufferedTransport,
+  protocol: thrift.TBinaryProtocol
+};
+
+var server: thrift.Server;
+if (program.promise) {
+  server = thrift.createServer(ThriftTest.Processor, new test_handler.AsyncThriftTestHandler(), options);
+} else {
+  server = thrift.createServer(ThriftTest.Processor, new test_handler.SyncThriftTestHandler(), options);
+}
+server.listen(port);
