I tried it with dynamic query and it worked for me
declare @SqlServer varchar(100)
declare @DatabaseName varchar(100)
SET @query = @query + ' SELECT COUNT(*) FROM [@SqlServer$].[@DB$].dbo.Table1
SET @query = replace(@query, '@DB$', @DatabaseName)
SET @query = replace(@query, '@SqlServer$', @SqlServer)
I tried this query too
SELECT * FROM [server].[database].[scheme].[table]
It worked.