diff --git a/simple_server.h b/simple_server.h
new file mode 100644
index 0000000..159e7ff
--- /dev/null
+++ b/simple_server.h
@@ -0,0 +1,61 @@
+/* Copyright 2016 The Roughtime Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License. */
+
+#ifndef SECURITY_ROUGHTIME_SIMPLE_SERVER_H_
+#define SECURITY_ROUGHTIME_SIMPLE_SERVER_H_
+
+#include <arpa/inet.h>
+#include <netinet/in.h>
+
+#include "server.h"
+#include "time_source.h"
+#include "udp_processor.h"
+
+namespace roughtime {
+
+// SimpleServer wraps |Server| with enough intelligence to read requests from,
+// and write requests to, a supplied socket.  There's no reason in principle
+// that one couldn't run multiple instances per socket.
+//
+// This class exists for testing and to provide an example rather than as a
+// basis for a production-quality server.
+class SimpleServer {
+ public:
+  // |identity| is the server's certificate.  |fd| is the socket to be used to
+  // receive requests and send responses.
+  SimpleServer(std::unique_ptr<Identity> identity,
+               std::unique_ptr<TimeSource> time_source, int fd);
+
+  // RunUntilError receives and responds to a batches of requests until an
+  // unexpected error occurs.
+  void RunUntilError();
+
+  // ProcessBatch calls UdpProcessor::ProcessBatch.
+  bool ProcessBatch();
+
+  // MakeIdentity creates a dummy server certificate that is valid for the
+  // given time range.
+  static std::unique_ptr<Identity> MakeIdentity(
+      const uint8_t root_private_key[ED25519_PRIVATE_KEY_LEN], uint64_t mint,
+      uint64_t maxt);
+
+ private:
+  const int fd_;
+  Server server_;
+  UdpProcessor udp_processor_;
+};
+
+}  // namespace roughtime
+
+#endif  // SECURITY_ROUGHTIME_SIMPLE_SERVER_H_
