diff --git a/app/graphql/types/merge_request_type.rb b/app/graphql/types/merge_request_type.rb
index 774f5a765d73917b540125c7e39e447ad88417e2..dd92cc4b18cb7044c76dd5410686e0189ee2bb02 100644
--- a/app/graphql/types/merge_request_type.rb
+++ b/app/graphql/types/merge_request_type.rb
@@ -140,6 +140,12 @@ class MergeRequestType < BaseObject
     field :user_notes_count, GraphQL::Types::Int, null: true,
                                                   description: 'User notes count of the merge request.',
                                                   resolver: Resolvers::UserNotesCountResolver
+
+    field :web_path,
+          GraphQL::Types::String,
+          null: false,
+          description: 'Web path of the merge request.'
+
     field :web_url, GraphQL::Types::String, null: true,
                                             description: 'Web URL of the merge request.'
 
@@ -342,6 +348,10 @@ def detailed_merge_status
     def committers
       object.commits.committers
     end
+
+    def web_path
+      ::Gitlab::Routing.url_helpers.project_merge_request_path(object.project, object)
+    end
   end
 end
 
diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md
index 01295064525cb639a3d8a2eea2d9283f2635d073..16b0c3fc783f00ae57ff741355b2d93b33773c18 100644
--- a/doc/api/graphql/reference/index.md
+++ b/doc/api/graphql/reference/index.md
@@ -23267,6 +23267,7 @@ Defines which user roles, users, or groups can merge into a protected branch.
 | <a id="mergerequestuserdiscussionscount"></a>`userDiscussionsCount` | [`Int`](#int) | Number of user discussions in the merge request. |
 | <a id="mergerequestusernotescount"></a>`userNotesCount` | [`Int`](#int) | User notes count of the merge request. |
 | <a id="mergerequestuserpermissions"></a>`userPermissions` | [`MergeRequestPermissions!`](#mergerequestpermissions) | Permissions for the current user on the resource. |
+| <a id="mergerequestwebpath"></a>`webPath` | [`String!`](#string) | Web path of the merge request. |
 | <a id="mergerequestweburl"></a>`webUrl` | [`String`](#string) | Web URL of the merge request. |
 
 #### Fields with arguments
diff --git a/spec/graphql/types/merge_request_type_spec.rb b/spec/graphql/types/merge_request_type_spec.rb
index 4d1d651f0ca893688dc1dee2ed6846c600fd6690..1652e25d1c45913e65f845ae76609f8ea293f9e9 100644
--- a/spec/graphql/types/merge_request_type_spec.rb
+++ b/spec/graphql/types/merge_request_type_spec.rb
@@ -28,7 +28,7 @@
       in_progress_merge_commit_sha
       merge_error allow_collaboration should_be_rebased rebase_commit_sha
       rebase_in_progress default_merge_commit_message
-      merge_ongoing mergeable_discussions_state web_url
+      merge_ongoing mergeable_discussions_state web_path web_url
       source_branch_exists target_branch_exists diverged_from_target_branch
       upvotes downvotes head_pipeline pipelines task_completion_status
       milestone assignees reviewers participants subscribed labels discussion_locked time_estimate