<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Vignaesh Ram A</title>
    <description>The latest articles on Forem by Vignaesh Ram A (@vignaesh_ram).</description>
    <link>https://forem.com/vignaesh_ram</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F320120%2Fb7fc29b1-2d64-497c-aae3-225b3ee71c6b.jpg</url>
      <title>Forem: Vignaesh Ram A</title>
      <link>https://forem.com/vignaesh_ram</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/vignaesh_ram"/>
    <language>en</language>
    <item>
      <title>🚀Meet Dataverse DevTools MCP Server — Dataverse in Your Copilot 🧠⚡</title>
      <dc:creator>Vignaesh Ram A</dc:creator>
      <pubDate>Sun, 12 Oct 2025 15:14:19 +0000</pubDate>
      <link>https://forem.com/vignaesh_ram/meet-dataverse-devtools-mcp-server-dataverse-in-your-copilot-i58</link>
      <guid>https://forem.com/vignaesh_ram/meet-dataverse-devtools-mcp-server-dataverse-in-your-copilot-i58</guid>
      <description>&lt;p&gt;Ever found yourself juggling &lt;strong&gt;XrmToolBox&lt;/strong&gt;, &lt;strong&gt;make.powerapps.com&lt;/strong&gt;, and &lt;strong&gt;admin.powerplatform.com&lt;/strong&gt;, just to check a role privilege or run a FetchXML query?&lt;br&gt;&lt;br&gt;
Yeah… same. 🙃  &lt;/p&gt;

&lt;p&gt;So, I built something that fixes that.  &lt;/p&gt;

&lt;p&gt;Introducing &lt;strong&gt;&lt;a href="https://github.com/vignaesh01/DataverseDevToolsMcpServer" rel="noopener noreferrer"&gt;Dataverse DevTools MCP Server&lt;/a&gt;&lt;/strong&gt; — a fun little &lt;strong&gt;.NET-powered Model Context Protocol (MCP) server&lt;/strong&gt; that brings your favorite Dataverse tools &lt;em&gt;right inside Copilot Chat&lt;/em&gt; in &lt;strong&gt;VS Code&lt;/strong&gt;, &lt;strong&gt;Visual Studio&lt;/strong&gt;, or even &lt;strong&gt;Claude Desktop&lt;/strong&gt;.  &lt;/p&gt;

&lt;p&gt;Now, you can do all your &lt;strong&gt;Dataverse admin, data, and troubleshooting tasks&lt;/strong&gt; without ever leaving your IDE.&lt;br&gt;&lt;br&gt;
No more browser tabs. No more “Where was that environment URL again?”&lt;br&gt;&lt;br&gt;
Just chat with your Copilot — and watch it do the magic. ✨  &lt;/p&gt;


&lt;h2&gt;
  
  
  🧠 What It Actually Does
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Dataverse DevTools MCP Server&lt;/strong&gt; exposes ready-to-use tools for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;👥 &lt;strong&gt;User, Team &amp;amp; Security Administration&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🧩 &lt;strong&gt;Data Operations&lt;/strong&gt; (Run FetchXML, Web API &amp;amp; CRUD)&lt;/li&gt;
&lt;li&gt;🧱 &lt;strong&gt;Entity Metadata Exploration&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🪲 &lt;strong&gt;Plugin Trace Log Troubleshooting&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Think of it as &lt;strong&gt;XrmToolBox + Power Platform Admin Center + Power Apps Maker Portal&lt;/strong&gt;,&lt;br&gt;&lt;br&gt;
but accessible &lt;em&gt;via natural language&lt;/em&gt; from your Copilot Chat window.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyls7dc9gara8ide66675.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyls7dc9gara8ide66675.png" alt=" " width="800" height="515"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  💡 Why You’ll Love It (Especially If You’re a Dataverse Dev)
&lt;/h2&gt;
&lt;h3&gt;
  
  
  🧞‍♂️ 1. Talk to Dataverse in Plain English
&lt;/h3&gt;

&lt;p&gt;Forget the clicks and scripts. Just type what you need.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💬 “Find the user Jane Doe and show her queues and teams.”&lt;br&gt;&lt;br&gt;
💬 “Generate a FetchXML query to get all Opportunities where account type is premium.”&lt;br&gt;&lt;br&gt;
💬 “Get plugin trace logs for correlation ID aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Copilot talks to Dataverse through the MCP server and executes it instantly.  &lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr65fa01bnlgs7ft38b2l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr65fa01bnlgs7ft38b2l.png" alt=" " width="800" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn0q4h91g9kb77wbbkqem.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn0q4h91g9kb77wbbkqem.png" alt=" " width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff21oz9e7lrj5c8fepqll.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff21oz9e7lrj5c8fepqll.png" alt=" " width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbfbps5kq78rqi98c6vsq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbfbps5kq78rqi98c6vsq.png" alt=" " width="800" height="497"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  ⚡ 2. No Context Switching
&lt;/h3&gt;

&lt;p&gt;You stay in your flow.&lt;br&gt;&lt;br&gt;
Whether you’re debugging a plugin, checking privileges, or creating test records, you don’t need to switch apps.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Query Dataverse directly from &lt;strong&gt;VS Code&lt;/strong&gt; or &lt;strong&gt;Visual Studio&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Manage users, roles, and teams
&lt;/li&gt;
&lt;li&gt;Explore metadata and relationships
&lt;/li&gt;
&lt;li&gt;Execute and validate Web API or FetchXML calls
&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxiwux4tubr25lqawreal.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxiwux4tubr25lqawreal.png" alt=" " width="800" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmnlbk1wb3du8sqa294vf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmnlbk1wb3du8sqa294vf.png" alt=" " width="800" height="206"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0irb2o1lmqplu4nr17tc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0irb2o1lmqplu4nr17tc.png" alt=" " width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fin7kxxz96asg54pgdu12.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fin7kxxz96asg54pgdu12.png" alt=" " width="800" height="490"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3js9gnc7skgrr4wbi52l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3js9gnc7skgrr4wbi52l.png" alt=" " width="800" height="507"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  🧩 3. Easy Setup (Global Tool FTW)
&lt;/h3&gt;

&lt;p&gt;Install once. Use anywhere.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dotnet tool &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--global&lt;/span&gt; vignaesh01.dataversedevtoolsmcpserver
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then add it to your MCP client config and you’re good to go.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F57bqji997qotziy2metx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F57bqji997qotziy2metx.png" alt=" " width="800" height="542"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🔍 What Can It Do? (Hint: A Lot.)
&lt;/h2&gt;

&lt;p&gt;Here are some real things you can ask:&lt;/p&gt;

&lt;h3&gt;
  
  
  👥 User Management
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;“Who am I in Dataverse right now?”&lt;/li&gt;
&lt;li&gt;“Add user Jane Doe to the Super Squad team.”&lt;/li&gt;
&lt;li&gt;“List roles assigned to Jane Doe.”&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔒 Security Administration
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;“Compare privileges between Basic User and Support User.”&lt;/li&gt;
&lt;li&gt;“Which roles have read access to Account entity?”&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  💾 Data Operations
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;“Execute this FetchXML query…”&lt;/li&gt;
&lt;li&gt;“Create a new Account record using this JSON payload.”&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🧱 Metadata Exploration
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;“Find all entities containing ‘invoice’.”&lt;/li&gt;
&lt;li&gt;“List OptionSet values for incident.statuscode.”&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🪲 Troubleshooting
&lt;/h3&gt;

&lt;p&gt;“Get plugin trace logs for Contoso.Plugins.AccountPreCreate.”&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3es01lj7i0yz4tcnf2ku.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3es01lj7i0yz4tcnf2ku.png" alt=" " width="800" height="217"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F50dcx2gkppa6uxwk1iy7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F50dcx2gkppa6uxwk1iy7.png" alt=" " width="800" height="401"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🧭 Quick Toolset Overview
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Tools&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;👥 &lt;strong&gt;User, Team &amp;amp; Queue Management&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;20+ tools&lt;/td&gt;
&lt;td&gt;Assign roles, move users, manage teams&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔐 &lt;strong&gt;Security Management&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;3 tools&lt;/td&gt;
&lt;td&gt;Privilege inspection, role comparison&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;💾 &lt;strong&gt;Data Management&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;6 tools&lt;/td&gt;
&lt;td&gt;FetchXML, Web API CRUD, Upsert/Delete&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🧱 &lt;strong&gt;Entity Metadata&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;8 tools&lt;/td&gt;
&lt;td&gt;Explore schema, OptionSets, relationships&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🪲 &lt;strong&gt;Troubleshooting&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;2 tools&lt;/td&gt;
&lt;td&gt;Plugin trace logs by name or correlation ID&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzryit1mdbw5wo6qwqmln.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzryit1mdbw5wo6qwqmln.png" alt=" " width="755" height="477"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ Works Seamlessly With
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🖥️ VS Code (GitHub Copilot Chat)
&lt;/h3&gt;

&lt;p&gt;Just update your mcp.json (use Command Palette → MCP: Open User Configuration).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "servers": {
    "dvmcp": {
      "type": "stdio",
      "command": "dataversedevtoolsmcpserver",
      "args": [
        "--environmentUrl",
        "https://yourorg.crm.dynamics.com"
      ]
    }
  }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🧰 Visual Studio IDE
&lt;/h2&gt;

&lt;p&gt;Create .mcp.json in your profile folder&lt;/p&gt;

&lt;p&gt;Add the same config as above&lt;/p&gt;

&lt;p&gt;Open Copilot Chat → Select Agent → choose Dataverse DevTools MCP Server&lt;/p&gt;




&lt;h2&gt;
  
  
  🤖 Claude Desktop
&lt;/h2&gt;

&lt;p&gt;Go to File → Settings → Developer → Edit Config&lt;/p&gt;

&lt;p&gt;Update claude_desktop_config.json&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "mcpServers": {
    "dvmcp": {
      "type": "stdio",
      "command": "dataversedevtoolsmcpserver",
      "args": [
        "--environmentUrl",
        "https://yourorg.crm.dynamics.com"
      ]
    }
  }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Restart Claude and you’re in business.&lt;br&gt;
🖼️ [Placeholder: Screenshot – Claude config JSON]&lt;/p&gt;




&lt;h2&gt;
  
  
  🌟 Why I Built This
&lt;/h2&gt;

&lt;p&gt;Because Dataverse developers deserve better workflows.&lt;br&gt;
I wanted something that lets me stay in the IDE, keep focus, and still have Dataverse superpowers at my fingertips.&lt;/p&gt;

&lt;p&gt;This project combines:&lt;/p&gt;

&lt;p&gt;❤️ My love for .NET&lt;/p&gt;

&lt;p&gt;💪 My obsession with Dataverse&lt;/p&gt;

&lt;p&gt;🧠 My curiosity for AI-powered developer tools&lt;/p&gt;

&lt;p&gt;And it turns out… MCP was the perfect bridge.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧩 Try It Yourself!
&lt;/h2&gt;

&lt;p&gt;👉 GitHub Repo: &lt;a href="https://github.com/vignaesh01/DataverseDevToolsMcpServer" rel="noopener noreferrer"&gt;Dataverse DevTools MCP Server&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 License: &lt;a href="https://github.com/vignaesh01/DataverseDevToolsMcpServer/blob/main/LICENSE.txt" rel="noopener noreferrer"&gt;GPL-3.0&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  💬 Feedback &amp;amp; Stars Welcome!
&lt;/h2&gt;

&lt;p&gt;If you love Dataverse, try it and tell me what you think!&lt;br&gt;
I’d love to hear your ideas — especially for new tools to add.&lt;/p&gt;

&lt;p&gt;🛠️ &lt;a href="https://github.com/vignaesh01/DataverseDevToolsMcpServer/issues" rel="noopener noreferrer"&gt;Open an issue&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⭐ Star the repo to support it&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>ai</category>
      <category>powerplatform</category>
      <category>powerapps</category>
    </item>
    <item>
      <title>Code Feeds for GitHub - AI Generated Instagram-style feeds</title>
      <dc:creator>Vignaesh Ram A</dc:creator>
      <pubDate>Wed, 15 Jan 2025 11:56:44 +0000</pubDate>
      <link>https://forem.com/vignaesh_ram/code-feeds-for-github-3mid</link>
      <guid>https://forem.com/vignaesh_ram/code-feeds-for-github-3mid</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/github"&gt;GitHub Copilot Challenge &lt;/a&gt;: New Beginnings and Fresh Starts&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;🚀 &lt;strong&gt;Code Feeds for GitHub&lt;/strong&gt; is a fun and engaging VS Code extension that brings the latest changes to your favorite GitHub repositories (the ones you've ⭐ Starred) directly to your editor. Visualize those pull requests and code changes like never before – in a trendy, Instagram-style feed format complete with catchy captions! 🎉 &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Because boring changelogs are so yesterday. ✨&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  🌟 Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;📸 &lt;strong&gt;Instagram-Styled Feed:&lt;/strong&gt; View recent pull requests from your starred repositories in a visually engaging feed.&lt;/li&gt;
&lt;li&gt;💬 &lt;strong&gt;Catchy Captions:&lt;/strong&gt; Let the AI (powered by GPT-4o) generate fun, trendy, and insightful captions for every code update.&lt;/li&gt;
&lt;li&gt;🔢 &lt;strong&gt;Top 10 Updates:&lt;/strong&gt; Get a snapshot of the &lt;strong&gt;10 most recent pull requests&lt;/strong&gt; and stay up-to-date.&lt;/li&gt;
&lt;li&gt;🔍 &lt;strong&gt;Quick Browsing:&lt;/strong&gt; Look at specific repositories' feed to manage your coding focus with flair.&lt;/li&gt;
&lt;li&gt;🚦 &lt;strong&gt;AI Insights:&lt;/strong&gt; Powered by &lt;strong&gt;GitHub Copilot's GPT-4o model&lt;/strong&gt;, giving life to your code updates with human-like creativity.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Link to VS Code Extension &lt;a href="https://marketplace.visualstudio.com/items?itemName=VignaeshRamA.code-feeds-github" rel="noopener noreferrer"&gt;Code Feeds for GitHub VS Code Extension&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI Generated Code Feeds&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxt3sent32k1bvft6mnpa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxt3sent32k1bvft6mnpa.png" alt="AI Generated Code Feeds" width="800" height="327"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GIF Demo - part 1&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxjva4b2xzb7iewlqn98j.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxjva4b2xzb7iewlqn98j.gif" alt="GIF Demo - part 1" width="967" height="544"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GIF Demo - part 2&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9xywskngbuasbb9zliqk.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9xywskngbuasbb9zliqk.gif" alt="GIF Demo - part 2" width="760" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Repo
&lt;/h2&gt;

&lt;p&gt;GitHub Repo : &lt;a href="https://github.com/vignaesh01/codefeed-github" rel="noopener noreferrer"&gt;codefeed-github&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Copilot Experience
&lt;/h2&gt;

&lt;p&gt;I used chat, inline prompts &amp;amp; autocomplete throughout my development process. I didn't have a need to use Model switcher.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Getting Started with Tree View
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;I began by cloning the &lt;code&gt;vscode-extension-samples/tree-view-sample&lt;/code&gt; repository to use as a foundation for implementing a Tree View in my VS Code extension.
&lt;/li&gt;
&lt;li&gt;GitHub Copilot assisted me in understanding the Tree View-related code, suggesting edits and optimizations to tailor it for my needs.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Leveraging Language Model API for Captions &amp;amp; Snippets
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The extension uses the VS Code Language Model API to send prompts to the GPT-4o model and receive JSON responses containing captions and code snippets. Copilot assisted in building the code that constructs these prompts and processes the responses seamlessly.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Integrating GitHub REST APIs
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Copilot guided me in modifying the Tree View base code to interact with GitHub REST APIs. It suggested specific API endpoints and provided code snippets to handle authentication, data fetching, and API responses efficiently.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Building the UI with Bootstrap
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;For displaying the feed-like UI, Copilot helped me integrate Bootstrap into the extension. It provided code suggestions for creating responsive layouts, styling components, and implementing user-friendly design elements.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. Refactoring API Pagination Code
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;To handle paginated data from GitHub APIs, I relied on Copilot to refactor and improve my pagination logic.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  6. Dynamic UI Rendering for Light and Dark Themes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Copilot was instrumental in creating CSS and logic for dynamically adapting the UI to VS Code’s light and dark themes. It suggested theme-aware styles and conditional rendering logic.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  GitHub Models
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Prompt Tuning for Captions &amp;amp; Code Snippets
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;I used GitHub Models (OpenAI GPT-4o model) to fine-tune my prompts for generating captions and code snippets dynamically.
&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;"Improve Prompt"&lt;/strong&gt; feature was instrumental in enhancing my prompts with each iteration, helping me frame precise and effective queries.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  JSON Response Handling
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The iterative process enabled me to design prompts that consistently returned AI-generated responses in a well-structured JSON string, which was critical for seamless integration into my extension.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  README File Content Generation
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;I also utilized GitHub Models to generate the initial draft of my README file.
&lt;/li&gt;
&lt;li&gt;The output was refined and repurposed for this contest submission, saving time and ensuring clarity in documenting the project.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By leveraging GitHub Models, I was able to prototype and integrate LLM capabilities efficiently, enhancing both the development process and the final application.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Completing this project in just 12-14 hours, from analysis and approach definition to implementation, was a rewarding experience. While my prior experience in developing VS Code extensions provided a strong foundation, GitHub Copilot proved to be a game-changer, amplifying my productivity and accelerating development by at least 3x.&lt;/p&gt;

&lt;p&gt;I’m excited about the potential this extension offers—a fresh, intuitive way for developers to stay updated on GitHub repositories. This is just the beginning; I’m already brainstorming new features and improvements to make it even more engaging and useful. I hope this tool resonates with developers and inspires innovative workflows in their projects!&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
      <category>webdev</category>
      <category>ai</category>
    </item>
    <item>
      <title>GUI for Salesforce CLI</title>
      <dc:creator>Vignaesh Ram A</dc:creator>
      <pubDate>Tue, 21 Jan 2020 03:19:59 +0000</pubDate>
      <link>https://forem.com/vignaesh_ram/gui-for-salesforce-cli-3ajj</link>
      <guid>https://forem.com/vignaesh_ram/gui-for-salesforce-cli-3ajj</guid>
      <description>&lt;p&gt;Whenever I wanted to run a Salesforce CLI command, I had to switch between Command prompt and Salesforce CLI documentation and do the following:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Search for the Command in the documentation&lt;/li&gt;
&lt;li&gt;Read about its usage&lt;/li&gt;
&lt;li&gt;Copy paste the sample command to command prompt&lt;/li&gt;
&lt;li&gt;Modify it to suit my needs
&lt;/li&gt;
&lt;li&gt;And finally run it (BAMM ! ERROR 😋)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I had to go through this strenuous routine every time. &lt;strong&gt;What if all these can be done in one spot with just point and clicks?&lt;/strong&gt; This thought pushed me to develop a Visual Studio code extension &lt;a href="https://marketplace.visualstudio.com/items?itemName=VignaeshRamA.sfdx-command-builder" rel="noopener noreferrer"&gt;&lt;strong&gt;Salesforce CLI Command Builder - A GUI for Salesforce DX CLI&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It provides a simple GUI (Graphical User Interface) to build, execute, learn &amp;amp; play around SFDX CLI commands from within vs code. It uses Reactjs for frontend code and standard VS Code Extensions API, nodejs &amp;amp; typesript for backend logic. Basically I am not a ReactJS developer. But the knowledge in Lightning Web Components helped me to learn ReactJS in no time (planning to write a separate post on my LWC to ReactJS journey).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Screenshots:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjbrwl2l1hcdiz868wk82.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjbrwl2l1hcdiz868wk82.PNG" alt="Screenshot1" width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fndhy2mmnsdfehvlj5796.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fndhy2mmnsdfehvlj5796.PNG" alt="screenshot2" width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check out my extension Salesforce CLI Command builder&lt;br&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=VignaeshRamA.sfdx-command-builder" rel="noopener noreferrer"&gt;https://marketplace.visualstudio.com/items?itemName=VignaeshRamA.sfdx-command-builder&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub&lt;br&gt;
&lt;a href="https://github.com/vignaesh01/sfdx-command-builder#readme" rel="noopener noreferrer"&gt;https://github.com/vignaesh01/sfdx-command-builder#readme&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>salesforce</category>
      <category>sfdx</category>
      <category>salesforcecli</category>
    </item>
  </channel>
</rss>
