brave-mcp 1.6.0 → 1.7.1

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 (299) hide show
  1. package/README.md +329 -250
  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 +204 -105
  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/flagUtils.js +4 -3
  27. package/build/src/telemetry/transformation.js +30 -0
  28. package/build/src/third_party/THIRD_PARTY_NOTICES +234 -53
  29. package/build/src/third_party/bundled-packages.json +5 -5
  30. package/build/src/third_party/devtools-formatter-worker.js +60 -19
  31. package/build/src/third_party/devtools-heap-snapshot-worker.js +579 -204
  32. package/build/src/third_party/index.js +29210 -9795
  33. package/build/src/third_party/issue-descriptions/CoepCorpNotSameOrigin.md +2 -2
  34. package/build/src/third_party/issue-descriptions/CoepCorpNotSameOriginAfterDefaultedToSameOriginByCoep.md +3 -3
  35. package/build/src/third_party/issue-descriptions/CoepCorpNotSameSite.md +2 -2
  36. package/build/src/third_party/issue-descriptions/CoepFrameResourceNeedsCoepHeader.md +1 -1
  37. package/build/src/third_party/issue-descriptions/CompatibilityModeQuirks.md +1 -1
  38. package/build/src/third_party/issue-descriptions/CookieAttributeValueExceedsMaxSize.md +2 -2
  39. package/build/src/third_party/issue-descriptions/LowTextContrast.md +1 -1
  40. package/build/src/third_party/issue-descriptions/SameSiteNoneInsecureErrorRead.md +1 -1
  41. package/build/src/third_party/issue-descriptions/SameSiteNoneInsecureErrorSet.md +1 -1
  42. package/build/src/third_party/issue-descriptions/SameSiteNoneInsecureWarnRead.md +1 -1
  43. package/build/src/third_party/issue-descriptions/SameSiteNoneInsecureWarnSet.md +1 -1
  44. package/build/src/third_party/issue-descriptions/SameSiteUnspecifiedLaxAllowUnsafeRead.md +3 -3
  45. package/build/src/third_party/issue-descriptions/SameSiteUnspecifiedLaxAllowUnsafeSet.md +3 -3
  46. package/build/src/third_party/issue-descriptions/bounceTrackingMitigations.md +1 -1
  47. package/build/src/third_party/issue-descriptions/connectionAllowlistEmbeddingRequirementNotSatisfied.md +26 -0
  48. package/build/src/third_party/issue-descriptions/connectionAllowlistIFrameAttributeLoosensEmbeddingRequirement.md +19 -0
  49. package/build/src/third_party/issue-descriptions/connectionAllowlistInvalidAllowConnectionAllowlistFrom.md +21 -0
  50. package/build/src/third_party/issue-descriptions/connectionAllowlistInvalidAllowlistItemType.md +2 -2
  51. package/build/src/third_party/issue-descriptions/connectionAllowlistInvalidHeader.md +2 -2
  52. package/build/src/third_party/issue-descriptions/connectionAllowlistInvalidUrlPattern.md +3 -3
  53. package/build/src/third_party/issue-descriptions/connectionAllowlistItemNotInnerList.md +2 -2
  54. package/build/src/third_party/issue-descriptions/connectionAllowlistMoreThanOneList.md +2 -2
  55. package/build/src/third_party/issue-descriptions/connectionAllowlistReportingEndpointNotToken.md +1 -1
  56. package/build/src/third_party/issue-descriptions/cookieCrossSiteRedirectDowngrade.md +3 -3
  57. package/build/src/third_party/issue-descriptions/cookieExcludeBlockedWithinRelatedWebsiteSet.md +1 -1
  58. package/build/src/third_party/issue-descriptions/cookieExcludePortMismatch.md +1 -1
  59. package/build/src/third_party/issue-descriptions/cookieExcludeSchemeMismatch.md +1 -1
  60. package/build/src/third_party/issue-descriptions/cookieExcludeThirdPartyPhaseoutSet.md +1 -1
  61. package/build/src/third_party/issue-descriptions/cookieWarnThirdPartyPhaseoutRead.md +1 -1
  62. package/build/src/third_party/issue-descriptions/corsAllowCredentialsRequired.md +1 -1
  63. package/build/src/third_party/issue-descriptions/corsDisabledScheme.md +2 -2
  64. package/build/src/third_party/issue-descriptions/corsDisallowedByMode.md +2 -2
  65. package/build/src/third_party/issue-descriptions/corsHeaderDisallowedByPreflightResponse.md +1 -1
  66. package/build/src/third_party/issue-descriptions/corsInvalidHeaderValues.md +3 -3
  67. package/build/src/third_party/issue-descriptions/corsLocalNetworkAccessPermissionDenied.md +1 -1
  68. package/build/src/third_party/issue-descriptions/corsMethodDisallowedByPreflightResponse.md +1 -1
  69. package/build/src/third_party/issue-descriptions/corsNoCorsRedirectModeNotFollow.md +1 -1
  70. package/build/src/third_party/issue-descriptions/corsOriginMismatch.md +3 -3
  71. package/build/src/third_party/issue-descriptions/corsPreflightResponseInvalid.md +2 -2
  72. package/build/src/third_party/issue-descriptions/corsRedirectContainsCredentials.md +3 -3
  73. package/build/src/third_party/issue-descriptions/corsWildcardOriginNotAllowed.md +4 -3
  74. package/build/src/third_party/issue-descriptions/cspEvalViolation.md +4 -4
  75. package/build/src/third_party/issue-descriptions/cspInlineViolation.md +2 -2
  76. package/build/src/third_party/issue-descriptions/cspTrustedTypesPolicyViolation.md +2 -2
  77. package/build/src/third_party/issue-descriptions/cspTrustedTypesSinkViolation.md +4 -4
  78. package/build/src/third_party/issue-descriptions/cspURLViolation.md +4 -4
  79. package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsEmptyList.md +1 -1
  80. package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsHttpNotFound.md +1 -1
  81. package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsInvalidContentType.md +1 -1
  82. package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsInvalidResponse.md +1 -1
  83. package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsNoResponse.md +1 -1
  84. package/build/src/third_party/issue-descriptions/emailVerificationRequestDnsFetchFailed.md +1 -1
  85. package/build/src/third_party/issue-descriptions/emailVerificationRequestDnsInvalidRecord.md +1 -1
  86. package/build/src/third_party/issue-descriptions/emailVerificationRequestEmailVerificationWellKnownHttpNotFound.md +1 -1
  87. package/build/src/third_party/issue-descriptions/emailVerificationRequestEmailVerificationWellKnownInvalidContentType.md +1 -1
  88. package/build/src/third_party/issue-descriptions/emailVerificationRequestEmailVerificationWellKnownInvalidResponse.md +1 -1
  89. package/build/src/third_party/issue-descriptions/emailVerificationRequestEmailVerificationWellKnownNoResponse.md +1 -1
  90. package/build/src/third_party/issue-descriptions/emailVerificationRequestInvalidEmail.md +1 -1
  91. package/build/src/third_party/issue-descriptions/emailVerificationRequestJwksHttpNotFound.md +1 -1
  92. package/build/src/third_party/issue-descriptions/emailVerificationRequestJwksInvalidResponse.md +1 -1
  93. package/build/src/third_party/issue-descriptions/emailVerificationRequestKeyBindingSigningFailed.md +1 -1
  94. package/build/src/third_party/issue-descriptions/emailVerificationRequestRpOriginIsOpaque.md +1 -1
  95. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenHttpNotFound.md +1 -1
  96. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenInvalidContentType.md +1 -1
  97. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenInvalidResponse.md +1 -1
  98. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenInvalidSdJwt.md +1 -1
  99. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenMalformedSdJwt.md +1 -1
  100. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenNoResponse.md +1 -1
  101. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidAudience.md +1 -1
  102. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidIssuedAt.md +1 -1
  103. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidNonce.md +1 -1
  104. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidSdHash.md +1 -1
  105. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidTyp.md +1 -1
  106. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingAud.md +1 -1
  107. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingCnf.md +1 -1
  108. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingIat.md +1 -1
  109. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingNonce.md +1 -1
  110. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingSdHash.md +1 -1
  111. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbSignatureFailed.md +1 -1
  112. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidEmail.md +1 -1
  113. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidEmailVerified.md +1 -1
  114. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidHolderKey.md +1 -1
  115. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidIssuedAt.md +1 -1
  116. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidIssuer.md +1 -1
  117. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtJwksMissingKeys.md +1 -1
  118. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtMissingCnf.md +1 -1
  119. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtMissingEmail.md +1 -1
  120. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtMissingIat.md +1 -1
  121. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtMissingIss.md +1 -1
  122. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtSignatureFailed.md +1 -1
  123. package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtUnsupportedHeaderAlg.md +1 -1
  124. package/build/src/third_party/issue-descriptions/emailVerificationRequestUserLoggedOut.md +1 -1
  125. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownAccountsEndpointCrossOrigin.md +1 -1
  126. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownHttpNotFound.md +1 -1
  127. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownInvalidContentType.md +1 -1
  128. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownInvalidResponse.md +1 -1
  129. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownIssuanceEndpointCrossOrigin.md +1 -1
  130. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownListEmpty.md +1 -1
  131. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownMissingAccountsEndpoint.md +1 -1
  132. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownMissingIssuanceEndpoint.md +1 -1
  133. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownNoResponse.md +1 -1
  134. package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownUnsupportedSigningAlgorithm.md +1 -1
  135. package/build/src/third_party/issue-descriptions/federatedAuthRequestAccountsHttpNotFound.md +1 -1
  136. package/build/src/third_party/issue-descriptions/federatedAuthRequestAccountsInvalidResponse.md +1 -1
  137. package/build/src/third_party/issue-descriptions/federatedAuthRequestAccountsNoResponse.md +1 -1
  138. package/build/src/third_party/issue-descriptions/federatedAuthRequestApprovalDeclined.md +1 -1
  139. package/build/src/third_party/issue-descriptions/federatedAuthRequestCanceled.md +1 -1
  140. package/build/src/third_party/issue-descriptions/federatedAuthRequestErrorFetchingSignin.md +1 -1
  141. package/build/src/third_party/issue-descriptions/federatedAuthRequestErrorIdToken.md +1 -1
  142. package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenHttpNotFound.md +1 -1
  143. package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenInvalidRequest.md +1 -1
  144. package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenInvalidResponse.md +1 -1
  145. package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenNoResponse.md +1 -1
  146. package/build/src/third_party/issue-descriptions/federatedAuthRequestInvalidSigninResponse.md +1 -1
  147. package/build/src/third_party/issue-descriptions/federatedAuthRequestManifestHttpNotFound.md +1 -1
  148. package/build/src/third_party/issue-descriptions/federatedAuthRequestManifestInvalidResponse.md +1 -1
  149. package/build/src/third_party/issue-descriptions/federatedAuthRequestManifestNoResponse.md +1 -1
  150. package/build/src/third_party/issue-descriptions/federatedAuthRequestTooManyRequests.md +1 -1
  151. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestInvalidAccountsResponse.md +1 -1
  152. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestInvalidConfigOrWellKnown.md +1 -1
  153. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNoAccountSharingPermission.md +1 -1
  154. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNoApiPermission.md +1 -1
  155. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNoReturningUserFromFetchedAccounts.md +1 -1
  156. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNotIframe.md +1 -1
  157. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNotPotentiallyTrustworthy.md +1 -1
  158. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNotSameOrigin.md +1 -1
  159. package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNotSignedInWithIdp.md +1 -1
  160. package/build/src/third_party/issue-descriptions/fetchingPartitionedBlobURL.md +2 -2
  161. package/build/src/third_party/issue-descriptions/genericFormAriaLabelledByToNonExistingIdError.md +2 -2
  162. package/build/src/third_party/issue-descriptions/genericFormAutocompleteAttributeEmptyError.md +1 -1
  163. package/build/src/third_party/issue-descriptions/genericFormDuplicateIdForInputError.md +1 -1
  164. package/build/src/third_party/issue-descriptions/genericFormEmptyIdAndNameAttributesForInputError.md +2 -2
  165. package/build/src/third_party/issue-descriptions/genericFormInputAssignedAutocompleteValueToIdOrNameAttributeError.md +2 -2
  166. package/build/src/third_party/issue-descriptions/genericFormInputHasWrongButWellIntendedAutocompleteValueError.md +1 -1
  167. package/build/src/third_party/issue-descriptions/genericFormInputWithNoLabelError.md +1 -1
  168. package/build/src/third_party/issue-descriptions/genericFormLabelForMatchesNonExistingIdError.md +2 -2
  169. package/build/src/third_party/issue-descriptions/genericFormLabelForNameError.md +1 -1
  170. package/build/src/third_party/issue-descriptions/genericFormLabelHasNeitherForNorNestedInputError.md +1 -1
  171. package/build/src/third_party/issue-descriptions/genericFormModelContextMissingToolName.md +1 -1
  172. package/build/src/third_party/issue-descriptions/genericFormModelContextParameterMissingName.md +1 -1
  173. package/build/src/third_party/issue-descriptions/genericFormModelContextRequiredParameterMissingName.md +1 -1
  174. package/build/src/third_party/issue-descriptions/genericNavigationEntryMarkedSkippable.md +2 -2
  175. package/build/src/third_party/issue-descriptions/heavyAd.md +1 -1
  176. package/build/src/third_party/issue-descriptions/lazyLoadImageZeroSize.md +7 -0
  177. package/build/src/third_party/issue-descriptions/navigatingPartitionedBlobURL.md +3 -3
  178. package/build/src/third_party/issue-descriptions/permissionElementActivationDisabled.md +1 -1
  179. package/build/src/third_party/issue-descriptions/permissionElementActivationDisabledWithOccluder.md +1 -1
  180. package/build/src/third_party/issue-descriptions/permissionElementActivationDisabledWithOccluderParent.md +1 -1
  181. package/build/src/third_party/issue-descriptions/permissionElementFencedFrameDisallowed.md +2 -2
  182. package/build/src/third_party/issue-descriptions/permissionElementFontSizeTooLarge.md +2 -2
  183. package/build/src/third_party/issue-descriptions/permissionElementFontSizeTooSmall.md +2 -2
  184. package/build/src/third_party/issue-descriptions/permissionElementInsetBoxShadowUnsupported.md +1 -1
  185. package/build/src/third_party/issue-descriptions/permissionElementInvalidDisplayStyle.md +2 -2
  186. package/build/src/third_party/issue-descriptions/permissionElementInvalidSizeValue.md +2 -2
  187. package/build/src/third_party/issue-descriptions/permissionElementInvalidType.md +2 -2
  188. package/build/src/third_party/issue-descriptions/permissionElementInvalidTypeActivation.md +2 -2
  189. package/build/src/third_party/issue-descriptions/permissionElementNonOpaqueColor.md +1 -1
  190. package/build/src/third_party/issue-descriptions/permissionElementPaddingBottomUnsupported.md +2 -2
  191. package/build/src/third_party/issue-descriptions/permissionElementPaddingRightUnsupported.md +2 -2
  192. package/build/src/third_party/issue-descriptions/permissionElementRequestInProgress.md +2 -2
  193. package/build/src/third_party/issue-descriptions/permissionElementSecurityChecksFailed.md +1 -1
  194. package/build/src/third_party/issue-descriptions/permissionElementTypeNotSupported.md +2 -2
  195. package/build/src/third_party/issue-descriptions/permissionElementUntrustedEvent.md +1 -1
  196. package/build/src/third_party/issue-descriptions/placeholderDescriptionForInvisibleIssues.md +1 -1
  197. package/build/src/third_party/issue-descriptions/selectElementAccessibilityDisallowedOptGroupChild.md +1 -1
  198. package/build/src/third_party/issue-descriptions/selectElementAccessibilityDisallowedSelectChild.md +1 -1
  199. package/build/src/third_party/issue-descriptions/selectElementAccessibilityInteractiveContentAttributesSelectDescendant.md +1 -1
  200. package/build/src/third_party/issue-descriptions/selectElementAccessibilityInteractiveContentLegendChild.md +1 -1
  201. package/build/src/third_party/issue-descriptions/selectElementAccessibilityInteractiveContentOptionChild.md +1 -1
  202. package/build/src/third_party/issue-descriptions/selectElementAccessibilityNonPhrasingContentOptionChild.md +1 -1
  203. package/build/src/third_party/issue-descriptions/selectivePermissionsIntervention.md +3 -3
  204. package/build/src/third_party/issue-descriptions/sharedArrayBuffer.md +1 -1
  205. package/build/src/third_party/issue-descriptions/sharedDictionaryUseErrorCrossOriginNoCorsRequest.md +1 -1
  206. package/build/src/third_party/issue-descriptions/sharedDictionaryUseErrorMatchingDictionaryNotUsed.md +1 -1
  207. package/build/src/third_party/issue-descriptions/sharedDictionaryUseErrorUnexpectedContentDictionaryHeader.md +1 -1
  208. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorCossOriginNoCorsRequest.md +1 -1
  209. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorDisallowedBySettings.md +1 -1
  210. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorExpiredResponse.md +1 -1
  211. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorFeatureDisabled.md +2 -2
  212. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorInvalidStructuredHeader.md +1 -1
  213. package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorNavigationRequest.md +2 -2
  214. package/build/src/third_party/issue-descriptions/sriInvalidSignatureHeader.md +4 -4
  215. package/build/src/third_party/issue-descriptions/sriInvalidSignatureInputHeader.md +4 -4
  216. package/build/src/third_party/issue-descriptions/sriMissingSignatureHeader.md +1 -1
  217. package/build/src/third_party/issue-descriptions/sriMissingSignatureInputHeader.md +2 -2
  218. package/build/src/third_party/issue-descriptions/sriSignatureHeaderValueIsIncorrectLength.md +2 -2
  219. package/build/src/third_party/issue-descriptions/sriSignatureHeaderValueIsNotByteSequence.md +4 -4
  220. package/build/src/third_party/issue-descriptions/sriSignatureHeaderValueIsParameterized.md +4 -4
  221. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidComponentName.md +1 -1
  222. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidComponentType.md +2 -2
  223. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidDerivedComponentParameter.md +1 -1
  224. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidHeaderComponentParameter.md +1 -1
  225. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidParameter.md +2 -2
  226. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderKeyIdLength.md +5 -5
  227. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderMissingLabel.md +3 -3
  228. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderMissingRequiredParameters.md +2 -2
  229. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderValueMissingComponents.md +2 -2
  230. package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderValueNotInnerList.md +2 -2
  231. package/build/src/third_party/issue-descriptions/sriValidationFailedIntegrityMismatch.md +4 -4
  232. package/build/src/third_party/issue-descriptions/sriValidationFailedInvalidLength.md +3 -3
  233. package/build/src/third_party/issue-descriptions/sriValidationFailedSignatureExpired.md +2 -2
  234. package/build/src/third_party/issue-descriptions/sriValidationFailedSignatureMismatch.md +2 -2
  235. package/build/src/third_party/issue-descriptions/stylesheetLateImport.md +1 -1
  236. package/build/src/third_party/issue-descriptions/summaryElementAccessibilityInteractiveContentSummaryDescendant.md +1 -1
  237. package/build/src/third_party/issue-descriptions/unencodedDigestIncorrectDigestLength.md +2 -2
  238. package/build/src/third_party/issue-descriptions/unencodedDigestIncorrectDigestType.md +3 -3
  239. package/build/src/third_party/issue-descriptions/unencodedDigestMalformedDictionary.md +2 -2
  240. package/build/src/third_party/issue-descriptions/unencodedDigestUnknownAlgorithm.md +1 -1
  241. package/build/src/third_party/lighthouse-devtools-mcp-bundle.js +1125 -1027
  242. package/build/src/tools/categories.js +3 -0
  243. package/build/src/tools/console.js +6 -0
  244. package/build/src/tools/input.js +207 -112
  245. package/build/src/tools/memory.js +35 -4
  246. package/build/src/tools/network.js +1 -1
  247. package/build/src/tools/pages.js +1 -0
  248. package/build/src/tools/performance.js +59 -39
  249. package/build/src/tools/pwa.js +130 -0
  250. package/build/src/tools/screenshot.js +152 -77
  251. package/build/src/tools/script.js +102 -32
  252. package/build/src/tools/tools.js +2 -0
  253. package/build/src/utils/check-for-updates.js +1 -1
  254. package/build/src/utils/polyfill.js +6 -3
  255. package/build/src/utils/url.js +43 -0
  256. package/build/src/version.js +1 -1
  257. package/package.json +30 -23
  258. package/skills/a11y-debugging/SKILL.md +2 -2
  259. package/skills/{chrome-devtools → brave-devtools}/SKILL.md +7 -7
  260. package/skills/brave-devtools-cli/SKILL.md +153 -0
  261. package/skills/brave-devtools-cli/references/installation.md +14 -0
  262. package/skills/debug-optimize-lcp/SKILL.md +1 -1
  263. package/skills/memory-leak-debugging/SKILL.md +16 -20
  264. package/skills/memory-leak-debugging/references/common-leaks.md +1 -1
  265. package/skills/troubleshooting/SKILL.md +17 -17
  266. package/build/src/devtools/DevToolsConnectionAdapter.js +0 -70
  267. package/build/src/third_party/issue-descriptions/SameSiteExcludeContextDowngradeRead.md +0 -8
  268. package/build/src/third_party/issue-descriptions/SameSiteExcludeContextDowngradeSet.md +0 -8
  269. package/build/src/third_party/issue-descriptions/SameSiteExcludeNavigationContextDowngrade.md +0 -8
  270. package/build/src/third_party/issue-descriptions/SameSiteWarnCrossDowngradeRead.md +0 -8
  271. package/build/src/third_party/issue-descriptions/SameSiteWarnCrossDowngradeSet.md +0 -8
  272. package/build/src/third_party/issue-descriptions/SameSiteWarnStrictLaxDowngradeStrict.md +0 -8
  273. package/build/src/third_party/issue-descriptions/arInsecureContext.md +0 -7
  274. package/build/src/third_party/issue-descriptions/arInvalidInfoHeader.md +0 -5
  275. package/build/src/third_party/issue-descriptions/arInvalidRegisterOsSourceHeader.md +0 -5
  276. package/build/src/third_party/issue-descriptions/arInvalidRegisterOsTriggerHeader.md +0 -5
  277. package/build/src/third_party/issue-descriptions/arInvalidRegisterSourceHeader.md +0 -5
  278. package/build/src/third_party/issue-descriptions/arInvalidRegisterTriggerHeader.md +0 -5
  279. package/build/src/third_party/issue-descriptions/arNavigationRegistrationUniqueScopeAlreadySet.md +0 -5
  280. package/build/src/third_party/issue-descriptions/arNavigationRegistrationWithoutTransientUserActivation.md +0 -6
  281. package/build/src/third_party/issue-descriptions/arNoRegisterOsSourceHeader.md +0 -5
  282. package/build/src/third_party/issue-descriptions/arNoRegisterOsTriggerHeader.md +0 -5
  283. package/build/src/third_party/issue-descriptions/arNoRegisterSourceHeader.md +0 -5
  284. package/build/src/third_party/issue-descriptions/arNoRegisterTriggerHeader.md +0 -5
  285. package/build/src/third_party/issue-descriptions/arNoWebOrOsSupport.md +0 -4
  286. package/build/src/third_party/issue-descriptions/arOsSourceIgnored.md +0 -18
  287. package/build/src/third_party/issue-descriptions/arOsTriggerIgnored.md +0 -19
  288. package/build/src/third_party/issue-descriptions/arPermissionPolicyDisabled.md +0 -8
  289. package/build/src/third_party/issue-descriptions/arSourceAndTriggerHeaders.md +0 -9
  290. package/build/src/third_party/issue-descriptions/arSourceIgnored.md +0 -13
  291. package/build/src/third_party/issue-descriptions/arTriggerIgnored.md +0 -12
  292. package/build/src/third_party/issue-descriptions/arUntrustworthyReportingOrigin.md +0 -10
  293. package/build/src/third_party/issue-descriptions/arWebAndOsHeaders.md +0 -11
  294. package/build/src/utils/Mutex.js +0 -38
  295. package/build/src/utils/string.js +0 -37
  296. package/skills/chrome-devtools-cli/SKILL.md +0 -153
  297. package/skills/chrome-devtools-cli/references/installation.md +0 -14
  298. package/skills/memory-leak-debugging/references/compare_snapshots.js +0 -109
  299. package/skills/memory-leak-debugging/references/memlab.md +0 -29
package/README.md CHANGED
@@ -1,256 +1,198 @@
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
+ **Full Chrome DevTools MCP parity, rebuilt for Brave.**
6
4
 
7
- `brave-mcp` lets your coding agent (such as Claude, Cursor, Gemini or Copilot)
8
- control and inspect a live Brave browser. It acts as a Model-Context-Protocol
9
- (MCP) server, giving your AI coding assistant access to the full power of
10
- DevTools for reliable automation, in-depth debugging, and performance analysis.
11
- A [CLI](docs/cli.md) is also provided for use without MCP.
5
+ [![CI](https://github.com/triuzzi/brave-devtools-mcp/actions/workflows/run-tests.yml/badge.svg?branch=main)](https://github.com/triuzzi/brave-devtools-mcp/actions/workflows/run-tests.yml)
6
+ [![npm](https://img.shields.io/npm/v/brave-mcp.svg?logo=npm)](https://www.npmjs.com/package/brave-mcp)
7
+ [![npm downloads](https://img.shields.io/npm/dm/brave-mcp.svg?logo=npm)](https://www.npmjs.com/package/brave-mcp)
8
+ [![MCP Registry](https://img.shields.io/badge/MCP%20Registry-active-5B5BD6)](https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.triuzzi%2Fbrave-mcp)
9
+ [![npm provenance](https://img.shields.io/badge/npm-provenance-2E7D32)](https://registry.npmjs.org/-/npm/v1/attestations/brave-mcp@1.7.1)
10
+ [![upstream](https://img.shields.io/badge/upstream-0%20commits%20behind-brightgreen)](https://github.com/triuzzi/brave-devtools-mcp/compare/ChromeDevTools:main...main)
11
+ [![license](https://img.shields.io/github/license/triuzzi/brave-devtools-mcp)](./LICENSE)
12
12
 
13
- ## [Tool reference](./docs/tool-reference.md) | [Changelog](./CHANGELOG.md) | [Contributing](./CONTRIBUTING.md) | [Troubleshooting](./docs/troubleshooting.md) | [Design Principles](./docs/design-principles.md)
13
+ ![Brave DevTools MCP: full Chrome DevTools MCP parity, rebuilt for Brave](./docs/assets/social-preview.png)
14
14
 
15
- ## Key features
16
-
17
- - **Get performance insights**: Uses [Chrome
18
- DevTools](https://github.com/ChromeDevTools/devtools-frontend) to record
19
- traces and extract actionable performance insights.
20
- - **Advanced browser debugging**: Analyze network requests, take screenshots and
21
- check browser console messages (with source-mapped stack traces).
22
- - **Reliable automation**. Uses
23
- [puppeteer](https://github.com/puppeteer/puppeteer) to automate actions in
24
- Brave and automatically wait for action results.
15
+ `brave-mcp` gives Claude Code, Codex, Cursor, OpenCode, and other MCP clients direct access to Brave for browser automation, network and console debugging, performance analysis, screenshots, accessibility inspection, and memory profiling. A standalone [`brave-devtools`](docs/cli.md) CLI is included too.
25
16
 
26
- ## Disclaimers
27
-
28
- `brave-devtools-mcp` exposes content of the browser instance to the MCP clients
29
- allowing them to inspect, debug, and modify any data in the browser or DevTools.
30
- Avoid sharing sensitive or personal information that you don't want to share with
31
- MCP clients.
17
+ ## Install in one command
32
18
 
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.
19
+ ### Claude Code
35
20
 
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.
21
+ ```bash
22
+ claude mcp add brave-devtools --scope user -- npx -y brave-mcp@latest
23
+ ```
38
24
 
39
- ## Requirements
25
+ ### Cursor
40
26
 
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/)
27
+ ```bash
28
+ cursor --add-mcp '{"name":"brave-devtools","command":"npx","args":["-y","brave-mcp@latest"]}'
29
+ ```
44
30
 
45
- > **Note:** Do **not** use `chrome-devtools-mcp@latest` from npm — that installs Google's Chrome-oriented server. This fork is `brave-mcp`.
31
+ ### Codex
46
32
 
47
- ## Setup
33
+ ```bash
34
+ codex mcp add brave-devtools -- npx -y brave-mcp@latest
35
+ ```
48
36
 
49
- ### Quick start (via npm)
37
+ ### OpenCode
50
38
 
51
- ```json
52
- {
53
- "mcpServers": {
54
- "brave-devtools": {
55
- "command": "npx",
56
- "args": ["-y", "brave-mcp@latest"]
57
- }
58
- }
59
- }
39
+ ```bash
40
+ opencode mcp add brave-devtools -- npx -y brave-mcp@latest
60
41
  ```
61
42
 
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.
43
+ Restart your client, then try this prompt:
63
44
 
64
- ### From source (for development)
45
+ > Open my app in Brave. Find console errors and failed network requests, inspect the accessibility tree, run Lighthouse, and explain the highest-impact issue.
65
46
 
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
- ```
47
+ ## Why use this instead of Chrome DevTools MCP?
72
48
 
73
- Run `npm run build` again after `git pull` when you update the repo.
49
+ | Capability | `brave-mcp` | `chrome-devtools-mcp` |
50
+ | ---------------------------------------- | --------------------------------------- | ------------------------------------ |
51
+ | Browser launched and discovered natively | Brave Release, Beta, and Nightly | Chrome Stable, Beta, Dev, and Canary |
52
+ | Attach to an existing browser | Brave profiles, HTTP, or WebSocket | Chrome profiles, HTTP, or WebSocket |
53
+ | Upstream DevTools features | Full parity; currently 0 commits behind | Source implementation |
54
+ | Usage telemetry | Disabled by default | Enabled by default |
55
+ | Standalone CLI | `brave-devtools` | `chrome-devtools` |
74
56
 
75
- Then point your MCP config at the built CLI with an **absolute path**:
57
+ Use [Chrome DevTools MCP](https://github.com/ChromeDevTools/chrome-devtools-mcp) when your target browser is Chrome. Use `brave-mcp` when your target browser is Brave and you want Brave-native discovery, profiles, channels, naming, and privacy defaults without giving up upstream features.
76
58
 
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
- ```
59
+ ## [Tool reference](./docs/tool-reference.md) | [Changelog](./CHANGELOG.md) | [Contributing](./CONTRIBUTING.md) | [Troubleshooting](./docs/troubleshooting.md) | [Design principles](./docs/design-principles.md)
60
+
61
+ ## Key features
89
62
 
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.
63
+ - **Get performance insights**: Uses [Chrome
64
+ DevTools](https://github.com/ChromeDevTools/devtools-frontend) to record
65
+ traces and extract actionable performance insights.
66
+ - **Advanced browser debugging**: Analyze network requests, take screenshots and
67
+ check browser console messages (with source-mapped stack traces).
68
+ - **Reliable automation**. Uses
69
+ [puppeteer](https://github.com/puppeteer/puppeteer) to automate actions in
70
+ Brave and automatically wait for action results.
91
71
 
92
- If Brave is not detected automatically, set `BRAVE_PATH`:
72
+ ## Disclaimers
93
73
 
94
- ```json
95
- {
96
- "mcpServers": {
97
- "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
- }
105
- }
106
- }
107
- }
108
- ```
74
+ `brave-mcp` exposes content of the browser instance to the MCP clients
75
+ allowing them to inspect, debug, and modify any data in the browser or DevTools.
76
+ Avoid sharing sensitive or personal information that you don't want to share with
77
+ MCP clients.
109
78
 
110
- ### 3. Choose your connection mode
79
+ `brave-mcp` officially supports the current Brave release. Beta and Nightly channels can be selected explicitly.
111
80
 
112
- The server has two modes: **launch a new instance** (default) or **attach to your existing Brave window**.
81
+ Performance tools may send trace URLs to the Google CrUX API to fetch real-user
82
+ experience data. This helps provide a holistic performance picture by
83
+ presenting field data alongside lab data. This data is collected by the [Chrome
84
+ User Experience Report (CrUX)](https://developer.chrome.com/docs/crux). To disable
85
+ this, run with the `--no-performance-crux` flag.
113
86
 
114
- #### Mode A: Launch a new instance (default)
87
+ ## **Usage statistics**
115
88
 
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.
89
+ 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:
117
90
 
118
- #### Mode B: Attach to your existing Brave window
91
+ ```json
92
+ "args": ["-y", "brave-mcp@latest", "--usage-statistics"]
93
+ ```
119
94
 
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.
95
+ 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.
121
96
 
122
- **Step 1:** Quit Brave completely, then relaunch with the debugging flag:
97
+ ## Update checks
123
98
 
124
- ```sh
125
- # macOS
126
- open -a "Brave Browser" --args --remote-debugging-port=9222
99
+ By default, the server periodically checks the npm registry for updates and logs a notification when a newer version is available.
100
+ You can disable these update checks by setting `BRAVE_DEVTOOLS_MCP_NO_UPDATE_CHECKS`.
127
101
 
128
- # Linux
129
- brave-browser --remote-debugging-port=9222
102
+ ## Requirements
130
103
 
131
- # Windows
132
- "C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe" --remote-debugging-port=9222
133
- ```
104
+ - [Node.js](https://nodejs.org/) [LTS](https://github.com/nodejs/Release#release-schedule) version.
105
+ - [Brave](https://brave.com/download/) current release or newer.
106
+ - [npm](https://www.npmjs.com/)
134
107
 
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.
108
+ ## Getting started
136
109
 
137
- **Step 2:** Add `--browserUrl` to your MCP config:
110
+ Add the following config to your MCP client:
138
111
 
139
112
  ```json
140
113
  {
141
114
  "mcpServers": {
142
115
  "brave-devtools": {
143
116
  "command": "npx",
144
- "args": [
145
- "-y",
146
- "brave-mcp@latest",
147
- "--browserUrl",
148
- "http://localhost:9222"
149
- ]
117
+ "args": ["-y", "brave-mcp@latest"]
150
118
  }
151
119
  }
152
120
  }
153
121
  ```
154
122
 
155
- Or if running from source:
123
+ > [!NOTE]
124
+ > Using `brave-mcp@latest` ensures that your MCP client will always use the latest version of the Brave DevTools MCP server.
125
+
126
+ If you are interested in doing only basic browser tasks, use the `--slim` mode:
156
127
 
157
128
  ```json
158
129
  {
159
130
  "mcpServers": {
160
131
  "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
- ]
132
+ "command": "npx",
133
+ "args": ["-y", "brave-mcp@latest", "--slim", "--headless"]
167
134
  }
168
135
  }
169
136
  }
170
137
  ```
171
138
 
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
139
+ See [Slim tool reference](./docs/slim-tool-reference.md).
185
140
 
186
- An integration test suite exercises all 29 MCP tools against a running Brave instance:
141
+ ### MCP Client configuration
187
142
 
188
- ```sh
189
- # Launch Brave with remote debugging
190
- open -a "Brave Browser" --args --remote-debugging-port=9222
143
+ <details>
144
+ <summary>Amp</summary>
145
+ 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
146
 
192
- # Run all 36 test cases
193
- npm run test:brave
147
+ ```bash
148
+ amp mcp add brave-devtools -- npx brave-mcp@latest
194
149
  ```
195
150
 
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.
151
+ </details>
197
152
 
198
- ## Getting started
153
+ <details>
154
+ <summary>Antigravity</summary>
199
155
 
200
- If you are interested in only basic browser tasks, use `--slim` mode:
156
+ 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
157
 
202
- ```json
158
+ ```bash
203
159
  {
204
160
  "mcpServers": {
205
161
  "brave-devtools": {
206
- "command": "node",
162
+ "command": "npx",
207
163
  "args": [
208
- "/absolute/path/to/brave-devtools-mcp/build/src/bin/brave-devtools-mcp.js",
209
- "--slim",
210
- "--headless"
164
+ "-y",
165
+ "brave-mcp@latest",
166
+ "--browser-url=http://127.0.0.1:9222"
211
167
  ]
212
168
  }
213
169
  }
214
170
  }
215
171
  ```
216
172
 
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:
173
+ 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
174
 
225
- ```bash
226
- amp mcp add chrome-devtools -- npx chrome-devtools-mcp@latest
227
- ```
175
+ 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
176
 
229
177
  </details>
230
178
 
231
179
  <details>
232
- <summary>Antigravity</summary>
180
+ <summary>Bob</summary>
233
181
 
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:
182
+ 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
183
 
236
- ```bash
184
+ ```json
237
185
  {
238
186
  "mcpServers": {
239
- "chrome-devtools": {
187
+ "brave-devtools": {
240
188
  "command": "npx",
241
- "args": [
242
- "-y",
243
- "chrome-devtools-mcp@latest",
244
- "--browser-url=http://127.0.0.1:9222"
245
- ]
189
+ "args": ["-y", "brave-mcp@latest"]
246
190
  }
247
191
  }
248
192
  }
249
193
  ```
250
194
 
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.
195
+ 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
196
 
255
197
  </details>
256
198
 
@@ -259,27 +201,27 @@ Chrome DevTools MCP will not start the browser instance automatically using this
259
201
 
260
202
  **Install via CLI (MCP only)**
261
203
 
262
- Use the Claude Code CLI to add the Chrome DevTools MCP server (<a href="https://code.claude.com/docs/en/mcp">guide</a>):
204
+ Use the Claude Code CLI to add the Brave DevTools MCP server (<a href="https://code.claude.com/docs/en/mcp">guide</a>):
263
205
 
264
206
  ```bash
265
- claude mcp add chrome-devtools --scope user npx chrome-devtools-mcp@latest
207
+ claude mcp add brave-devtools --scope user npx brave-mcp@latest
266
208
  ```
267
209
 
268
210
  **Install as a Plugin (MCP + Skills)**
269
211
 
270
212
  > [!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.
213
+ > 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
214
 
273
- To install Chrome DevTools MCP with skills, add the marketplace registry in Claude Code:
215
+ To install Brave DevTools MCP with skills, add the marketplace registry in Claude Code:
274
216
 
275
217
  ```sh
276
- /plugin marketplace add ChromeDevTools/chrome-devtools-mcp
218
+ /plugin marketplace add triuzzi/brave-devtools-mcp
277
219
  ```
278
220
 
279
221
  Then, install the plugin:
280
222
 
281
223
  ```sh
282
- /plugin install chrome-devtools-mcp@chrome-devtools-plugins
224
+ /plugin install brave-devtools-mcp@brave-devtools-plugins
283
225
  ```
284
226
 
285
227
  Restart Claude Code to have the MCP server and skills load (check with `/skills`).
@@ -297,24 +239,24 @@ Restart Claude Code to have the MCP server and skills load (check with `/skills`
297
239
  <details>
298
240
  <summary>Codex</summary>
299
241
  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:
242
+ using the standard config from above. You can also install the Brave DevTools MCP server using the Codex CLI:
301
243
 
302
244
  ```bash
303
- codex mcp add chrome-devtools -- npx chrome-devtools-mcp@latest
245
+ codex mcp add brave-devtools -- npx brave-mcp@latest
304
246
  ```
305
247
 
306
248
  **On Windows 11**
307
249
 
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:
250
+ 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
251
 
310
252
  ```
311
- [mcp_servers.chrome-devtools]
253
+ [mcp_servers.brave-devtools]
312
254
  command = "cmd"
313
255
  args = [
314
256
  "/c",
315
257
  "npx",
316
258
  "-y",
317
- "chrome-devtools-mcp@latest",
259
+ "brave-mcp@latest",
318
260
  ]
319
261
  env = { SystemRoot="C:\\Windows", PROGRAMFILES="C:\\Program Files" }
320
262
  startup_timeout_ms = 20_000
@@ -325,10 +267,10 @@ startup_timeout_ms = 20_000
325
267
  <details>
326
268
  <summary>Command Code</summary>
327
269
 
328
- Use the Command Code CLI to add the Chrome DevTools MCP server (<a href="https://commandcode.ai/docs/mcp">MCP guide</a>):
270
+ Use the Command Code CLI to add the Brave DevTools MCP server (<a href="https://commandcode.ai/docs/mcp">MCP guide</a>):
329
271
 
330
272
  ```bash
331
- cmd mcp add chrome-devtools --scope user npx chrome-devtools-mcp@latest
273
+ cmd mcp add brave-devtools --scope user npx brave-mcp@latest
332
274
  ```
333
275
 
334
276
  </details>
@@ -350,9 +292,9 @@ Start the dialog to add a new MCP server by running:
350
292
 
351
293
  Configure the following fields and press `CTRL+S` to save the configuration:
352
294
 
353
- - **Server name:** `chrome-devtools`
295
+ - **Server name:** `brave-devtools`
354
296
  - **Server Type:** `[1] Local`
355
- - **Command:** `npx -y chrome-devtools-mcp@latest`
297
+ - **Command:** `npx -y brave-mcp@latest`
356
298
 
357
299
  </details>
358
300
 
@@ -361,15 +303,15 @@ Configure the following fields and press `CTRL+S` to save the configuration:
361
303
 
362
304
  **Install as a Plugin (Recommended)**
363
305
 
364
- The easiest way to get up and running is to install `chrome-devtools-mcp` as an agent plugin.
306
+ The easiest way to get up and running is to install `brave-mcp` as an agent plugin.
365
307
  This bundles the **MCP server** and all **skills** together, so your agent gets both the tools
366
308
  and the expert guidance it needs to use them effectively.
367
309
 
368
310
  1. Open the **Command Palette** (`Cmd+Shift+P` on macOS or `Ctrl+Shift+P` on Windows/Linux).
369
311
  2. Search for and run the **Chat: Install Plugin From Source** command.
370
- 3. Paste in our repository name: `ChromeDevTools/chrome-devtools-mcp`.
312
+ 3. Paste in our repository name: `triuzzi/brave-devtools-mcp`.
371
313
 
372
- That's it! Your agent is now supercharged with Chrome DevTools capabilities.
314
+ That's it! Your agent is now supercharged with Brave DevTools capabilities.
373
315
 
374
316
  ---
375
317
 
@@ -377,9 +319,9 @@ That's it! Your agent is now supercharged with Chrome DevTools capabilities.
377
319
 
378
320
  **Click the button to install:**
379
321
 
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)
322
+ [<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
323
 
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)
324
+ [<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
325
 
384
326
  **Or install manually:**
385
327
 
@@ -388,13 +330,13 @@ Follow the VS Code [MCP configuration guide](https://code.visualstudio.com/docs/
388
330
  For macOS and Linux:
389
331
 
390
332
  ```bash
391
- code --add-mcp '{"name":"io.github.ChromeDevTools/chrome-devtools-mcp","command":"npx","args":["-y","chrome-devtools-mcp"],"env":{}}'
333
+ code --add-mcp '{"name":"io.github.triuzzi/brave-devtools-mcp","command":"npx","args":["-y","brave-mcp"],"env":{}}'
392
334
  ```
393
335
 
394
336
  For Windows (PowerShell):
395
337
 
396
338
  ```powershell
397
- code --add-mcp '{"""name""":"""io.github.ChromeDevTools/chrome-devtools-mcp""","""command""":"""npx""","""args""":["""-y""","""chrome-devtools-mcp"""]}'
339
+ code --add-mcp '{"""name""":"""io.github.triuzzi/brave-devtools-mcp""","""command""":"""npx""","""args""":["""-y""","""brave-mcp"""]}'
398
340
  ```
399
341
 
400
342
  </details>
@@ -404,7 +346,7 @@ code --add-mcp '{"""name""":"""io.github.ChromeDevTools/chrome-devtools-mcp""","
404
346
 
405
347
  **Click the button to install:**
406
348
 
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)
349
+ [<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
350
 
409
351
  **Or install manually:**
410
352
 
@@ -412,33 +354,46 @@ Go to `Cursor Settings` -> `MCP` -> `New MCP Server`. Use the config provided ab
412
354
 
413
355
  </details>
414
356
 
357
+ <details>
358
+ <summary>Devin CLI</summary>
359
+
360
+ **Install via CLI (MCP only)**
361
+
362
+ Use the Devin CLI to add the Brave DevTools MCP server (<a href="https://docs.devin.ai/cli/extensibility/mcp/configuration">guide</a>):
363
+
364
+ ```bash
365
+ devin mcp add brave-devtools -- npx brave-mcp@latest
366
+ ```
367
+
368
+ </details>
369
+
415
370
  <details>
416
371
  <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>):
372
+ Use the Factory CLI to add the Brave DevTools MCP server (<a href="https://docs.factory.ai/cli/configuration/mcp">guide</a>):
418
373
 
419
374
  ```bash
420
- droid mcp add chrome-devtools "npx -y chrome-devtools-mcp@latest"
375
+ droid mcp add brave-devtools "npx -y brave-mcp@latest"
421
376
  ```
422
377
 
423
378
  </details>
424
379
 
425
380
  <details>
426
381
  <summary>Gemini CLI</summary>
427
- Install the Chrome DevTools MCP server using the Gemini CLI.
382
+ Install the Brave DevTools MCP server using the Gemini CLI.
428
383
 
429
384
  **Project wide:**
430
385
 
431
386
  ```bash
432
387
  # Either MCP only:
433
- gemini mcp add chrome-devtools npx chrome-devtools-mcp@latest
388
+ gemini mcp add brave-devtools npx brave-mcp@latest
434
389
  # Or as a Gemini extension (MCP+Skills):
435
- gemini extensions install --auto-update https://github.com/ChromeDevTools/chrome-devtools-mcp
390
+ gemini extensions install --auto-update https://github.com/triuzzi/brave-devtools-mcp
436
391
  ```
437
392
 
438
393
  **Globally:**
439
394
 
440
395
  ```bash
441
- gemini mcp add -s user chrome-devtools npx chrome-devtools-mcp@latest
396
+ gemini mcp add -s user brave-devtools npx brave-mcp@latest
442
397
  ```
443
398
 
444
399
  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 +410,7 @@ Alternatively, follow the <a href="https://github.com/google-gemini/gemini-cli/b
455
410
  <summary>Grok Build CLI</summary>
456
411
 
457
412
  ```bash
458
- grok mcp add chrome-devtools npx chrome-devtools-mcp@latest
413
+ grok mcp add brave-devtools npx brave-mcp@latest
459
414
  ```
460
415
 
461
416
  See the <a href="https://docs.x.ai/build/features/skills-plugins-marketplaces">docs</a> for more options
@@ -465,7 +420,7 @@ See the <a href="https://docs.x.ai/build/features/skills-plugins-marketplaces">d
465
420
  <summary>JetBrains AI Assistant & Junie</summary>
466
421
 
467
422
  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.
423
+ The same way brave-mcp can be configured for JetBrains Junie in `Settings | Tools | Junie | MCP Settings` -> `Add`. Use the config provided above.
469
424
 
470
425
  </details>
471
426
 
@@ -481,14 +436,14 @@ Or, from the IDE **Activity Bar** > `Kiro` > `MCP Servers` > `Click Open MCP Con
481
436
  <details>
482
437
  <summary>Katalon Studio</summary>
483
438
 
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.
439
+ The Brave DevTools MCP server can be used with Katalon StudioAssist via an MCP proxy.
485
440
 
486
441
  **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
442
 
488
- **Step 2:** Start the Chrome DevTools MCP server with the proxy:
443
+ **Step 2:** Start the Brave DevTools MCP server with the proxy:
489
444
 
490
445
  ```bash
491
- mcp-proxy --transport streamablehttp --port 8080 -- npx -y chrome-devtools-mcp@latest
446
+ mcp-proxy --transport streamablehttp --port 8080 -- npx -y brave-mcp@latest
492
447
  ```
493
448
 
494
449
  **Note:** You may need to pick another port if 8080 is already in use.
@@ -498,7 +453,7 @@ mcp-proxy --transport streamablehttp --port 8080 -- npx -y chrome-devtools-mcp@l
498
453
  - **Connection URL:** `http://127.0.0.1:8080/mcp`
499
454
  - **Transport type:** `HTTP`
500
455
 
501
- Once connected, the Chrome DevTools MCP tools will be available in StudioAssist.
456
+ Once connected, the Brave DevTools MCP tools will be available in StudioAssist.
502
457
 
503
458
  </details>
504
459
 
@@ -509,10 +464,10 @@ Add in ~/.vibe/config.toml:
509
464
 
510
465
  ```toml
511
466
  [[mcp_servers]]
512
- name = "chrome-devtools"
467
+ name = "brave-devtools"
513
468
  transport = "stdio"
514
469
  command = "npx"
515
- args = ["chrome-devtools-mcp@latest"]
470
+ args = ["brave-mcp@latest"]
516
471
  ```
517
472
 
518
473
  </details>
@@ -526,9 +481,9 @@ Add the following configuration to your `opencode.json` file. If you don't have
526
481
  {
527
482
  "$schema": "https://opencode.ai/config.json",
528
483
  "mcp": {
529
- "chrome-devtools": {
484
+ "brave-devtools": {
530
485
  "type": "local",
531
- "command": ["npx", "-y", "chrome-devtools-mcp@latest"]
486
+ "command": ["npx", "-y", "brave-mcp@latest"]
532
487
  }
533
488
  }
534
489
  }
@@ -548,18 +503,18 @@ Alternatively, follow the <a href="https://docs.qoder.com/user-guide/chat/model-
548
503
  <details>
549
504
  <summary>Qoder CLI</summary>
550
505
 
551
- Install the Chrome DevTools MCP server using the Qoder CLI (<a href="https://docs.qoder.com/cli/using-cli#mcp-servers">guide</a>):
506
+ Install the Brave DevTools MCP server using the Qoder CLI (<a href="https://docs.qoder.com/cli/using-cli#mcp-servers">guide</a>):
552
507
 
553
508
  **Project wide:**
554
509
 
555
510
  ```bash
556
- qodercli mcp add chrome-devtools -- npx chrome-devtools-mcp@latest
511
+ qodercli mcp add brave-devtools -- npx brave-mcp@latest
557
512
  ```
558
513
 
559
514
  **Globally:**
560
515
 
561
516
  ```bash
562
- qodercli mcp add -s user chrome-devtools -- npx chrome-devtools-mcp@latest
517
+ qodercli mcp add -s user brave-devtools -- npx brave-mcp@latest
563
518
  ```
564
519
 
565
520
  </details>
@@ -569,7 +524,7 @@ qodercli mcp add -s user chrome-devtools -- npx chrome-devtools-mcp@latest
569
524
 
570
525
  **Click the button to install:**
571
526
 
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)
527
+ [<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
528
 
574
529
  </details>
575
530
 
@@ -591,10 +546,10 @@ Go to `Settings | AI | Manage MCP Servers` -> `+ Add` to [add an MCP Server](htt
591
546
  Enter the following prompt in your MCP Client to check if everything is working:
592
547
 
593
548
  ```
594
- Check the performance of https://example.com
549
+ Check the performance of https://developers.chrome.com
595
550
  ```
596
551
 
597
- Your MCP client should open Brave (or attach to the running instance) and record a performance trace.
552
+ Your MCP client should open the browser and record a performance trace.
598
553
 
599
554
  > [!NOTE]
600
555
  > 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 +597,7 @@ If you run into any issues, checkout our [troubleshooting guide](./docs/troubles
642
597
  - [`take_snapshot`](docs/tool-reference.md#take_snapshot)
643
598
  - [`screencast_start`](docs/tool-reference.md#screencast_start)
644
599
  - [`screencast_stop`](docs/tool-reference.md#screencast_stop)
645
- - **Memory** (11 tools)
600
+ - **Memory** (12 tools)
646
601
  - [`take_heapsnapshot`](docs/tool-reference.md#take_heapsnapshot)
647
602
  - [`close_heapsnapshot`](docs/tool-reference.md#close_heapsnapshot)
648
603
  - [`compare_heapsnapshots`](docs/tool-reference.md#compare_heapsnapshots)
@@ -651,6 +606,7 @@ If you run into any issues, checkout our [troubleshooting guide](./docs/troubles
651
606
  - [`get_heapsnapshot_dominators`](docs/tool-reference.md#get_heapsnapshot_dominators)
652
607
  - [`get_heapsnapshot_duplicate_strings`](docs/tool-reference.md#get_heapsnapshot_duplicate_strings)
653
608
  - [`get_heapsnapshot_edges`](docs/tool-reference.md#get_heapsnapshot_edges)
609
+ - [`get_heapsnapshot_object_details`](docs/tool-reference.md#get_heapsnapshot_object_details)
654
610
  - [`get_heapsnapshot_retainers`](docs/tool-reference.md#get_heapsnapshot_retainers)
655
611
  - [`get_heapsnapshot_retaining_paths`](docs/tool-reference.md#get_heapsnapshot_retaining_paths)
656
612
  - [`get_heapsnapshot_summary`](docs/tool-reference.md#get_heapsnapshot_summary)
@@ -666,22 +622,27 @@ If you run into any issues, checkout our [troubleshooting guide](./docs/troubles
666
622
  - **WebMCP** (2 tools)
667
623
  - [`execute_webmcp_tool`](docs/tool-reference.md#execute_webmcp_tool)
668
624
  - [`list_webmcp_tools`](docs/tool-reference.md#list_webmcp_tools)
625
+ - **Progressive Web Apps** (4 tools)
626
+ - [`get_os_app_state`](docs/tool-reference.md#get_os_app_state)
627
+ - [`install_pwa`](docs/tool-reference.md#install_pwa)
628
+ - [`launch_pwa`](docs/tool-reference.md#launch_pwa)
629
+ - [`uninstall_pwa`](docs/tool-reference.md#uninstall_pwa)
669
630
 
670
631
  <!-- END AUTO GENERATED TOOLS -->
671
632
 
672
633
  ## Configuration
673
634
 
674
- The Brave DevTools MCP server supports the following configuration options:
635
+ The Brave DevTools MCP server supports the following configuration option:
675
636
 
676
637
  <!-- BEGIN AUTO GENERATED OPTIONS -->
677
638
 
678
639
  - **`--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.
640
+ 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
641
  - **Type:** boolean
681
642
  - **Default:** `false`
682
643
 
683
644
  - **`--browserUrl`/ `--browser-url`, `-u`**
684
- Connect to a running, debuggable Brave instance (e.g. `http://127.0.0.1:9222`).
645
+ 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
646
  - **Type:** string
686
647
  - **Default:** `false`
687
648
 
@@ -701,7 +662,7 @@ The Brave DevTools MCP server supports the following configuration options:
701
662
  - **Default:** `false`
702
663
 
703
664
  - **`--executablePath`/ `--executable-path`, `-e`**
704
- Path to custom Brave executable. Can also be set via BRAVE_PATH environment variable.
665
+ Path to a custom Brave executable. Can also be set via BRAVE_PATH.
705
666
  - **Type:** string
706
667
  - **Default:** `false`
707
668
 
@@ -716,9 +677,9 @@ The Brave DevTools MCP server supports the following configuration options:
716
677
  - **Default:** `false`
717
678
 
718
679
  - **`--channel`**
719
- Specify a different Brave channel that should be used. The default is the release channel.
680
+ Specify a different Brave channel. The default is the release channel.
720
681
  - **Type:** string
721
- - **Choices:** `release`, `beta`, `nightly`, `dev`
682
+ - **Choices:** `release`, `beta`, `nightly`
722
683
  - **Default:** `false`
723
684
 
724
685
  - **`--logFile`/ `--log-file`**
@@ -727,7 +688,7 @@ The Brave DevTools MCP server supports the following configuration options:
727
688
  - **Default:** `false`
728
689
 
729
690
  - **`--viewport`**
730
- Initial viewport size for the Brave instances started by the server. For example, `1280x720`. In headless mode, max size is 3840x2160px.
691
+ Initial viewport size for Brave instances started by the server. For example, `1280x720`. In headless mode, max size is 3840x2160px.
731
692
  - **Type:** string
732
693
  - **Default:** `false`
733
694
 
@@ -782,7 +743,7 @@ The Brave DevTools MCP server supports the following configuration options:
782
743
  - **Default:** `false`
783
744
 
784
745
  - **`--categoryExperimentalWebmcp`/ `--category-experimental-webmcp`**
785
- Set to true to enable debugging WebMCP tools. Requires Brave with the following flags: `--enable-features=WebMCP,DevToolsWebMCPSupport`
746
+ Set to true to enable debugging WebMCP tools. Requires a recent Brave version with the following flags: `--enable-features=WebMCP,DevToolsWebMCPSupport`
786
747
  - **Type:** boolean
787
748
  - **Default:** `false`
788
749
 
@@ -797,7 +758,7 @@ The Brave DevTools MCP server supports the following configuration options:
797
758
  - **Default:** `false`
798
759
 
799
760
  - **`--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.
761
+ 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
762
  - **Type:** array
802
763
  - **Default:** `false`
803
764
 
@@ -822,7 +783,7 @@ The Brave DevTools MCP server supports the following configuration options:
822
783
  - **Default:** `true`
823
784
 
824
785
  - **`--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.
786
+ 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
787
  - **Type:** boolean
827
788
  - **Default:** `false`
828
789
 
@@ -831,13 +792,18 @@ The Brave DevTools MCP server supports the following configuration options:
831
792
  - **Type:** boolean
832
793
  - **Default:** `false`
833
794
 
795
+ - **`--categoryPwa`/ `--category-pwa`**
796
+ 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.
797
+ - **Type:** boolean
798
+ - **Default:** `false`
799
+
834
800
  - **`--performanceCrux`/ `--performance-crux`**
835
801
  Set to false to disable sending URLs from performance traces to CrUX API to get field performance data.
836
802
  - **Type:** boolean
837
803
  - **Default:** `true`
838
804
 
839
805
  - **`--usageStatistics`/ `--usage-statistics`**
840
- Usage statistics collection (disabled by default in this fork).
806
+ Usage statistics collection is disabled by default in this fork.
841
807
  - **Type:** boolean
842
808
  - **Default:** `false`
843
809
 
@@ -884,11 +850,11 @@ Pass them via the `args` property in the JSON configuration. For example:
884
850
  ```json
885
851
  {
886
852
  "mcpServers": {
887
- "chrome-devtools": {
853
+ "brave-devtools": {
888
854
  "command": "npx",
889
855
  "args": [
890
- "chrome-devtools-mcp@latest",
891
- "--channel=canary",
856
+ "brave-mcp@latest",
857
+ "--channel=nightly",
892
858
  "--headless=true",
893
859
  "--isolated=true"
894
860
  ]
@@ -899,15 +865,15 @@ Pass them via the `args` property in the JSON configuration. For example:
899
865
 
900
866
  ### Connecting via WebSocket with custom headers
901
867
 
902
- You can connect directly to a Chrome WebSocket endpoint and include custom headers (e.g., for authentication):
868
+ You can connect directly to a Brave WebSocket endpoint and include custom headers (e.g., for authentication):
903
869
 
904
870
  ```json
905
871
  {
906
872
  "mcpServers": {
907
- "chrome-devtools": {
873
+ "brave-devtools": {
908
874
  "command": "npx",
909
875
  "args": [
910
- "chrome-devtools-mcp@latest",
876
+ "brave-mcp@latest",
911
877
  "--wsEndpoint=ws://127.0.0.1:9222/devtools/browser/<id>",
912
878
  "--wsHeaders={\"Authorization\":\"Bearer YOUR_TOKEN\"}"
913
879
  ]
@@ -916,15 +882,15 @@ You can connect directly to a Chrome WebSocket endpoint and include custom heade
916
882
  }
917
883
  ```
918
884
 
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.
885
+ 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
886
 
921
- You can also run `npx chrome-devtools-mcp@latest --help` to see all available configuration options.
887
+ You can also run `npx brave-mcp@latest --help` to see all available configuration options.
922
888
 
923
889
  ## Concepts
924
890
 
925
891
  ### Concurrent sessions
926
892
 
927
- Most MCP clients start one Chrome DevTools MCP server per conversation. If your
893
+ Most MCP clients start one Brave DevTools MCP server per conversation. If your
928
894
  client shares a single server instance across concurrent agents or subagents,
929
895
  start the server with `--experimentalPageIdRouting`. This exposes `pageId` on
930
896
  page-scoped tools so each agent can route tool calls to the tab it is working
@@ -933,45 +899,158 @@ with.
933
899
  ```json
934
900
  {
935
901
  "mcpServers": {
936
- "chrome-devtools": {
902
+ "brave-devtools": {
937
903
  "command": "npx",
938
- "args": [
939
- "-y",
940
- "chrome-devtools-mcp@latest",
941
- "--experimentalPageIdRouting"
942
- ]
904
+ "args": ["-y", "brave-mcp@latest", "--experimentalPageIdRouting"]
943
905
  }
944
906
  }
945
907
  }
946
908
  ```
947
909
 
948
910
  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
911
+ launch its own temporary Brave profile, also pass `--isolated`. This avoids
912
+ sharing the default Brave DevTools MCP user data directory between those
951
913
  server instances.
952
914
 
953
915
  ### User data directory
954
916
 
955
- `brave-devtools-mcp` starts a Brave release channel instance using the following user
917
+ By default, `brave-mcp` starts the Brave release channel using the following user
956
918
  data directory:
957
919
 
958
- - Linux / macOS: `$HOME/.cache/brave-devtools-mcp/brave-profile-$CHANNEL`
959
- - Windows: `%HOMEPATH%/.cache/brave-devtools-mcp/brave-profile-$CHANNEL`
920
+ - Linux / macOS: `$HOME/.cache/brave-devtools-mcp/brave-profile`
921
+ - Windows: `%USERPROFILE%\.cache\brave-devtools-mcp\brave-profile`
960
922
 
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.
923
+ For non-release channels, the channel name is appended to the directory name, for example
924
+ `brave-profile-nightly`.
925
+
926
+ The user data directory is not cleared between runs and is reused for subsequent
927
+ runs with the same channel. Only one browser can use it at a time. Set the `isolated`
928
+ option to `true` to use a temporary user data directory instead which will be cleared
929
+ automatically after the browser is closed.
965
930
 
966
931
  ### Connecting to a running Brave instance
967
932
 
968
- See [Mode B: Attach to your existing Brave window](#mode-b-attach-to-your-existing-brave-window) in the Setup section above.
933
+ 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:
934
+
935
+ - If you would like to maintain the same application state when alternating between manual site testing and agent-driven testing.
936
+ - 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).
937
+ - 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.
938
+
939
+ In these cases, start Brave first and let the Brave DevTools MCP server connect to it. There are two ways to do so:
940
+
941
+ - **Automatic connection**: best for sharing state between manual and agent-driven testing.
942
+ - **Manual connection via remote debugging port**: best when running inside a sandboxed environment.
943
+
944
+ #### Automatically connecting to a running Brave instance
945
+
946
+ **Step 1:** Set up remote debugging in Brave
947
+
948
+ In Brave, do the following to set up remote debugging:
949
+
950
+ 1. Navigate to `brave://inspect/#remote-debugging` to enable remote debugging.
951
+ 2. Follow the dialog UI to allow or disallow incoming debugging connections.
952
+
953
+ **Step 2:** Configure Brave DevTools MCP server to automatically connect to a running Brave instance
954
+
955
+ To connect the `brave-mcp` server to the running Brave instance, use
956
+ `--autoConnect` command line argument for the MCP server.
957
+
958
+ The following code snippet is an example configuration for gemini-cli:
959
+
960
+ ```json
961
+ {
962
+ "mcpServers": {
963
+ "brave-devtools": {
964
+ "command": "npx",
965
+ "args": ["brave-mcp@latest", "--autoConnect"]
966
+ }
967
+ }
968
+ }
969
+ ```
970
+
971
+ **Step 3:** Test your setup
972
+
973
+ Make sure your browser is running. Open gemini-cli and run the following prompt:
974
+
975
+ ```none
976
+ Check the performance of https://developers.chrome.com
977
+ ```
978
+
979
+ > [!NOTE]
980
+ > 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.
981
+
982
+ The Brave DevTools MCP server will try to connect to your running Brave
983
+ instance. It shows a dialog asking for user permission.
984
+
985
+ Clicking **Allow** results in the Brave DevTools MCP server opening
986
+ [developers.chrome.com](http://developers.chrome.com) and taking a performance
987
+ trace.
988
+
989
+ #### Manual connection using port forwarding
990
+
991
+ 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.
992
+
993
+ Here is a step-by-step guide on how to connect to a running Brave instance:
994
+
995
+ **Step 1: Configure the MCP client**
996
+
997
+ 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.
998
+
999
+ ```json
1000
+ {
1001
+ "mcpServers": {
1002
+ "brave-devtools": {
1003
+ "command": "npx",
1004
+ "args": ["brave-mcp@latest", "--browser-url=http://127.0.0.1:9222"]
1005
+ }
1006
+ }
1007
+ }
1008
+ ```
1009
+
1010
+ **Step 2: Start the Brave browser**
1011
+
1012
+ > [!WARNING]
1013
+ > 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.
1014
+
1015
+ 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.
1016
+
1017
+ 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.
1018
+
1019
+ **macOS**
1020
+
1021
+ ```bash
1022
+ /Applications/Brave\ Browser.app/Contents/MacOS/Brave\ Browser --remote-debugging-port=9222 --user-data-dir=/tmp/brave-profile-release
1023
+ ```
1024
+
1025
+ **Linux**
1026
+
1027
+ ```bash
1028
+ /usr/bin/brave-browser --remote-debugging-port=9222 --user-data-dir=/tmp/brave-profile-release
1029
+ ```
1030
+
1031
+ **Windows**
1032
+
1033
+ ```bash
1034
+ "C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe" --remote-debugging-port=9222 --user-data-dir="%TEMP%\brave-profile-release"
1035
+ ```
1036
+
1037
+ **Step 3: Test your setup**
1038
+
1039
+ After configuring the MCP client and starting the Brave browser, you can test your setup by running a simple prompt in your MCP client:
1040
+
1041
+ ```
1042
+ Check the performance of https://developers.chrome.com
1043
+ ```
1044
+
1045
+ Your MCP client should connect to the running Brave instance and receive a performance report.
1046
+
1047
+ 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
1048
 
970
- For VM-to-host port forwarding issues, see [`docs/troubleshooting.md`](./docs/troubleshooting.md#remote-debugging-between-virtual-machine-vm-and-host-fails).
1049
+ For more details on remote debugging, see the [Chromium DevTools documentation](https://developer.chrome.com/docs/devtools/remote-debugging/).
971
1050
 
972
- ### Debugging on Android
1051
+ ### Debugging Chrome on Android
973
1052
 
974
- Please consult [these instructions](./docs/debugging-android.md) (originally written for Chrome, but applicable to any Chromium browser).
1053
+ Please consult [these instructions](./docs/debugging-android.md).
975
1054
 
976
1055
  ## Known limitations
977
1056
 
@@ -979,6 +1058,6 @@ See [Troubleshooting](./docs/troubleshooting.md).
979
1058
 
980
1059
  ## Integrating as a browser subagent
981
1060
 
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.
1061
+ 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
1062
 
984
1063
  For a reference implementation, see the [Gemini CLI browser agent documentation](https://geminicli.com/docs/core/subagents/#browser-agent).