As of Version 11.3, there is an undocumented utility package, called
Statistics`MCMC`
I came to know of it from the example notebook of this repository by @Sjoerd Smit.
The main function to create the Markov Chain is
Statistics`MCMC`BuildMarkovChain["method"][arguments]
Run
Statistics`MCMC`MCMCData[]
to get all available methods to run.
To check the usage, put "Usage" after the name of the method. For example, to get the usage of the {"AdaptiveMetropolis", "Log"}, run:
Statistics`MCMC`MCMCData[{"AdaptiveMetropolis", "Log"}, "Usage"]
Statistics`MCMC`MCMCData[{"AdaptiveMetropolis", "Log"}, "Example"]
Once the chain is created, use
Statistics`MCMC`MarkovChainIterate[chainName, numOfSamples]
Statistics`MCMC`MarkovChainIterate[chainName, {numOfSamples, numberOfIterationsBetweenEachSample}]
to iterate the chain. The output is the sample. To get the status of the chain, print it. The chain is a MarkovChainObject. Take its first part to get an Association. It contains all info of the chain at that point in the iteration.
Example (update)
(Following the example in the aforementioned example notebook)
Let's create a custom logPDF function, set an initial point, an initial covariance matrix, and the number of steps after which to calculate the covariance matrices. This lets us create a Markov chain.
logPDF=Compile[{{pt, _Real, 1}}, - pt. pt];
initPoint={0,0};
initCovariance=DiagonalMatrix[ConstantArray[1, Length[initPoint]]];
delay=20;
chain=Statistics`MCMC`BuildMarkovChain[{"AdaptiveMetropolis", "Log"}][initPoint,logPDF,{initCovariance,delay}, Real, Compiled -> True]
Out:=

Now let's do a burn-in for 10000 steps, and then create a sample of 100000.
Statistics`MCMC`MarkovChainIterate[chain,10000];
sample=Statistics`MCMC`MarkovChainIterate[chain,100000];
Mean[sample]
Covariance[sample]
Correlation[sample]
SmoothDensityHistogram[sample]
Out:=
{-0.0124793, -0.0125073}
{{0.526805, -0.00857408}, {-0.00857408, 0.496705}}
{{1., -0.0167615}, {-0.0167615, 1.}}