object PropagateTraceparent { private val traceparent = MetaKey.traceParent().toLens() operator fun invoke() = McpFilter { next -> { req -> req.http.header("traceparent")?.let { val params = req.json.params as? MoshiObject val metaNode = params?.attributes?.get("_meta") as? MoshiObject val meta = Meta(metaNode ?: MoshiObject()) params?.attributes["_meta"] = traceparent(it, meta).node } next(req) } } }