{"id":17852,"date":"2026-05-13T18:03:32","date_gmt":"2026-05-13T18:03:32","guid":{"rendered":"https:\/\/help.gitkraken.com\/uncategorized\/mcp-apps\/"},"modified":"2026-05-13T18:03:32","modified_gmt":"2026-05-13T18:03:32","slug":"mcp-apps","status":"publish","type":"post","link":"https:\/\/help.gitkraken.com\/mcp\/mcp-apps\/","title":{"rendered":"GitKraken MCP Apps"},"content":{"rendered":"<p><kbd>Last updated: April 2026<\/kbd><\/p>\n<p><strong>GitKraken MCP Apps<\/strong> are interactive UI experiences exposed through the GitKraken MCP server. In compatible hosts, they replace plain tool output with a rendered app. The current apps focus on Git repository overview workflows: <strong>Git Status<\/strong> and <strong>Git Graph<\/strong>.<\/p>\n<blockquote>\n<p><strong>Requirements:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/www.gitkraken.com\/cli\" target=\"_blank\" rel=\"noopener\">GitKraken CLI<\/a> installed and authenticated (<code>gk auth login<\/code>)<\/li>\n<li>GitKraken MCP server configured in your MCP host<\/li>\n<li>A host that supports MCP App HTML resource rendering<\/li>\n<\/ul>\n<\/blockquote>\n<hr \/>\n<h2>Quick Start<\/h2>\n<ol>\n<li>Install the <a href=\"https:\/\/www.gitkraken.com\/cli\" target=\"_blank\" rel=\"noopener\">GitKraken CLI<\/a> and authenticate: <code>gk auth login<\/code><\/li>\n<li>Install the MCP server for your host:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">gk mcp install &lt;client&gt;<\/code><\/pre>\n<p>Replace <code>&lt;client&gt;<\/code> with your host name (for example, <code>vscode<\/code>, <code>vscode-insiders<\/code>, or <code>claude-desktop<\/code>). This generates and writes the configuration automatically. If your host is not supported by the install command, see <a href=\"#generate-the-configuration\">Manual configuration<\/a> below.<\/p>\n<ol start=\"3\">\n<li>Restart the host application.<\/li>\n<li>In a Git repository, ask <code>What changes are pending in the repo<\/code> to open the Git Status app, or <code>Visualize the commit history in a graph<\/code> to open the Git Graph app.<\/li>\n<\/ol>\n<p>If your host supports MCP App rendering, the app opens instead of plain text output. If it does not, the base tool output appears normally.<\/p>\n<hr \/>\n<h2>What are MCP Apps<\/h2>\n<p>GitKraken MCP Apps extend the base MCP tools with an interactive HTML interface. When a compatible host calls <code>git_status<\/code> or <code>git_graph<\/code>, the server attaches a UI resource to the tool result. The host renders that resource as an app.<\/p>\n<p>There are three layers to understand:<\/p>\n<table>\n<thead>\n<tr>\n<th>Layer<\/th>\n<th>What it does<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Base MCP tool (<code>git_status<\/code>, <code>git_graph<\/code>)<\/td>\n<td>Works in any host, with or without app UI<\/td>\n<\/tr>\n<tr>\n<td>MCP App resource (<code>ui:\/\/gk-cli\/app\/git-status<\/code>, <code>ui:\/\/gk-cli\/app\/git-graph<\/code>)<\/td>\n<td>Registered when app assets are available<\/td>\n<\/tr>\n<tr>\n<td>App-only helper (<code>app_tool_box<\/code>)<\/td>\n<td>Dispatches actions used by the app frontend; not intended for direct agent use<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The <code>app_tool_box<\/code> helper is required for the app UI to function. If it is missing, the base tool still works, but the app will not load.<\/p>\n<p>Both apps share one frontend bundle. <code>git_status<\/code> opens the overview in status mode; <code>git_graph<\/code> opens it in graph mode.<\/p>\n<h3>Compatible hosts<\/h3>\n<p>MCP App rendering depends on host support. The following hosts are known to render the app UI:<\/p>\n<ul>\n<li>VS Code<\/li>\n<li>VS Code Insiders<\/li>\n<li>Claude Desktop (limited support in the non-code tab)<\/li>\n<\/ul>\n<p>Rendering is not guaranteed in every host, even those listed above. Other MCP hosts can run the base <code>git_status<\/code> and <code>git_graph<\/code> tools and return plain output; they just may not render the interactive app. GitKraken is actively working to expand rendering support across additional coding agent providers.<\/p>\n<hr \/>\n<h2>Set Up MCP Apps<\/h2>\n<p>MCP Apps currently work in <strong>VS Code<\/strong> and <strong>VS Code Insiders<\/strong>, with limited support in <strong>Claude Desktop<\/strong>.<\/p>\n<h3>Install with the CLI (recommended)<\/h3>\n<p>The easiest way to configure MCP Apps is to run:<\/p>\n<pre><code class=\"language-bash\">gk mcp install &lt;client&gt;<\/code><\/pre>\n<p>Replace <code>&lt;client&gt;<\/code> with the name of your host (<code>vscode<\/code>, <code>vscode-insiders<\/code>, or <code>claude-desktop<\/code>). This command writes the configuration directly to the correct file for your host with no manual editing required.<\/p>\n<h3>Generate the configuration<\/h3>\n<p>If <code>gk mcp install<\/code> does not support your host, generate a config snippet and add it manually:<\/p>\n<pre><code class=\"language-bash\">gk mcp config &lt;client&gt;<\/code><\/pre>\n<p>Replace <code>&lt;client&gt;<\/code> with the name of your host, then place the generated configuration into the correct config file for your host.<\/p>\n<h3>Config file locations<\/h3>\n<p>The following tables list the default config file path for each supported setup host.<\/p>\n<p><strong>macOS and Linux<\/strong><\/p>\n<table>\n<thead>\n<tr>\n<th>Host<\/th>\n<th>Config file<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>VS Code<\/td>\n<td><code>~\/.vscode\/mcp.json<\/code><\/td>\n<\/tr>\n<tr>\n<td>VS Code Insiders<\/td>\n<td><code>~\/.vscode-insiders\/mcp.json<\/code><\/td>\n<\/tr>\n<tr>\n<td>Claude Desktop<\/td>\n<td><code>~\/Library\/Application Support\/Claude\/claude_desktop_config.json<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Windows<\/strong><\/p>\n<table>\n<thead>\n<tr>\n<th>Host<\/th>\n<th>Config file<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>VS Code<\/td>\n<td><code>%APPDATA%CodeUsermcp.json<\/code><\/td>\n<\/tr>\n<tr>\n<td>VS Code Insiders<\/td>\n<td><code>%APPDATA%Code - InsidersUsermcp.json<\/code><\/td>\n<\/tr>\n<tr>\n<td>Claude Desktop<\/td>\n<td><code>%APPDATA%Claudeclaude_desktop_config.json<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote>\n<p><strong>Note:<\/strong> VS Code uses a <code>\/servers\/GitKraken<\/code> path; Claude Desktop and most other JSON-based hosts use <code>\/mcpServers\/GitKraken<\/code>.<\/p>\n<\/blockquote>\n<h3>Example configuration<\/h3>\n<p>For most JSON-based hosts, the configuration looks like this:<\/p>\n<pre><code class=\"language-json\">{\n  \"mcpServers\": {\n    \"gitkraken\": {\n      \"command\": \"gk\",\n      \"args\": [\"mcp\"]\n    }\n  }\n}<\/code><\/pre>\n<p>For VS Code specifically:<\/p>\n<pre><code class=\"language-json\">{\n  \"servers\": {\n    \"GitKraken\": {\n      \"type\": \"stdio\",\n      \"command\": \"gk\",\n      \"args\": [\"mcp\"]\n    }\n  }\n}<\/code><\/pre>\n<p>After updating the config file, restart the host application.<\/p>\n<hr \/>\n<h2>Use the Git Status App<\/h2>\n<p>To open the Git Status app, ask your agent:<\/p>\n<pre><code>What changes are pending in the repo<\/code><\/pre>\n<p>This reliably calls the <code>git_status<\/code> tool. In a compatible host, the MCP App opens inline.<\/p>\n<blockquote>\n<p><strong>Note:<\/strong> In VS Code Copilot, a generic prompt like &#8220;show me git status&#8221; may not call the <code>git_status<\/code> tool at all, or may handle it without opening the app. Use the prompt above to target the tool directly.<\/p>\n<\/blockquote>\n<figure>\n  <img decoding=\"async\" src=\"\/wp-content\/uploads\/git-status-mcp.png\" class=\"help-center-img img-bordered\" alt=\"GitKraken MCP Git Status app showing unstaged files with stage, stash, and fetch actions.\"><figcaption style=\"text-align: center;color: #888\">The Git Status app lists pending changes grouped by state, with inline actions for staging, stashing, fetching, and committing.<\/figcaption><\/figure>\n<p><strong>What you can do in the Git Status app:<\/strong><\/p>\n<ul>\n<li>Review branch name and upstream status<\/li>\n<li>See counts for staged, unstaged, untracked, conflicted, and ignored files<\/li>\n<li>Browse grouped file lists with file paths and change labels<\/li>\n<li>Fetch the latest remote state<\/li>\n<li>Stage all changes at once or stage individual files<\/li>\n<li>Unstage individual files<\/li>\n<li>Stash all changes<\/li>\n<li>Use the <strong>Ask AI to&#8230; Stage all &amp; commit<\/strong> action to prefill a commit prompt in chat (does not commit immediately)<\/li>\n<li>Open the repository graph in GitLens<\/li>\n<\/ul>\n<hr \/>\n<h2>Use the Git Graph App<\/h2>\n<p>To open the Git Graph app, ask your agent:<\/p>\n<pre><code>Visualize the commit history in a graph<\/code><\/pre>\n<p>This reliably calls the <code>git_graph<\/code> tool. In a compatible host, the MCP App opens inline.<\/p>\n<blockquote>\n<p><strong>Note:<\/strong> In VS Code Copilot, a generic prompt like &#8220;show me the graph&#8221; may cause the agent to call <code>gitlens_open_graph<\/code> instead, which opens the GitLens commit graph as a separate editor tab rather than the MCP App. Use the prompt above to target the <code>git_graph<\/code> tool directly.<\/p>\n<\/blockquote>\n<figure>\n  <img decoding=\"async\" src=\"\/wp-content\/uploads\/git-graph-mcp.png\" class=\"help-center-img img-bordered\" alt=\"GitKraken MCP Git Graph app showing branch comparison panels and commit history.\"><figcaption style=\"text-align: center;color: #888\">The Git Graph app shows current, remote, and target branch status alongside a visual commit history.<\/figcaption><\/figure>\n<p><strong>What you can do in the Git Graph app:<\/strong><\/p>\n<ul>\n<li>Compare current, remote, and target branch status at a glance, including sync state and commits ahead or behind<\/li>\n<li>Browse commit history in a graph view with merge indicators, authors, and relative timestamps<\/li>\n<li>Select a target branch for comparison<\/li>\n<li>Refresh the graph<\/li>\n<li>Fetch, pull, or push<\/li>\n<li>Open the full repository graph in GitLens<\/li>\n<\/ul>\n<hr \/>\n<h2>Read-only mode<\/h2>\n<p>The GitKraken MCP server can run in read-only mode. When it does:<\/p>\n<ul>\n<li>The app UI still loads and repository data is still visible.<\/li>\n<li>Write actions (stage, unstage, stash, commit, push, pull) are unavailable.<\/li>\n<li>The app surfaces a read-only state indicator.<\/li>\n<\/ul>\n<p>If the app opens but write actions are disabled, check whether <code>--readonly<\/code> is present in the server args.<\/p>\n<hr \/>\n<h2>Troubleshoot MCP Apps<\/h2>\n<h3><code>git_status<\/code> works, but no app UI appears<\/h3>\n<p>The base tool ran successfully, but the app did not render.<\/p>\n<p><strong>Check:<\/strong><\/p>\n<ol>\n<li>Restart the host after updating the config.<\/li>\n<li>Confirm your host supports MCP App rendering. See <a href=\"#compatible-hosts\">Compatible hosts<\/a> above.<\/li>\n<\/ol>\n<hr \/>\n<h3><code>git_status<\/code> exists, but <code>app_tool_box<\/code> does not<\/h3>\n<p><strong>Most likely cause:<\/strong> The <code>mcp_resources<\/code> directory is missing from the GitKraken CLI installation.<\/p>\n<p><strong>Check:<\/strong><\/p>\n<ol>\n<li>Confirm the installed <code>gk<\/code> binary has a sibling <code>mcp_resources<\/code> directory. If assets are missing, the app layer is not registered.<\/li>\n<li>Reinstall the GitKraken CLI to restore the binary and resources together.<\/li>\n<\/ol>\n<hr \/>\n<h3>App UI loaded before but no longer appears<\/h3>\n<p><strong>Likely causes:<\/strong><\/p>\n<ul>\n<li>The <code>gk<\/code> binary was moved without its <code>mcp_resources<\/code> folder.<\/li>\n<li>An upgrade left the binary and resource directory out of sync.<\/li>\n<\/ul>\n<p><strong>Check:<\/strong><\/p>\n<ol>\n<li>Verify the active <code>gk<\/code> executable path.<\/li>\n<li>Confirm <code>mcp_resources<\/code> exists next to the active binary.<\/li>\n<li>Reinstall the GitKraken CLI to restore the binary and resources together.<\/li>\n<\/ol>\n<hr \/>\n<h3>App opens, but write actions (commit, push, stash) are disabled<\/h3>\n<p><strong>Check:<\/strong><\/p>\n<ol>\n<li>Confirm <code>--readonly<\/code> is not present in the server args.<\/li>\n<li>Confirm the repository state supports the action (for example, there are staged changes to commit, or there are local commits to push).<\/li>\n<\/ol>\n<hr \/>\n<h3>Host cannot find the GitKraken MCP server<\/h3>\n<p><strong>Check:<\/strong><\/p>\n<ol>\n<li>Confirm the config file is at the correct path for your host. See <a href=\"#config-file-locations\">Config file locations<\/a> above.<\/li>\n<li>Confirm the config syntax matches the format expected by your host (JSON vs. TOML; <code>\/servers<\/code> vs. <code>\/mcpServers<\/code>).<\/li>\n<li>Confirm the <code>command<\/code> value points to a valid <code>gk<\/code> executable.<\/li>\n<li>Run <code>gk --version<\/code> in a terminal to verify the binary is accessible.<\/li>\n<\/ol>\n<hr \/>\n<h3>Troubleshooting checklist<\/h3>\n<p>Use this checklist to work through most MCP Apps issues:<\/p>\n<ol>\n<li>Confirm the GitKraken CLI is installed and runnable (<code>gk --version<\/code>).<\/li>\n<li>Confirm the MCP host is pointing at the correct <code>gk<\/code> executable.<\/li>\n<li>Confirm the server args include <code>mcp<\/code>.<\/li>\n<li>Restart the MCP host application.<\/li>\n<li>Run <code>git_status<\/code> in a known Git repository.<\/li>\n<li>If the tool runs but no app appears, verify your host supports MCP App rendering.<\/li>\n<li>If the app still does not appear, reinstall the GitKraken CLI so the binary and <code>mcp_resources<\/code> are restored together.<\/li>\n<\/ol>\n<hr \/>\n<h2>Next Steps<\/h2>\n<ul>\n<li>See <a href=\"\/mcp\/MCP-getting-started\">Getting Started with the GitKraken MCP Server<\/a> to install or reconfigure the server.<\/li>\n<li>See the <a href=\"\/mcp\/MCP-tools-reference\">Tools Reference<\/a> for the full list of available tools.<\/li>\n<li>See <a href=\"\/mcp\/MCP-example-workflows\">Example Workflows<\/a> for common Git and issue tracking workflows.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Last updated: April 2026 GitKraken MCP Apps are interactive UI experiences exposed through the GitKraken MCP server. In compatible hosts, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_searchwp_excluded":"","inline_featured_image":false,"footnotes":""},"categories":[75],"tags":[],"class_list":["post-17852","post","type-post","status-publish","format-standard","hentry","category-mcp"],"_links":{"self":[{"href":"https:\/\/help.gitkraken.com\/wp-json\/wp\/v2\/posts\/17852","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/help.gitkraken.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/help.gitkraken.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/help.gitkraken.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/help.gitkraken.com\/wp-json\/wp\/v2\/comments?post=17852"}],"version-history":[{"count":2,"href":"https:\/\/help.gitkraken.com\/wp-json\/wp\/v2\/posts\/17852\/revisions"}],"predecessor-version":[{"id":17874,"href":"https:\/\/help.gitkraken.com\/wp-json\/wp\/v2\/posts\/17852\/revisions\/17874"}],"wp:attachment":[{"href":"https:\/\/help.gitkraken.com\/wp-json\/wp\/v2\/media?parent=17852"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/help.gitkraken.com\/wp-json\/wp\/v2\/categories?post=17852"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/help.gitkraken.com\/wp-json\/wp\/v2\/tags?post=17852"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}