MappingProxyType is like a dict where the __setattr__ method will always throw an error. By design, you cannot add any new key/value pairs. However, you can obtain a shallow copy of its contents in a normal dictionary.
Assuming you have a mapping proxy...
import types
# Given a normal dictionary...
dictionary = {
  "foo": 10,
  "bar": 20,
}
# That has been wrapped in a mapping proxy...
proxy = types.MappingProxyType(dictionary)
# That cannot accept new key/value pairs...
proxy["baz"] = 30 # Throws TypeError: 'mappingproxy' object does not support item assignment
You can create a shallow copy of its inner dictionary like so:
dictionary_copy = proxy.copy()
print(type(dictionary_copy))         # Prints "<class 'dict'>"
print(dictionary_copy is dictionary) # Prints "False" because it's a copy
dictionary_copy["baz"] = 30          # Doesn't throw any errors
As far as I'm aware, there's no way to extract the original dictionary, or add new key/value pairs without making a copy first.