Congratulations!

[Valid RSS] This is a valid RSS feed.

Recommendations

This feed is valid, but interoperability with the widest range of feed readers could be improved by implementing the following recommendations.

Source: https://github.blog/feed/

  1. <?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
  2. xmlns:content="http://purl.org/rss/1.0/modules/content/"
  3. xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  4. xmlns:dc="http://purl.org/dc/elements/1.1/"
  5. xmlns:atom="http://www.w3.org/2005/Atom"
  6. xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  7. xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  8. >
  9.  
  10. <channel>
  11. <title>The GitHub Blog</title>
  12. <atom:link href="https://github.blog/feed/" rel="self" type="application/rss+xml" />
  13. <link>https://github.blog/</link>
  14. <description>Updates, ideas, and inspiration from GitHub to help developers build and design software.</description>
  15. <lastBuildDate>Tue, 16 Sep 2025 16:27:56 +0000</lastBuildDate>
  16. <language>en-US</language>
  17. <sy:updatePeriod>
  18. hourly </sy:updatePeriod>
  19. <sy:updateFrequency>
  20. 1 </sy:updateFrequency>
  21. <generator>https://wordpress.org/?v=6.8.2</generator>
  22.  
  23. <image>
  24. <url>https://github.blog/wp-content/uploads/2019/01/cropped-github-favicon-512.png?fit=32%2C32</url>
  25. <title>The GitHub Blog</title>
  26. <link>https://github.blog/</link>
  27. <width>32</width>
  28. <height>32</height>
  29. </image>
  30. <site xmlns="com-wordpress:feed-additions:1">153214340</site> <item>
  31. <title>Meet the GitHub MCP Registry: The fastest way to discover MCP Servers</title>
  32. <link>https://github.blog/ai-and-ml/github-copilot/meet-the-github-mcp-registry-the-fastest-way-to-discover-mcp-servers/</link>
  33. <dc:creator><![CDATA[Toby Padilla]]></dc:creator>
  34. <pubDate>Tue, 16 Sep 2025 16:27:54 +0000</pubDate>
  35. <category><![CDATA[AI & ML]]></category>
  36. <category><![CDATA[GitHub Copilot]]></category>
  37. <category><![CDATA[MCP]]></category>
  38. <category><![CDATA[Model Context Protocol]]></category>
  39. <guid isPermaLink="false">https://github.blog/?p=90792</guid>
  40.  
  41. <description><![CDATA[<p>This is your new home base for discovering MCP servers. Learn how we’re working with the broader community on MCP publication and discovery.</p>
  42. <p>The post <a href="https://github.blog/ai-and-ml/github-copilot/meet-the-github-mcp-registry-the-fastest-way-to-discover-mcp-servers/">Meet the GitHub MCP Registry: The fastest way to discover MCP Servers</a> appeared first on <a href="https://github.blog">The GitHub Blog</a>.</p>
  43. ]]></description>
  44. <content:encoded><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
  45. <html><body><p>If you&rsquo;ve tried connecting AI agents to your development tools, you know the pain: MCP servers scattered across numerous registries, random repos, buried in community threads &mdash; making discovery slow and full of friction without a central place to go. Meanwhile, MCP server creators are worn out from publishing to multiple places and answering the same setup questions again and again.</p>
  46.  
  47.  
  48.  
  49. <p>The result is a fractured environment that&rsquo;s fraught with potential security risks.&nbsp;</p>
  50.  
  51.  
  52.  
  53. <p>Today, we&rsquo;re taking the first step toward solving this challenge. The GitHub MCP Registry launches as your new home base for discovering MCP servers. Whether you&rsquo;re building with GitHub Copilot, agents, or any AI tool that speaks MCP, this is the place to find what you need. With GitHub already home to most MCP servers, the MCP Registry makes them dramatically easier to discover, explore, and use &mdash; helping developers find the right tools faster and contribute to a more open, interoperable ecosystem. <a href="http://github.com/mcp?utm_source=blog-source&amp;utm_campaign=mcp-registry-server-launch-2025">Browse the MCP Registry today and start building with the tools that power agentic workflows.</a></p>
  54.  
  55.  
  56.  
  57. <aside data-color-mode="light" data-dark-theme="dark" data-light-theme="light_dimmed" class="wp-block-group post-aside--large p-4 p-md-6 is-style-light-dimmed has-global-padding is-layout-constrained wp-block-group-is-layout-constrained is-style-light-dimmed--1" style="border-top-width:4px">
  58. <h2 class="wp-block-heading h5-mktg gh-aside-title is-typography-preset-h5" id="h-what-is-mcp" style="margin-top:0">What is MCP?</h2>
  59.  
  60.  
  61.  
  62. <p><a href="https://modelcontextprotocol.io/">Model Context Protocol</a> (MCP) makes it simple for AI agents and tools to talk to each other in a composible, extensible way. They give agents a way to fetch fresh context, interact with the outside world, and integrate into existing systems and workflows.</p>
  63. </aside>
  64.  
  65.  
  66.  
  67. <h2 class="wp-block-heading" id="inside-the-github-mcp-registry">Inside the GitHub MCP Registry</h2>
  68.  
  69.  
  70.  
  71. <p>We&rsquo;re starting simple and building in the open. The <a href="http://github.com/mcp?utm_source=blog-source&amp;utm_campaign=mcp-registry-server-launch-2025">MCP Registry</a> launches with a curated directory of MCP servers from leading partners and the open source community. Each server is backed by its GitHub repository, so you can learn what it does, how to get started, and make informed choices quickly.&nbsp;</p>
  72.  
  73.  
  74.  
  75. <p><strong>Here&rsquo;s what you&rsquo;ll find:</strong></p>
  76.  
  77.  
  78.  
  79. <ul class="wp-block-list">
  80. <li>Discoverability inside VS Code with one-click installation</li>
  81.  
  82.  
  83.  
  84. <li>Signal over noise with servers sorted by GitHub stars and community activity</li>
  85.  
  86.  
  87.  
  88. <li>Works with your stack including GitHub Copilot and any MCP-compatible host</li>
  89. </ul>
  90.  
  91.  
  92.  
  93. <p>From day one, the MCP Registry is shaped by contributions from across the ecosystem &mdash; including our launch partners who are helping define what the quality of MCP servers look like. This collaborative foundation ensures developers have access to tools they can trust, and sets the stage for a healthier, more interoperable AI ecosystem.</p>
  94.  
  95.  
  96.  
  97. <figure class="wp-block-image size-large"><img data-recalc-dims="1" fetchpriority="high" decoding="async" height="538" width="1024" src="https://github.blog/wp-content/uploads/2025/09/mcp2.jpg?resize=1024%2C538" alt="" class="wp-image-90794" srcset="https://github.blog/wp-content/uploads/2025/09/mcp2.jpg?w=1600 1600w, https://github.blog/wp-content/uploads/2025/09/mcp2.jpg?w=300 300w, https://github.blog/wp-content/uploads/2025/09/mcp2.jpg?w=768 768w, https://github.blog/wp-content/uploads/2025/09/mcp2.jpg?w=1024 1024w, https://github.blog/wp-content/uploads/2025/09/mcp2.jpg?w=1536 1536w" sizes="(max-width: 1000px) 100vw, 1000px" /></figure>
  98.  
  99.  
  100.  
  101. <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
  102. <p>With the launch of GitHub&rsquo;s MCP Registry, developers can easily bring Figma context into Copilot through our Dev Mode MCP server, accelerating their design-to-code workflow by generating code that&rsquo;s both production-ready and aligned with their design system.</p>
  103. <cite>Anna Kohnen, VP of Business Development, Figma</cite></blockquote>
  104.  
  105.  
  106.  
  107. <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
  108. <p>At Postman, we see MCP as a foundational layer of the AI agents stack and a vital part of building AI-ready APIs. The GitHub MCP Registry helps developers access the entire Postman platform from inside their coding assistants, further bridging the gap between code, documentation, and execution in a way that wasn&rsquo;t possible before.</p>
  109. <cite>Bajali Raghavan, Head of Engineering, Postman</cite></blockquote>
  110.  
  111.  
  112.  
  113. <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
  114. <p>Terraform empowers developers with consistent infrastructure management. With the launch of GitHub&rsquo;s MCP Registry, they can now easily discover official MCP servers, such as HashiCorp&rsquo;s Terraform MCP server, and add them to their workflows with a single click&mdash;making it faster than ever to bring Terraform&rsquo;s capabilities into day-to-day development.</p>
  115. <cite>Chris Audie, SVP Product Management, HashiCorp (an IBM Company)</cite></blockquote>
  116.  
  117.  
  118.  
  119. <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
  120. <p>By bringing the Dynatrace MCP server to the GitHub MCP Registry, developers get AI-powered observability, security, and performance insights right at their fingertips&mdash;so teams can deliver faster, more resilient, and more robust software with less context switching and reduced cognitive load. We&rsquo;ve seen rapid adoption across our own engineering organization because the integrated agentic AI experience helps our developers to ship faster and with more confidence&mdash;all without leaving their IDEs.</p>
  121. <cite>Bonifaz Kaufmann, VP Product, Dynatrace</cite></blockquote>
  122.  
  123.  
  124.  
  125. <p>We&rsquo;re also excited to include the Remote GitHub MCP Server, <a href="https://github.blog/changelog/2025-09-04-remote-github-mcp-server-is-now-generally-available/">which recently launched in general availability</a>. It allows agents to connect with the rich context found in GitHub repositories, issues, and pull requests &mdash; unlocking deeper, multi-step agentic workflows. Its inclusion in the registry reinforces our commitment to open interoperability and gives developers a trusted way to integrate GitHub context into any MCP-compatible tool.</p>
  126.  
  127.  
  128.  
  129. <h2 class="wp-block-heading" id="building-an-open-ecosystem-together">Building an open ecosystem together</h2>
  130.  
  131.  
  132.  
  133. <p>The launch of the GitHub MCP Registry is just the beginning. We&rsquo;re working closely with Anthropic and the MCP Steering Committee to build an open-source MCP registry that integrates seamlessly with GitHub&rsquo;s. Together with the broader community, we&rsquo;re shaping the open standard and contribution model for MCP.</p>
  134.  
  135.  
  136.  
  137. <p>Developers will be able to self-publish MCP servers directly to the <a href="https://github.com/modelcontextprotocol/registry/">OSS MCP Community Registry</a>. Once published, those servers will automatically appear in the GitHub MCP Registry, creating a unified, scalable path for discovery.</p>
  138.  
  139.  
  140.  
  141. <p>This publication flow will:</p>
  142.  
  143.  
  144.  
  145. <ul class="wp-block-list">
  146. <li>Reduce duplication across registries</li>
  147.  
  148.  
  149.  
  150. <li>Surface transparent metadata and verification signals</li>
  151.  
  152.  
  153.  
  154. <li>Enable contribution at scale across the ecosystem</li>
  155. </ul>
  156.  
  157.  
  158.  
  159. <p>The result is a healthier, more open ecosystem &mdash; one that leads with quality and accelerates innovation.</p>
  160.  
  161.  
  162.  
  163. <h2 class="wp-block-heading" id="the-road-ahead">The road ahead</h2>
  164.  
  165.  
  166.  
  167. <p>Together with the open source community, Anthropic, and the MCP Steering Committee, we&rsquo;re building an open ecosystem where discovering the right AI capability is as simple as searching GitHub. The GitHub MCP Registry is your fastest path from idea to integration, and the foundation for a healthier, more interoperable AI toolchain.</p>
  168.  
  169.  
  170.  
  171. <p><strong>Ready to explore? </strong><a href="http://github.com/mcp?utm_source=blog-source&amp;utm_campaign=mcp-registry-server-launch-2025">Browse the GitHub MCP Registry</a> to discover curated MCP servers from across the ecosystem. You can also contribute to the <a href="https://github.com/modelcontextprotocol/registry/">OSS MCP Community Registry</a> and help shape the future of open agentic workflows. Let&rsquo;s build the future of AI tooling together!</p>
  172. </body></html>
  173. <p>The post <a href="https://github.blog/ai-and-ml/github-copilot/meet-the-github-mcp-registry-the-fastest-way-to-discover-mcp-servers/">Meet the GitHub MCP Registry: The fastest way to discover MCP Servers</a> appeared first on <a href="https://github.blog">The GitHub Blog</a>.</p>
  174. ]]></content:encoded>
  175. <post-id xmlns="com-wordpress:feed-additions:1">90792</post-id> </item>
  176. <item>
  177. <title>Post-quantum security for SSH access on GitHub</title>
  178. <link>https://github.blog/engineering/platform-security/post-quantum-security-for-ssh-access-on-github/</link>
  179. <dc:creator><![CDATA[brian m. carlson]]></dc:creator>
  180. <pubDate>Mon, 15 Sep 2025 16:00:00 +0000</pubDate>
  181. <category><![CDATA[Engineering]]></category>
  182. <category><![CDATA[Platform security]]></category>
  183. <category><![CDATA[Git]]></category>
  184. <category><![CDATA[Security]]></category>
  185. <category><![CDATA[SSH]]></category>
  186. <guid isPermaLink="false">https://github.blog/?p=90756</guid>
  187.  
  188. <description><![CDATA[<p>GitHub is introducing post-quantum secure key exchange methods for SSH access to better protect Git data in transit.</p>
  189. <p>The post <a href="https://github.blog/engineering/platform-security/post-quantum-security-for-ssh-access-on-github/">Post-quantum security for SSH access on GitHub</a> appeared first on <a href="https://github.blog">The GitHub Blog</a>.</p>
  190. ]]></description>
  191. <content:encoded><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
  192. <html><body><p>Today, we&rsquo;re announcing some changes that will improve the security of accessing Git data over SSH.</p>
  193.  
  194.  
  195.  
  196. <h2 class="wp-block-heading" id="h-what-s-changing">What&rsquo;s changing?</h2>
  197.  
  198.  
  199.  
  200. <p>We&rsquo;re adding a new post-quantum secure SSH key exchange algorithm, known alternately as <code>sntrup761x25519-sha512</code> and <code>sntrup761x25519-sha512@openssh.com</code>, to our SSH endpoints for accessing Git data.</p>
  201.  
  202.  
  203.  
  204. <p>This only affects SSH access and doesn&rsquo;t impact HTTPS access at all.</p>
  205.  
  206.  
  207.  
  208. <p>It also does not affect GitHub Enterprise Cloud with data residency in the United States region.</p>
  209.  
  210.  
  211.  
  212. <h2 class="wp-block-heading" id="h-why-are-we-making-these-changes">Why are we making these changes?</h2>
  213.  
  214.  
  215.  
  216. <p>These changes will keep your data secure both now and far into the future by ensuring they are protected against future decryption attacks carried out on quantum computers.</p>
  217.  
  218.  
  219.  
  220. <p>When you make an SSH connection, a <a href="https://en.wikipedia.org/wiki/Key_exchange">key exchange algorithm</a> is used for both sides to agree on a secret. The secret is then used to generate encryption and integrity keys. While today&rsquo;s key exchange algorithms are secure, new ones are being introduced that are secure against <a href="https://en.wikipedia.org/wiki/Cryptanalytic_attack">cryptanalytic attacks</a> carried out by quantum computers.</p>
  221.  
  222.  
  223.  
  224. <p>We don&rsquo;t know if it will ever be possible to produce a quantum computer powerful enough to break traditional key exchange algorithms. Nevertheless, an attacker could save encrypted sessions now and, if a suitable quantum computer is built in the future, decrypt them later. This is known as a &ldquo;<a href="https://www.nist.gov/cybersecurity/what-post-quantum-cryptography">store now, decrypt later</a>&rdquo; attack.</p>
  225.  
  226.  
  227.  
  228. <p>To protect your traffic to GitHub when using SSH, we&rsquo;re rolling out a hybrid post-quantum key exchange algorithm: <code>sntrup761x25519-sha512</code> (also known by the older name <code>sntrup761x25519-sha512@openssh.com</code>). This provides security against quantum computers by combining a new post-quantum-secure algorithm, <a href="https://ntruprime.cr.yp.to/">Streamlined NTRU Prime</a>, with the classical <a href="https://en.wikipedia.org/wiki/Elliptic-curve_Diffie%E2%80%93Hellman">Elliptic Curve Diffie-Hellman</a> algorithm using the <a href="https://en.wikipedia.org/wiki/Curve25519">X25519 curve</a>. Even though these post-quantum algorithms are newer and thus have received less testing, combining them with the classical algorithm ensures that security won&rsquo;t be weaker than what the classical algorithm provides.</p>
  229.  
  230.  
  231.  
  232. <p>These changes are rolling out to <a href="http://github.com">github.com</a> and non-US resident GitHub Enterprise Cloud regions. Only FIPS-approved cryptography may be used within the US region, and this post-quantum algorithm isn&rsquo;t approved by FIPS.</p>
  233.  
  234.  
  235.  
  236. <h2 class="wp-block-heading" id="h-when-are-these-changes-effective">When are these changes effective?</h2>
  237.  
  238.  
  239.  
  240. <p>We&rsquo;ll enable the new algorithm on September 17, 2025 for GitHub.com and GitHub Enterprise Cloud with data residency (with the exception of the US region).</p>
  241.  
  242.  
  243.  
  244. <p>This will also be included in GitHub Enterprise Server 3.19.</p>
  245.  
  246.  
  247.  
  248. <h2 class="wp-block-heading" id="h-how-do-i-prepare">How do I prepare?</h2>
  249.  
  250.  
  251.  
  252. <p>This change only affects connections with a Git client over SSH. If your Git remotes start with <code>https://</code>, you won&rsquo;t be impacted by this change.</p>
  253.  
  254.  
  255.  
  256. <p>For most uses, the new key exchange algorithm won&rsquo;t result in any noticeable change. If your SSH client supports <code>sntrup761x25519-sha512@openssh.com</code> or <code>sntrup761x25519-sha512</code> (for example, OpenSSH 9.0 or newer), it will automatically choose the new algorithm by default if your client prefers it. No configuration change should be necessary unless you modified your client&rsquo;s defaults.</p>
  257.  
  258.  
  259.  
  260. <p>If you use an older SSH client, your client should fall back to an older key exchange algorithm. That means you won&rsquo;t experience the security benefits of using a post-quantum algorithm until you upgrade, but your SSH experience should continue to work as normal, since the SSH protocol automatically picks an algorithm that both sides support.</p>
  261.  
  262.  
  263.  
  264. <p>If you want to test whether your version of OpenSSH supports this algorithm, you can run the following command: <code>ssh -Q kex</code>. That lists all of the key exchange algorithms supported, so if you see <code>sntrup761x25519-sha512</code> or <code>sntrup761x25519-sha512@openssh.com</code>, then it&rsquo;s supported.</p>
  265.  
  266.  
  267.  
  268. <p>To check which key exchange algorithm OpenSSH uses when you connect to GitHub.com, run the following command on Linux, macOS, Git Bash, or other Unix-like environments:</p>
  269.  
  270.  
  271.  
  272. <pre class="wp-block-code language-plaintext"><code>$ ssh -v git@github.com exit 2&gt;&amp;1 | grep 'kex: algorithm:'</code></pre>
  273.  
  274.  
  275.  
  276. <p>For other implementations of SSH, please see the documentation for that implementation.</p>
  277.  
  278.  
  279.  
  280. <h2 class="wp-block-heading" id="whats-next">What&rsquo;s next?</h2>
  281.  
  282.  
  283.  
  284. <p>We&rsquo;ll keep an eye on the latest developments in security. As the SSH libraries we use begin to support additional post-quantum algorithms, including ones that comply with FIPS, we&rsquo;ll update you on our offerings.</p>
  285. </body></html>
  286. <p>The post <a href="https://github.blog/engineering/platform-security/post-quantum-security-for-ssh-access-on-github/">Post-quantum security for SSH access on GitHub</a> appeared first on <a href="https://github.blog">The GitHub Blog</a>.</p>
  287. ]]></content:encoded>
  288. <post-id xmlns="com-wordpress:feed-additions:1">90756</post-id> </item>
  289. <item>
  290. <title>Building personal apps with open source and AI</title>
  291. <link>https://github.blog/open-source/maintainers/building-personal-apps-with-open-source-and-ai/</link>
  292. <dc:creator><![CDATA[Kedasha Kerr]]></dc:creator>
  293. <pubDate>Fri, 12 Sep 2025 16:00:00 +0000</pubDate>
  294. <category><![CDATA[Maintainers]]></category>
  295. <category><![CDATA[Open Source]]></category>
  296. <category><![CDATA[AI]]></category>
  297. <category><![CDATA[GitHub Podcast]]></category>
  298. <category><![CDATA[open source community]]></category>
  299. <guid isPermaLink="false">https://github.blog/?p=90763</guid>
  300.  
  301. <description><![CDATA[<p>Hear about the personal tools we use to improve our workflows (and how to get started building your own) on this episode of the GitHub Podcast.</p>
  302. <p>The post <a href="https://github.blog/open-source/maintainers/building-personal-apps-with-open-source-and-ai/">Building personal apps with open source and AI</a> appeared first on <a href="https://github.blog">The GitHub Blog</a>.</p>
  303. ]]></description>
  304. <content:encoded><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
  305. <html><body><p>There&rsquo;s something magical about a tool that does exactly what you need, no matter how small the task. In my work on the GitHub Developer Advocacy team (and honestly just in life), I&rsquo;ve found that the best solutions are often the simplest ones.</p>
  306.  
  307.  
  308.  
  309. <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
  310. <p>It doesn&rsquo;t need to be a Swiss Army knife. It could be just like a really good scissors or paring knife.</p>
  311. </blockquote>
  312.  
  313.  
  314.  
  315. <p>Sometimes, it&rsquo;s just taking a manual task and automating it. For example, my cohost Cassidy Williams shares a technical interview question with her newsletter subscribers each week. People submit answers in all sorts of formats &mdash; GitHub links, CodePen snippets, tweets, you name it. Gathering all those responses and formatting them for publishing used to be a tedious, manual slog. So she wrote a tiny script that converts these answers into a Markdown list.</p>
  316.  
  317.  
  318.  
  319. <p>I&rsquo;ve also built a tool to convert CSV to Markdown. It&rsquo;s not fancy, but it&rsquo;s saved countless hours and so much mental energy.</p>
  320.  
  321.  
  322.  
  323. <p>These little tools may seem mundane. But their impact is huge. They free us from repetitive tasks, help us focus on what matters, and make our days a little brighter.</p>
  324.  
  325.  
  326.  
  327. <p><em>Listen to our full discussion on the <a href="https://open.spotify.com/show/660KitvdJDX2vUmioAbwSQ">GitHub Podcast</a> &#128071;</em></p>
  328.  
  329.  
  330.  
  331. <iframe data-testid="embed-iframe" style="border-radius:12px" src="https://open.spotify.com/embed/episode/6DaN2Sqb3xE2RJHKHp0Vkh?utm_source=generator" width="100%" height="352" frameborder="0" allowfullscreen="" allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture" loading="lazy"></iframe>
  332.  
  333.  
  334.  
  335. <h2 class="wp-block-heading" id="h-open-source-as-a-playground">Open source as a playground</h2>
  336.  
  337.  
  338.  
  339. <p>One of the best things about being part of the open source community is knowing you&rsquo;re never alone in your needs. Chances are, if you have a problem, someone else has faced it too &mdash; and maybe even built a solution!</p>
  340.  
  341.  
  342.  
  343. <p>I love browsing GitHub for those &ldquo;just right&rdquo; little tools. Sometimes, someone has already built exactly what I need. Other times, I find something close, fork it, and tweak it to fit my workflow. That&rsquo;s the beauty of open source: It&rsquo;s a playground for experimentation and sharing.</p>
  344.  
  345.  
  346.  
  347. <p>And when you open source your own creations, you&rsquo;re not just helping yourself. You&rsquo;re potentially helping countless others, maybe even inspiring contributions and new features. For example, my to-do app started as a personal project, but once I put it out there, people suggested new ideas, like a resume button for paused tasks. Some, I&rsquo;ve added. Others, I encourage folks to fork and make their own.</p>
  348.  
  349.  
  350.  
  351. <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
  352. <p>That&rsquo;s where open source comes in&hellip; fork it and use it.</p>
  353. </blockquote>
  354.  
  355.  
  356.  
  357. <h2 class="wp-block-heading" id="h-ai-as-a-force-multiplier">AI as a force multiplier</h2>
  358.  
  359.  
  360.  
  361. <p>If open source is the foundation, AI has become the rocket fuel for personal software. Building something just for yourself used to mean wrestling with unfamiliar frameworks or spending hours debugging arcane errors. Now? AI can help you scaffold a project, troubleshoot issues, or even just explain a tricky codebase.</p>
  362.  
  363.  
  364.  
  365. <p>I&rsquo;ve seen friends who swore off frontend development, intimidated by the learning curve, turn around and build working dashboards in a single evening (with a little help from tools like GitHub Copilot). AI isn&rsquo;t a replacement for learning, but it&rsquo;s a facilitator for unblocking ideas and accelerating progress.</p>
  366.  
  367.  
  368.  
  369. <p><em>Watch me build an app in the demo below &#128071;</em></p>
  370.  
  371.  
  372.  
  373. <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
  374. <iframe title="Rubber Duck Thursday - let's hack" width="500" height="281" src="https://www.youtube.com/embed/0kiYEKqV9DY?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
  375. </div></figure>
  376.  
  377.  
  378.  
  379. <h2 class="wp-block-heading" id="h-reducing-mental-overhead-and-increasing-joy">Reducing mental overhead and increasing joy</h2>
  380.  
  381.  
  382.  
  383. <p>For me, the biggest benefit of building my own tools isn&rsquo;t just the time saved, it&rsquo;s the reduction in mental overhead. When you know that a part of your workflow is handled, you&rsquo;re free to focus your mind on more creative or meaningful work.</p>
  384.  
  385.  
  386.  
  387. <p>I find it so much more fun to build now because I have my AI sidekick that will tell me where I went wrong or how to fix something that is incorrect. I&rsquo;m no longer toiling over software that I want to build and crying because I can&rsquo;t figure out the bugs.</p>
  388.  
  389.  
  390.  
  391. <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
  392. <p>Building personal software and using open source and AI have made building software more enjoyable.</p>
  393. </blockquote>
  394.  
  395.  
  396.  
  397. <h2 class="wp-block-heading" id="h-security-sharing-and-growing-your-tools">Security, sharing, and growing your tools</h2>
  398.  
  399.  
  400.  
  401. <p>Of course, when a tool is just for me, I don&rsquo;t worry about making it bulletproof. But the moment I open source it and others start using it, security and maintainability become part of the conversation. That&rsquo;s where community shines! Others may notice issues, suggest improvements, or even take the project in new directions.</p>
  402.  
  403.  
  404.  
  405. <p>I try to be clear in my contributing guidelines: If you want to add a feature that&rsquo;s not on my personal roadmap, go ahead and fork it! That&rsquo;s the beauty of open source &mdash; it enables everyone to shape software to their own needs.</p>
  406.  
  407.  
  408.  
  409. <p>Building personal tools, sharing them, and watching them grow is one of the most rewarding parts of being a developer. With open source and AI at our fingertips, there&rsquo;s never been a better time to create the exact solutions you need &mdash; and maybe help someone else along the way.</p>
  410.  
  411.  
  412.  
  413. <div class="wp-block-group post-content-cta has-global-padding is-layout-constrained wp-block-group-is-layout-constrained">
  414. <p>Hear more stories and tips on the <a href="https://open.spotify.com/show/660KitvdJDX2vUmioAbwSQ">GitHub Podcast &gt;&nbsp;</a></p>
  415. </div>
  416. </body></html>
  417. <p>The post <a href="https://github.blog/open-source/maintainers/building-personal-apps-with-open-source-and-ai/">Building personal apps with open source and AI</a> appeared first on <a href="https://github.blog">The GitHub Blog</a>.</p>
  418. ]]></content:encoded>
  419. <post-id xmlns="com-wordpress:feed-additions:1">90763</post-id> </item>
  420. <item>
  421. <title>GitHub Availability Report: August 2025</title>
  422. <link>https://github.blog/news-insights/company-news/github-availability-report-august-2025/</link>
  423. <dc:creator><![CDATA[Jakub Oleksy]]></dc:creator>
  424. <pubDate>Thu, 11 Sep 2025 19:53:44 +0000</pubDate>
  425. <category><![CDATA[Company news]]></category>
  426. <category><![CDATA[News & insights]]></category>
  427. <category><![CDATA[GitHub Availability Report]]></category>
  428. <guid isPermaLink="false">https://github.blog/?p=90760</guid>
  429.  
  430. <description><![CDATA[<p>In August, we experienced three incidents that resulted in degraded performance across GitHub services.</p>
  431. <p>The post <a href="https://github.blog/news-insights/company-news/github-availability-report-august-2025/">GitHub Availability Report: August 2025</a> appeared first on <a href="https://github.blog">The GitHub Blog</a>.</p>
  432. ]]></description>
  433. <content:encoded><![CDATA[
  434. <p>In August, we experienced three incidents that resulted in degraded performance across GitHub services.</p>
  435.  
  436.  
  437.  
  438. <p><strong>August 5 15:42 UTC (lasting 32 minutes)</strong></p>
  439.  
  440.  
  441.  
  442. <p>At 15:33 UTC on August 5, 2025, we initiated a production database migration to drop a column from a table backing pull request functionality. While the column was no longer in direct use, our ORM continued to reference the dropped column in a subset of pull request queries. As a result, there were elevated error rates across pushes, webhooks, notifications, and pull requests with impact peaking at approximately 4% of all web and REST API traffic.</p>
  443.  
  444.  
  445.  
  446. <p>We mitigated the issue by deploying a change that instructed the ORM to ignore the removed column. Most affected services recovered by 16:13 UTC. However, that fix was applied only to our largest production environment. An update to some of our custom and canary environments did not pick up the fix and this triggered a secondary incident affecting ~0.1% of pull request traffic, which was fully resolved by 19:45 UTC.</p>
  447.  
  448.  
  449.  
  450. <p>While migrations have protections, such as progressive roll-out first targeting validation environments and acknowledge gates, this incident identified an application monitoring gap that would have prevented continued rollout when impact was observed. We will add additional automation and safeguards to prevent future incidents without requiring human intervention. We are also already working on a way to streamline some types of changes across environments, which would have prevented the second incident from occurring.</p>
  451.  
  452.  
  453.  
  454. <p><strong>August 12 13:30 UTC (lasting 3 hours and 44 minutes)</strong></p>
  455.  
  456.  
  457.  
  458. <p>On August 12, 2025, between 13:30 UTC and 17:14 UTC, GitHub search was in a degraded state. Users experienced inaccurate or incomplete results, failures to load certain pages (like issues, pull requests, projects, and deployments) and broken components (like actions workflow and label filters).</p>
  459.  
  460.  
  461.  
  462. <p>Most user impact occurred between 14:00 UTC and 15:30 UTC, when up to 75% of search queries failed, and updates to search results were delayed by up to 100 minutes.</p>
  463.  
  464.  
  465.  
  466. <p>The incident was triggered by intermittent connectivity issues between our load balancers and search hosts. While retry logic initially masked these problems, retry queues eventually overwhelmed the load balancers, causing failure. The query failures were mitigated at 15:30 UTC after throttling our search indexing pipeline to reduce load and stabilize retries. The connectivity failures were resolved at 17:14 UTC after the automated reboot of a search host, causing the rest of the system to recover.</p>
  467.  
  468.  
  469.  
  470. <p>We have improved internal monitors and playbooks, and tuned our search cluster load balancer to further mitigate the recurrence of this failure mode. We&#8217;ve identified and resolved a configuration issue in our load balancing tier that was triggering these issues.</p>
  471.  
  472.  
  473.  
  474. <p><strong>August 27 20:35 UTC (lasting 46 minutes)</strong></p>
  475.  
  476.  
  477.  
  478. <p>On August 27, 2025, between 20:35 and 21:17 UTC, Copilot, web, and REST API traffic experienced degraded performance. Copilot saw an average of 36% of requests fail with a peak failure rate of 77%. Approximately 2% of all non-Copilot web and REST API traffic requests failed.</p>
  479.  
  480.  
  481.  
  482. <p>This incident occurred after we initiated a production database migration to drop a column from a table backing copilot functionality. While the column was no longer in direct use, our ORM continued to reference the dropped column. This led to a large number of 5xx responses and was similar to the incident on August 5. At 21:15 UTC, we applied a fix to the production schema, and by 21:17 UTC, all services had fully recovered.</p>
  483.  
  484.  
  485.  
  486. <p>While repairs were in progress to avoid this situation, they were not completed quickly enough to prevent a second incident. We have now implemented a temporary block for all drop column operations as an immediate solution while we add more safeguards to prevent similar issues from occurring in the future. We are also implementing graceful degradation so that Copilot issues will not impact other features of our product.</p>
  487.  
  488.  
  489.  
  490. <hr class="wp-block-separator has-alpha-channel-opacity"/>
  491.  
  492.  
  493.  
  494. <p>Please follow our <a href="https://www.githubstatus.com/">status page</a> for real-time updates on status changes and post-incident recaps. To learn more about what we’re working on, check out the <a href="https://github.blog/category/engineering/">GitHub Engineering Blog</a>.</p>
  495. <p>The post <a href="https://github.blog/news-insights/company-news/github-availability-report-august-2025/">GitHub Availability Report: August 2025</a> appeared first on <a href="https://github.blog">The GitHub Blog</a>.</p>
  496. ]]></content:encoded>
  497. <post-id xmlns="com-wordpress:feed-additions:1">90760</post-id> </item>
  498. <item>
  499. <title>GitHub Copilot coding agent 101: Getting started with agentic workflows on GitHub</title>
  500. <link>https://github.blog/ai-and-ml/github-copilot/github-copilot-coding-agent-101-getting-started-with-agentic-workflows-on-github/</link>
  501. <dc:creator><![CDATA[Alexandra Lietzke]]></dc:creator>
  502. <pubDate>Thu, 11 Sep 2025 16:00:00 +0000</pubDate>
  503. <category><![CDATA[AI & ML]]></category>
  504. <category><![CDATA[GitHub Copilot]]></category>
  505. <category><![CDATA[AI]]></category>
  506. <category><![CDATA[coding agent]]></category>
  507. <guid isPermaLink="false">https://github.blog/?p=90718</guid>
  508.  
  509. <description><![CDATA[<p>Delegate it a task, and coding agent can independently write, run, and test code. Here’s how you can make the most of it.</p>
  510. <p>The post <a href="https://github.blog/ai-and-ml/github-copilot/github-copilot-coding-agent-101-getting-started-with-agentic-workflows-on-github/">GitHub Copilot coding agent 101: Getting started with agentic workflows on GitHub</a> appeared first on <a href="https://github.blog">The GitHub Blog</a>.</p>
  511. ]]></description>
  512. <content:encoded><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
  513. <html><body><p>Earlier this year, GitHub introduced an integrated, enterprise-ready <a href="https://github.blog/news-insights/product-news/github-copilot-meet-the-new-coding-agent/">coding agent</a> for <a href="https://github.com/features/copilot">Copilot</a>. Coding agent is a software engineering (SWE) agent that runs independently in the background to complete assigned tasks &mdash; similar to a peer developer.&nbsp;</p>
  514.  
  515.  
  516.  
  517. <p>The agent starts its work when you hand it a task. Then it spins up a fully customizable development environment, powered by <a href="https://github.com/features/actions">GitHub Actions</a>. You can track it every step of the way, from issue to pull request to review to approval.&nbsp;</p>
  518.  
  519.  
  520.  
  521. <p>The agent is designed to help you offload tasks like fixing bugs, test coverage, or refactoring code, so you can work on what interests you most. &#10024;</p>
  522.  
  523.  
  524.  
  525. <p>Let&rsquo;s learn more about coding agent, how it works, and how you can use it to work more efficiently.</p>
  526.  
  527.  
  528.  
  529. <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
  530. <iframe title="What's new with the Copilot coding agent | GitHub Checkout" width="500" height="281" src="https://www.youtube.com/embed/t4ERV6aHCPM?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
  531. </div></figure>
  532.  
  533.  
  534.  
  535. <h2 class="wp-block-heading" id="h-what-is-github-copilot-coding-agent">What is GitHub Copilot coding agent?</h2>
  536.  
  537.  
  538.  
  539. <p>Designed to amplify developer workflows and tackle assigned tasks end to end, GitHub Copilot coding agent works as your asynchronous AI teammate. You can hand tasks to coding agent multiple ways:&nbsp;</p>
  540.  
  541.  
  542.  
  543. <ul class="wp-block-list">
  544. <li><strong>GitHub Issues: </strong><a href="https://docs.github.com/en/copilot/how-tos/use-copilot-agents/coding-agent/assign-copilot-to-an-issue">Assign an issue</a> to Copilot on github.com or GitHub Mobile.</li>
  545.  
  546.  
  547.  
  548. <li><strong>Visual Studio Code: </strong>Delegate tasks to Copilot and track running tasks with the <a href="https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-pull-request-github">GitHub Pull Requests extension</a>.</li>
  549.  
  550.  
  551.  
  552. <li><strong>Agents panel: </strong>Hand new tasks to Copilot and track existing tasks without navigating away from your current work by clicking <strong>View all tasks</strong>, or bookmark<a href="https://github.com/copilot/agents"> github.com/copilot/agents</a> for direct access.</li>
  553. </ul>
  554.  
  555.  
  556.  
  557. <p>It&rsquo;s more than just a pair programmer. Coding agent takes on low-to-medium complexity tasks so you can focus on what matters to you. To do its work, the agent reviews your repository&rsquo;s context, including related issues, pull request discussions, and custom instructions.</p>
  558.  
  559.  
  560.  
  561. <p>Coding agent can help you:</p>
  562.  
  563.  
  564.  
  565. <ul class="wp-block-list">
  566. <li>Fix bugs</li>
  567.  
  568.  
  569.  
  570. <li>Implement incremental features</li>
  571.  
  572.  
  573.  
  574. <li>Refactor code</li>
  575.  
  576.  
  577.  
  578. <li>Improve test coverage</li>
  579.  
  580.  
  581.  
  582. <li>Update documentation</li>
  583.  
  584.  
  585.  
  586. <li><a href="https://github.blog/ai-and-ml/github-copilot/how-we-accelerated-secret-protection-engineering-with-copilot/">Accelerate secret scanning</a></li>
  587.  
  588.  
  589.  
  590. <li><a href="https://github.blog/ai-and-ml/github-copilot/how-the-github-billing-team-uses-the-coding-agent-in-github-copilot-to-continuously-burn-down-technical-debt/">Address technical debt</a></li>
  591. </ul>
  592.  
  593.  
  594.  
  595. <p>Built with security in mind, coding agent&rsquo;s pull requests require human approval before any CI/CD workflows run, which adds an additional layer of protection. And with built-in audit logs and branch protections, every change is reviewed before it ships to keep you in control.</p>
  596.  
  597.  
  598.  
  599. <aside data-color-mode="light" data-dark-theme="dark" data-light-theme="light_dimmed" class="wp-block-group post-aside--large p-4 p-md-6 is-style-light-dimmed has-global-padding is-layout-constrained wp-block-group-is-layout-constrained is-style-light-dimmed--2" style="border-top-width:4px">
  600. <h3 class="wp-block-heading h5-mktg gh-aside-title is-typography-preset-h5" id="h-security-first-built-in-protections-for-copilot-coding-agent" style="margin-top:0">Security first: Built-in protections for Copilot coding agent</h3>
  601.  
  602.  
  603.  
  604. <p>Designed with security at its core, coding agent operates in a sandboxed environment with restricted internet access and limited repository permissions. The agent has many security features already baked in:&nbsp;&nbsp;</p>
  605.  
  606.  
  607.  
  608. <ul class="wp-block-list">
  609. <li>It can only push to branches it creates (e.g., copilot/*), ensuring your main and team-managed branches remain untouched.&nbsp;</li>
  610.  
  611.  
  612.  
  613. <li>All pull requests require independent human review since Copilot can&rsquo;t approve or merge its own work.&nbsp;</li>
  614.  
  615.  
  616.  
  617. <li>CI/CD checks in GitHub Actions won&rsquo;t run without your approval, and all commits are co-authored for traceability.&nbsp;</li>
  618.  
  619.  
  620.  
  621. <li>Your existing org policies and branch protections apply automatically.</li>
  622. </ul>
  623. </aside>
  624.  
  625.  
  626.  
  627. <h2 class="wp-block-heading" id="how-is-coding-agent-different-from-traditional-ai-coding-assistants">How is coding agent different from traditional AI coding assistants?</h2>
  628.  
  629.  
  630.  
  631. <p>When it comes to using a traditional AI coding assistant in an IDE, any code you write is stored locally. The assistant helps write the code, but developers still do most of the heavy lifting. They have to create the branch, write commit messages, push changes, open and write the pull request, manage reviews, iterate, and repeat. Doing all this work takes valuable time and effort.<br><br>On the other hand, Copilot coding agent helps automate developer workflows. Rather than working in isolated IDE sessions, the agent operates directly within the GitHub pull request workflow. It asynchronously automates tedious tasks like branch creation, commit writing, and pull request reviews, making the process more transparent and collaborative. Every step is logged, visible, and open to team input &mdash; turning solo coding into a shared, streamlined experience.</p>
  632.  
  633.  
  634.  
  635. <aside data-color-mode="light" data-dark-theme="dark" data-light-theme="light_dimmed" class="wp-block-group post-aside--large p-4 p-md-6 is-style-light-dimmed has-global-padding is-layout-constrained wp-block-group-is-layout-constrained is-style-light-dimmed--3" style="border-top-width:4px">
  636. <h3 class="wp-block-heading h5-mktg gh-aside-title is-typography-preset-h5" id="h-what-s-the-difference-between-coding-agent-and-agent-mode" style="margin-top:0">What&rsquo;s the difference between coding agent and agent mode?</h3>
  637.  
  638.  
  639.  
  640. <p>Coding agent is an asynchronous collaborator and works on your behalf like a teammate. It is an SWE agent that runs inside GitHub Actions, picks up issues you assign it, explores the repository for context, writes code, passes tests, and opens a pull request for your review.</p>
  641.  
  642.  
  643.  
  644. <p>Agent mode pairs with you synchronously as you work inside your IDE of choice &mdash; whether VS&#8239;Code or JetBrains, Eclipse, and Xcode &mdash; as a real-time collaborator that iterates on code, runs tests, and fixes its own mistakes in real time.</p>
  645.  
  646.  
  647.  
  648. <p>BTW: Both use <a href="https://docs.github.com/en/copilot/managing-copilot/monitoring-usage-and-entitlements/about-premium-requests">Copilot premium requests</a> (coding agent only requires one), and coding agent uses <a href="https://docs.github.com/en/billing/managing-billing-for-your-products/managing-billing-for-github-actions/about-billing-for-github-actions">GitHub Actions minutes</a>, so plan and budget accordingly with your teams.</p>
  649. </aside>
  650.  
  651.  
  652.  
  653. <h2 class="wp-block-heading" id="how-does-coding-agent-work">How does coding agent work?</h2>
  654.  
  655.  
  656.  
  657. <p>Designed to fit into your development flow on GitHub, Copilot coding agent is built directly into GitHub&rsquo;s native control layer. It starts working when you <a href="https://docs.github.com/en/enterprise-cloud@latest/copilot/how-tos/use-copilot-agents/coding-agent/assign-copilot-to-an-issue">assign a GitHub Issue to Copilot</a>, <a href="https://github.blog/news-insights/product-news/agents-panel-launch-copilot-coding-agent-tasks-anywhere-on-github/">start a task from the agents panel</a>, or <a href="https://docs.github.com/en/enterprise-cloud@latest/copilot/how-tos/use-copilot-agents/coding-agent/create-a-pr#asking-copilot-to-create-a-pull-request-from-copilot-chat-in-visual-studio-code">initiate a task from Copilot Chat in VS Code</a>. From there, the agent opens a draft pull request, pushes commits as it works, and logs key steps along the way so you can track its progress in real time.</p>
  658.  
  659.  
  660.  
  661. <p>Even though coding agent does the work, you remain in control throughout the entire process. You can review, give feedback, and ask Copilot to iterate via pull request reviews.</p>
  662.  
  663.  
  664.  
  665. <p>Under the hood, Copilot runs in a secure, ephemeral development environment powered by GitHub Actions, which is the world&rsquo;s largest (and GitHub&rsquo;s native) automation and CI/CD ecosystem. In its development environment, Copilot can explore your codebase for context, make changes, run tests and linters, and more. You can <a href="https://docs.github.com/en/enterprise-cloud@latest/copilot/how-tos/use-copilot-agents/coding-agent/customize-the-agent-environment">customize this development environment</a> with the tools and dependencies you need, leveraging the catalog 25,000 community based actions.</p>
  666.  
  667.  
  668.  
  669. <h2 class="wp-block-heading" id="how-can-i-use-coding-agent-in-github-copilot">How can I use coding agent in GitHub Copilot?</h2>
  670.  
  671.  
  672.  
  673. <p>The process of using GitHub&rsquo;s coding agent is similar to assigning a task to a teammate. To start, you can <a href="https://docs.github.com/en/copilot/how-tos/use-copilot-agents/coding-agent/assign-copilot-to-an-issue">assign an issue</a> to @github on <a href="https://github.com/">GitHub.com</a>, <a href="https://github.com/mobile">GitHub Mobile</a>, or the <a href="https://cli.github.com/">CLI</a>. You can use the<a href="https://docs.github.com/en/enterprise-cloud@latest/copilot/how-tos/use-copilot-agents/coding-agent/create-a-pr#asking-copilot-to-create-a-pull-request-from-the-agents-panel-or-page"> agents panel</a> on any page on <a href="http://github.com">GitHub.com</a>. You can also prompt Copilot directly from <a href="https://docs.github.com/en/copilot/how-tos/use-chat">GitHub Copilot Chat</a> in your favorite IDE, or any <a href="https://docs.github.com/en/copilot/concepts/about-mcp">Model Context Protocol (MCP)</a>&ndash;supported tool. MCP lets you extend the agent&rsquo;s capabilities with external data sources, and can even support vision models, so you can assign issues with screenshots or mockups.</p>
  674.  
  675.  
  676.  
  677. <p><strong>Here&rsquo;s a step-by-step guide on how to use coding agent:&nbsp;</strong></p>
  678.  
  679.  
  680.  
  681. <ol class="wp-block-list">
  682. <li>Hand a task to Copilot, for example by assigning an issue or <a href="https://github.blog/news-insights/product-news/agents-panel-launch-copilot-coding-agent-tasks-anywhere-on-github/">using the agents panel</a></li>
  683.  
  684.  
  685.  
  686. <li>Coding agent opens a draft pull request tagged [WIP] that it uses to track and complete its work.&nbsp;</li>
  687.  
  688.  
  689.  
  690. <li>Once Copilot is done, it will update the pull request with a clear title and description and tag you for review</li>
  691.  
  692.  
  693.  
  694. <li>If anything needs to be changed, you can leave comments tagging @copilot on the draft pull request, and coding agent will use your feedback to iterate on its work.</li>
  695. </ol>
  696.  
  697.  
  698.  
  699. <h2 class="wp-block-heading" id="unlocking-copilots-full-potential-with-mcp">Unlocking Copilot&rsquo;s full potential with MCP</h2>
  700.  
  701.  
  702.  
  703. <p>When you pair Copilot with <a href="https://docs.github.com/en/copilot/concepts/coding-agent/mcp-and-coding-agent">Model Context Protocol</a> (MCP), its capabilities expand dramatically.</p>
  704.  
  705.  
  706.  
  707. <p>MCP is an open standard that allows applications to share context with large language models (LLMs). Coding agent has both <a href="https://github.com/microsoft/playwright-mcp">Playwright</a> and GitHub MCP servers built right in, and you can add your own.</p>
  708.  
  709.  
  710.  
  711. <p>One thing to note: Copilot&rsquo;s access to the internet is limited by a <a href="https://docs.github.com/en/copilot/how-tos/use-copilot-agents/coding-agent/customize-the-agent-firewall">firewall</a>, but default rules allow access to a number of hosts that Copilot uses to interact with GitHub or to download dependencies.<br></p>
  712.  
  713.  
  714.  
  715. <p>To get started, repository admins can configure MCP servers using a JSON file in the repo settings. Once enabled, coding agent uses these tools autonomously, streamlining workflows and reducing developer overhead.<br><br>Whether you&rsquo;re building a feature or <a href="https://github.blog/ai-and-ml/github-copilot/debugging-ui-with-ai-github-copilot-agent-mode-meets-mcp-servers/">triaging bugs</a>, MCP turns Copilot into an even more context-aware, tool-savvy, and capable coding partner.</p>
  716.  
  717.  
  718.  
  719. <h2 class="wp-block-heading" id="take-this-with-you">Take this with you</h2>
  720.  
  721.  
  722.  
  723. <p>Copilot coding agent can help you do your best work. It takes on the more tedious parts of development so you can stay in the zone, move faster, and focus on solving real problems.</p>
  724.  
  725.  
  726.  
  727. <p>Whether you&rsquo;re working on developing a brand new idea or simply trying to get through a long list of fixes, coding agent can help you build momentum &mdash; with less friction and more flow. Happy coding!</p>
  728.  
  729.  
  730.  
  731. <div class="wp-block-group post-content-cta has-global-padding is-layout-constrained wp-block-group-is-layout-constrained">
  732. <p>Looking to try coding agent? <a href="https://docs.github.com/en/copilot/about-github-copilot/github-copilot-features">Read the Docs</a> or <a href="https://resources.github.com/copilot-for-business/?ef_id=_k_Cj0KCQjwsp6pBhCfARIsAD3GZubTXuCGU1hy65GlbZ2fA1YjoRRhw64GoF8UI-lrQsnWSqAWJ7dC3QoaAqQ4EALw_wcB_k_&amp;OCID=AIDcmmc3fhtaow_SEM__k_Cj0KCQjwsp6pBhCfARIsAD3GZubTXuCGU1hy65GlbZ2fA1YjoRRhw64GoF8UI-lrQsnWSqAWJ7dC3QoaAqQ4EALw_wcB_k_&amp;gclid=Cj0KCQjwsp6pBhCfARIsAD3GZubTXuCGU1hy65GlbZ2fA1YjoRRhw64GoF8UI-lrQsnWSqAWJ7dC3QoaAqQ4EALw_wcB">get started</a> today.</p>
  733. </div>
  734.  
  735.  
  736.  
  737. <h3 class="wp-block-heading" id="more-resources-to-explore">More resources to explore:</h3>
  738.  
  739.  
  740.  
  741. <ul class="wp-block-list">
  742. <li><a href="https://docs.github.com/en/copilot/how-tos/administer-copilot/manage-for-organization/add-copilot-coding-agent">Learn how to add Github copilot coding agent to your organization</a></li>
  743.  
  744.  
  745.  
  746. <li><a href="https://docs.github.com/en/copilot/using-github-copilot/coding-agent">Explore Copilot coding agent documentation</a>&nbsp;</li>
  747.  
  748.  
  749.  
  750. <li><a href="https://docs.github.com/en/copilot/responsible-use-of-github-copilot-features/responsible-use-of-copilot-coding-agent-on-githubcom">Learn more about responsible use of Copilot coding agent on GitHub.com</a></li>
  751. </ul>
  752. </body></html>
  753. <p>The post <a href="https://github.blog/ai-and-ml/github-copilot/github-copilot-coding-agent-101-getting-started-with-agentic-workflows-on-github/">GitHub Copilot coding agent 101: Getting started with agentic workflows on GitHub</a> appeared first on <a href="https://github.blog">The GitHub Blog</a>.</p>
  754. ]]></content:encoded>
  755. <post-id xmlns="com-wordpress:feed-additions:1">90718</post-id> </item>
  756. <item>
  757. <title>Your guide to GitHub Universe 2025: The schedule just launched!</title>
  758. <link>https://github.blog/news-insights/company-news/your-guide-to-github-universe-2025-the-schedule-just-launched/</link>
  759. <dc:creator><![CDATA[GitHub Staff]]></dc:creator>
  760. <pubDate>Wed, 10 Sep 2025 20:52:28 +0000</pubDate>
  761. <category><![CDATA[Company news]]></category>
  762. <category><![CDATA[News & insights]]></category>
  763. <category><![CDATA[GitHub Universe]]></category>
  764. <guid isPermaLink="false">https://github.blog/?p=90703</guid>
  765.  
  766. <description><![CDATA[<p>Create your own agenda of favorites, sign up for one-on-on mentoring sessions, and register if you haven’t already. We’ll see you there!</p>
  767. <p>The post <a href="https://github.blog/news-insights/company-news/your-guide-to-github-universe-2025-the-schedule-just-launched/">Your guide to GitHub Universe 2025: The schedule just launched!</a> appeared first on <a href="https://github.blog">The GitHub Blog</a>.</p>
  768. ]]></description>
  769. <content:encoded><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
  770. <html><body><p>Huzzah! The GitHub Universe schedule just dropped, and it&rsquo;s full of exciting sessions (over 100!), demos, and panels covering the boundless potential of AI-powered development.&nbsp;</p>
  771.  
  772.  
  773.  
  774. <p>If you haven&rsquo;t yet registered, here&rsquo;s what you need to know. This two-day event hosts some of the greatest minds in tech. We have experts from companies like Red Hat, HubSpot, CVS, General Motors, and more leading our sessions &mdash; covering everything from vibe coding and automation at scale to AI-driven security. You&rsquo;ll also have the opportunity to chat with the GitHub team one-on-one, get your questions answered, and even get career advice. Did we mention there are two demo stages this year? One with donuts and one with a silent disco.&nbsp;</p>
  775.  
  776.  
  777.  
  778. <ul class="wp-block-list">
  779. <li><strong>When</strong>: October 28-29</li>
  780.  
  781.  
  782.  
  783. <li><strong>Where</strong>: Fort Mason Center, San Francisco, CA</li>
  784. </ul>
  785.  
  786.  
  787.  
  788. <p>Some more good news: We&rsquo;re extending our Early Bird discount through Wednesday, September 17. This will be your last chance to save $400 on an in-person pass. The best part? You can combine that savings with our group discounts: 25% off when you buy 3+ passes and 35% off when you buy 8+ passes. Be sure to pick up your passes now before prices go up!</p>
  789.  
  790.  
  791.  
  792. <p>[<a href="https://githubuniverse.com/?utm_source=Blog&amp;utm_medium=GitHub&amp;utm_campaign=sessions">Register now</a>]</p>
  793.  
  794.  
  795.  
  796. <h2 class="wp-block-heading" id="h-the-schedule">The schedule</h2>
  797.  
  798.  
  799.  
  800. <p>Here&rsquo;s a sneak peek of some of the sessions we have planned. You can jump to the <a href="https://githubuniverse.com/#agenda">full agenda</a> right here &mdash;&nbsp;be sure to mark your favorites to build your own personal calendar.&nbsp;</p>
  801.  
  802.  
  803.  
  804. <h3 class="wp-block-heading" id="h-build-faster-stay-in-flow">Build faster, stay in flow</h3>
  805.  
  806.  
  807.  
  808. <figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" height="538" width="1024" src="https://github.blog/wp-content/uploads/2025/09/table1-1.png?resize=1024%2C538" alt="How to practice compassion (not criticism) during code reviews" class="wp-image-90704" srcset="https://github.blog/wp-content/uploads/2025/09/table1-1.png?w=1600 1600w, https://github.blog/wp-content/uploads/2025/09/table1-1.png?w=300 300w, https://github.blog/wp-content/uploads/2025/09/table1-1.png?w=768 768w, https://github.blog/wp-content/uploads/2025/09/table1-1.png?w=1024 1024w, https://github.blog/wp-content/uploads/2025/09/table1-1.png?w=1536 1536w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></figure>
  809.  
  810.  
  811.  
  812. <figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" height="538" width="1024" src="https://github.blog/wp-content/uploads/2025/09/table1-2.png?resize=1024%2C538" alt="Tackling your tech debt with Copilot coding agent" class="wp-image-90706" srcset="https://github.blog/wp-content/uploads/2025/09/table1-2.png?w=1600 1600w, https://github.blog/wp-content/uploads/2025/09/table1-2.png?w=300 300w, https://github.blog/wp-content/uploads/2025/09/table1-2.png?w=768 768w, https://github.blog/wp-content/uploads/2025/09/table1-2.png?w=1024 1024w, https://github.blog/wp-content/uploads/2025/09/table1-2.png?w=1536 1536w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></figure>
  813.  
  814.  
  815.  
  816. <figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" height="538" width="1024" src="https://github.blog/wp-content/uploads/2025/09/table1-4.png?resize=1024%2C538" alt="Co-op with GitHub Copilot: Building games the smarter way" class="wp-image-90708" srcset="https://github.blog/wp-content/uploads/2025/09/table1-4.png?w=1600 1600w, https://github.blog/wp-content/uploads/2025/09/table1-4.png?w=300 300w, https://github.blog/wp-content/uploads/2025/09/table1-4.png?w=768 768w, https://github.blog/wp-content/uploads/2025/09/table1-4.png?w=1024 1024w, https://github.blog/wp-content/uploads/2025/09/table1-4.png?w=1536 1536w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></figure>
  817.  
  818.  
  819.  
  820. <figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" height="538" width="1024" src="https://github.blog/wp-content/uploads/2025/09/table1-3.png?resize=1024%2C538" alt="Building GitHub with Copilot: How our engineers multiply their impact and reliably ship features" class="wp-image-90707" srcset="https://github.blog/wp-content/uploads/2025/09/table1-3.png?w=1600 1600w, https://github.blog/wp-content/uploads/2025/09/table1-3.png?w=300 300w, https://github.blog/wp-content/uploads/2025/09/table1-3.png?w=768 768w, https://github.blog/wp-content/uploads/2025/09/table1-3.png?w=1024 1024w, https://github.blog/wp-content/uploads/2025/09/table1-3.png?w=1536 1536w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></figure>
  821.  
  822.  
  823.  
  824. <h3 class="wp-block-heading" id="h-automate-and-scale-with-confidence">Automate and scale with confidence&nbsp;</h3>
  825.  
  826.  
  827.  
  828. <figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" height="538" width="1024" src="https://github.blog/wp-content/uploads/2025/09/table2-1.png?resize=1024%2C538" alt="Dawn of the agents: Leveraging AI-powered tools to accelerate software development" class="wp-image-90730" srcset="https://github.blog/wp-content/uploads/2025/09/table2-1.png?w=1600 1600w, https://github.blog/wp-content/uploads/2025/09/table2-1.png?w=300 300w, https://github.blog/wp-content/uploads/2025/09/table2-1.png?w=768 768w, https://github.blog/wp-content/uploads/2025/09/table2-1.png?w=1024 1024w, https://github.blog/wp-content/uploads/2025/09/table2-1.png?w=1536 1536w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></figure>
  829.  
  830.  
  831.  
  832. <figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" height="538" width="1024" src="https://github.blog/wp-content/uploads/2025/09/table2-2.png?resize=1024%2C538" alt="Flying high with AI: Cathay Pacific on transforming software development" class="wp-image-90731" srcset="https://github.blog/wp-content/uploads/2025/09/table2-2.png?w=1600 1600w, https://github.blog/wp-content/uploads/2025/09/table2-2.png?w=300 300w, https://github.blog/wp-content/uploads/2025/09/table2-2.png?w=768 768w, https://github.blog/wp-content/uploads/2025/09/table2-2.png?w=1024 1024w, https://github.blog/wp-content/uploads/2025/09/table2-2.png?w=1536 1536w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></figure>
  833.  
  834.  
  835.  
  836. <figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" height="538" width="1024" src="https://github.blog/wp-content/uploads/2025/09/table-2-4.png?resize=1024%2C538" alt="From burnout to breakthrough: Building agentic workflows that save millions" class="wp-image-90733" srcset="https://github.blog/wp-content/uploads/2025/09/table-2-4.png?w=1600 1600w, https://github.blog/wp-content/uploads/2025/09/table-2-4.png?w=300 300w, https://github.blog/wp-content/uploads/2025/09/table-2-4.png?w=768 768w, https://github.blog/wp-content/uploads/2025/09/table-2-4.png?w=1024 1024w, https://github.blog/wp-content/uploads/2025/09/table-2-4.png?w=1536 1536w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></figure>
  837.  
  838.  
  839.  
  840. <figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" height="538" width="1024" src="https://github.blog/wp-content/uploads/2025/09/table-2-3.png?resize=1024%2C538" alt="5 ways to automate everyday workflows with GitHub Actions" class="wp-image-90732" srcset="https://github.blog/wp-content/uploads/2025/09/table-2-3.png?w=1600 1600w, https://github.blog/wp-content/uploads/2025/09/table-2-3.png?w=300 300w, https://github.blog/wp-content/uploads/2025/09/table-2-3.png?w=768 768w, https://github.blog/wp-content/uploads/2025/09/table-2-3.png?w=1024 1024w, https://github.blog/wp-content/uploads/2025/09/table-2-3.png?w=1536 1536w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></figure>
  841.  
  842.  
  843.  
  844. <h3 class="wp-block-heading" id="h-secure-every-commit">Secure every commit</h3>
  845.  
  846.  
  847.  
  848. <figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" height="538" width="1024" src="https://github.blog/wp-content/uploads/2025/09/table3-1.png?resize=1024%2C538" alt="" class="wp-image-90734" srcset="https://github.blog/wp-content/uploads/2025/09/table3-1.png?w=1600 1600w, https://github.blog/wp-content/uploads/2025/09/table3-1.png?w=300 300w, https://github.blog/wp-content/uploads/2025/09/table3-1.png?w=768 768w, https://github.blog/wp-content/uploads/2025/09/table3-1.png?w=1024 1024w, https://github.blog/wp-content/uploads/2025/09/table3-1.png?w=1536 1536w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></figure>
  849.  
  850.  
  851.  
  852. <figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" height="538" width="1024" src="https://github.blog/wp-content/uploads/2025/09/table3-2.png?resize=1024%2C538" alt="" class="wp-image-90735" srcset="https://github.blog/wp-content/uploads/2025/09/table3-2.png?w=1600 1600w, https://github.blog/wp-content/uploads/2025/09/table3-2.png?w=300 300w, https://github.blog/wp-content/uploads/2025/09/table3-2.png?w=768 768w, https://github.blog/wp-content/uploads/2025/09/table3-2.png?w=1024 1024w, https://github.blog/wp-content/uploads/2025/09/table3-2.png?w=1536 1536w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></figure>
  853.  
  854.  
  855.  
  856. <figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" height="538" width="1024" src="https://github.blog/wp-content/uploads/2025/09/table-3-4.png?resize=1024%2C538" alt="" class="wp-image-90736" srcset="https://github.blog/wp-content/uploads/2025/09/table-3-4.png?w=1600 1600w, https://github.blog/wp-content/uploads/2025/09/table-3-4.png?w=300 300w, https://github.blog/wp-content/uploads/2025/09/table-3-4.png?w=768 768w, https://github.blog/wp-content/uploads/2025/09/table-3-4.png?w=1024 1024w, https://github.blog/wp-content/uploads/2025/09/table-3-4.png?w=1536 1536w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></figure>
  857.  
  858.  
  859.  
  860. <figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" height="538" width="1024" src="https://github.blog/wp-content/uploads/2025/09/table3-3.png?resize=1024%2C538" alt="" class="wp-image-90737" srcset="https://github.blog/wp-content/uploads/2025/09/table3-3.png?w=1600 1600w, https://github.blog/wp-content/uploads/2025/09/table3-3.png?w=300 300w, https://github.blog/wp-content/uploads/2025/09/table3-3.png?w=768 768w, https://github.blog/wp-content/uploads/2025/09/table3-3.png?w=1024 1024w, https://github.blog/wp-content/uploads/2025/09/table3-3.png?w=1536 1536w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></figure>
  861.  
  862.  
  863.  
  864. <p>[<a href="https://reg.githubuniverse.com/flow/github/universe25/attendee-portal/page/sessioncatalog?utm_source=Blog&amp;utm_medium=GitHub&amp;utm_campaign=sessions">See the full agenda</a>]</p>
  865.  
  866.  
  867.  
  868. <p>Not sure what to pick? We also have <a href="https://reg.githubuniverse.com/flow/github/universe25/attendee-portal/page/curatedagendas">curated agendas</a> that are built around specific goals, roles, or industries. Whether you&rsquo;re a developer, or you&rsquo;re working in financial services, or simply want to know what&rsquo;s new in the AI era, we have an agenda to suit your needs.&nbsp;&nbsp;&nbsp;</p>
  869.  
  870.  
  871.  
  872. <h2 class="wp-block-heading" id="more-opportunities-to-learn-before-during-and-after-universe">More opportunities to learn before, during, and after Universe&nbsp;</h2>
  873.  
  874.  
  875.  
  876. <p>Even when you&rsquo;re not in-session (as it were), there will be so much to enjoy (and learn) from this experience.&nbsp;</p>
  877.  
  878.  
  879.  
  880. <h3 class="wp-block-heading" id="github-hq-day-of-learning-experience-and-certifications">GitHub HQ day of learning experience and certifications</h3>
  881.  
  882.  
  883.  
  884. <p>New this year: <strong>On October 30, </strong>you&rsquo;ll also have the opportunity to join the <strong>exclusive GitHub HQ day of learning experience.&nbsp; Your general admission pass to GitHub Universe now includes a GitHub or Microsoft Certification exam</strong>. Spaces are limited and available on a first-come, first-served basis, so be sure to sign up early!</p>
  885.  
  886.  
  887.  
  888. <p>Whether you&rsquo;re looking to sharpen your GitHub Copilot expertise, deepen your understanding of GitHub Advanced Security, or explore other certifications, this is your chance to bring valuable skills back to your workplace or showcase your proficiency for your next career move.</p>
  889.  
  890.  
  891.  
  892. <p>Here&rsquo;s what to expect at HQ:</p>
  893.  
  894.  
  895.  
  896. <ul class="wp-block-list">
  897. <li><strong>Certification exams</strong>: Earn official GitHub or Microsoft Learn credentials (pre-registration required). Available exams include GitHub Actions, GitHub Administration, GitHub Advanced Security, GitHub Foundations and GitHub Copilot. Plus, Microsoft DevOps Engineer Expert, Microsoft Azure Administrator Associate, and Microsoft Azure Developer Associate. <em>Note: If you don&rsquo;t take your certification exam at HQ, you can still take your exam remotely up to 90 days after Universe.&nbsp;</em></li>
  898.  
  899.  
  900.  
  901. <li><strong>Applied Skills labs</strong>: Test your knowledge in real-world, interactive challenges designed to strengthen your expertise.</li>
  902.  
  903.  
  904.  
  905. <li><strong>HQ tours</strong>: Step inside GitHub&rsquo;s San Francisco headquarters for a rare behind-the-scenes experience.</li>
  906.  
  907.  
  908.  
  909. <li><strong>Community and celebration</strong>: Enjoy swag, raffles, and the opportunity to connect with GitHub leaders and fellow learners.</li>
  910. </ul>
  911.  
  912.  
  913.  
  914. <h3 class="wp-block-heading" id="one-on-one-sessions">One-on-one sessions</h3>
  915.  
  916.  
  917.  
  918. <p>If you&rsquo;re already registered for Universe, don&rsquo;t forget to <a href="https://reg.githubuniverse.com/flow/github/universe25/attendee-portal/login">sign up</a> for one-on-one meetings at the Career Corner (if you&rsquo;re looking for job advice) or the GitHub Expert Center (for help on just about everything else!).&nbsp;</p>
  919.  
  920.  
  921.  
  922. <h3 class="wp-block-heading" id="on-site-explorations">On-site explorations</h3>
  923.  
  924.  
  925.  
  926. <p>There&rsquo;s no shortage of <a href="https://github.blog/news-insights/company-news/explore-the-best-of-github-universe-9-spaces-built-to-spark-creativity-connection-and-joy/">activities</a> in between sessions. Head to the Open Source Zone to connect with contributors, maintainers, and community leaders, then to The Shop to pick up the latest Copilot swag. Recess is a spot to meet fellow attendees who share your non-dev passions and Makerspace is where you can reimagine what code can do.&nbsp;</p>
  927.  
  928.  
  929.  
  930. <p>[<a href="https://githubuniverse.com/?utm_source=Blog&amp;utm_medium=GitHub&amp;utm_campaign=sessions">Get your pass</a>]&nbsp;</p>
  931.  
  932.  
  933.  
  934. <h3 class="wp-block-heading" id="virtual-micro-mentoring-for-students">Virtual micro-mentoring for students</h3>
  935.  
  936.  
  937.  
  938. <p>As part of our <a href="https://github.com/social-impact">Social Impact</a> programming, we&rsquo;re offering current students the opportunity to connect with a GitHub employee through a virtual micro-mentoring session ahead of GitHub Universe. These 30-minute, one-on-one sessions will be held between October 20 and October 31, and mentees can expect everything from personalized resume feedback and career advice to skill development tips. Spots are limited, so be sure to apply by September 19.</p>
  939.  
  940.  
  941.  
  942. <p>[<a href="https://docs.google.com/forms/d/e/1FAIpQLSf6TEK0lGutzz836bNBOmOfsFUQlCzT1kMMY-rUSaL6Wtwo4Q/viewform">Apply here</a>]</p>
  943.  
  944.  
  945.  
  946. <p>See you soon!&nbsp;</p>
  947.  
  948.  
  949.  
  950. <h2 class="wp-block-heading" id="additional-resources-%f0%9f%93%9a">Additional resources &#128218;</h2>
  951.  
  952.  
  953.  
  954. <ul class="wp-block-list">
  955. <li>Learn more about <a href="https://github.blog/news-insights/company-news/explore-the-best-of-github-universe-9-spaces-built-to-spark-creativity-connection-and-joy/">what to expect at GitHub Universe this year</a></li>
  956.  
  957.  
  958.  
  959. <li>Need help convincing your manager? Use our <a href="https://githubuniverse.com/convince">customizable email template</a> to make your case.</li>
  960.  
  961.  
  962.  
  963. <li>Still have questions? See if it&rsquo;s been answered in our <a href="https://githubuniverse.com/#faq">FAQ</a>.&nbsp;&nbsp;&nbsp;&nbsp;</li>
  964. </ul>
  965. </body></html>
  966. <p>The post <a href="https://github.blog/news-insights/company-news/your-guide-to-github-universe-2025-the-schedule-just-launched/">Your guide to GitHub Universe 2025: The schedule just launched!</a> appeared first on <a href="https://github.blog">The GitHub Blog</a>.</p>
  967. ]]></content:encoded>
  968. <post-id xmlns="com-wordpress:feed-additions:1">90703</post-id> </item>
  969. <item>
  970. <title>How to use the GitHub and JFrog integration for secure, traceable builds from commit to production</title>
  971. <link>https://github.blog/enterprise-software/devsecops/how-to-use-the-github-and-jfrog-integration-for-secure-traceable-builds-from-commit-to-production/</link>
  972. <dc:creator><![CDATA[April Yoho]]></dc:creator>
  973. <pubDate>Tue, 09 Sep 2025 22:00:00 +0000</pubDate>
  974. <category><![CDATA[DevSecOps]]></category>
  975. <category><![CDATA[Enterprise software]]></category>
  976. <category><![CDATA[compliance]]></category>
  977. <category><![CDATA[supply chain security]]></category>
  978. <guid isPermaLink="false">https://github.blog/?p=90682</guid>
  979.  
  980. <description><![CDATA[<p>Connect commits to artifacts without switching tools.</p>
  981. <p>The post <a href="https://github.blog/enterprise-software/devsecops/how-to-use-the-github-and-jfrog-integration-for-secure-traceable-builds-from-commit-to-production/">How to use the GitHub and JFrog integration for secure, traceable builds from commit to production</a> appeared first on <a href="https://github.blog">The GitHub Blog</a>.</p>
  982. ]]></description>
  983. <content:encoded><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
  984. <html><body><p>Today, we&rsquo;re introducing a new integration between GitHub and JFrog that connects your source code and your attested binaries in one secure, traceable workflow.</p>
  985.  
  986.  
  987.  
  988. <p>For developers who often find themselves jumping between multiple tools to figure out which commit produced which artifact &mdash; or piecing together results from separate security scans for code and binaries &mdash; this integration can save time and effort, centralizing everything you need all in one place.</p>
  989.  
  990.  
  991.  
  992. <p>Below, we&rsquo;ll dig into why the GitHub and JFrog integration is important, how it works, and how you can start using it today.</p>
  993.  
  994.  
  995.  
  996. <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
  997. <iframe loading="lazy" title="GitHub and JFrog: Artifact Attestation from Commit to Customer" width="500" height="281" src="https://www.youtube.com/embed/DH15vD6RPYQ?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
  998. </div></figure>
  999.  
  1000.  
  1001.  
  1002. <h2 class="wp-block-heading" id="h-why-we-built-the-github-and-jfrog-integration-nbsp">Why we built the GitHub and JFrog integration&nbsp;</h2>
  1003.  
  1004.  
  1005.  
  1006. <p>Modern software delivery is a supply chain. Your source code, build pipelines, and production artifacts are all links in that chain &mdash; and every link needs to be secure, traceable, and automated. Likewise, any weak link is a point of ingress for bad actors to gain access to data that should remain private and secure.&nbsp;</p>
  1007.  
  1008.  
  1009.  
  1010. <p>But keeping this complete supply chain secure is challenging for developers who have numerous (and continually growing) responsibilities. When we talked to teams shipping at scale, we kept hearing the same pain points:</p>
  1011.  
  1012.  
  1013.  
  1014. <ul class="wp-block-list">
  1015. <li>&ldquo;We lose traceability once the build leaves GitHub.&rdquo;</li>
  1016.  
  1017.  
  1018.  
  1019. <li>&ldquo;Security scanning is split between multiple systems, and we have to reconcile results manually.&rdquo;</li>
  1020.  
  1021.  
  1022.  
  1023. <li>&ldquo;Our CI/CD pipelines feel stitched together instead of seamless.&rdquo;</li>
  1024. </ul>
  1025.  
  1026.  
  1027.  
  1028. <p>To address these issues, we worked closely with JFrog&rsquo;s engineers to design a workflow where the commit that triggers a build is cryptographically linked to the artifact it produces, security scanning happens automatically and in context &mdash; providing the vulnerability scan attestations located in JFrog Evidence, and publishing and promoting artifacts, in compliance with an organization&rsquo;s policies, is just another step in your GitHub Actions workflow, not a separate process.</p>
  1029.  
  1030.  
  1031.  
  1032. <p>Our goal: to remove friction, reduce risk, and give developers more time to focus on building features instead of managing handoffs.&nbsp;</p>
  1033.  
  1034.  
  1035.  
  1036. <p>The integration we&rsquo;re announcing today unlocks a seamless experience that lets you:</p>
  1037.  
  1038.  
  1039.  
  1040. <ul class="wp-block-list">
  1041. <li><strong>Run unified security scans, </strong>prioritizing Dependabot alerts based on production context from JFrog.</li>
  1042.  
  1043.  
  1044.  
  1045. <li><strong>Publish and promote artifacts</strong> using policy-based gating of artifact promotion.</li>
  1046.  
  1047.  
  1048.  
  1049. <li><strong>Automatically</strong> have all attestations created on GitHub (provenance, SBOM, custom attestations) ingested into JFrog evidence and associated with the build artifact.&nbsp;</li>
  1050. </ul>
  1051.  
  1052.  
  1053.  
  1054. <h2 class="wp-block-heading" id="h-here-s-how-it-works">Here&rsquo;s how it works</h2>
  1055.  
  1056.  
  1057.  
  1058. <p>The integration connects GitHub&rsquo;s developer platform with JFrog&rsquo;s software supply chain platform using secure authentication and build metadata.</p>
  1059.  
  1060.  
  1061.  
  1062. <p><strong>Here&rsquo;s the flow:</strong></p>
  1063.  
  1064.  
  1065.  
  1066. <ol class="wp-block-list">
  1067. <li>Push code to GitHub.</li>
  1068.  
  1069.  
  1070.  
  1071. <li>Build and test with GitHub Actions.</li>
  1072.  
  1073.  
  1074.  
  1075. <li>Link commits, builds, and artifacts for full lifecycle visibility.</li>
  1076.  
  1077.  
  1078.  
  1079. <li>Publish artifacts to Artifactory automatically.</li>
  1080.  
  1081.  
  1082.  
  1083. <li>Scan code with GitHub Advanced Security and artifacts with JFrog Xray.</li>
  1084. </ol>
  1085.  
  1086.  
  1087.  
  1088. <figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" height="658" width="1024" src="https://github.blog/wp-content/uploads/2025/09/jfrog1.png?resize=1024%2C658" alt="Diagram showing the GitHub and JFrog integration." class="wp-image-90684" srcset="https://github.blog/wp-content/uploads/2025/09/jfrog1.png?w=1252 1252w, https://github.blog/wp-content/uploads/2025/09/jfrog1.png?w=300 300w, https://github.blog/wp-content/uploads/2025/09/jfrog1.png?w=768 768w, https://github.blog/wp-content/uploads/2025/09/jfrog1.png?w=1024 1024w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></figure>
  1089.  
  1090.  
  1091.  
  1092. <h2 class="wp-block-heading" id="h-setting-it-up">Setting it up</h2>
  1093.  
  1094.  
  1095.  
  1096. <ol class="wp-block-list">
  1097. <li>Enable the GitHub integration in JFrog Artifactory by navigating to Administration &rarr; General Management &rarr; Manage Integrations &rarr; GitHub. Toggle &ldquo;Enable GitHub Actions&rdquo; and authenticate your GitHub organization. Select your token type. Then create a pull request.</li>
  1098. </ol>
  1099.  
  1100.  
  1101.  
  1102. <figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" height="576" width="1024" src="https://github.blog/wp-content/uploads/2025/09/jfrog2.jpg?resize=1024%2C576" alt="JFrog Artifactory integration screen." class="wp-image-90685" srcset="https://github.blog/wp-content/uploads/2025/09/jfrog2.jpg?w=1600 1600w, https://github.blog/wp-content/uploads/2025/09/jfrog2.jpg?w=300 300w, https://github.blog/wp-content/uploads/2025/09/jfrog2.jpg?w=768 768w, https://github.blog/wp-content/uploads/2025/09/jfrog2.jpg?w=1024 1024w, https://github.blog/wp-content/uploads/2025/09/jfrog2.jpg?w=1536 1536w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></figure>
  1103.  
  1104.  
  1105.  
  1106. <ol start="2" class="wp-block-list">
  1107. <li>Trigger a build of your GitHub Actions workflow to build the artifact and generate the attestation. Make sure that your GitHub Actions workflow is using the &lsquo;jfrog/jfrog-setup-cli&rsquo; and &lsquo;actions/attest-build-provenance&rsquo; actions.</li>
  1108. </ol>
  1109.  
  1110.  
  1111.  
  1112. <pre class="wp-block-code language-plaintext"><code>- name: Attest docker image
  1113.      uses: actions/attest-build-provenance@v2
  1114.      with:
  1115.        subject-name: oci://${{ env.JF_REGISTRY }}/${{ env.IMAGE_NAME }}
  1116.        subject-digest: ${{ steps.build-and-push.outputs.digest }}</code></pre>
  1117.  
  1118.  
  1119.  
  1120. <p>Here&rsquo;s an example of a workflow that you can use to generate the attestation and push it to Artifactory:</p>
  1121.  
  1122.  
  1123.  
  1124. <pre class="wp-block-code language-plaintext"><code>name: Build, Test &amp; Attest
  1125.  
  1126. on:
  1127.  push:
  1128.    branches:
  1129.      - main
  1130.  
  1131. env:
  1132.  OIDC_PROVIDER_NAME: [...]
  1133.  JF_URL: ${{ vars.JF_URL }}
  1134.  JF_REGISTRY: ${{ vars.JF_REGISTRY }}
  1135.  JF_DOCKER_REPO: [...]
  1136.  IMAGE_NAME: [...]
  1137.  BUILD_NAME: [...]
  1138.  
  1139. jobs:
  1140.  build-test-deploy:
  1141.    runs-on: ubuntu-latest
  1142.    permissions:
  1143.        contents: read
  1144.        packages: write
  1145.        attestations: write  # Required for attestation
  1146.        id-token: write      # Added for OIDC token access
  1147.    
  1148.    steps:
  1149.    - name: Checkout code
  1150.      uses: actions/checkout@v5
  1151.  
  1152.    - name: Install JFrog CLI
  1153.      id: setup-jfrog-cli
  1154.      uses: jfrog/setup-jfrog-cli@v4.5.13
  1155.      env:
  1156.        JF_URL: ${{ env.JF_URL }}
  1157.      with:
  1158.        version: 2.78.8
  1159.        oidc-provider-name: ${{ env.OIDC_PROVIDER_NAME }}
  1160.      
  1161.    - name: Docker login
  1162.      uses: docker/login-action@v3
  1163.      with:
  1164.        registry: ${{ env.JF_REGISTRY }}
  1165.        username: ${{ steps.setup-jfrog-cli.outputs.oidc-user }}
  1166.        password: ${{ steps.setup-jfrog-cli.outputs.oidc-token }}
  1167.  
  1168.    - name: Set up Docker Buildx
  1169.      uses: docker/setup-buildx-action@v3
  1170.  
  1171.    - name: Build and push Docker image
  1172.      id: build-and-push
  1173.      uses: docker/build-push-action@v6
  1174.      with:
  1175.        context: .
  1176.        push: true
  1177.        tags: ${{ env.JF_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.run_number }}
  1178.        build-args: ${{ env.BUILD_ARGS }}
  1179.  
  1180.    - name: Attest docker image
  1181.      uses: actions/attest-build-provenance@v2
  1182.      with:
  1183.        subject-name: oci://${{ env.JF_REGISTRY }}/${{ env.IMAGE_NAME }}
  1184.        subject-digest: ${{ steps.build-and-push.outputs.digest }}</code></pre>
  1185.  
  1186.  
  1187.  
  1188. <ol start="3" class="wp-block-list">
  1189. <li>Once the build has run and the attestation has been generated, it will push the artifact to the JFrog Artifactory staging repo. The artifact is now ready to be validated.&nbsp;</li>
  1190. </ol>
  1191.  
  1192.  
  1193.  
  1194. <figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" height="310" width="1024" src="https://github.blog/wp-content/uploads/2025/09/jfrog3.png?resize=1024%2C310" alt="Artifactory view of the attestation in the dev environment." class="wp-image-90686" srcset="https://github.blog/wp-content/uploads/2025/09/jfrog3.png?w=1564 1564w, https://github.blog/wp-content/uploads/2025/09/jfrog3.png?w=300 300w, https://github.blog/wp-content/uploads/2025/09/jfrog3.png?w=768 768w, https://github.blog/wp-content/uploads/2025/09/jfrog3.png?w=1024 1024w, https://github.blog/wp-content/uploads/2025/09/jfrog3.png?w=1536 1536w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></figure>
  1195.  
  1196.  
  1197.  
  1198. <ol start="4" class="wp-block-list">
  1199. <li>Once the artifact has been verified, confirming that a valid GitHub-signed provenance matches the trusted conditions (for example the issuer, repo, workflow, branch), on the policy passing, JFrog can automatically promote the attestation from the dev environment to the production environment.&nbsp;</li>
  1200.  
  1201.  
  1202.  
  1203. <li>Now that artifacts have been promoted to production, Dependabot continues scanning&nbsp; its source repository, looking for dependencies and vulnerabilities. When a critical CVE is discovered, administrators will receive an alert of the security threat.&nbsp;</li>
  1204. </ol>
  1205.  
  1206.  
  1207.  
  1208. <figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" height="692" width="1024" src="https://github.blog/wp-content/uploads/2025/09/jfrog4.jpg?resize=1024%2C692" alt="View of critical Dependabot alerts." class="wp-image-90687" srcset="https://github.blog/wp-content/uploads/2025/09/jfrog4.jpg?w=1538 1538w, https://github.blog/wp-content/uploads/2025/09/jfrog4.jpg?w=300 300w, https://github.blog/wp-content/uploads/2025/09/jfrog4.jpg?w=768 768w, https://github.blog/wp-content/uploads/2025/09/jfrog4.jpg?w=1024 1024w, https://github.blog/wp-content/uploads/2025/09/jfrog4.jpg?w=1536 1536w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></figure>
  1209.  
  1210.  
  1211.  
  1212. <ol start="6" class="wp-block-list">
  1213. <li>To find the alerts and vulnerabilities for artifacts that made it to production, we can filter with the following tag: <code>artifact-registry:jfrog-artifactory</code>.<br><br>With this integration enabled, artifact lifecycle data is automatically pushed from JFrog to GitHub using <a href="https://docs.github.com/en/rest/orgs/artifact-metadata?apiVersion=2022-11-28#create-artifact-metadata-storage-records">GitHub&rsquo;s new artifact metadata API</a>. When an artifact is promoted to production in JFrog Artifactory, JFrog will automatically notify GitHub about the promotion, so that the artifact is picked up with the new Dependabot filter.</li>
  1214. </ol>
  1215.  
  1216.  
  1217.  
  1218. <figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" height="387" width="1024" src="https://github.blog/wp-content/uploads/2025/09/jfrog5.jpg?resize=1024%2C387" alt="Dependabot filter for JFrog." class="wp-image-90688" srcset="https://github.blog/wp-content/uploads/2025/09/jfrog5.jpg?w=1551 1551w, https://github.blog/wp-content/uploads/2025/09/jfrog5.jpg?w=300 300w, https://github.blog/wp-content/uploads/2025/09/jfrog5.jpg?w=768 768w, https://github.blog/wp-content/uploads/2025/09/jfrog5.jpg?w=1024 1024w, https://github.blog/wp-content/uploads/2025/09/jfrog5.jpg?w=1536 1536w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></figure>
  1219.  
  1220.  
  1221.  
  1222. <ol start="7" class="wp-block-list">
  1223. <li>Once an alert has been identified, it can be remediated using the suggested dependency update, which then allows you to rebuild and redeploy with fresh provenance.</li>
  1224. </ol>
  1225.  
  1226.  
  1227.  
  1228. <p>To get the most out of using GitHub and Jfrog Artifactory, here are a few best practices:&nbsp;</p>
  1229.  
  1230.  
  1231.  
  1232. <ul class="wp-block-list">
  1233. <li><strong>Use OIDC</strong> to avoid long-lived credentials in your workflows.</li>
  1234.  
  1235.  
  1236.  
  1237. <li><strong>Automate promotions</strong> in Artifactory to move artifacts from dev &rarr; staging &rarr; production.</li>
  1238.  
  1239.  
  1240.  
  1241. <li><strong>Set security gates early</strong> so unattested or vulnerable builds never make it to production.</li>
  1242.  
  1243.  
  1244.  
  1245. <li><strong>Leverage provenance attestations</strong> in JFrog Evidence for instant traceability.</li>
  1246. </ul>
  1247.  
  1248.  
  1249.  
  1250. <h2 class="wp-block-heading" id="h-what-s-next">What&rsquo;s next</h2>
  1251.  
  1252.  
  1253.  
  1254. <p>You can enable the GitHub and JFrog integration today to start building a more secure, automated, and traceable software supply chain.&nbsp;</p>
  1255.  
  1256.  
  1257.  
  1258. <p>For more details, check out the<a href="https://jfrog.com/help/r/jfrog-and-github-integration-guide/jfrog-for-github-dependabot"> JFrog integration guide</a> and the<a href="https://docs.github.com/en/code-security/securing-your-organization/understanding-your-organizations-exposure-to-vulnerabilities/prioritizing-dependabot-alerts-using-production-context"> GitHub documentation</a>.</p>
  1259. </body></html>
  1260. <p>The post <a href="https://github.blog/enterprise-software/devsecops/how-to-use-the-github-and-jfrog-integration-for-secure-traceable-builds-from-commit-to-production/">How to use the GitHub and JFrog integration for secure, traceable builds from commit to production</a> appeared first on <a href="https://github.blog">The GitHub Blog</a>.</p>
  1261. ]]></content:encoded>
  1262. <post-id xmlns="com-wordpress:feed-additions:1">90682</post-id> </item>
  1263. <item>
  1264. <title>How to debug a web app with Playwright MCP and GitHub Copilot</title>
  1265. <link>https://github.blog/ai-and-ml/github-copilot/how-to-debug-a-web-app-with-playwright-mcp-and-github-copilot/</link>
  1266. <dc:creator><![CDATA[Christopher Harrison]]></dc:creator>
  1267. <pubDate>Fri, 05 Sep 2025 16:00:00 +0000</pubDate>
  1268. <category><![CDATA[AI & ML]]></category>
  1269. <category><![CDATA[GitHub Copilot]]></category>
  1270. <category><![CDATA[MCP]]></category>
  1271. <category><![CDATA[Model Context Protocol]]></category>
  1272. <guid isPermaLink="false">https://github.blog/?p=90624</guid>
  1273.  
  1274. <description><![CDATA[<p>Reproduce and debug web app issues with ease using the Playwright MCP server and GitHub Copilot.</p>
  1275. <p>The post <a href="https://github.blog/ai-and-ml/github-copilot/how-to-debug-a-web-app-with-playwright-mcp-and-github-copilot/">How to debug a web app with Playwright MCP and GitHub Copilot</a> appeared first on <a href="https://github.blog">The GitHub Blog</a>.</p>
  1276. ]]></description>
  1277. <content:encoded><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
  1278. <html><body><p>I know it can feel like a unicorn, but most bug reports do, in fact, contain steps to reproduce the error (or repro steps). As wonderful as it is to have those, the process of walking through and validating everything is still tedious. In a perfect world, we&rsquo;d have end-to-end or acceptance tests that could automate the process. Sadly, many projects lack robust testing.</p>
  1279.  
  1280.  
  1281.  
  1282. <p>Fortunately, GitHub Copilot with the help of the Playwright Model Context Protocol (MCP) server can automate that entire process.</p>
  1283.  
  1284.  
  1285.  
  1286. <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
  1287. <iframe loading="lazy" title="Automate debugging with the Playwright MCP server" width="500" height="281" src="https://www.youtube.com/embed/Sh9D3lQs3A8?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
  1288. </div></figure>
  1289.  
  1290.  
  1291.  
  1292. <p>Let&rsquo;s explore how we pass the repro steps to Copilot agent mode, and let it use the Playwright MCP server to walk through them and validate the bug. In turn, it will track down and resolve the error.</p>
  1293.  
  1294.  
  1295.  
  1296. <h2 class="wp-block-heading" id="h-what-are-playwright-and-mcp-a-quick-overview-nbsp">What are Playwright and MCP? A quick overview&nbsp;</h2>
  1297.  
  1298.  
  1299.  
  1300. <p><a href="https://playwright.dev/">Playwright</a> is an end-to-end testing framework for web apps. You can use it to create scripts to act as a user, validate your application&rsquo;s feature set, and assure quality.</p>
  1301.  
  1302.  
  1303.  
  1304. <p>For example, if you were building a shopping app, you could create a series of scripts to walk through the entire flow of searching for a product, adding it to the cart, and completing the purchase. These scripts are automated, allowing you to validate the process within seconds.</p>
  1305.  
  1306.  
  1307.  
  1308. <p>Originally developed by Anthropic, <a href="https://github.blog/ai-and-ml/llms/what-the-heck-is-mcp-and-why-is-everyone-talking-about-it/">MCP</a> is an open (and open source) protocol for exposing tools to AI agents. These tools could include providing additional context and information, or to allow the AI agent to perform actions.</p>
  1309.  
  1310.  
  1311.  
  1312. <p>Bringing this together: there&rsquo;s a <a href="https://github.com/microsoft/playwright-mcp/blob/main/README.md">Playwright MCP server</a>, which provides tools from Playwright to AI agents (or GitHub Copilot in this case), to both create those scripts and perform the actions directly. This allows Copilot to actually walk through the repro steps for us!</p>
  1313.  
  1314.  
  1315.  
  1316. <h2 class="wp-block-heading" id="h-how-to-configure-playwright-mcp-server-for-github-copilot-in-vs-code">How to configure Playwright MCP server for GitHub Copilot in VS Code</h2>
  1317.  
  1318.  
  1319.  
  1320. <p>For you to use the Playwright MCP server, it needs to be available in your IDE. In VS Code, you can <a href="https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522playwright%2522%252C%2522command%2522%253A%2522npx%2522%252C%2522args%2522%253A%255B%2522%2540playwright%252Fmcp%2540latest%2522%255D%257D">install the Playwright MCP server</a> to make it available to all projects, or create a file in your <code>.vscode</code> folder tiled <code>mcp.json</code> and add the following:</p>
  1321.  
  1322.  
  1323.  
  1324. <pre class="wp-block-code language-javascript"><code>{
  1325.  "servers": {
  1326.    "playwright": {
  1327.      "command": "npx",
  1328.      "args": [
  1329.        "@playwright/mcp@latest"
  1330.      ]
  1331.    }
  1332.  }
  1333. }</code></pre>
  1334.  
  1335.  
  1336.  
  1337. <p>Once you do that, you&rsquo;ll notice a small <strong>play</strong> button appear just over <code>playwright</code> in the file. When you select that button, it&rsquo;ll start the server so you can use it with Copilot agent mode! (<a href="https://github.blog/ai-and-ml/github-copilot/agent-mode-101-all-about-github-copilots-powerful-mode/">Get the guide</a> to using agent mode in Copilot.)</p>
  1338.  
  1339.  
  1340.  
  1341. <figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" height="816" width="1024" src="https://github.blog/wp-content/uploads/2025/09/image.png?resize=1024%2C816" alt='A screenshot showing the play button below "servers", just above "playwright", in a VS Code window.' class="wp-image-90625" srcset="https://github.blog/wp-content/uploads/2025/09/image.png?w=1330 1330w, https://github.blog/wp-content/uploads/2025/09/image.png?w=300 300w, https://github.blog/wp-content/uploads/2025/09/image.png?w=768 768w, https://github.blog/wp-content/uploads/2025/09/image.png?w=1024 1024w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></figure>
  1342.  
  1343.  
  1344.  
  1345. <p>You&rsquo;ll likely need to <a href="https://playwright.dev/docs/test-configuration">configure Playwright</a>, especially if you have a complex startup process for your website. My project is based on the <a href="https://github.com/github-samples/agents-in-sdlc">website in the Agents in SDLC workshop</a> (available on <a href="https://github.com/github-samples/agents-in-sdlc">GitHub samples</a>), and already has a frontend written with Astro &amp; Svelte, and a backend using Flask. This configuration allowed Playwright to properly <a href="https://playwright.dev/docs/api/class-testconfig#test-config-web-server">start the app</a>. Also, fun fact: The config file was actually created by Copilot!</p>
  1346.  
  1347.  
  1348.  
  1349. <p>I used this prompt with Copilot agent mode to do it, and you can modify it for your particular requirements:</p>
  1350.  
  1351.  
  1352.  
  1353. <pre class="wp-block-code language-plaintext"><code>Add Playwright to this project. When configuring Playwright, note the startup script for the site. Ensure the configuration uses this startup script, and reuses the server if one is already launched.</code></pre>
  1354.  
  1355.  
  1356.  
  1357. <h2 class="wp-block-heading" id="the-scenario">The scenario</h2>
  1358.  
  1359.  
  1360.  
  1361. <p>Let&rsquo;s say we have a crowdfunding website for DevOps-themed board games (a truly booming industry). Filters are available to the user to search by publisher and category. After discovering the publisher filter doesn&rsquo;t work, a user files the following issue on GitHub:</p>
  1362.  
  1363.  
  1364.  
  1365. <pre class="wp-block-code language-plaintext"><code>## Error
  1366.  
  1367. The publisher filter doesn't actually filter the games by publisher.
  1368.  
  1369. ## Repro steps
  1370.  
  1371. 1. Go to the homepage.
  1372. 2. Select a publisher from the dropdown list; the page updates.
  1373. 3. Review the updated list, noting no change in the games listed.
  1374.  
  1375. ## Expected behavior
  1376.  
  1377. The only games displayed are ones published by the selected publisher.
  1378.  
  1379. ## Actual behavior
  1380.  
  1381. All games are still displayed.</code></pre>
  1382.  
  1383.  
  1384.  
  1385. <h2 class="wp-block-heading" id="how-copilot-agent-mode-automates-bug-reproduction-with-playwright">How Copilot agent mode automates bug reproduction with Playwright</h2>
  1386.  
  1387.  
  1388.  
  1389. <p>Copilot agent mode is built to be a peer programmer, which means we can give it tasks and then review its work. In other words, we can describe what we&rsquo;re looking at, the problems we need to solve, what we expect Copilot to do and let Copilot take it from there!</p>
  1390.  
  1391.  
  1392.  
  1393. <p>If you&rsquo;re following along in the video, you&rsquo;ll notice I paraphrased the user&rsquo;s reported issue in my own words. This is something I often do because it allows me to better understand the ask and to go back to the original filer for additional clarity.&nbsp;</p>
  1394.  
  1395.  
  1396.  
  1397. <p>In practice, I ended up sending the following prompt to Copilot agent mode:</p>
  1398.  
  1399.  
  1400.  
  1401. <pre class="wp-block-code language-plaintext"><code>A user is reporting the publisher filter doesn't do anything. Can you please use Playwright to confirm this is an issue, and if so track it down? Start by going to the landing page, using the dropdown for publisher, and seeing what happens. Thanks!</code></pre>
  1402.  
  1403.  
  1404.  
  1405. <figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td>&#128161; <strong>Pro tip:</strong> If you want to be fancy, you can also incorporate the <a href="https://github.com/github/github-mcp-server/blob/main/README.md">GitHub MCP server</a> into the flow by asking Copilot to track down the issue and to read the text directly. To streamline this blog, I&rsquo;m going to stick to just the Playwright MCP server (but <a href="https://github.blog/ai-and-ml/generative-ai/a-practical-guide-on-how-to-use-the-github-mcp-server/">you can learn more about the GitHub MCP server and how to use it in our guide</a>).</td></tr></tbody></table></figure>
  1406.  
  1407.  
  1408.  
  1409. <p>From there, Copilot got to work. It utilized the Playwright MCP server to start the website and perform the repro steps. It then confirmed the user&rsquo;s report: The publisher filter didn&rsquo;t do anything.</p>
  1410.  
  1411.  
  1412.  
  1413. <p>With this knowledge, Copilot explored the project to track down the bug. It looked at the frontend code, which looked good. With the help of the Playwright MCP server, it also validated the calls to the API were taking place. Then it looked at the backend and discovered the (admittedly) simple problem: a typo.</p>
  1414.  
  1415.  
  1416.  
  1417. <p>What I really appreciated: After proposing a fix, it returned to Playwright to validate that the fix would actually work.</p>
  1418.  
  1419.  
  1420.  
  1421. <p>After this was done, I knew Copilot confirmed the bug, generated a fix, and demonstrated the fix resolved the bug. From there, I turned my attention to reviewing the code, running additional tests, and finally creating my pull request.&nbsp;&nbsp;</p>
  1422.  
  1423.  
  1424.  
  1425. <h2 class="wp-block-heading" id="why-you-should-use-playwright-mcp-with-github-copilot-for-web-app-debugging">Why you should use Playwright MCP with GitHub Copilot for web app debugging</h2>
  1426.  
  1427.  
  1428.  
  1429. <p>Now yes, the bug itself was straightforward because I wanted to keep the demo focused on Copilot agent mode and Playwright. From experience I can confirm Copilot is invaluable with more complex bugs (I&rsquo;m speaking from experience).</p>
  1430.  
  1431.  
  1432.  
  1433. <p>Here&rsquo;s why all this matters: Providing Copilot agent mode with the ability to use Playwright allows it to &ldquo;see&rdquo; the impact its changes have on the website, and generally interact with your website, too. You can quickly configure Playwright for your project with the help of Copilot to take advantage of this functionality. And you can even take the next step by incorporating Playwright end-to-end tests into your project if you haven&rsquo;t already done so.&nbsp;</p>
  1434.  
  1435.  
  1436.  
  1437. <div class="wp-block-group post-content-cta has-global-padding is-layout-constrained wp-block-group-is-layout-constrained">
  1438. <p><a href="https://docs.github.com/en/copilot/tutorials/enhance-agent-mode-with-mcp"><strong>Read the Docs</strong></a><strong> </strong>to start using agent mode in GitHub Copilot &gt;</p>
  1439. </div>
  1440. </body></html>
  1441. <p>The post <a href="https://github.blog/ai-and-ml/github-copilot/how-to-debug-a-web-app-with-playwright-mcp-and-github-copilot/">How to debug a web app with Playwright MCP and GitHub Copilot</a> appeared first on <a href="https://github.blog">The GitHub Blog</a>.</p>
  1442. ]]></content:encoded>
  1443. <post-id xmlns="com-wordpress:feed-additions:1">90624</post-id> </item>
  1444. <item>
  1445. <title>GitHub is enabling broader access for developers in Syria following new government trade rules</title>
  1446. <link>https://github.blog/company/github-is-enabling-broader-access-for-developers-in-syria-following-new-government-trade-rules/</link>
  1447. <dc:creator><![CDATA[Mike Linksvayer]]></dc:creator>
  1448. <pubDate>Fri, 05 Sep 2025 06:00:00 +0000</pubDate>
  1449. <category><![CDATA[Company]]></category>
  1450. <guid isPermaLink="false">https://github.blog/?p=90643</guid>
  1451.  
  1452. <description><![CDATA[<p>With the relaxation of sanctions and export controls on Syria, GitHub will once again be broadly available to Syrian developers.</p>
  1453. <p>The post <a href="https://github.blog/company/github-is-enabling-broader-access-for-developers-in-syria-following-new-government-trade-rules/">GitHub is enabling broader access for developers in Syria following new government trade rules</a> appeared first on <a href="https://github.blog">The GitHub Blog</a>.</p>
  1454. ]]></description>
  1455. <content:encoded><![CDATA[
  1456. <details>
<summary>اقرأ باللغة العربية</summary>
<p>
  1457.  
  1458. <div dir="rtl" lang="ar" style="direction: rtl;text-align: right">
  1459.  
  1460.  <h1>
  1461.    أصبحت تتيح وصولاً أوسع للمطورين في سوريا عقب قواعد التجارة الحكومية الجديدة
  1462.    <span dir="ltr">GitHub</span>
  1463.  </h1>
  1464.  
  1465. <br>
  1466.  
  1467.  <p>
  1468.    قبل أكثر من أربع سنوات، اتخذنا موقفًا ظلّ في صميم عملنا لدعم حرية المطوّرين:
  1469.    «ينبغي أن يتمتّع جميع المطوّرين بالحرية في استخدام <span dir="ltr">GitHub</span>، أينما كانوا».
  1470.    واليوم نبلغ محطةً مهمةً في ذلك المسعى؛ إذ إن تخفيف العقوبات والقيود المفروضة على الصادرات تجاه سوريا
  1471.    أتاح إعادة فتح الخدمات الخاصة والمدفوعة على موقع بشكل واسع أمام المطوّرين في حلب، حمص، دمشق،
  1472.    وفي جميع أنحاء البلد.
  1473.  </p>
  1474.  
  1475.  <p>
  1476.    ‎ظلّ التعاون في المشاريع مفتوحة المصدر والمستودعات العامة الأخرى متاحًا دائمًا، كما يظهر في مخطط ابتكار
  1477.    وهي مجموعة بيانات مفتوحة تُقدم أرقامًا مجمّعة عن مساهمات المستودعات العامة من سوريا.
  1478.  </p>
  1479.  
  1480.  <p>
  1481.    نُعرب عن امتناننا الصادق للمطورين الذين دعوا لهذا التغيير وسعوا باستمرار للحصول على التحديثات.
  1482.    <span dir="ltr">GitHub</span> ترحّب بالمطورين السوريين للمساهمة بمشاريعهم في مجتمع المطورين العالمي،
  1483.    سواء كانت مساعيهم كبيرة أم صغيرة. نفتخر بأن نكون الموطن للمطورين الذين يدفعهم شغفهم للابتكار والبناء
  1484.    والتعلّم والتعليم، ونبقى ملتزمين بجعل <span dir="ltr">GitHub</span> متاحاً لأكبر عدد ممكن من المطورين ضمن إطار القانون.
  1485.  </p>
  1486.  
  1487.  <p>
  1488.  
  1489. نقوم الآن  باتخاذ الخطوات اللازمة بصورة عاجلة لرفع القيود المفروضة على المطورين في السوريا، بما يتيح استعادة وظائف الحساب الكاملة، إضافةً إلى إتاحة خدمة <span dir="ltr">GitHub Copilot</span>. التغييرات جارية ومن المتوقّع أن تصل إلى الحسابات خلال الأسبوع المقبل.
  1490.  
  1491. </p>
  1492.  
  1493. </div>
  1494. </p>
</details>
  1495.  
  1496.  
  1497.  
  1498. <p>More than four years ago, we <a href="https://github.blog/news-insights/policy-news-and-insights/advancing-developer-freedom-github-is-fully-available-in-iran/">took a stance</a> that has remained at the center of our work advancing developer freedom: “All developers should be free to use GitHub, no matter where they live.” Today marks one important milestone in that endeavor. With the relaxation of <a href="https://ofac.treasury.gov/sanctions-programs-and-country-information/syria-sanctions-inactive-and-archived">sanctions</a> and <a href="https://www.bis.gov/licensing/country-guidance/syria-export-controls">export controls</a> on Syria, private and paid features of <a href="http://github.com">GitHub.com</a> will once again be broadly available to developers in Aleppo, Homs, Damascus, and the entire country. Collaboration on open source projects and other public repositories has always been available, as can be seen in the <a href="https://innovationgraph.github.com/">GitHub Innovation Graph</a>, an open dataset which provides aggregate numbers on <a href="https://innovationgraph.github.com/economies/sy">public repository contributions from Syria</a>.</p>
  1499.  
  1500.  
  1501.  
  1502. <p>We extend our sincere gratitude to the developers who advocated for this change and consistently sought updates. GitHub welcomes Syrian developers to contribute their projects to the global developer community,&nbsp; whether they be big or small endeavors. We are proud to be the home for developers whose passion drives them to innovate, build, learn, and teach—and we remain committed to making GitHub available to as many developers as legally possible.</p>
  1503.  
  1504.  
  1505.  
  1506. <p>We are moving promptly to lift restrictions on developers in Syria, enabling normal account functionality, as well as access to GitHub Copilot. Changes are underway and expected to reach accounts within the next week.&nbsp;</p>
  1507.  
  1508.  
  1509.  
  1510. <p><br><br></p>
  1511. <p>The post <a href="https://github.blog/company/github-is-enabling-broader-access-for-developers-in-syria-following-new-government-trade-rules/">GitHub is enabling broader access for developers in Syria following new government trade rules</a> appeared first on <a href="https://github.blog">The GitHub Blog</a>.</p>
  1512. ]]></content:encoded>
  1513. <post-id xmlns="com-wordpress:feed-additions:1">90643</post-id> </item>
  1514. <item>
  1515. <title>Building smarter interactions with MCP elicitation: From clunky tool calls to seamless user experiences</title>
  1516. <link>https://github.blog/ai-and-ml/github-copilot/building-smarter-interactions-with-mcp-elicitation-from-clunky-tool-calls-to-seamless-user-experiences/</link>
  1517. <dc:creator><![CDATA[Chris Reddington]]></dc:creator>
  1518. <pubDate>Thu, 04 Sep 2025 16:00:00 +0000</pubDate>
  1519. <category><![CDATA[AI & ML]]></category>
  1520. <category><![CDATA[GitHub Copilot]]></category>
  1521. <category><![CDATA[generative AI]]></category>
  1522. <category><![CDATA[MCP]]></category>
  1523. <category><![CDATA[Model Context Protocol]]></category>
  1524. <category><![CDATA[Rubber Duck Thursdays]]></category>
  1525. <guid isPermaLink="false">https://github.blog/?p=90613</guid>
  1526.  
  1527. <description><![CDATA[<p>Explore how MCP elicitation transforms AI tool interactions by gathering missing information upfront. </p>
  1528. <p>The post <a href="https://github.blog/ai-and-ml/github-copilot/building-smarter-interactions-with-mcp-elicitation-from-clunky-tool-calls-to-seamless-user-experiences/">Building smarter interactions with MCP elicitation: From clunky tool calls to seamless user experiences</a> appeared first on <a href="https://github.blog">The GitHub Blog</a>.</p>
  1529. ]]></description>
  1530. <content:encoded><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
  1531. <html><body><p>When we build software, we&rsquo;re not just shipping features. We&rsquo;re shipping experiences that surprise and delight our users &mdash; and making sure that we&rsquo;re providing natural and seamless experiences is a core part of what we do.</p>
  1532.  
  1533.  
  1534.  
  1535. <p>In my last post, I <a href="https://github.blog/ai-and-ml/github-copilot/building-your-first-mcp-server-how-to-extend-ai-tools-with-custom-capabilities?utm_campaign=rdt-blog-devrel&amp;utm_source=blog&amp;utm_medium=turnbased-mcp-blog-1">wrote about an MCP server that we started building for a turn-based-game</a> (like tic-tac-toe, or rock, paper, scissors). While it had the core capabilities, like tool calls, resources, and prompts, the experience could still be improved. For example, the player always took the first move, the player could only change the difficulty if they specified in their initial message, and a slew of other papercuts.</p>
  1536.  
  1537.  
  1538.  
  1539. <p>So on my most recent <strong>Rubber Duck Thursdays</strong> stream, I covered a feature that&rsquo;s helped improve the user experience: <strong>elicitation</strong>.&nbsp;<em>See the full stream below &#128071;</em></p>
  1540.  
  1541.  
  1542.  
  1543. <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
  1544. <iframe loading="lazy" title="Rubber Duck Thursdays - Building a turn-based-game MCP server" width="500" height="281" src="https://www.youtube.com/embed/T8D1hDaCrKc?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
  1545. </div></figure>
  1546.  
  1547.  
  1548.  
  1549. <p>Elicitation is kind of like saying, &ldquo;if we don&rsquo;t have all the information we need, let&rsquo;s go and get it.&rdquo; But it&rsquo;s more than that. It&rsquo;s about creating intuitive interactions where the AI (via the MCP server) can pause, ask for what it needs, and then continue with the task. No more default assumptions that provide hard-coded paths of interaction.&nbsp;</p>
  1550.  
  1551.  
  1552.  
  1553. <p>&#128064; <strong>Be aware:</strong> Elicitation is not supported by all AI application hosts. GitHub Copilot in Visual Studio Code supports it, but you&rsquo;ll want to check the latest state <a href="https://modelcontextprotocol.io/clients#feature-support-matrix">from the MCP docs for other AI apps</a>. Elicitation is a relative newcomer to the MCP spec, <a href="https://modelcontextprotocol.io/specification/2025-06-18/client/elicitation">having been added in the June 2025 revision</a>, and so the design may continue to evolve.</p>
  1554.  
  1555.  
  1556.  
  1557. <p>Let me walk you through how I implemented elicitation in&nbsp;<a href="https://gh.io/rdt-blog/game-mcp">my turn-based game MCP server</a>&nbsp;and the challenges I encountered along the way.</p>
  1558.  
  1559.  
  1560.  
  1561. <h2 class="wp-block-heading" id="h-enter-elicitation-making-ai-interactions-feel-natural">Enter elicitation: Making AI interactions feel natural</h2>
  1562.  
  1563.  
  1564.  
  1565. <p>Before we reached the livestream, I had put together a basic implementation of elicitation, which asked for required information when creating a new game, like difficulty and player name. For tic-tac-toe, it asks which player goes first. For rock, paper, scissors, it asked how many rounds to play.&nbsp;</p>
  1566.  
  1567.  
  1568.  
  1569. <p>But rather than completely replacing our existing tools, I implemented these as new tools, so we could clearly see the behavior between the two approaches until we tested and standardized the approach. As a result, we began to see sprawl in the server with some duplicative tools:</p>
  1570.  
  1571.  
  1572.  
  1573. <ul class="wp-block-list">
  1574. <li><code>create-tic-tac-toe-game</code> and <code>create-tic-tac-toe-game-interactive</code></li>
  1575.  
  1576.  
  1577.  
  1578. <li><code>create-rock-paper-scissors-game</code> and <code>create-rock-paper-scissors-game-interactive</code></li>
  1579.  
  1580.  
  1581.  
  1582. <li><code>play-tic-tac-toe</code> and <code>play-rock-paper-scissors</code></li>
  1583. </ul>
  1584.  
  1585.  
  1586.  
  1587. <p>The problem? When you give AI agents like Copilot tools with similar names and descriptions, it doesn&rsquo;t know which one to pick. On several occasions, Copilot chose the wrong tool because I had created this confusing landscape of overlapping functionality. This was an unexpected learning experience, but an important one to pick up along the way.</p>
  1588.  
  1589.  
  1590.  
  1591. <p>The next logical step was to consolidate our tool calls, and make sure we&rsquo;re using DRY (don&rsquo;t repeat yourself) principles throughout the codebase instead of redefining constants and having nearly identical implementations for different game types.</p>
  1592.  
  1593.  
  1594.  
  1595. <p>After a lot of refactoring and consolidation, when someone prompts &ldquo;let&rsquo;s play a game of tic-tac-toe,&rdquo; the tool call identifies that more information is needed to ensure the user has made an explicit choice, rather than creating a game with a pre-determined set of defaults.</p>
  1596.  
  1597.  
  1598.  
  1599. <figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" height="576" width="1024" src="https://github.blog/wp-content/uploads/2025/09/image1.png?resize=1024%2C576" alt="A screenshot of GitHub Copilot Chat in Visual Studio Code where the user has asked &quot;Let's play a game of tictactoe&quot;. Copilot has triggered the elicitation experience, requesting additional preferences to customize the experience." class="wp-image-90618" srcset="https://github.blog/wp-content/uploads/2025/09/image1.png?w=1600 1600w, https://github.blog/wp-content/uploads/2025/09/image1.png?w=300 300w, https://github.blog/wp-content/uploads/2025/09/image1.png?w=768 768w, https://github.blog/wp-content/uploads/2025/09/image1.png?w=1024 1024w, https://github.blog/wp-content/uploads/2025/09/image1.png?w=1536 1536w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></figure>
  1600.  
  1601.  
  1602.  
  1603. <p>The user provides their preferences, and the server creates the game based upon those, improving that overall user experience.&nbsp;</p>
  1604.  
  1605.  
  1606.  
  1607. <p>It&rsquo;s worth adding that my code (like I&rsquo;m sure many of us would admit?) is far from perfect, and I noticed a bug live on the stream. The elicitation step triggered for <strong>every</strong> invocation of the tool, regardless of whether the user had already provided the needed information.&nbsp;</p>
  1608.  
  1609.  
  1610.  
  1611. <p>As part of my rework after the livestream, I added some checks after the tool was invoked to determine what information had already been provided. I also aligned the property names between the tool and elicitation schemas, bringing a bit more clarity. So if you said &ldquo;Let&rsquo;s play a game of tic-tac-toe, I&rsquo;ll go first,&rdquo; you would be asked to confirm the game difficulty and to provide your name.</p>
  1612.  
  1613.  
  1614.  
  1615. <h2 class="wp-block-heading" id="how-my-elicitation-implementation-now-works-under-the-hood">How my elicitation implementation now works under the hood</h2>
  1616.  
  1617.  
  1618.  
  1619. <p>The magic happens in the MCP server implementation. As part of my <a href="https://gh.io/rdt-blog/game-mcp">up-to-date implementation</a>, when the MCP server invokes the <code>create_game</code> tool, it:</p>
  1620.  
  1621.  
  1622.  
  1623. <ol class="wp-block-list">
  1624. <li><a href="https://github.com/github-samples/turn-based-game-mcp/blob/fe1d54d960ad99e2d6c9574fce8c5211301753a1/mcp-server/src/handlers/tool-handlers.ts#L167"><strong>Checks for required parameters</strong></a>: Do we know which game the user wants to play, or did they specify an ID?</li>
  1625.  
  1626.  
  1627.  
  1628. <li><a href="https://github.com/github-samples/turn-based-game-mcp/blob/fe1d54d960ad99e2d6c9574fce8c5211301753a1/mcp-server/src/handlers/tool-handlers.ts#L175"><strong>Passes the optional identified arguments to a separate method</strong></a>: Are we missing difficulty, player name, or turn order?</li>
  1629.  
  1630.  
  1631.  
  1632. <li><a href="https://github.com/github-samples/turn-based-game-mcp/blob/fe1d54d960ad99e2d6c9574fce8c5211301753a1/mcp-server/src/handlers/tool-handlers.ts#L191-L234"><strong>Initiates elicitation</strong></a>: If information is missing, it pauses the tool execution and gathers only the missing information from the user. This was an addition that I made after the stream to further improve the user experience.</li>
  1633.  
  1634.  
  1635.  
  1636. <li><a href="https://github.com/github-samples/turn-based-game-mcp/blob/fe1d54d960ad99e2d6c9574fce8c5211301753a1/mcp-server/src/handlers/elicitation-handlers.ts#L16"><strong>Presents schema-driven prompts</strong></a>: The user sees formatted questions for each missing parameter.</li>
  1637.  
  1638.  
  1639.  
  1640. <li><strong>Collects responses</strong>: The MCP client (VS Code in this case) handles the UI interaction.</li>
  1641.  
  1642.  
  1643.  
  1644. <li><a href="https://github.com/github-samples/turn-based-game-mcp/blob/fe1d54d960ad99e2d6c9574fce8c5211301753a1/mcp-server/src/handlers/tool-handlers.ts#L237"><strong>Completes the original request</strong></a>: Once the server collects all the information, the tool executes the createGame method with the user&rsquo;s preferences.</li>
  1645. </ol>
  1646.  
  1647.  
  1648.  
  1649. <p>Here&rsquo;s what you see in the VS Code interface when elicitation kicks in, and you must provide some preferences:</p>
  1650.  
  1651.  
  1652.  
  1653. <figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" height="576" width="1024" src="https://github.blog/wp-content/uploads/2025/09/image2.png?resize=1024%2C576" alt="A screenshot of GitHub Copilot Chat in Visual Studio Code where a new UI modal appears, prompting the user for their preferences. This example shows the user selecting the Difficulty as hard." class="wp-image-90619" srcset="https://github.blog/wp-content/uploads/2025/09/image2.png?w=1600 1600w, https://github.blog/wp-content/uploads/2025/09/image2.png?w=300 300w, https://github.blog/wp-content/uploads/2025/09/image2.png?w=768 768w, https://github.blog/wp-content/uploads/2025/09/image2.png?w=1024 1024w, https://github.blog/wp-content/uploads/2025/09/image2.png?w=1536 1536w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></figure>
  1654.  
  1655.  
  1656.  
  1657. <p>The result? Instead of &ldquo;Player vs AI (Medium)&rdquo;, I get &ldquo;Chris vs AI (Hard)&rdquo; with the AI making the opening move because I chose to go second.</p>
  1658.  
  1659.  
  1660.  
  1661. <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
  1662. <iframe loading="lazy" title="Implementing elicitation in an MCP Server" width="500" height="281" src="https://www.youtube.com/embed/PL8mTOpZim0?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
  1663. </div></figure>
  1664.  
  1665.  
  1666.  
  1667. <h2 class="wp-block-heading" id="what-i-learned-while-implementing-elicitation">What I learned while implementing elicitation</h2>
  1668.  
  1669.  
  1670.  
  1671. <h3 class="wp-block-heading" id="challenge-1-tool-naming-confusion">Challenge 1: Tool naming confusion</h3>
  1672.  
  1673.  
  1674.  
  1675. <p><strong>Problem:</strong> Tools with similar names and descriptions confuse the AI about which one to use.</p>
  1676.  
  1677.  
  1678.  
  1679. <p><strong>Solution:</strong> Where it&rsquo;s appropriate, merge tools and use clear, distinct names and descriptions. I went from eight tools down to four:</p>
  1680.  
  1681.  
  1682.  
  1683. <ul class="wp-block-list">
  1684. <li><code>create-game</code> (handles all game types with elicitation)</li>
  1685.  
  1686.  
  1687.  
  1688. <li><code>play-game</code> (unified play interface)</li>
  1689.  
  1690.  
  1691.  
  1692. <li><code>analyze-game</code> (game state analysis)</li>
  1693.  
  1694.  
  1695.  
  1696. <li><code>wait-for-player-move</code> (turn management)</li>
  1697. </ul>
  1698.  
  1699.  
  1700.  
  1701. <h3 class="wp-block-heading" id="challenge-2-handling-partial-information">Challenge 2: Handling partial information</h3>
  1702.  
  1703.  
  1704.  
  1705. <p><strong>Problem:</strong> What if the user provides some information upfront? (&ldquo;Let&rsquo;s play tic-tac-toe on hard mode&rdquo;)</p>
  1706.  
  1707.  
  1708.  
  1709. <p><strong>Observation: </strong>During the livestream, we saw that the way I built elicitation asked for all of the preferences each time it was invoked, which is not an ideal user experience.</p>
  1710.  
  1711.  
  1712.  
  1713. <p><strong>Solution:</strong> Parse the initial request and only elicit the missing information. This was fixed after the livestream, and is now <a href="https://gh.io/rdt-blog/game-mcp">in the latest version of the sample</a>.</p>
  1714.  
  1715.  
  1716.  
  1717. <h2 class="wp-block-heading" id="key-lessons-from-this-development-session">Key lessons from this development session</h2>
  1718.  
  1719.  
  1720.  
  1721. <h3 class="wp-block-heading" id="1-user-experience-is-still-a-consideration-with-mcp-servers">1. User experience is still a consideration with MCP servers</h3>
  1722.  
  1723.  
  1724.  
  1725. <p>How often do you provide all the needed information straight up? Elicitation provides this capability, but you need to consider how this is included as part of your tool calling and overall MCP experience. It can add complexity, but is it better to ask users for their preferences than force them to work around poor defaults?</p>
  1726.  
  1727.  
  1728.  
  1729. <h3 class="wp-block-heading" id="2-tool-naming-matters-more-than-you-think">2. Tool naming matters more than you think</h3>
  1730.  
  1731.  
  1732.  
  1733. <p>When building (and even using) tools in MCP servers, naming and descriptions are critical. Ambiguous tool names and similar descriptions can lead to unpredictable behavior, where the &ldquo;wrong&rdquo; tool is called.</p>
  1734.  
  1735.  
  1736.  
  1737. <h3 class="wp-block-heading" id="h-3-iterative-development-wins">3. Iterative development wins</h3>
  1738.  
  1739.  
  1740.  
  1741. <p>Rather than trying to build the perfect implementation upfront, I iterated to:</p>
  1742.  
  1743.  
  1744.  
  1745. <ul class="wp-block-list">
  1746. <li>Build basic functionality first</li>
  1747.  
  1748.  
  1749.  
  1750. <li>Identify pain points through usage</li>
  1751.  
  1752.  
  1753.  
  1754. <li>Add elicitation to improve the user experience</li>
  1755.  
  1756.  
  1757.  
  1758. <li>Use Copilot coding agent and Copilot agent mode to help cleanup</li>
  1759. </ul>
  1760.  
  1761.  
  1762.  
  1763. <h2 class="wp-block-heading" id="try-it-yourself">Try it yourself</h2>
  1764.  
  1765.  
  1766.  
  1767. <p>Want to see how elicitation works in an MCP server? Or seeking inspiration to build&nbsp; your own MCP server?</p>
  1768.  
  1769.  
  1770.  
  1771. <ol class="wp-block-list">
  1772. <li><strong>Fork the repository:</strong> <a href="https://gh.io/rdt/game-mcp">gh.io/rdt-blog/game-mcp</a></li>
  1773.  
  1774.  
  1775.  
  1776. <li><strong>Set up your dev environment</strong> by creating a GitHub Codespace</li>
  1777.  
  1778.  
  1779.  
  1780. <li><strong>Run the sample </strong>by building the code, starting the MCP server and running the web app / API server.&nbsp;</li>
  1781. </ol>
  1782.  
  1783.  
  1784.  
  1785. <h2 class="wp-block-heading" id="take-this-with-you">Take this with you</h2>
  1786.  
  1787.  
  1788.  
  1789. <p>Building better AI tools isn&rsquo;t all about the underlying models &mdash; it&rsquo;s about creating experiences that can interpret context, ask good questions, and deliver exactly what users need. Elicitation is a step in that direction, and I&rsquo;m excited to see how the MCP ecosystem continues to evolve and support even richer interactions.</p>
  1790.  
  1791.  
  1792.  
  1793. <p>Join us for the next <a href="https://gh.io/rubberduckthursdays">Rubber Duck Thursdays stream</a> where we&rsquo;ll continue exploring the intersection of AI tools and developer experience.</p>
  1794.  
  1795.  
  1796.  
  1797. <div class="wp-block-group post-content-cta has-global-padding is-layout-constrained wp-block-group-is-layout-constrained">
  1798. <p><a href="https://github.blog/ai-and-ml/github-copilot/building-your-first-mcp-server-how-to-extend-ai-tools-with-custom-capabilities?utm_campaign=rdt-blog-devrel&amp;utm_source=blog&amp;utm_medium=turnbased-mcp-blog-1"><strong>Get the guide</strong></a> to build your first MCP server &gt;</p>
  1799. </div>
  1800. </body></html>
  1801. <p>The post <a href="https://github.blog/ai-and-ml/github-copilot/building-smarter-interactions-with-mcp-elicitation-from-clunky-tool-calls-to-seamless-user-experiences/">Building smarter interactions with MCP elicitation: From clunky tool calls to seamless user experiences</a> appeared first on <a href="https://github.blog">The GitHub Blog</a>.</p>
  1802. ]]></content:encoded>
  1803. <post-id xmlns="com-wordpress:feed-additions:1">90613</post-id> </item>
  1804. </channel>
  1805. </rss>
  1806.  

If you would like to create a banner that links to this page (i.e. this validation result), do the following:

  1. Download the "valid RSS" banner.

  2. Upload the image to your own server. (This step is important. Please do not link directly to the image on this server.)

  3. Add this HTML to your page (change the image src attribute if necessary):

If you would like to create a text link instead, here is the URL you can use:

http://www.feedvalidator.org/check.cgi?url=https%3A//github.blog/feed/

Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda