brave-mcp 1.6.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. package/README.md +279 -246
  2. package/build/src/HeapSnapshotManager.js +62 -23
  3. package/build/src/McpContext.js +77 -23
  4. package/build/src/McpPage.js +228 -12
  5. package/build/src/McpResponse.js +195 -282
  6. package/build/src/PageCollector.js +11 -6
  7. package/build/src/SlimMcpResponse.js +1 -1
  8. package/build/src/TextSnapshot.js +80 -19
  9. package/build/src/ToolHandler.js +24 -10
  10. package/build/src/WaitForHelper.js +203 -104
  11. package/build/src/bin/brave-devtools-cli-options.js +122 -6
  12. package/build/src/bin/brave-devtools-mcp-cli-options.js +26 -16
  13. package/build/src/bin/brave-devtools-mcp-main.js +5 -3
  14. package/build/src/bin/brave-devtools.js +20 -13
  15. package/build/src/browser.js +7 -12
  16. package/build/src/daemon/client.js +23 -1
  17. package/build/src/daemon/daemon.js +16 -13
  18. package/build/src/daemon/utils.js +18 -3
  19. package/build/src/devtools/DevtoolsUtils.js +7 -2
  20. package/build/src/formatters/ConsoleFormatter.js +42 -9
  21. package/build/src/formatters/HeapSnapshotFormatter.js +50 -13
  22. package/build/src/formatters/IssueFormatter.js +1 -1
  23. package/build/src/formatters/NetworkFormatter.js +7 -7
  24. package/build/src/index.js +11 -9
  25. package/build/src/telemetry/ClearcutLogger.js +3 -0
  26. package/build/src/telemetry/transformation.js +30 -0
  27. package/build/src/third_party/THIRD_PARTY_NOTICES +234 -53
  28. package/build/src/third_party/bundled-packages.json +5 -5
  29. package/build/src/third_party/devtools-formatter-worker.js +60 -19
  30. package/build/src/third_party/devtools-heap-snapshot-worker.js +579 -204
  31. package/build/src/third_party/index.js +29179 -9786
  32. package/build/src/third_party/issue-descriptions/CoepCorpNotSameOrigin.md +2 -2
  33. package/build/src/third_party/issue-descriptions/CoepCorpNotSameOriginAfterDefaultedToSameOriginByCoep.md +3 -3
  34. package/build/src/third_party/issue-descriptions/CoepCorpNotSameSite.md +2 -2
  35. package/build/src/third_party/issue-descriptions/CoepFrameResourceNeedsCoepHeader.md +1 -1
  36. package/build/src/third_party/issue-descriptions/CompatibilityModeQuirks.md +1 -1
  37. package/build/src/third_party/issue-descriptions/CookieAttributeValueExceedsMaxSize.md +2 -2
  38. package/build/src/third_party/issue-descriptions/LowTextContrast.md +1 -1
  39. package/build/src/third_party/issue-descriptions/SameSiteNoneInsecureErrorRead.md +1 -1
  40. package/build/src/third_party/issue-descriptions/SameSiteNoneInsecureErrorSet.md +1 -1
  41. package/build/src/third_party/issue-descriptions/SameSiteNoneInsecureWarnRead.md +1 -1
  42. package/build/src/third_party/issue-descriptions/SameSiteNoneInsecureWarnSet.md +1 -1
  43. package/build/src/third_party/issue-descriptions/SameSiteUnspecifiedLaxAllowUnsafeRead.md +3 -3
  44. package/build/src/third_party/issue-descriptions/SameSiteUnspecifiedLaxAllowUnsafeSet.md +3 -3
  45. package/build/src/third_party/issue-descriptions/bounceTrackingMitigations.md +1 -1
  46. package/build/src/third_party/issue-descriptions/connectionAllowlistEmbeddingRequirementNotSatisfied.md +26 -0
  47. package/build/src/third_party/issue-descriptions/connectionAllowlistIFrameAttributeLoosensEmbeddingRequirement.md +19 -0
  48. package/build/src/third_party/issue-descriptions/connectionAllowlistInvalidAllowConnectionAllowlistFrom.md +21 -0
  49. package/build/src/third_party/issue-descriptions/connectionAllowlistInvalidAllowlistItemType.md +2 -2
  50. package/build/src/third_party/issue-descriptions/connectionAllowlistInvalidHeader.md +2 -2
  51. package/build/src/third_party/issue-descriptions/connectionAllowlistInvalidUrlPattern.md +3 -3
  52. package/build/src/third_party/issue-descriptions/connectionAllowlistItemNotInnerList.md +2 -2
  53. package/build/src/third_party/issue-descriptions/connectionAllowlistMoreThanOneList.md +2 -2
  54. package/build/src/third_party/issue-descriptions/connectionAllowlistReportingEndpointNotToken.md +1 -1
  55. package/build/src/third_party/issue-descriptions/cookieCrossSiteRedirectDowngrade.md +3 -3
  56. package/build/src/third_party/issue-descriptions/cookieExcludeBlockedWithinRelatedWebsiteSet.md +1 -1
  57. package/build/src/third_party/issue-descriptions/cookieExcludePortMismatch.md +1 -1
  58. package/build/src/third_party/issue-descriptions/cookieExcludeSchemeMismatch.md +1 -1
  59. package/build/src/third_party/issue-descriptions/cookieExcludeThirdPartyPhaseoutSet.md +1 -1
  60. package/build/src/third_party/issue-descriptions/cookieWarnThirdPartyPhaseoutRead.md +1 -1
  61. package/build/src/third_party/issue-descriptions/corsAllowCredentialsRequired.md +1 -1
  62. package/build/src/third_party/issue-descriptions/corsDisabledScheme.md +2 -2
  63. package/build/src/third_party/issue-descriptions/corsDisallowedByMode.md +2 -2
  64. package/build/src/third_party/issue-descriptions/corsHeaderDisallowedByPreflightResponse.md +1 -1
  65. package/build/src/third_party/issue-descriptions/corsInvalidHeaderValues.md +3 -3
  66. package/build/src/third_party/issue-descriptions/corsLocalNetworkAccessPermissionDenied.md +1 -1
  67. package/build/src/third_party/issue-descriptions/corsMethodDisallowedByPreflightResponse.md +1 -1
  68. package/build/src/third_party/issue-descriptions/corsNoCorsRedirectModeNotFollow.md +1 -1
  69. package/build/src/third_party/issue-descriptions/corsOriginMismatch.md +3 -3
  70. package/build/src/third_party/issue-descriptions/corsPreflightResponseInvalid.md +2 -2
  71. package/build/src/third_party/issue-descriptions/corsRedirectContainsCredentials.md +3 -3
  72. package/build/src/third_party/issue-descriptions/corsWildcardOriginNotAllowed.md +4 -3
  73. package/build/src/third_party/issue-descriptions/cspEvalViolation.md +4 -4
  74. package/build/src/third_party/issue-descriptions/cspInlineViolation.md +2 -2
  75. package/build/src/third_party/issue-descriptions/cspTrustedTypesPolicyViolation.md +2 -2
  76. package/build/src/third_party/issue-descriptions/cspTrustedTypesSinkViolation.md +4 -4
  77. package/build/src/third_party/issue-descriptions/cspURLViolation.md +4 -4
  78. package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsEmptyList.md +1 -1
  79. package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsHttpNotFound.md +1 -1
  80. package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsInvalidContentType.md +1 -1
  81. package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsInvalidResponse.md +1 -1
  82. package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsNoResponse.md +1 -1
  83. package/build/src/third_party/issue-descriptions/emailVerificationRequestDnsFetchFailed.md +1 -1
  84. package/build/src/third_party/issue-descriptions/emailVerificationRequestDnsInvalidRecord.md +1 -1
  85. package/build/src/third_party/issue-descriptions/emailVerificationRequestEmailVerificationWellKnownHttpNotFound.md +1 -1
  86. package/build/src/third_party/issue-descriptions/emailVerificationRequestEmailVerificationWellKnownInvalidContentType.md +1 -1
  87. package/build/src/third_party/issue-descriptions/emailVerificationRequestEmailVerificationWellKnownInvalidResponse.md +1 -1
  88. package/build/src/third_party/issue-descriptions/emailVerificationRequestEmailVerificationWellKnownNoResponse.md +1 -1
  89. package/build/src/third_party/issue-descriptions/emailVerificationRequestInvalidEmail.md +1 -1
  90. package/build/src/third_party/issue-descriptions/emailVerificationRequestJwksHttpNotFound.md +1 -1
  91. package/build/src/third_party/issue-descriptions/emailVerificationRequestJwksInvalidResponse.md +1 -1
  92. package/build/src/third_party/issue-descriptions/emailVerificationRequestKeyBindingSigningFailed.md +1 -1
  93. package/build/src/third_party/issue-descriptions/emailVerificationRequestRpOriginIsOpaque.md +1 -1
  94. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenHttpNotFound.md +1 -1
  95. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenInvalidContentType.md +1 -1
  96. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenInvalidResponse.md +1 -1
  97. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenInvalidSdJwt.md +1 -1
  98. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenMalformedSdJwt.md +1 -1
  99. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenNoResponse.md +1 -1
  100. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidAudience.md +1 -1
  101. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidIssuedAt.md +1 -1
  102. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidNonce.md +1 -1
  103. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidSdHash.md +1 -1
  104. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidTyp.md +1 -1
  105. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingAud.md +1 -1
  106. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingCnf.md +1 -1
  107. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingIat.md +1 -1
  108. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingNonce.md +1 -1
  109. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingSdHash.md +1 -1
  110. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbSignatureFailed.md +1 -1
  111. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidEmail.md +1 -1
  112. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidEmailVerified.md +1 -1
  113. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidHolderKey.md +1 -1
  114. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidIssuedAt.md +1 -1
  115. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidIssuer.md +1 -1
  116. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtJwksMissingKeys.md +1 -1
  117. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtMissingCnf.md +1 -1
  118. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtMissingEmail.md +1 -1
  119. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtMissingIat.md +1 -1
  120. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtMissingIss.md +1 -1
  121. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtSignatureFailed.md +1 -1
  122. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtUnsupportedHeaderAlg.md +1 -1
  123. package/build/src/third_party/issue-descriptions/emailVerificationRequestUserLoggedOut.md +1 -1
  124. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownAccountsEndpointCrossOrigin.md +1 -1
  125. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownHttpNotFound.md +1 -1
  126. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownInvalidContentType.md +1 -1
  127. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownInvalidResponse.md +1 -1
  128. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownIssuanceEndpointCrossOrigin.md +1 -1
  129. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownListEmpty.md +1 -1
  130. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownMissingAccountsEndpoint.md +1 -1
  131. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownMissingIssuanceEndpoint.md +1 -1
  132. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownNoResponse.md +1 -1
  133. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownUnsupportedSigningAlgorithm.md +1 -1
  134. package/build/src/third_party/issue-descriptions/federatedAuthRequestAccountsHttpNotFound.md +1 -1
  135. package/build/src/third_party/issue-descriptions/federatedAuthRequestAccountsInvalidResponse.md +1 -1
  136. package/build/src/third_party/issue-descriptions/federatedAuthRequestAccountsNoResponse.md +1 -1
  137. package/build/src/third_party/issue-descriptions/federatedAuthRequestApprovalDeclined.md +1 -1
  138. package/build/src/third_party/issue-descriptions/federatedAuthRequestCanceled.md +1 -1
  139. package/build/src/third_party/issue-descriptions/federatedAuthRequestErrorFetchingSignin.md +1 -1
  140. package/build/src/third_party/issue-descriptions/federatedAuthRequestErrorIdToken.md +1 -1
  141. package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenHttpNotFound.md +1 -1
  142. package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenInvalidRequest.md +1 -1
  143. package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenInvalidResponse.md +1 -1
  144. package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenNoResponse.md +1 -1
  145. package/build/src/third_party/issue-descriptions/federatedAuthRequestInvalidSigninResponse.md +1 -1
  146. package/build/src/third_party/issue-descriptions/federatedAuthRequestManifestHttpNotFound.md +1 -1
  147. package/build/src/third_party/issue-descriptions/federatedAuthRequestManifestInvalidResponse.md +1 -1
  148. package/build/src/third_party/issue-descriptions/federatedAuthRequestManifestNoResponse.md +1 -1
  149. package/build/src/third_party/issue-descriptions/federatedAuthRequestTooManyRequests.md +1 -1
  150. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestInvalidAccountsResponse.md +1 -1
  151. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestInvalidConfigOrWellKnown.md +1 -1
  152. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNoAccountSharingPermission.md +1 -1
  153. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNoApiPermission.md +1 -1
  154. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNoReturningUserFromFetchedAccounts.md +1 -1
  155. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNotIframe.md +1 -1
  156. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNotPotentiallyTrustworthy.md +1 -1
  157. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNotSameOrigin.md +1 -1
  158. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNotSignedInWithIdp.md +1 -1
  159. package/build/src/third_party/issue-descriptions/fetchingPartitionedBlobURL.md +2 -2
  160. package/build/src/third_party/issue-descriptions/genericFormAriaLabelledByToNonExistingIdError.md +2 -2
  161. package/build/src/third_party/issue-descriptions/genericFormAutocompleteAttributeEmptyError.md +1 -1
  162. package/build/src/third_party/issue-descriptions/genericFormDuplicateIdForInputError.md +1 -1
  163. package/build/src/third_party/issue-descriptions/genericFormEmptyIdAndNameAttributesForInputError.md +2 -2
  164. package/build/src/third_party/issue-descriptions/genericFormInputAssignedAutocompleteValueToIdOrNameAttributeError.md +2 -2
  165. package/build/src/third_party/issue-descriptions/genericFormInputHasWrongButWellIntendedAutocompleteValueError.md +1 -1
  166. package/build/src/third_party/issue-descriptions/genericFormInputWithNoLabelError.md +1 -1
  167. package/build/src/third_party/issue-descriptions/genericFormLabelForMatchesNonExistingIdError.md +2 -2
  168. package/build/src/third_party/issue-descriptions/genericFormLabelForNameError.md +1 -1
  169. package/build/src/third_party/issue-descriptions/genericFormLabelHasNeitherForNorNestedInputError.md +1 -1
  170. package/build/src/third_party/issue-descriptions/genericFormModelContextMissingToolName.md +1 -1
  171. package/build/src/third_party/issue-descriptions/genericFormModelContextParameterMissingName.md +1 -1
  172. package/build/src/third_party/issue-descriptions/genericFormModelContextRequiredParameterMissingName.md +1 -1
  173. package/build/src/third_party/issue-descriptions/genericNavigationEntryMarkedSkippable.md +2 -2
  174. package/build/src/third_party/issue-descriptions/heavyAd.md +1 -1
  175. package/build/src/third_party/issue-descriptions/lazyLoadImageZeroSize.md +7 -0
  176. package/build/src/third_party/issue-descriptions/navigatingPartitionedBlobURL.md +3 -3
  177. package/build/src/third_party/issue-descriptions/permissionElementActivationDisabled.md +1 -1
  178. package/build/src/third_party/issue-descriptions/permissionElementActivationDisabledWithOccluder.md +1 -1
  179. package/build/src/third_party/issue-descriptions/permissionElementActivationDisabledWithOccluderParent.md +1 -1
  180. package/build/src/third_party/issue-descriptions/permissionElementFencedFrameDisallowed.md +2 -2
  181. package/build/src/third_party/issue-descriptions/permissionElementFontSizeTooLarge.md +2 -2
  182. package/build/src/third_party/issue-descriptions/permissionElementFontSizeTooSmall.md +2 -2
  183. package/build/src/third_party/issue-descriptions/permissionElementInsetBoxShadowUnsupported.md +1 -1
  184. package/build/src/third_party/issue-descriptions/permissionElementInvalidDisplayStyle.md +2 -2
  185. package/build/src/third_party/issue-descriptions/permissionElementInvalidSizeValue.md +2 -2
  186. package/build/src/third_party/issue-descriptions/permissionElementInvalidType.md +2 -2
  187. package/build/src/third_party/issue-descriptions/permissionElementInvalidTypeActivation.md +2 -2
  188. package/build/src/third_party/issue-descriptions/permissionElementNonOpaqueColor.md +1 -1
  189. package/build/src/third_party/issue-descriptions/permissionElementPaddingBottomUnsupported.md +2 -2
  190. package/build/src/third_party/issue-descriptions/permissionElementPaddingRightUnsupported.md +2 -2
  191. package/build/src/third_party/issue-descriptions/permissionElementRequestInProgress.md +2 -2
  192. package/build/src/third_party/issue-descriptions/permissionElementSecurityChecksFailed.md +1 -1
  193. package/build/src/third_party/issue-descriptions/permissionElementTypeNotSupported.md +2 -2
  194. package/build/src/third_party/issue-descriptions/permissionElementUntrustedEvent.md +1 -1
  195. package/build/src/third_party/issue-descriptions/placeholderDescriptionForInvisibleIssues.md +1 -1
  196. package/build/src/third_party/issue-descriptions/selectElementAccessibilityDisallowedOptGroupChild.md +1 -1
  197. package/build/src/third_party/issue-descriptions/selectElementAccessibilityDisallowedSelectChild.md +1 -1
  198. package/build/src/third_party/issue-descriptions/selectElementAccessibilityInteractiveContentAttributesSelectDescendant.md +1 -1
  199. package/build/src/third_party/issue-descriptions/selectElementAccessibilityInteractiveContentLegendChild.md +1 -1
  200. package/build/src/third_party/issue-descriptions/selectElementAccessibilityInteractiveContentOptionChild.md +1 -1
  201. package/build/src/third_party/issue-descriptions/selectElementAccessibilityNonPhrasingContentOptionChild.md +1 -1
  202. package/build/src/third_party/issue-descriptions/selectivePermissionsIntervention.md +3 -3
  203. package/build/src/third_party/issue-descriptions/sharedArrayBuffer.md +1 -1
  204. package/build/src/third_party/issue-descriptions/sharedDictionaryUseErrorCrossOriginNoCorsRequest.md +1 -1
  205. package/build/src/third_party/issue-descriptions/sharedDictionaryUseErrorMatchingDictionaryNotUsed.md +1 -1
  206. package/build/src/third_party/issue-descriptions/sharedDictionaryUseErrorUnexpectedContentDictionaryHeader.md +1 -1
  207. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorCossOriginNoCorsRequest.md +1 -1
  208. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorDisallowedBySettings.md +1 -1
  209. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorExpiredResponse.md +1 -1
  210. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorFeatureDisabled.md +2 -2
  211. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorInvalidStructuredHeader.md +1 -1
  212. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorNavigationRequest.md +2 -2
  213. package/build/src/third_party/issue-descriptions/sriInvalidSignatureHeader.md +4 -4
  214. package/build/src/third_party/issue-descriptions/sriInvalidSignatureInputHeader.md +4 -4
  215. package/build/src/third_party/issue-descriptions/sriMissingSignatureHeader.md +1 -1
  216. package/build/src/third_party/issue-descriptions/sriMissingSignatureInputHeader.md +2 -2
  217. package/build/src/third_party/issue-descriptions/sriSignatureHeaderValueIsIncorrectLength.md +2 -2
  218. package/build/src/third_party/issue-descriptions/sriSignatureHeaderValueIsNotByteSequence.md +4 -4
  219. package/build/src/third_party/issue-descriptions/sriSignatureHeaderValueIsParameterized.md +4 -4
  220. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidComponentName.md +1 -1
  221. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidComponentType.md +2 -2
  222. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidDerivedComponentParameter.md +1 -1
  223. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidHeaderComponentParameter.md +1 -1
  224. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidParameter.md +2 -2
  225. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderKeyIdLength.md +5 -5
  226. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderMissingLabel.md +3 -3
  227. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderMissingRequiredParameters.md +2 -2
  228. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderValueMissingComponents.md +2 -2
  229. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderValueNotInnerList.md +2 -2
  230. package/build/src/third_party/issue-descriptions/sriValidationFailedIntegrityMismatch.md +4 -4
  231. package/build/src/third_party/issue-descriptions/sriValidationFailedInvalidLength.md +3 -3
  232. package/build/src/third_party/issue-descriptions/sriValidationFailedSignatureExpired.md +2 -2
  233. package/build/src/third_party/issue-descriptions/sriValidationFailedSignatureMismatch.md +2 -2
  234. package/build/src/third_party/issue-descriptions/stylesheetLateImport.md +1 -1
  235. package/build/src/third_party/issue-descriptions/summaryElementAccessibilityInteractiveContentSummaryDescendant.md +1 -1
  236. package/build/src/third_party/issue-descriptions/unencodedDigestIncorrectDigestLength.md +2 -2
  237. package/build/src/third_party/issue-descriptions/unencodedDigestIncorrectDigestType.md +3 -3
  238. package/build/src/third_party/issue-descriptions/unencodedDigestMalformedDictionary.md +2 -2
  239. package/build/src/third_party/issue-descriptions/unencodedDigestUnknownAlgorithm.md +1 -1
  240. package/build/src/third_party/lighthouse-devtools-mcp-bundle.js +1125 -1027
  241. package/build/src/tools/categories.js +3 -0
  242. package/build/src/tools/console.js +6 -0
  243. package/build/src/tools/input.js +207 -112
  244. package/build/src/tools/memory.js +35 -4
  245. package/build/src/tools/network.js +1 -1
  246. package/build/src/tools/pages.js +1 -0
  247. package/build/src/tools/performance.js +59 -39
  248. package/build/src/tools/pwa.js +126 -0
  249. package/build/src/tools/screenshot.js +152 -77
  250. package/build/src/tools/script.js +102 -32
  251. package/build/src/tools/tools.js +2 -0
  252. package/build/src/utils/check-for-updates.js +1 -1
  253. package/build/src/utils/polyfill.js +6 -3
  254. package/build/src/utils/url.js +43 -0
  255. package/build/src/version.js +1 -1
  256. package/package.json +30 -23
  257. package/skills/a11y-debugging/SKILL.md +2 -2
  258. package/skills/{chrome-devtools → brave-devtools}/SKILL.md +7 -7
  259. package/skills/brave-devtools-cli/SKILL.md +153 -0
  260. package/skills/brave-devtools-cli/references/installation.md +14 -0
  261. package/skills/debug-optimize-lcp/SKILL.md +1 -1
  262. package/skills/memory-leak-debugging/SKILL.md +16 -20
  263. package/skills/memory-leak-debugging/references/common-leaks.md +1 -1
  264. package/skills/troubleshooting/SKILL.md +17 -17
  265. package/build/src/devtools/DevToolsConnectionAdapter.js +0 -70
  266. package/build/src/third_party/issue-descriptions/SameSiteExcludeContextDowngradeRead.md +0 -8
  267. package/build/src/third_party/issue-descriptions/SameSiteExcludeContextDowngradeSet.md +0 -8
  268. package/build/src/third_party/issue-descriptions/SameSiteExcludeNavigationContextDowngrade.md +0 -8
  269. package/build/src/third_party/issue-descriptions/SameSiteWarnCrossDowngradeRead.md +0 -8
  270. package/build/src/third_party/issue-descriptions/SameSiteWarnCrossDowngradeSet.md +0 -8
  271. package/build/src/third_party/issue-descriptions/SameSiteWarnStrictLaxDowngradeStrict.md +0 -8
  272. package/build/src/third_party/issue-descriptions/arInsecureContext.md +0 -7
  273. package/build/src/third_party/issue-descriptions/arInvalidInfoHeader.md +0 -5
  274. package/build/src/third_party/issue-descriptions/arInvalidRegisterOsSourceHeader.md +0 -5
  275. package/build/src/third_party/issue-descriptions/arInvalidRegisterOsTriggerHeader.md +0 -5
  276. package/build/src/third_party/issue-descriptions/arInvalidRegisterSourceHeader.md +0 -5
  277. package/build/src/third_party/issue-descriptions/arInvalidRegisterTriggerHeader.md +0 -5
  278. package/build/src/third_party/issue-descriptions/arNavigationRegistrationUniqueScopeAlreadySet.md +0 -5
  279. package/build/src/third_party/issue-descriptions/arNavigationRegistrationWithoutTransientUserActivation.md +0 -6
  280. package/build/src/third_party/issue-descriptions/arNoRegisterOsSourceHeader.md +0 -5
  281. package/build/src/third_party/issue-descriptions/arNoRegisterOsTriggerHeader.md +0 -5
  282. package/build/src/third_party/issue-descriptions/arNoRegisterSourceHeader.md +0 -5
  283. package/build/src/third_party/issue-descriptions/arNoRegisterTriggerHeader.md +0 -5
  284. package/build/src/third_party/issue-descriptions/arNoWebOrOsSupport.md +0 -4
  285. package/build/src/third_party/issue-descriptions/arOsSourceIgnored.md +0 -18
  286. package/build/src/third_party/issue-descriptions/arOsTriggerIgnored.md +0 -19
  287. package/build/src/third_party/issue-descriptions/arPermissionPolicyDisabled.md +0 -8
  288. package/build/src/third_party/issue-descriptions/arSourceAndTriggerHeaders.md +0 -9
  289. package/build/src/third_party/issue-descriptions/arSourceIgnored.md +0 -13
  290. package/build/src/third_party/issue-descriptions/arTriggerIgnored.md +0 -12
  291. package/build/src/third_party/issue-descriptions/arUntrustworthyReportingOrigin.md +0 -10
  292. package/build/src/third_party/issue-descriptions/arWebAndOsHeaders.md +0 -11
  293. package/build/src/utils/Mutex.js +0 -38
  294. package/skills/chrome-devtools-cli/SKILL.md +0 -153
  295. package/skills/chrome-devtools-cli/references/installation.md +0 -14
  296. package/skills/memory-leak-debugging/references/compare_snapshots.js +0 -109
  297. package/skills/memory-leak-debugging/references/memlab.md +0 -29
package/README.md CHANGED
@@ -1,15 +1,15 @@
1
- # Brave MCP
1
+ # Brave DevTools for agents
2
2
 
3
- > Fork of [ChromeDevTools/chrome-devtools-mcp](https://github.com/ChromeDevTools/chrome-devtools-mcp) ported to **Brave Browser**.
4
- >
5
- > npm: `brave-mcp` · repo: `triuzzi/brave-devtools-mcp`
3
+ [![npm brave-mcp package](https://img.shields.io/npm/v/brave-mcp.svg)](https://npmjs.org/package/brave-mcp)
6
4
 
7
- `brave-mcp` lets your coding agent (such as Claude, Cursor, Gemini or Copilot)
5
+ Brave DevTools for agents (`brave-mcp`) lets your coding agent (such as Antigravity, Claude, Cursor or Copilot)
8
6
  control and inspect a live Brave browser. It acts as a Model-Context-Protocol
9
7
  (MCP) server, giving your AI coding assistant access to the full power of
10
- DevTools for reliable automation, in-depth debugging, and performance analysis.
8
+ Brave DevTools for reliable automation, in-depth debugging, and performance analysis.
11
9
  A [CLI](docs/cli.md) is also provided for use without MCP.
12
10
 
11
+ This Brave port tracks [ChromeDevTools/chrome-devtools-mcp](https://github.com/ChromeDevTools/chrome-devtools-mcp) and preserves its complete tool surface.
12
+
13
13
  ## [Tool reference](./docs/tool-reference.md) | [Changelog](./CHANGELOG.md) | [Contributing](./CONTRIBUTING.md) | [Troubleshooting](./docs/troubleshooting.md) | [Design Principles](./docs/design-principles.md)
14
14
 
15
15
  ## Key features
@@ -25,232 +25,128 @@ A [CLI](docs/cli.md) is also provided for use without MCP.
25
25
 
26
26
  ## Disclaimers
27
27
 
28
- `brave-devtools-mcp` exposes content of the browser instance to the MCP clients
28
+ `brave-mcp` exposes content of the browser instance to the MCP clients
29
29
  allowing them to inspect, debug, and modify any data in the browser or DevTools.
30
30
  Avoid sharing sensitive or personal information that you don't want to share with
31
31
  MCP clients.
32
32
 
33
- Performance tools may send trace URLs to the Google CrUX API to fetch real-user
34
- experience data. To disable this, run with the `--no-performance-crux` flag.
35
-
36
- Usage statistics from the upstream project are **disabled by default** in this fork.
37
- You can explicitly enable them with `--usage-statistics` if desired.
33
+ `brave-mcp` officially supports the current Brave release. Beta and Nightly channels can be selected explicitly.
38
34
 
39
- ## Requirements
40
-
41
- - [Node.js](https://nodejs.org/) [LTS](https://github.com/nodejs/Release#release-schedule) version.
42
- - [Brave Browser](https://brave.com/) current release version or newer.
43
- - [npm](https://www.npmjs.com/)
44
-
45
- > **Note:** Do **not** use `chrome-devtools-mcp@latest` from npm — that installs Google's Chrome-oriented server. This fork is `brave-mcp`.
35
+ Performance tools may send trace URLs to the Google CrUX API to fetch real-user
36
+ experience data. This helps provide a holistic performance picture by
37
+ presenting field data alongside lab data. This data is collected by the [Chrome
38
+ User Experience Report (CrUX)](https://developer.chrome.com/docs/crux). To disable
39
+ this, run with the `--no-performance-crux` flag.
46
40
 
47
- ## Setup
41
+ ## **Usage statistics**
48
42
 
49
- ### Quick start (via npm)
43
+ Usage statistics collection is **disabled by default** in this fork. It can be enabled explicitly with `--usage-statistics`, which uses the upstream Google Clearcut implementation:
50
44
 
51
45
  ```json
52
- {
53
- "mcpServers": {
54
- "brave-devtools": {
55
- "command": "npx",
56
- "args": ["-y", "brave-mcp@latest"]
57
- }
58
- }
59
- }
46
+ "args": ["-y", "brave-mcp@latest", "--usage-statistics"]
60
47
  ```
61
48
 
62
- Add this to your MCP client config and you're done. Works with **Claude Code** (`~/.mcp.json`), **Cursor** (Settings → MCP), **VS Code Copilot**, and any other MCP client.
63
-
64
- ### From source (for development)
49
+ When enabled, Google handles this data in accordance with the [Google Privacy Policy](https://policies.google.com/privacy). Collection remains disabled if `BRAVE_DEVTOOLS_MCP_NO_USAGE_STATISTICS` or `CI` is set.
65
50
 
66
- ```sh
67
- git clone https://github.com/triuzzi/brave-devtools-mcp.git
68
- cd brave-devtools-mcp
69
- npm install
70
- npm run build
71
- ```
51
+ ## Update checks
72
52
 
73
- Run `npm run build` again after `git pull` when you update the repo.
53
+ By default, the server periodically checks the npm registry for updates and logs a notification when a newer version is available.
54
+ You can disable these update checks by setting `BRAVE_DEVTOOLS_MCP_NO_UPDATE_CHECKS`.
74
55
 
75
- Then point your MCP config at the built CLI with an **absolute path**:
56
+ ## Requirements
76
57
 
77
- ```json
78
- {
79
- "mcpServers": {
80
- "brave-devtools": {
81
- "command": "node",
82
- "args": [
83
- "/absolute/path/to/brave-devtools-mcp/build/src/bin/brave-devtools-mcp.js"
84
- ]
85
- }
86
- }
87
- }
88
- ```
58
+ - [Node.js](https://nodejs.org/) [LTS](https://github.com/nodejs/Release#release-schedule) version.
59
+ - [Brave](https://brave.com/download/) current release or newer.
60
+ - [npm](https://www.npmjs.com/)
89
61
 
90
- This works with **Claude Code** (`~/.mcp.json`), **Cursor** (Settings → MCP → New MCP Server, or `mcp.json`), **VS Code Copilot**, and any other MCP client.
62
+ ## Getting started
91
63
 
92
- If Brave is not detected automatically, set `BRAVE_PATH`:
64
+ Add the following config to your MCP client:
93
65
 
94
66
  ```json
95
67
  {
96
68
  "mcpServers": {
97
69
  "brave-devtools": {
98
- "command": "node",
99
- "args": [
100
- "/absolute/path/to/brave-devtools-mcp/build/src/bin/brave-devtools-mcp.js"
101
- ],
102
- "env": {
103
- "BRAVE_PATH": "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser"
104
- }
70
+ "command": "npx",
71
+ "args": ["-y", "brave-mcp@latest"]
105
72
  }
106
73
  }
107
74
  }
108
75
  ```
109
76
 
110
- ### 3. Choose your connection mode
111
-
112
- The server has two modes: **launch a new instance** (default) or **attach to your existing Brave window**.
113
-
114
- #### Mode A: Launch a new instance (default)
115
-
116
- With the basic config above, the server spawns a dedicated Brave instance with its own profile. Your existing Brave windows are untouched. This is the simplest mode — no extra setup needed.
117
-
118
- #### Mode B: Attach to your existing Brave window
119
-
120
- If you want the MCP server to control the Brave window you already have open (same tabs, cookies, logins), you need to start Brave with remote debugging enabled.
121
-
122
- **Step 1:** Quit Brave completely, then relaunch with the debugging flag:
123
-
124
- ```sh
125
- # macOS
126
- open -a "Brave Browser" --args --remote-debugging-port=9222
127
-
128
- # Linux
129
- brave-browser --remote-debugging-port=9222
130
-
131
- # Windows
132
- "C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe" --remote-debugging-port=9222
133
- ```
134
-
135
- > **Tip:** To always start Brave with remote debugging, add `--remote-debugging-port=9222` to Brave's launch shortcut or shell alias so you never have to think about it again.
77
+ > [!NOTE]
78
+ > Using `brave-mcp@latest` ensures that your MCP client will always use the latest version of the Brave DevTools MCP server.
136
79
 
137
- **Step 2:** Add `--browserUrl` to your MCP config:
80
+ If you are interested in doing only basic browser tasks, use the `--slim` mode:
138
81
 
139
82
  ```json
140
83
  {
141
84
  "mcpServers": {
142
85
  "brave-devtools": {
143
86
  "command": "npx",
144
- "args": [
145
- "-y",
146
- "brave-mcp@latest",
147
- "--browserUrl",
148
- "http://localhost:9222"
149
- ]
87
+ "args": ["-y", "brave-mcp@latest", "--slim", "--headless"]
150
88
  }
151
89
  }
152
90
  }
153
91
  ```
154
92
 
155
- Or if running from source:
156
-
157
- ```json
158
- {
159
- "mcpServers": {
160
- "brave-devtools": {
161
- "command": "node",
162
- "args": [
163
- "/absolute/path/to/brave-devtools-mcp/build/src/bin/brave-devtools-mcp.js",
164
- "--browserUrl",
165
- "http://localhost:9222"
166
- ]
167
- }
168
- }
169
- }
170
- ```
171
-
172
- Without `--browserUrl`, the server will always launch a new instance. With it, the server attaches to your running Brave instead.
173
-
174
- > **Warning:** The remote debugging port lets any application on your machine control the browser. Be mindful of sensitive websites while it's open.
175
-
176
- ### All CLI options
177
-
178
- Run `--help` to see every flag:
179
-
180
- ```sh
181
- node /absolute/path/to/brave-devtools-mcp/build/src/bin/brave-devtools-mcp.js --help
182
- ```
183
-
184
- ## Testing
93
+ See [Slim tool reference](./docs/slim-tool-reference.md).
185
94
 
186
- An integration test suite exercises all 29 MCP tools against a running Brave instance:
95
+ ### MCP Client configuration
187
96
 
188
- ```sh
189
- # Launch Brave with remote debugging
190
- open -a "Brave Browser" --args --remote-debugging-port=9222
97
+ <details>
98
+ <summary>Amp</summary>
99
+ Follow https://ampcode.com/manual#mcp and use the config provided above. You can also install the Brave DevTools MCP server using the CLI:
191
100
 
192
- # Run all 36 test cases
193
- npm run test:brave
101
+ ```bash
102
+ amp mcp add brave-devtools -- npx brave-mcp@latest
194
103
  ```
195
104
 
196
- Tests cover navigation, snapshots, screenshots, script execution, input automation (click/fill/drag/upload), dialogs, console, network, emulation, performance tracing, memory snapshots, and Lighthouse audits.
105
+ </details>
197
106
 
198
- ## Getting started
107
+ <details>
108
+ <summary>Antigravity</summary>
199
109
 
200
- If you are interested in only basic browser tasks, use `--slim` mode:
110
+ To use the Brave DevTools MCP server follow the instructions from <a href="https://antigravity.google/docs/mcp">Antigravity's docs</a> to install a custom MCP server. Add the following config to the MCP servers config:
201
111
 
202
- ```json
112
+ ```bash
203
113
  {
204
114
  "mcpServers": {
205
115
  "brave-devtools": {
206
- "command": "node",
116
+ "command": "npx",
207
117
  "args": [
208
- "/absolute/path/to/brave-devtools-mcp/build/src/bin/brave-devtools-mcp.js",
209
- "--slim",
210
- "--headless"
118
+ "-y",
119
+ "brave-mcp@latest",
120
+ "--browser-url=http://127.0.0.1:9222"
211
121
  ]
212
122
  }
213
123
  }
214
124
  }
215
125
  ```
216
126
 
217
- See [Slim tool reference](./docs/slim-tool-reference.md).
218
-
219
- ### MCP Client configuration
220
-
221
- <details>
222
- <summary>Amp</summary>
223
- Follow https://ampcode.com/manual#mcp and use the config provided above. You can also install the Chrome DevTools MCP server using the CLI:
127
+ This will make the Brave DevTools MCP server automatically connect to the browser that Antigravity is using. If you are not using port 9222, make sure to adjust accordingly.
224
128
 
225
- ```bash
226
- amp mcp add chrome-devtools -- npx chrome-devtools-mcp@latest
227
- ```
129
+ Brave DevTools MCP will not start the browser instance automatically using this approach because the Brave DevTools MCP server connects to Antigravity's built-in browser. If the browser is not already running, you have to start it first by clicking the Chrome icon at the top right corner.
228
130
 
229
131
  </details>
230
132
 
231
133
  <details>
232
- <summary>Antigravity</summary>
134
+ <summary>Bob</summary>
233
135
 
234
- To use the Chrome DevTools MCP server follow the instructions from <a href="https://antigravity.google/docs/mcp">Antigravity's docs</a> to install a custom MCP server. Add the following config to the MCP servers config:
136
+ Follow the <a href="https://bob.ibm.com/docs/ide/configuration/mcp/mcp-in-bob">IBM Bob MCP guide</a> and add the Brave DevTools MCP server to your Bob MCP configuration. Use the global config (`~/.bob/mcp.json`) to apply it across all workspaces, or a project config (`.bob/mcp.json`) to scope it to one project:
235
137
 
236
- ```bash
138
+ ```json
237
139
  {
238
140
  "mcpServers": {
239
- "chrome-devtools": {
141
+ "brave-devtools": {
240
142
  "command": "npx",
241
- "args": [
242
- "-y",
243
- "chrome-devtools-mcp@latest",
244
- "--browser-url=http://127.0.0.1:9222"
245
- ]
143
+ "args": ["-y", "brave-mcp@latest"]
246
144
  }
247
145
  }
248
146
  }
249
147
  ```
250
148
 
251
- This will make the Chrome DevTools MCP server automatically connect to the browser that Antigravity is using. If you are not using port 9222, make sure to adjust accordingly.
252
-
253
- Chrome DevTools MCP will not start the browser instance automatically using this approach because the Chrome DevTools MCP server connects to Antigravity's built-in browser. If the browser is not already running, you have to start it first by clicking the Chrome icon at the top right corner.
149
+ You can edit these files from **Bob panel → Settings → MCP → Edit Global MCP** (or **Edit Project MCP**). Bob hot-reloads on save. Once the server appears in the MCP tab, switch to the **🌎 Browser Dev** mode to get guided browser debugging directly in Bob.
254
150
 
255
151
  </details>
256
152
 
@@ -259,27 +155,27 @@ Chrome DevTools MCP will not start the browser instance automatically using this
259
155
 
260
156
  **Install via CLI (MCP only)**
261
157
 
262
- Use the Claude Code CLI to add the Chrome DevTools MCP server (<a href="https://code.claude.com/docs/en/mcp">guide</a>):
158
+ Use the Claude Code CLI to add the Brave DevTools MCP server (<a href="https://code.claude.com/docs/en/mcp">guide</a>):
263
159
 
264
160
  ```bash
265
- claude mcp add chrome-devtools --scope user npx chrome-devtools-mcp@latest
161
+ claude mcp add brave-devtools --scope user npx brave-mcp@latest
266
162
  ```
267
163
 
268
164
  **Install as a Plugin (MCP + Skills)**
269
165
 
270
166
  > [!NOTE]
271
- > If you already had Chrome DevTools MCP installed previously for Claude Code, make sure to remove it first from your installation and configuration files.
167
+ > If you already had Brave DevTools MCP installed previously for Claude Code, make sure to remove it first from your installation and configuration files.
272
168
 
273
- To install Chrome DevTools MCP with skills, add the marketplace registry in Claude Code:
169
+ To install Brave DevTools MCP with skills, add the marketplace registry in Claude Code:
274
170
 
275
171
  ```sh
276
- /plugin marketplace add ChromeDevTools/chrome-devtools-mcp
172
+ /plugin marketplace add triuzzi/brave-devtools-mcp
277
173
  ```
278
174
 
279
175
  Then, install the plugin:
280
176
 
281
177
  ```sh
282
- /plugin install chrome-devtools-mcp@chrome-devtools-plugins
178
+ /plugin install brave-devtools-mcp@brave-devtools-plugins
283
179
  ```
284
180
 
285
181
  Restart Claude Code to have the MCP server and skills load (check with `/skills`).
@@ -297,24 +193,24 @@ Restart Claude Code to have the MCP server and skills load (check with `/skills`
297
193
  <details>
298
194
  <summary>Codex</summary>
299
195
  Follow the <a href="https://developers.openai.com/codex/mcp/#configure-with-the-cli">configure MCP guide</a>
300
- using the standard config from above. You can also install the Chrome DevTools MCP server using the Codex CLI:
196
+ using the standard config from above. You can also install the Brave DevTools MCP server using the Codex CLI:
301
197
 
302
198
  ```bash
303
- codex mcp add chrome-devtools -- npx chrome-devtools-mcp@latest
199
+ codex mcp add brave-devtools -- npx brave-mcp@latest
304
200
  ```
305
201
 
306
202
  **On Windows 11**
307
203
 
308
- Configure the Chrome install location and increase the startup timeout by updating `.codex/config.toml` and adding the following `env` and `startup_timeout_ms` parameters:
204
+ Configure the Brave install location and increase the startup timeout by updating `.codex/config.toml` and adding the following `env` and `startup_timeout_ms` parameters:
309
205
 
310
206
  ```
311
- [mcp_servers.chrome-devtools]
207
+ [mcp_servers.brave-devtools]
312
208
  command = "cmd"
313
209
  args = [
314
210
  "/c",
315
211
  "npx",
316
212
  "-y",
317
- "chrome-devtools-mcp@latest",
213
+ "brave-mcp@latest",
318
214
  ]
319
215
  env = { SystemRoot="C:\\Windows", PROGRAMFILES="C:\\Program Files" }
320
216
  startup_timeout_ms = 20_000
@@ -325,10 +221,10 @@ startup_timeout_ms = 20_000
325
221
  <details>
326
222
  <summary>Command Code</summary>
327
223
 
328
- Use the Command Code CLI to add the Chrome DevTools MCP server (<a href="https://commandcode.ai/docs/mcp">MCP guide</a>):
224
+ Use the Command Code CLI to add the Brave DevTools MCP server (<a href="https://commandcode.ai/docs/mcp">MCP guide</a>):
329
225
 
330
226
  ```bash
331
- cmd mcp add chrome-devtools --scope user npx chrome-devtools-mcp@latest
227
+ cmd mcp add brave-devtools --scope user npx brave-mcp@latest
332
228
  ```
333
229
 
334
230
  </details>
@@ -350,9 +246,9 @@ Start the dialog to add a new MCP server by running:
350
246
 
351
247
  Configure the following fields and press `CTRL+S` to save the configuration:
352
248
 
353
- - **Server name:** `chrome-devtools`
249
+ - **Server name:** `brave-devtools`
354
250
  - **Server Type:** `[1] Local`
355
- - **Command:** `npx -y chrome-devtools-mcp@latest`
251
+ - **Command:** `npx -y brave-mcp@latest`
356
252
 
357
253
  </details>
358
254
 
@@ -361,15 +257,15 @@ Configure the following fields and press `CTRL+S` to save the configuration:
361
257
 
362
258
  **Install as a Plugin (Recommended)**
363
259
 
364
- The easiest way to get up and running is to install `chrome-devtools-mcp` as an agent plugin.
260
+ The easiest way to get up and running is to install `brave-mcp` as an agent plugin.
365
261
  This bundles the **MCP server** and all **skills** together, so your agent gets both the tools
366
262
  and the expert guidance it needs to use them effectively.
367
263
 
368
264
  1. Open the **Command Palette** (`Cmd+Shift+P` on macOS or `Ctrl+Shift+P` on Windows/Linux).
369
265
  2. Search for and run the **Chat: Install Plugin From Source** command.
370
- 3. Paste in our repository name: `ChromeDevTools/chrome-devtools-mcp`.
266
+ 3. Paste in our repository name: `triuzzi/brave-devtools-mcp`.
371
267
 
372
- That's it! Your agent is now supercharged with Chrome DevTools capabilities.
268
+ That's it! Your agent is now supercharged with Brave DevTools capabilities.
373
269
 
374
270
  ---
375
271
 
@@ -377,9 +273,9 @@ That's it! Your agent is now supercharged with Chrome DevTools capabilities.
377
273
 
378
274
  **Click the button to install:**
379
275
 
380
- [<img src="https://img.shields.io/badge/VS_Code-VS_Code?style=flat-square&label=Install%20Server&color=0098FF" alt="Install in VS Code">](https://vscode.dev/redirect/mcp/install?name=io.github.ChromeDevTools%2Fchrome-devtools-mcp&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22chrome-devtools-mcp%22%5D%2C%22env%22%3A%7B%7D%7D)
276
+ [<img src="https://img.shields.io/badge/VS_Code-VS_Code?style=flat-square&label=Install%20Server&color=0098FF" alt="Install in VS Code">](https://vscode.dev/redirect/mcp/install?name=io.github.triuzzi%2Fbrave-mcp&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22brave-mcp%22%5D%2C%22env%22%3A%7B%7D%7D)
381
277
 
382
- [<img src="https://img.shields.io/badge/VS_Code_Insiders-VS_Code_Insiders?style=flat-square&label=Install%20Server&color=24bfa5" alt="Install in VS Code Insiders">](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522io.github.ChromeDevTools%252Fchrome-devtools-mcp%2522%252C%2522config%2522%253A%257B%2522command%2522%253A%2522npx%2522%252C%2522args%2522%253A%255B%2522-y%2522%252C%2522chrome-devtools-mcp%2522%255D%252C%2522env%2522%253A%257B%257D%257D%257D)
278
+ [<img src="https://img.shields.io/badge/VS_Code_Insiders-VS_Code_Insiders?style=flat-square&label=Install%20Server&color=24bfa5" alt="Install in VS Code Insiders">](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522io.github.triuzzi%252Fbrave-mcp%2522%252C%2522config%2522%253A%257B%2522command%2522%253A%2522npx%2522%252C%2522args%2522%253A%255B%2522-y%2522%252C%2522brave-mcp%2522%255D%252C%2522env%2522%253A%257B%257D%257D%257D)
383
279
 
384
280
  **Or install manually:**
385
281
 
@@ -388,13 +284,13 @@ Follow the VS Code [MCP configuration guide](https://code.visualstudio.com/docs/
388
284
  For macOS and Linux:
389
285
 
390
286
  ```bash
391
- code --add-mcp '{"name":"io.github.ChromeDevTools/chrome-devtools-mcp","command":"npx","args":["-y","chrome-devtools-mcp"],"env":{}}'
287
+ code --add-mcp '{"name":"io.github.triuzzi/brave-devtools-mcp","command":"npx","args":["-y","brave-mcp"],"env":{}}'
392
288
  ```
393
289
 
394
290
  For Windows (PowerShell):
395
291
 
396
292
  ```powershell
397
- code --add-mcp '{"""name""":"""io.github.ChromeDevTools/chrome-devtools-mcp""","""command""":"""npx""","""args""":["""-y""","""chrome-devtools-mcp"""]}'
293
+ code --add-mcp '{"""name""":"""io.github.triuzzi/brave-devtools-mcp""","""command""":"""npx""","""args""":["""-y""","""brave-mcp"""]}'
398
294
  ```
399
295
 
400
296
  </details>
@@ -404,7 +300,7 @@ code --add-mcp '{"""name""":"""io.github.ChromeDevTools/chrome-devtools-mcp""","
404
300
 
405
301
  **Click the button to install:**
406
302
 
407
- [<img src="https://cursor.com/deeplink/mcp-install-dark.svg" alt="Install in Cursor">](https://cursor.com/en/install-mcp?name=chrome-devtools&config=eyJjb21tYW5kIjoibnB4IC15IGNocm9tZS1kZXZ0b29scy1tY3BAbGF0ZXN0In0%3D)
303
+ [<img src="https://cursor.com/deeplink/mcp-install-dark.svg" alt="Install in Cursor">](https://cursor.com/en/install-mcp?name=brave-devtools&config=eyJjb21tYW5kIjoibnB4IC15IGJyYXZlLW1jcEBsYXRlc3QifQ%3D%3D)
408
304
 
409
305
  **Or install manually:**
410
306
 
@@ -412,33 +308,46 @@ Go to `Cursor Settings` -> `MCP` -> `New MCP Server`. Use the config provided ab
412
308
 
413
309
  </details>
414
310
 
311
+ <details>
312
+ <summary>Devin CLI</summary>
313
+
314
+ **Install via CLI (MCP only)**
315
+
316
+ Use the Devin CLI to add the Brave DevTools MCP server (<a href="https://docs.devin.ai/cli/extensibility/mcp/configuration">guide</a>):
317
+
318
+ ```bash
319
+ devin mcp add brave-devtools -- npx brave-mcp@latest
320
+ ```
321
+
322
+ </details>
323
+
415
324
  <details>
416
325
  <summary>Factory CLI</summary>
417
- Use the Factory CLI to add the Chrome DevTools MCP server (<a href="https://docs.factory.ai/cli/configuration/mcp">guide</a>):
326
+ Use the Factory CLI to add the Brave DevTools MCP server (<a href="https://docs.factory.ai/cli/configuration/mcp">guide</a>):
418
327
 
419
328
  ```bash
420
- droid mcp add chrome-devtools "npx -y chrome-devtools-mcp@latest"
329
+ droid mcp add brave-devtools "npx -y brave-mcp@latest"
421
330
  ```
422
331
 
423
332
  </details>
424
333
 
425
334
  <details>
426
335
  <summary>Gemini CLI</summary>
427
- Install the Chrome DevTools MCP server using the Gemini CLI.
336
+ Install the Brave DevTools MCP server using the Gemini CLI.
428
337
 
429
338
  **Project wide:**
430
339
 
431
340
  ```bash
432
341
  # Either MCP only:
433
- gemini mcp add chrome-devtools npx chrome-devtools-mcp@latest
342
+ gemini mcp add brave-devtools npx brave-mcp@latest
434
343
  # Or as a Gemini extension (MCP+Skills):
435
- gemini extensions install --auto-update https://github.com/ChromeDevTools/chrome-devtools-mcp
344
+ gemini extensions install --auto-update https://github.com/triuzzi/brave-devtools-mcp
436
345
  ```
437
346
 
438
347
  **Globally:**
439
348
 
440
349
  ```bash
441
- gemini mcp add -s user chrome-devtools npx chrome-devtools-mcp@latest
350
+ gemini mcp add -s user brave-devtools npx brave-mcp@latest
442
351
  ```
443
352
 
444
353
  Alternatively, follow the <a href="https://github.com/google-gemini/gemini-cli/blob/main/docs/tools/mcp-server.md#how-to-set-up-your-mcp-server">MCP guide</a> and use the standard config from above.
@@ -455,7 +364,7 @@ Alternatively, follow the <a href="https://github.com/google-gemini/gemini-cli/b
455
364
  <summary>Grok Build CLI</summary>
456
365
 
457
366
  ```bash
458
- grok mcp add chrome-devtools npx chrome-devtools-mcp@latest
367
+ grok mcp add brave-devtools npx brave-mcp@latest
459
368
  ```
460
369
 
461
370
  See the <a href="https://docs.x.ai/build/features/skills-plugins-marketplaces">docs</a> for more options
@@ -465,7 +374,7 @@ See the <a href="https://docs.x.ai/build/features/skills-plugins-marketplaces">d
465
374
  <summary>JetBrains AI Assistant & Junie</summary>
466
375
 
467
376
  Go to `Settings | Tools | AI Assistant | Model Context Protocol (MCP)` -> `Add`. Use the config provided above.
468
- The same way chrome-devtools-mcp can be configured for JetBrains Junie in `Settings | Tools | Junie | MCP Settings` -> `Add`. Use the config provided above.
377
+ The same way brave-mcp can be configured for JetBrains Junie in `Settings | Tools | Junie | MCP Settings` -> `Add`. Use the config provided above.
469
378
 
470
379
  </details>
471
380
 
@@ -481,14 +390,14 @@ Or, from the IDE **Activity Bar** > `Kiro` > `MCP Servers` > `Click Open MCP Con
481
390
  <details>
482
391
  <summary>Katalon Studio</summary>
483
392
 
484
- The Chrome DevTools MCP server can be used with <a href="https://docs.katalon.com/katalon-studio/studioassist/mcp-servers/setting-up-chrome-devtools-mcp-server-for-studioassist">Katalon StudioAssist</a> via an MCP proxy.
393
+ The Brave DevTools MCP server can be used with Katalon StudioAssist via an MCP proxy.
485
394
 
486
395
  **Step 1:** Install the MCP proxy by following the <a href="https://docs.katalon.com/katalon-studio/studioassist/mcp-servers/setting-up-mcp-proxy-for-stdio-mcp-servers">MCP proxy setup guide</a>.
487
396
 
488
- **Step 2:** Start the Chrome DevTools MCP server with the proxy:
397
+ **Step 2:** Start the Brave DevTools MCP server with the proxy:
489
398
 
490
399
  ```bash
491
- mcp-proxy --transport streamablehttp --port 8080 -- npx -y chrome-devtools-mcp@latest
400
+ mcp-proxy --transport streamablehttp --port 8080 -- npx -y brave-mcp@latest
492
401
  ```
493
402
 
494
403
  **Note:** You may need to pick another port if 8080 is already in use.
@@ -498,7 +407,7 @@ mcp-proxy --transport streamablehttp --port 8080 -- npx -y chrome-devtools-mcp@l
498
407
  - **Connection URL:** `http://127.0.0.1:8080/mcp`
499
408
  - **Transport type:** `HTTP`
500
409
 
501
- Once connected, the Chrome DevTools MCP tools will be available in StudioAssist.
410
+ Once connected, the Brave DevTools MCP tools will be available in StudioAssist.
502
411
 
503
412
  </details>
504
413
 
@@ -509,10 +418,10 @@ Add in ~/.vibe/config.toml:
509
418
 
510
419
  ```toml
511
420
  [[mcp_servers]]
512
- name = "chrome-devtools"
421
+ name = "brave-devtools"
513
422
  transport = "stdio"
514
423
  command = "npx"
515
- args = ["chrome-devtools-mcp@latest"]
424
+ args = ["brave-mcp@latest"]
516
425
  ```
517
426
 
518
427
  </details>
@@ -526,9 +435,9 @@ Add the following configuration to your `opencode.json` file. If you don't have
526
435
  {
527
436
  "$schema": "https://opencode.ai/config.json",
528
437
  "mcp": {
529
- "chrome-devtools": {
438
+ "brave-devtools": {
530
439
  "type": "local",
531
- "command": ["npx", "-y", "chrome-devtools-mcp@latest"]
440
+ "command": ["npx", "-y", "brave-mcp@latest"]
532
441
  }
533
442
  }
534
443
  }
@@ -548,18 +457,18 @@ Alternatively, follow the <a href="https://docs.qoder.com/user-guide/chat/model-
548
457
  <details>
549
458
  <summary>Qoder CLI</summary>
550
459
 
551
- Install the Chrome DevTools MCP server using the Qoder CLI (<a href="https://docs.qoder.com/cli/using-cli#mcp-servers">guide</a>):
460
+ Install the Brave DevTools MCP server using the Qoder CLI (<a href="https://docs.qoder.com/cli/using-cli#mcp-servers">guide</a>):
552
461
 
553
462
  **Project wide:**
554
463
 
555
464
  ```bash
556
- qodercli mcp add chrome-devtools -- npx chrome-devtools-mcp@latest
465
+ qodercli mcp add brave-devtools -- npx brave-mcp@latest
557
466
  ```
558
467
 
559
468
  **Globally:**
560
469
 
561
470
  ```bash
562
- qodercli mcp add -s user chrome-devtools -- npx chrome-devtools-mcp@latest
471
+ qodercli mcp add -s user brave-devtools -- npx brave-mcp@latest
563
472
  ```
564
473
 
565
474
  </details>
@@ -569,7 +478,7 @@ qodercli mcp add -s user chrome-devtools -- npx chrome-devtools-mcp@latest
569
478
 
570
479
  **Click the button to install:**
571
480
 
572
- [<img src="https://img.shields.io/badge/Visual_Studio-Install-C16FDE?logo=visualstudio&logoColor=white" alt="Install in Visual Studio">](https://vs-open.link/mcp-install?%7B%22name%22%3A%22chrome-devtools%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22chrome-devtools-mcp%40latest%22%5D%7D)
481
+ [<img src="https://img.shields.io/badge/Visual_Studio-Install-C16FDE?logo=visualstudio&logoColor=white" alt="Install in Visual Studio">](https://vs-open.link/mcp-install?%7B%22name%22%3A%22brave-devtools%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22brave-mcp%40latest%22%5D%7D)
573
482
 
574
483
  </details>
575
484
 
@@ -591,10 +500,10 @@ Go to `Settings | AI | Manage MCP Servers` -> `+ Add` to [add an MCP Server](htt
591
500
  Enter the following prompt in your MCP Client to check if everything is working:
592
501
 
593
502
  ```
594
- Check the performance of https://example.com
503
+ Check the performance of https://developers.chrome.com
595
504
  ```
596
505
 
597
- Your MCP client should open Brave (or attach to the running instance) and record a performance trace.
506
+ Your MCP client should open the browser and record a performance trace.
598
507
 
599
508
  > [!NOTE]
600
509
  > The MCP server will start the browser automatically once the MCP client uses a tool that requires a running browser instance. Connecting to the Brave DevTools MCP server on its own will not automatically start the browser.
@@ -642,7 +551,7 @@ If you run into any issues, checkout our [troubleshooting guide](./docs/troubles
642
551
  - [`take_snapshot`](docs/tool-reference.md#take_snapshot)
643
552
  - [`screencast_start`](docs/tool-reference.md#screencast_start)
644
553
  - [`screencast_stop`](docs/tool-reference.md#screencast_stop)
645
- - **Memory** (11 tools)
554
+ - **Memory** (12 tools)
646
555
  - [`take_heapsnapshot`](docs/tool-reference.md#take_heapsnapshot)
647
556
  - [`close_heapsnapshot`](docs/tool-reference.md#close_heapsnapshot)
648
557
  - [`compare_heapsnapshots`](docs/tool-reference.md#compare_heapsnapshots)
@@ -651,6 +560,7 @@ If you run into any issues, checkout our [troubleshooting guide](./docs/troubles
651
560
  - [`get_heapsnapshot_dominators`](docs/tool-reference.md#get_heapsnapshot_dominators)
652
561
  - [`get_heapsnapshot_duplicate_strings`](docs/tool-reference.md#get_heapsnapshot_duplicate_strings)
653
562
  - [`get_heapsnapshot_edges`](docs/tool-reference.md#get_heapsnapshot_edges)
563
+ - [`get_heapsnapshot_object_details`](docs/tool-reference.md#get_heapsnapshot_object_details)
654
564
  - [`get_heapsnapshot_retainers`](docs/tool-reference.md#get_heapsnapshot_retainers)
655
565
  - [`get_heapsnapshot_retaining_paths`](docs/tool-reference.md#get_heapsnapshot_retaining_paths)
656
566
  - [`get_heapsnapshot_summary`](docs/tool-reference.md#get_heapsnapshot_summary)
@@ -666,22 +576,27 @@ If you run into any issues, checkout our [troubleshooting guide](./docs/troubles
666
576
  - **WebMCP** (2 tools)
667
577
  - [`execute_webmcp_tool`](docs/tool-reference.md#execute_webmcp_tool)
668
578
  - [`list_webmcp_tools`](docs/tool-reference.md#list_webmcp_tools)
579
+ - **Progressive Web Apps** (4 tools)
580
+ - [`get_os_app_state`](docs/tool-reference.md#get_os_app_state)
581
+ - [`install_pwa`](docs/tool-reference.md#install_pwa)
582
+ - [`launch_pwa`](docs/tool-reference.md#launch_pwa)
583
+ - [`uninstall_pwa`](docs/tool-reference.md#uninstall_pwa)
669
584
 
670
585
  <!-- END AUTO GENERATED TOOLS -->
671
586
 
672
587
  ## Configuration
673
588
 
674
- The Brave DevTools MCP server supports the following configuration options:
589
+ The Brave DevTools MCP server supports the following configuration option:
675
590
 
676
591
  <!-- BEGIN AUTO GENERATED OPTIONS -->
677
592
 
678
593
  - **`--autoConnect`/ `--auto-connect`**
679
- If specified, automatically connects to a Brave instance running locally from the user data directory identified by the channel param (default channel is release). Requires the remote debugging server to be started in the Brave instance via brave://inspect/#remote-debugging.
594
+ If specified, automatically connects to a Brave instance running locally from the user data directory identified by the channel parameter (default channel is release). Requires remote debugging to be enabled via brave://inspect/#remote-debugging.
680
595
  - **Type:** boolean
681
596
  - **Default:** `false`
682
597
 
683
598
  - **`--browserUrl`/ `--browser-url`, `-u`**
684
- Connect to a running, debuggable Brave instance (e.g. `http://127.0.0.1:9222`).
599
+ Connect to a running, debuggable Brave instance (e.g. `http://127.0.0.1:9222`). For more details see: https://github.com/triuzzi/brave-devtools-mcp#connecting-to-a-running-brave-instance.
685
600
  - **Type:** string
686
601
  - **Default:** `false`
687
602
 
@@ -701,7 +616,7 @@ The Brave DevTools MCP server supports the following configuration options:
701
616
  - **Default:** `false`
702
617
 
703
618
  - **`--executablePath`/ `--executable-path`, `-e`**
704
- Path to custom Brave executable. Can also be set via BRAVE_PATH environment variable.
619
+ Path to a custom Brave executable. Can also be set via BRAVE_PATH.
705
620
  - **Type:** string
706
621
  - **Default:** `false`
707
622
 
@@ -716,9 +631,9 @@ The Brave DevTools MCP server supports the following configuration options:
716
631
  - **Default:** `false`
717
632
 
718
633
  - **`--channel`**
719
- Specify a different Brave channel that should be used. The default is the release channel.
634
+ Specify a different Brave channel. The default is the release channel.
720
635
  - **Type:** string
721
- - **Choices:** `release`, `beta`, `nightly`, `dev`
636
+ - **Choices:** `release`, `beta`, `nightly`
722
637
  - **Default:** `false`
723
638
 
724
639
  - **`--logFile`/ `--log-file`**
@@ -727,7 +642,7 @@ The Brave DevTools MCP server supports the following configuration options:
727
642
  - **Default:** `false`
728
643
 
729
644
  - **`--viewport`**
730
- Initial viewport size for the Brave instances started by the server. For example, `1280x720`. In headless mode, max size is 3840x2160px.
645
+ Initial viewport size for Brave instances started by the server. For example, `1280x720`. In headless mode, max size is 3840x2160px.
731
646
  - **Type:** string
732
647
  - **Default:** `false`
733
648
 
@@ -782,7 +697,7 @@ The Brave DevTools MCP server supports the following configuration options:
782
697
  - **Default:** `false`
783
698
 
784
699
  - **`--categoryExperimentalWebmcp`/ `--category-experimental-webmcp`**
785
- Set to true to enable debugging WebMCP tools. Requires Brave with the following flags: `--enable-features=WebMCP,DevToolsWebMCPSupport`
700
+ Set to true to enable debugging WebMCP tools. Requires a recent Brave version with the following flags: `--enable-features=WebMCP,DevToolsWebMCPSupport`
786
701
  - **Type:** boolean
787
702
  - **Default:** `false`
788
703
 
@@ -797,7 +712,7 @@ The Brave DevTools MCP server supports the following configuration options:
797
712
  - **Default:** `false`
798
713
 
799
714
  - **`--allowedUrlPattern`/ `--allowed-url-pattern`**
800
- Restricts browser's network access by allowing only specified URL patterns (uses https://urlpattern.spec.whatwg.org/). Requires Chrome 149+. Silently detaches from targets with unallowed URLs upon connection, and blocks runtime requests (including navigations and subresources). Accepts an array of patterns.
715
+ Restricts browser's network access by allowing only specified URL patterns (uses https://urlpattern.spec.whatwg.org/). Requires a recent Brave version. Silently detaches from targets with unallowed URLs upon connection, and blocks runtime requests (including navigations and subresources). Accepts an array of patterns.
801
716
  - **Type:** array
802
717
  - **Default:** `false`
803
718
 
@@ -822,7 +737,7 @@ The Brave DevTools MCP server supports the following configuration options:
822
737
  - **Default:** `true`
823
738
 
824
739
  - **`--categoryExtensions`/ `--category-extensions`**
825
- Set to true to include tools related to extensions. Note: This feature is currently only supported with a pipe connection. autoConnect, browserUrl, and wsEndpoint are not supported with this feature until 149 will be released.
740
+ Set to true to include tools related to extensions. This feature is only supported with a pipe connection; autoConnect, browserUrl, and wsEndpoint are not supported.
826
741
  - **Type:** boolean
827
742
  - **Default:** `false`
828
743
 
@@ -831,13 +746,18 @@ The Brave DevTools MCP server supports the following configuration options:
831
746
  - **Type:** boolean
832
747
  - **Default:** `false`
833
748
 
749
+ - **`--categoryPwa`/ `--category-pwa`**
750
+ Set to true to include tools for automating Progressive Web Apps (install, launch, uninstall, and OS state). This feature is only supported with a pipe connection; autoConnect, browserUrl, and wsEndpoint are not supported.
751
+ - **Type:** boolean
752
+ - **Default:** `false`
753
+
834
754
  - **`--performanceCrux`/ `--performance-crux`**
835
755
  Set to false to disable sending URLs from performance traces to CrUX API to get field performance data.
836
756
  - **Type:** boolean
837
757
  - **Default:** `true`
838
758
 
839
759
  - **`--usageStatistics`/ `--usage-statistics`**
840
- Usage statistics collection (disabled by default in this fork).
760
+ Usage statistics collection is disabled by default in this fork.
841
761
  - **Type:** boolean
842
762
  - **Default:** `false`
843
763
 
@@ -884,11 +804,11 @@ Pass them via the `args` property in the JSON configuration. For example:
884
804
  ```json
885
805
  {
886
806
  "mcpServers": {
887
- "chrome-devtools": {
807
+ "brave-devtools": {
888
808
  "command": "npx",
889
809
  "args": [
890
- "chrome-devtools-mcp@latest",
891
- "--channel=canary",
810
+ "brave-mcp@latest",
811
+ "--channel=nightly",
892
812
  "--headless=true",
893
813
  "--isolated=true"
894
814
  ]
@@ -899,15 +819,15 @@ Pass them via the `args` property in the JSON configuration. For example:
899
819
 
900
820
  ### Connecting via WebSocket with custom headers
901
821
 
902
- You can connect directly to a Chrome WebSocket endpoint and include custom headers (e.g., for authentication):
822
+ You can connect directly to a Brave WebSocket endpoint and include custom headers (e.g., for authentication):
903
823
 
904
824
  ```json
905
825
  {
906
826
  "mcpServers": {
907
- "chrome-devtools": {
827
+ "brave-devtools": {
908
828
  "command": "npx",
909
829
  "args": [
910
- "chrome-devtools-mcp@latest",
830
+ "brave-mcp@latest",
911
831
  "--wsEndpoint=ws://127.0.0.1:9222/devtools/browser/<id>",
912
832
  "--wsHeaders={\"Authorization\":\"Bearer YOUR_TOKEN\"}"
913
833
  ]
@@ -916,15 +836,15 @@ You can connect directly to a Chrome WebSocket endpoint and include custom heade
916
836
  }
917
837
  ```
918
838
 
919
- To get the WebSocket endpoint from a running Chrome instance, visit `http://127.0.0.1:9222/json/version` and look for the `webSocketDebuggerUrl` field.
839
+ To get the WebSocket endpoint from a running Brave instance, visit `http://127.0.0.1:9222/json/version` and look for the `webSocketDebuggerUrl` field.
920
840
 
921
- You can also run `npx chrome-devtools-mcp@latest --help` to see all available configuration options.
841
+ You can also run `npx brave-mcp@latest --help` to see all available configuration options.
922
842
 
923
843
  ## Concepts
924
844
 
925
845
  ### Concurrent sessions
926
846
 
927
- Most MCP clients start one Chrome DevTools MCP server per conversation. If your
847
+ Most MCP clients start one Brave DevTools MCP server per conversation. If your
928
848
  client shares a single server instance across concurrent agents or subagents,
929
849
  start the server with `--experimentalPageIdRouting`. This exposes `pageId` on
930
850
  page-scoped tools so each agent can route tool calls to the tab it is working
@@ -933,45 +853,158 @@ with.
933
853
  ```json
934
854
  {
935
855
  "mcpServers": {
936
- "chrome-devtools": {
856
+ "brave-devtools": {
937
857
  "command": "npx",
938
- "args": [
939
- "-y",
940
- "chrome-devtools-mcp@latest",
941
- "--experimentalPageIdRouting"
942
- ]
858
+ "args": ["-y", "brave-mcp@latest", "--experimentalPageIdRouting"]
943
859
  }
944
860
  }
945
861
  }
946
862
  ```
947
863
 
948
864
  If you run multiple independent MCP client sessions and want each session to
949
- launch its own temporary Chrome profile, also pass `--isolated`. This avoids
950
- sharing the default Chrome DevTools MCP user data directory between those
865
+ launch its own temporary Brave profile, also pass `--isolated`. This avoids
866
+ sharing the default Brave DevTools MCP user data directory between those
951
867
  server instances.
952
868
 
953
869
  ### User data directory
954
870
 
955
- `brave-devtools-mcp` starts a Brave release channel instance using the following user
871
+ By default, `brave-mcp` starts the Brave release channel using the following user
956
872
  data directory:
957
873
 
958
- - Linux / macOS: `$HOME/.cache/brave-devtools-mcp/brave-profile-$CHANNEL`
959
- - Windows: `%HOMEPATH%/.cache/brave-devtools-mcp/brave-profile-$CHANNEL`
874
+ - Linux / macOS: `$HOME/.cache/brave-devtools-mcp/brave-profile`
875
+ - Windows: `%USERPROFILE%\.cache\brave-devtools-mcp\brave-profile`
960
876
 
961
- The user data directory is not cleared between runs and shared across
962
- all instances of `brave-devtools-mcp`. Set the `isolated` option to `true`
963
- to use a temporary user data dir instead which will be cleared automatically after
964
- the browser is closed.
877
+ For non-release channels, the channel name is appended to the directory name, for example
878
+ `brave-profile-nightly`.
879
+
880
+ The user data directory is not cleared between runs and is reused for subsequent
881
+ runs with the same channel. Only one browser can use it at a time. Set the `isolated`
882
+ option to `true` to use a temporary user data directory instead which will be cleared
883
+ automatically after the browser is closed.
965
884
 
966
885
  ### Connecting to a running Brave instance
967
886
 
968
- See [Mode B: Attach to your existing Brave window](#mode-b-attach-to-your-existing-brave-window) in the Setup section above.
887
+ By default, the Brave DevTools MCP server will start a new Brave instance with a dedicated profile. This might not be ideal in all situations:
888
+
889
+ - If you would like to maintain the same application state when alternating between manual site testing and agent-driven testing.
890
+ - When the MCP needs to sign into a website. Some accounts may prevent sign-in when the browser is controlled via WebDriver (the default launch mechanism for the Brave DevTools MCP server).
891
+ - If you're running your LLM inside a sandboxed environment, but you would like to connect to a Brave instance that runs outside the sandbox.
892
+
893
+ In these cases, start Brave first and let the Brave DevTools MCP server connect to it. There are two ways to do so:
894
+
895
+ - **Automatic connection**: best for sharing state between manual and agent-driven testing.
896
+ - **Manual connection via remote debugging port**: best when running inside a sandboxed environment.
897
+
898
+ #### Automatically connecting to a running Brave instance
899
+
900
+ **Step 1:** Set up remote debugging in Brave
901
+
902
+ In Brave, do the following to set up remote debugging:
903
+
904
+ 1. Navigate to `brave://inspect/#remote-debugging` to enable remote debugging.
905
+ 2. Follow the dialog UI to allow or disallow incoming debugging connections.
906
+
907
+ **Step 2:** Configure Brave DevTools MCP server to automatically connect to a running Brave instance
908
+
909
+ To connect the `brave-mcp` server to the running Brave instance, use
910
+ `--autoConnect` command line argument for the MCP server.
911
+
912
+ The following code snippet is an example configuration for gemini-cli:
913
+
914
+ ```json
915
+ {
916
+ "mcpServers": {
917
+ "brave-devtools": {
918
+ "command": "npx",
919
+ "args": ["brave-mcp@latest", "--autoConnect"]
920
+ }
921
+ }
922
+ }
923
+ ```
924
+
925
+ **Step 3:** Test your setup
926
+
927
+ Make sure your browser is running. Open gemini-cli and run the following prompt:
928
+
929
+ ```none
930
+ Check the performance of https://developers.chrome.com
931
+ ```
932
+
933
+ > [!NOTE]
934
+ > The <code>autoConnect</code> option requires the user to start Brave. If the user has multiple active profiles, the MCP server connects to Brave's default profile and can access all open windows for that profile.
935
+
936
+ The Brave DevTools MCP server will try to connect to your running Brave
937
+ instance. It shows a dialog asking for user permission.
938
+
939
+ Clicking **Allow** results in the Brave DevTools MCP server opening
940
+ [developers.chrome.com](http://developers.chrome.com) and taking a performance
941
+ trace.
942
+
943
+ #### Manual connection using port forwarding
944
+
945
+ You can connect to a running Brave instance by using the `--browser-url` option. This is useful if you are running the MCP server in a sandboxed environment that does not allow starting a new Brave instance.
946
+
947
+ Here is a step-by-step guide on how to connect to a running Brave instance:
948
+
949
+ **Step 1: Configure the MCP client**
950
+
951
+ Add the `--browser-url` option to your MCP client configuration. The value of this option should be the URL of the running Brave instance. `http://127.0.0.1:9222` is a common default.
952
+
953
+ ```json
954
+ {
955
+ "mcpServers": {
956
+ "brave-devtools": {
957
+ "command": "npx",
958
+ "args": ["brave-mcp@latest", "--browser-url=http://127.0.0.1:9222"]
959
+ }
960
+ }
961
+ }
962
+ ```
963
+
964
+ **Step 2: Start the Brave browser**
965
+
966
+ > [!WARNING]
967
+ > Enabling the remote debugging port opens up a debugging port on the running browser instance. Any application on your machine can connect to this port and control the browser. Make sure that you are not browsing any sensitive websites while the debugging port is open.
968
+
969
+ Start the Brave browser with the remote debugging port enabled. Make sure to close any running Brave instances before starting a new one with the debugging port enabled. The port number you choose must be the same as the one you specified in the `--browser-url` option in your MCP client configuration.
970
+
971
+ Use a dedicated user data directory when enabling the remote debugging port so your regular browsing profile and data are not exposed to the debugging session.
972
+
973
+ **macOS**
974
+
975
+ ```bash
976
+ /Applications/Brave\ Browser.app/Contents/MacOS/Brave\ Browser --remote-debugging-port=9222 --user-data-dir=/tmp/brave-profile-release
977
+ ```
978
+
979
+ **Linux**
980
+
981
+ ```bash
982
+ /usr/bin/brave-browser --remote-debugging-port=9222 --user-data-dir=/tmp/brave-profile-release
983
+ ```
984
+
985
+ **Windows**
986
+
987
+ ```bash
988
+ "C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe" --remote-debugging-port=9222 --user-data-dir="%TEMP%\brave-profile-release"
989
+ ```
990
+
991
+ **Step 3: Test your setup**
992
+
993
+ After configuring the MCP client and starting the Brave browser, you can test your setup by running a simple prompt in your MCP client:
994
+
995
+ ```
996
+ Check the performance of https://developers.chrome.com
997
+ ```
998
+
999
+ Your MCP client should connect to the running Brave instance and receive a performance report.
1000
+
1001
+ If you hit VM-to-host port forwarding issues, see the “Remote debugging between virtual machine (VM) and host fails” section in [`docs/troubleshooting.md`](./docs/troubleshooting.md#remote-debugging-between-virtual-machine-vm-and-host-fails).
969
1002
 
970
- For VM-to-host port forwarding issues, see [`docs/troubleshooting.md`](./docs/troubleshooting.md#remote-debugging-between-virtual-machine-vm-and-host-fails).
1003
+ For more details on remote debugging, see the [Chromium DevTools documentation](https://developer.chrome.com/docs/devtools/remote-debugging/).
971
1004
 
972
- ### Debugging on Android
1005
+ ### Debugging Chrome on Android
973
1006
 
974
- Please consult [these instructions](./docs/debugging-android.md) (originally written for Chrome, but applicable to any Chromium browser).
1007
+ Please consult [these instructions](./docs/debugging-android.md).
975
1008
 
976
1009
  ## Known limitations
977
1010
 
@@ -979,6 +1012,6 @@ See [Troubleshooting](./docs/troubleshooting.md).
979
1012
 
980
1013
  ## Integrating as a browser subagent
981
1014
 
982
- If you are developing agentic tooling and want to provide an integrated browser subagent as part of your product, we recommend building on top of Chrome DevTools for agents.
1015
+ If you are developing agentic tooling and want to provide an integrated browser subagent as part of your product, we recommend building on top of Brave DevTools for agents.
983
1016
 
984
1017
  For a reference implementation, see the [Gemini CLI browser agent documentation](https://geminicli.com/docs/core/subagents/#browser-agent).