The TMS and WMTS is focus on tile image, and I think the GetFeatureInfo can be used for your scenario.
You can easily implement that like this:
protected override string GetFeatureInfoCore(GetFeatureInfoRequest getFeatureInfoRequest, MapConfiguration cachedMapConfiguration, System.Web.HttpContext context)
// Your code
return base.GetFeatureInfoCore(getFeatureInfoRequest, cachedMapConfiguration, context);
But you also need to write code to render the return value by your custom code.
And in our coming GisServer, we will support return serialized object instead of tile image.