NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #2164 most downloaded on Packagist
Provides a configuration factory and rule set factories for friendsofphp/php-cs-fixer.
Last release today
03 Oct 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
173 releases · first in 2019
For a full diff see [6.25.0...6.25.1][6.25.0...6.25.1].
For a full diff see [6.25.0...6.25.1][6.25.0...6.25.1].
friendsofphp/php-cs-fixer ([#1039]), by [@dependabot]For a full diff see [6.24.0...6.25.0][6.24.0...6.25.0].
For a full diff see [6.24.0...6.25.0][6.24.0...6.25.0].
friendsofphp/php-cs-fixer ([#1037]), by [@dependabot]One column per quarter.
For a full diff see [6.23.0...6.24.0][6.23.0...6.24.0].
For a full diff see [6.23.0...6.24.0][6.23.0...6.24.0].
kubawerlos/php-cs-fixer-custom-fixers ([#1025]), by [@dependabot]friendsofphp/php-cs-fixer ([#1026]), by [@dependabot]namespaces option of no_uneeded_braces fixer ([#1036]), by [@localheinz]For a full diff see [6.22.0...6.23.0][6.22.0...6.23.0].
For a full diff see [6.22.0...6.23.0][6.22.0...6.23.0].
friendsofphp/php-cs-fixer ([#1021]), by [@dependabot]phpdoc_array_type instead of the PhpCsFixerCustomFixers/phpdoc_array_style fixer ([#1023]), by [@localheinz]For a full diff see [6.21.0...6.22.0][6.21.0...6.22.0].
For a full diff see [6.21.0...6.22.0][6.21.0...6.22.0].
kubawerlos/php-cs-fixer-custom-fixers ([#1009]), by [@dependabot]fully_qualified_strict_types fixer ([#1010]), by [@localheinz]global_namespace_import instead of the PhpCsFixerCustomFixers/no_import_from_global_namespace fixer ([#1011]), by [@localheinz]For a full diff see [6.20.0...6.21.0][6.20.0...6.21.0].
For a full diff see [6.20.0...6.21.0][6.20.0...6.21.0].
kubawerlos/php-cs-fixer-custom-fixers ([#996]), by [@dependabot]friendsofphp/php-cs-fixer ([#1005]), by [@dependabot]phpdoc_list_type instead of the PhpCsFixerCustomFixers/phpdoc_type_list fixer ([#1006]), by [@localheinz]kubawerlos/php-cs-fixer-custom-fixers ([#997]), by [@dependabot]For a full diff see [6.19.0...6.20.0][6.19.0...6.20.0].
For a full diff see [6.19.0...6.20.0][6.19.0...6.20.0].
erickskrauch/php-cs-fixer-custom-fixers ([#984]), by [@dependabot]friendsofphp/php-cs-fixer ([#993]), by [@dependabot]multiline_string_to_heredoc fixer ([#994]), by [@localheinz]For a full diff see [6.18.0...6.19.0][6.18.0...6.19.0].
For a full diff see [6.18.0...6.19.0][6.18.0...6.19.0].
PhpCsFixerCustomFixers/multiline_comment_opening_closing_alone fixer ([#974]), by [@localheinz]PhpCsFixerCustomFixers/multiline_promoted_properties fixer ([#975]), by [@localheinz]PhpCsFixerCustomFixers/no_duplicated_array_key fixer ([#976]), by [@localheinz]PhpCsFixerCustomFixers/no_duplicated_imports fixer ([#977]), by [@localheinz]PhpCsFixerCustomFixers/no_import_from_global_namespace fixer ([#978]), by [@localheinz]PhpCsFixerCustomFixers/phpdoc_types_comma_spaces fixer ([#979]), by [@localheinz]For a full diff see [6.17.0...6.18.0][6.17.0...6.18.0].
For a full diff see [6.17.0...6.18.0][6.17.0...6.18.0].
kubawerlos/php-cs-fixer-custom-fixers ([#970]), by [@dependabot]friendsofphp/php-cs-fixer ([#972]), by [@dependabot]PhpCsFixerCustomFixers/phpdoc_type_list fixer ([#973]), by [@localheinz]For a full diff see [6.16.1...6.17.0][6.16.1...6.17.0].
For a full diff see [6.16.1...6.17.0][6.16.1...6.17.0].
friendsofphp/php-cs-fixer ([#969]), by [@dependabot]For a full diff see [6.16.0...6.16.1][6.16.0...6.16.1].
For a full diff see [6.16.0...6.16.1][6.16.0...6.16.1].
friendsofphp/php-cs-fixer ([#968]), by [@dependabot]For a full diff see [6.15.0...6.16.0][6.15.0...6.16.0].
For a full diff see [6.15.0...6.16.0][6.15.0...6.16.0].
friendsofphp/php-cs-fixer ([#967]), by [@dependabot]For a full diff see [6.14.0...6.15.0][6.14.0...6.15.0].
For a full diff see [6.14.0...6.15.0][6.14.0...6.15.0].
friendsofphp/php-cs-fixer ([#963]), by [@dependabot]kubawerlos/php-cs-fixer-custom-fixers ([#962]), by [@dependabot]For a full diff see [6.13.1...6.14.0][6.13.1...6.14.0].
For a full diff see [6.13.1...6.14.0][6.13.1...6.14.0].
friendsofphp/php-cs-fixer ([#956]), by [@localheinz]For a full diff see [6.13.0...6.13.1][6.13.0...6.13.1].
For a full diff see [6.13.0...6.13.1][6.13.0...6.13.1].
friendsofphp/php-cs-fixer ([#955]), by [@localheinz]For a full diff see [6.12.0...6.13.0][6.12.0...6.13.0].
For a full diff see [6.12.0...6.13.0][6.12.0...6.13.0].
For a full diff see [6.11.0...6.12.0][6.11.0...6.12.0].
For a full diff see [6.11.0...6.12.0][6.11.0...6.12.0].
friendsofphp/php-cs-fixer ([#942]), by [@dependabot]For a full diff see [6.10.0...6.11.0][6.10.0...6.11.0].
For a full diff see [6.10.0...6.11.0][6.10.0...6.11.0].
friendsofphp/php-cs-fixer ([#930]), by [@dependabot]For a full diff see [6.9.0...6.10.0][6.9.0...6.10.0].
For a full diff see [6.9.0...6.10.0][6.9.0...6.10.0].
friendsofphp/php-cs-fixer ([#928]), by [@dependabot]For a full diff see [6.8.1...6.9.0][6.8.1...6.9.0].
For a full diff see [6.8.1...6.9.0][6.8.1...6.9.0].
case option of elements option of class_attributes_separation fixer ([#922]), by [@localheinz]@all instead of individual sets for sets option of no_alias_functions fixer ([#923]), by [@localheinz]friendsofphp/php-cs-fixer ([#927]), by [@dependabot]get_called_class and get_class options from functions option of function_to_constant fixer where the resulting code would be incompatible with the target PHP version ([#923]), by [@localheinz]For a full diff see [6.8.0...6.8.1][6.8.0...6.8.1].
For a full diff see [6.8.0...6.8.1][6.8.0...6.8.1].
friendsofphp/php-cs-fixer ([#918]), by [@dependabot]For a full diff see [6.7.0...6.8.0][6.7.0...6.8.0].
For a full diff see [6.7.0...6.8.0][6.7.0...6.8.0].
friendsofphp/php-cs-fixer ([#917]), by [@dependabot]For a full diff see [6.6.0...6.7.0][6.6.0...6.7.0].
For a full diff see [6.6.0...6.7.0][6.6.0...6.7.0].
Config\Ruleset\Php83 rule set factory ([#914]), by [@localheinz]friendsofphp/php-cs-fixer ([#908]), by [@dependabot]For a full diff see [6.5.0...6.6.0][6.5.0...6.6.0].
For a full diff see [6.5.0...6.6.0][6.5.0...6.6.0].
friendsofphp/php-cs-fixer ([#904]), by [@dependabot]For a full diff see [6.4.0...6.5.0][6.4.0...6.5.0].
For a full diff see [6.4.0...6.5.0][6.4.0...6.5.0].
friendsofphp/php-cs-fixer ([#902]), by [@dependabot]friendsofphp/php-cs-fixer ([#903]), by [@dependabot]For a full diff see [6.3.0...6.4.0][6.3.0...6.4.0].
For a full diff see [6.3.0...6.4.0][6.3.0...6.4.0].
friendsofphp/php-cs-fixer ([#900]), by [@dependabot]attribute_empty_parentheses fixer ([#901]), by [@localheinz]For a full diff see [6.2.0...6.3.0][6.2.0...6.3.0].
For a full diff see [6.2.0...6.3.0][6.2.0...6.3.0].
friendsofphp/php-cs-fixer ([#896]), by [@dependabot]friendsofphp/php-cs-fixer ([#899]), by [@dependabot]For a full diff see [6.1.0...6.2.0][6.1.0...6.2.0].
For a full diff see [6.1.0...6.2.0][6.1.0...6.2.0].
kubawerlos/php-cs-fixer-custom-fixers and enabled the PhpCsFixerCustomFixers/phpdoc_array_style fixer ([#894]), by [@localheinz]For a full diff see [6.0.0...6.1.0][6.0.0...6.1.0].
For a full diff see [6.0.0...6.1.0][6.0.0...6.1.0].
erickskrauch/php-cs-fixer-custom-fixers and enabled the ErickSkrauch/line_break_after_statements fixer ([#889]), by [@localheinz]For a full diff see [5.16.0...6.0.0][5.16.0...6.0.0].
For a full diff see [5.16.0...6.0.0][5.16.0...6.0.0].
Config\Name as a value object ([#870]), by [@localheinz]Config\PhpVersion as a value object ([#871]), by [@localheinz]Config\Rules as a value object ([#874]), by [@localheinz]Config\Fixers as a value object ([#883]), by [@localheinz]Config\RuleSet::withRules() to allow overriding Config\Rules ([#891]), by [@localheinz]Config\RuleSet::withCustomFixers() to allow registering additional Config\Fixers ([#893]), by [@localheinz]Config\RuleSet to declare and configure custom fixers ([#872]), by [@localheinz]Config\RuleSet::targetPhpVersion() to Config\RuleSet::phpVersion() ([#878]), by [@localheinz]Config\RuleSet\Php53::create(), Config\RuleSet\Php54::create(), Config\RuleSet\Php55::create(), Config\RuleSet\Php56::create(), Config\RuleSet\Php70::create(), Config\RuleSet\Php71::create(), Config\RuleSet\Php72::create(), Config\RuleSet\Php73::create(), Config\RuleSet\Php74::create(), Config\RuleSet\Php80::create(), Config\RuleSet\Php81::create(), Config\RuleSet\Php82::create() ([#886]), by [@localheinz]Config\RuleSet into a value object returned from named constructors Config\RuleSet\Php53::create(), Config\RuleSet\Php54::create(), Config\RuleSet\Php55::create(), Config\RuleSet\Php56::create(), Config\RuleSet\Php70::create(), Config\RuleSet\Php71::create(), Config\RuleSet\Php72::create(), Config\RuleSet\Php73::create(), Config\RuleSet\Php74::create(), Config\RuleSet\Php80::create(), Config\RuleSet\Php81::create(), Config\RuleSet\Php82::create() ([#888]), by [@localheinz]Config\Ruleset\Php53, Config\Ruleset\Php54, Config\Ruleset\Php55, Config\Ruleset\Php56, and Config\Ruleset\Php70 ([#864]), by [@localheinz]$name field from Config\Ruleset\AbstractRuleSet ([#865]), by [@localheinz]$targetPhpVersion field and targetPhpVersion() method from Config\Ruleset\AbstractRuleSet ([#866]), by [@localheinz]name() method from Config\Ruleset\AbstractRuleSet ([#867]), by [@localheinz]rules() method from Config\Ruleset\AbstractRuleSet ([#868]), by [@localheinz]DOCTRINE_IGNORED_TAGS constant from Config\Ruleset\AbstractRuleSet ([#875]), by [@localheinz]Config\Ruleset\AbstractRuleSet ([#876]), by [@localheinz]Config\Ruleset\AbstractRuleSet ([#877]), by [@localheinz]Config\RuleSet\ExplicitRuleSet ([#885]), by [@localheinz]$header parameter from Config\RuleSet\Php53::create(), Config\RuleSet\Php54::create(), Config\RuleSet\Php55::create(), Config\RuleSet\Php56::create(), Config\RuleSet\Php70::create(), Config\RuleSet\Php71::create(), Config\RuleSet\Php72::create(), Config\RuleSet\Php73::create(), Config\RuleSet\Php74::create(), Config\RuleSet\Php80::create(), Config\RuleSet\Php81::create(), Config\RuleSet\Php82::create() and added Config\RuleSet\Php53::withHeader(), Config\RuleSet\Php54::withHeader(), Config\RuleSet\Php55::withHeader(), Config\RuleSet\Php56::withHeader(), Config\RuleSet\Php70::withHeader(), Config\RuleSet\Php71::withHeader(), Config\RuleSet\Php72::withHeader(), Config\RuleSet\Php73::withHeader(), Config\RuleSet\Php74::withHeader(), Config\RuleSet\Php80::withHeader(), Config\RuleSet\Php81::withHeader(), Config\RuleSet\Php82::withHeader() mutators ([#887]), by [@localheinz]$overrideRules parameter from Config\Factory::fromRuleSet() ([#892]), by [@localheinz]For a full diff see [5.15.1...5.16.0][5.15.1...5.16.0].
For a full diff see [5.15.1...5.16.0][5.15.1...5.16.0].
For a full diff see [5.15.0...5.15.1][5.15.0...5.15.1].
For a full diff see [5.15.0...5.15.1][5.15.0...5.15.1].
friendsofphp/php-cs-fixer ([#857]), by [@dependabot]For a full diff see [5.14.2...5.15.0][5.14.2...5.15.0].
For a full diff see [5.14.2...5.15.0][5.14.2...5.15.0].
friendsofphp/php-cs-fixer ([#856]), by [@dependabot]For a full diff see [5.14.1...5.14.2][5.14.1...5.14.2].
For a full diff see [5.14.1...5.14.2][5.14.1...5.14.2].
friendsofphp/php-cs-fixer ([#850]), by [@dependabot]For a full diff see [5.14.0...5.14.1][5.14.0...5.14.1].
For a full diff see [5.14.0...5.14.1][5.14.0...5.14.1].
friendsofphp/php-cs-fixer ([#849]), by [@dependabot]For a full diff see [5.13.0...5.14.0][5.13.0...5.14.0].
For a full diff see [5.13.0...5.14.0][5.13.0...5.14.0].
friendsofphp/php-cs-fixer ([#848]), by [@dependabot]For a full diff see [5.12.0...5.13.0][5.12.0...5.13.0].
For a full diff see [5.12.0...5.13.0][5.12.0...5.13.0].
friendsofphp/php-cs-fixer ([#840]), by [@dependabot]return_to_yield_from fixer ([#841]), by [@localheinz]For a full diff see [5.11.1...5.12.0][5.11.1...5.12.0].
For a full diff see [5.11.1...5.12.0][5.11.1...5.12.0].
friendsofphp/php-cs-fixer ([#825]), by [@dependabot]php_unit_data_provider_return_type fixer ([#826]), by [@localheinz]For a full diff see [5.11.0...5.11.1][5.11.0...5.11.1].
For a full diff see [5.11.0...5.11.1][5.11.0...5.11.1].
friendsofphp/php-cs-fixer ([#824]), by [@dependabot]For a full diff see [5.10.0...5.11.0][5.10.0...5.11.0].
For a full diff see [5.10.0...5.11.0][5.10.0...5.11.0].
friendsofphp/php-cs-fixer ([#815]), by [@dependabot]nullable_type_declaration fixer ([#816]), by [@localheinz]type_declaration_spaces fixer to include property in the elements option ([#817]), by [@localheinz]For a full diff see [5.9.2...5.10.0][5.9.2...5.10.0].
For a full diff see [5.9.2...5.10.0][5.9.2...5.10.0].
friendsofphp/php-cs-fixer ([#810]), by [@dependabot]For a full diff see [5.9.1...5.9.2][5.9.1...5.9.2].
For a full diff see [5.9.1...5.9.2][5.9.1...5.9.2].
friendsofphp/php-cs-fixer ([#804]), by [@dependabot]For a full diff see [5.9.0...5.9.1][5.9.0...5.9.1].
For a full diff see [5.9.0...5.9.1][5.9.0...5.9.1].
friendsofphp/php-cs-fixer ([#803]), by [@dependabot]For a full diff see [5.8.0...5.9.0][5.8.0...5.9.0].
For a full diff see [5.8.0...5.9.0][5.8.0...5.9.0].
friendsofphp/php-cs-fixer ([#802]), by [@dependabot]For a full diff see [5.7.0...5.8.0][5.7.0...5.8.0].
For a full diff see [5.7.0...5.8.0][5.7.0...5.8.0].
friendsofphp/php-cs-fixer ([#800]), by [@dependabot]For a full diff see [5.6.0...5.7.0][5.6.0...5.7.0].
For a full diff see [5.6.0...5.7.0][5.6.0...5.7.0].
friendsofphp/php-cs-fixer ([#787]), by [@dependabot]ordered_types fixer ([#788]), by [@localheinz]phpdoc_param_order fixer ([#789]), by [@localheinz]For a full diff see [5.5.2...5.6.0][5.5.2...5.6.0].
For a full diff see [5.5.2...5.6.0][5.5.2...5.6.0].
Config\Ruleset\Php74 rule set ([#773]), by [@localheinz]Config\Ruleset\Php73 rule set ([#774]), by [@localheinz]Config\Ruleset\Php72 rule set ([#775]), by [@localheinz]Config\Ruleset\Php71 rule set ([#776]), by [@localheinz]Config\Ruleset\Php70 rule set ([#777]), by [@localheinz]Config\Ruleset\Php56 rule set ([#783]), by [@localheinz]Config\Ruleset\Php55 rule set ([#784]), by [@localheinz]Config\Ruleset\Php54 rule set ([#785]), by [@localheinz]Config\Ruleset\Php53 rule set ([#786]), by [@localheinz]Released: 28 Aug 2014
Announcement: English
ChangeLog
Download:
PHP 5.6.0 (tar.bz2) 097af1be34fc73965e6f8401fd10e73eb56e1969ed4ffd691fb7e91606d0fc09 Copy
PHP 5.6.0 (tar.gz) 284b85376c630a6a7163e5278d64b8526fa1324fe5fd5d21174b54e2c056533f Copy
PHP 5.6.0 (tar.xz) 8fc5411cd05cc6cc663247e588931fe67b1dc0e42550fa28ab2c943ad84eda02 Copy
For a full diff see [5.5.1...5.5.2][5.5.1...5.5.2].
For a full diff see [5.5.1...5.5.2][5.5.1...5.5.2].
php_unit_test_class_requires_covers fixer ([#765]), by [@localheinz]Released: 15 Aug 2013
Announcement: English
ChangeLog
Download:
PHP 5.5.2 (tar.bz2)
PHP 5.5.2 (tar.gz)
PHP 5.5.2 (tar.xz)
For a full diff see [5.5.0...5.5.1][5.5.0...5.5.1].
For a full diff see [5.5.0...5.5.1][5.5.0...5.5.1].
php_unit_internal_class fixer ([#764]), by [@localheinz]Released: 18 Jul 2013
Announcement: English
ChangeLog
Download:
PHP 5.5.1 (tar.bz2)
PHP 5.5.1 (tar.gz)
PHP 5.5.1 (tar.xz)
Configured phpdoc_separation fixer to group @deprecated annotations into a separate group ([#751]), by [@localheinz]
For a full diff see [5.4.0...5.5.0][5.4.0...5.5.0].
phpdoc_separation fixer to group @deprecated annotations into a separate group ([#751]), by [@localheinz]Released: 20 Jun 2013
Announcement: English
ChangeLog
Download:
PHP 5.5.0 (tar.bz2)
PHP 5.5.0 (tar.gz)
PHP 5.5.0 (tar.xz)
Enabled and configured the single_space_around_construct fixer as a replacement for the deprecated single_space_after_construct fixer ([#746]), by [@l…
For a full diff see [5.3.3...5.4.0][5.3.3...5.4.0].
friendsofphp/php-cs-fixer ([#746]), by [@dependabot]single_space_around_construct fixer as a replacement for the deprecated single_space_after_construct fixer ([#746]), by [@localheinz]constructs_contain_a_single_space option of the single_space_around_construct fixer to enforce a single space in yield from constructs ([#747]), by [@localheinz]constructs_followed_by_a_single_space option of the single_space_around_construct fixer to include additional constructs ([#748]), by [@localheinz]braces fixer ([#746]), by [@localheinz]single_space_after_construct fixer ([#746]), by [@localheinz]force option of the php_unit_data_provider_static fixer ([#746]), by [@localheinz]Released: 01 March 2012
Announcement: English
ChangeLog
Download:
PHP 5.4.0 (tar.bz2)
PHP 5.4.0 (tar.gz)
For a full diff see [5.3.2...5.3.3][5.3.2...5.3.3].
For a full diff see [5.3.2...5.3.3][5.3.2...5.3.3].
friendsofphp/php-cs-fixer ([#738]), by [@dependabot]Released: 22 July 2010
Announcement: English
ChangeLog
Download:
PHP 5.3.3 (tar.bz2)
PHP 5.3.3 (tar.gz)
For a full diff see [5.3.1...5.3.2][5.3.1...5.3.2].
For a full diff see [5.3.1...5.3.2][5.3.1...5.3.2].
friendsofphp/php-cs-fixer ([#737]), by [@dependabot]Released: 04 Mar 2010
Announcement: English
ChangeLog
Download:
PHP 5.3.2 (tar.bz2)
PHP 5.3.2 (tar.gz)
For a full diff see [5.3.0...5.3.1][5.3.0...5.3.1].
For a full diff see [5.3.0...5.3.1][5.3.0...5.3.1].
friendsofphp/php-cs-fixer ([#718]), by [@dependabot]Released: 19 Nov 2009
Announcement: English
ChangeLog
Download:
PHP 5.3.1 (tar.bz2)
PHP 5.3.1 (tar.gz)
For a full diff see [5.2.0...5.3.0][5.2.0...5.3.0].
For a full diff see [5.2.0...5.3.0][5.2.0...5.3.0].
friendsofphp/php-cs-fixer ([#710]), by [@dependabot]no_multiple_statements_per_line fixer ([#711]), by [@localheinz]Released: 30 June 2009
Announcement: English
ChangeLog
Download:
PHP 5.3.0 (tar.bz2)
PHP 5.3.0 (tar.gz)
For a full diff see [5.1.1...5.2.0][5.1.1...5.2.0].
For a full diff see [5.1.1...5.2.0][5.1.1...5.2.0].
phpdoc_order fixer to order additional annotations ([#694]), by [@localheinz]Released: 02 Nov 2006
Announcement: English
ChangeLog
Download:
Source (tar.bz2)
Source (tar.gz)
Windows binary
Collection of PECL modules for PHP 5.2.0
For a full diff see [5.1.0...5.1.1][5.1.0...5.1.1].
For a full diff see [5.1.0...5.1.1][5.1.0...5.1.1].
friendsofphp/php-cs-fixer ([#693]), by [@dependabot]Released: 28 Nov 2005
Announcement: English
ChangeLog
Download:
Source (tar.gz)
Windows binary
Windows installer
Collection of PECL modules for PHP 5.1.1
For a full diff see [5.0.1...5.1.0][5.0.1...5.1.0].
For a full diff see [5.0.1...5.1.0][5.0.1...5.1.0].
Config\Ruleset\Php82 rule set ([#690]), by [@localheinz]Released: 24 Nov 2005
Announcement: English
ChangeLog
Download:
Source (tar.gz)
Windows binary
Windows installer
For a full diff see [5.0.0...5.0.1][5.0.0...5.0.1].
For a full diff see [5.0.0...5.0.1][5.0.0...5.0.1].
friendsofphp/php-cs-fixer ([#684]), by [@dependabot]Released: 12 Aug 2004
Announcement: English
ChangeLog
Download:
Source (tar.gz)
Windows binary
Collection of PECL modules for PHP 5.0.1
For a full diff see [4.11.0...5.0.0][4.11.0...5.0.0].
For a full diff see [4.11.0...5.0.0][4.11.0...5.0.0].
Php74 rule set ([#673]), by [@localheinz]Released: 13 July 2004
Announcement: English
ChangeLog
Download:
Source (tar.gz)
Windows binary
Windows installer
Collection of PECL modules for PHP 5.0.0
Support for PHP 4 has been discontinued since 07 August 2008 . Please consider upgrading to 8.
Your coding agent can read these notes before it upgrades. Set up the MCP server →