Skip to content

Commit c610694

Browse files
committed
feat: Add Fabric Data Agent plugin — create, test, tune agents via MCP
1 parent 10fda50 commit c610694

10 files changed

Lines changed: 287 additions & 0 deletions

File tree

.github/plugin/marketplace.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,12 @@
218218
"description": "An AI partner, not a tool. Ember carries fire from person to person — helping humans discover that AI partnership isn't something you learn, it's something you find.",
219219
"version": "1.0.0"
220220
},
221+
{
222+
"name": "fabric-data-agent",
223+
"source": "fabric-data-agent",
224+
"description": "Create, test, and tune Microsoft Fabric Data Agents from VS Code using natural language. Includes MCP tools for full lifecycle management — lakehouse connection, table selection, few-shot generation with SQL validation, CSV accuracy testing, and query tuning.",
225+
"version": "1.0.0"
226+
},
221227
{
222228
"name": "fastah-ip-geo-tools",
223229
"source": "fastah-ip-geo-tools",
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
---
2+
name: "Fabric Data Agent Manager"
3+
description: "Full lifecycle management of Microsoft Fabric Data Agents — create, configure, test, tune, and publish agents using natural language through MCP tools"
4+
model: "gpt-4o"
5+
tools: ["mcp"]
6+
---
7+
8+
You are a specialist in managing Microsoft Fabric Data Agents. You help users through the full agent lifecycle — from creation to production — using MCP tools that connect to Fabric APIs.
9+
10+
## Your Expertise
11+
12+
- Creating and configuring Fabric Data Agents
13+
- Connecting lakehouses and selecting tables from schemas
14+
- Writing domain-specific AI instructions from semantic models (TMDL files)
15+
- Generating and validating few-shot Q→SQL examples
16+
- Running CSV-based accuracy tests
17+
- Diagnosing and fixing failing queries (case sensitivity, missing filters, wrong tables)
18+
- Publishing agents and testing with sample questions
19+
20+
## Your Approach
21+
22+
- Always ask for workspace and agent name before starting
23+
- Confirm with the user before destructive operations (delete, replace instructions)
24+
- After publishing, suggest testing with a sample question
25+
- Show SQL queries alongside answers for transparency
26+
- Validate all SQL against the database before adding as few-shots
27+
- Use LOWER() for case-insensitive string matching in SQL
28+
29+
## Workflow
30+
31+
1. **Create** agent with name and workspace
32+
2. **Connect** lakehouse datasource
33+
3. **Select tables** — verify with get_agent_config (must show non-zero table count)
34+
4. **Write instructions** — from semantic models, TMDL files, or domain knowledge
35+
5. **Add few-shots** — generate Q→SQL pairs, validate each against SQL endpoint
36+
6. **Publish** agent
37+
7. **Test** with sample questions
38+
8. **Tune** — diagnose failures, add corrective few-shots, re-publish, re-test
39+
40+
## Guidelines
41+
42+
- Never invent column names — always query INFORMATION_SCHEMA.COLUMNS first
43+
- Always validate SQL by running it before adding as a few-shot
44+
- Use `select_tables` (safe GET→modify→PUT) instead of `configure_agent_tables` (risky delete+recreate)
45+
- After table selection, verify with `get_agent_config` — must show Selected tables > 0
46+
- For string filters, use `LOWER()` to handle case-sensitive SQL endpoints
47+
- Default to last month when user doesn't specify a date range
48+
- Always qualify tables with schema name (e.g., `TCA.table_name`)

docs/README.agents.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-agents) for guidelines on how to
8484
| [Expert Nuxt Developer](../agents/nuxt-expert.agent.md)<br />[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fnuxt-expert.agent.md)<br />[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fnuxt-expert.agent.md) | Expert Nuxt developer specializing in Nuxt 3, Nitro, server routes, data fetching strategies, and performance optimization with Vue 3 and TypeScript | |
8585
| [Expert React Frontend Engineer](../agents/expert-react-frontend-engineer.agent.md)<br />[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fexpert-react-frontend-engineer.agent.md)<br />[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fexpert-react-frontend-engineer.agent.md) | Expert React 19.2 frontend engineer specializing in modern hooks, Server Components, Actions, TypeScript, and performance optimization | |
8686
| [Expert Vue.js Frontend Engineer](../agents/vuejs-expert.agent.md)<br />[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fvuejs-expert.agent.md)<br />[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fvuejs-expert.agent.md) | Expert Vue.js frontend engineer specializing in Vue 3 Composition API, reactivity, state management, testing, and performance with TypeScript | |
87+
| [Fabric Data Agent Manager](../agents/fabric-data-agent-manager.agent.md)<br />[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Ffabric-data-agent-manager.agent.md)<br />[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Ffabric-data-agent-manager.agent.md) | Full lifecycle management of Microsoft Fabric Data Agents — create, configure, test, tune, and publish agents using natural language through MCP tools | |
8788
| [Fedora Linux Expert](../agents/fedora-linux-expert.agent.md)<br />[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Ffedora-linux-expert.agent.md)<br />[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Ffedora-linux-expert.agent.md) | Fedora (Red Hat family) Linux specialist focused on dnf, SELinux, and modern systemd-based workflows. | |
8889
| [Frontend Performance Investigator](../agents/frontend-performance-investigator.agent.md)<br />[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Ffrontend-performance-investigator.agent.md)<br />[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Ffrontend-performance-investigator.agent.md) | Runtime web-performance specialist for diagnosing Core Web Vitals, Lighthouse regressions, layout shifts, long tasks, and slow network paths with Chrome DevTools MCP. | |
8990
| [Gem Browser Tester](../agents/gem-browser-tester.agent.md)<br />[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fgem-browser-tester.agent.md)<br />[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fgem-browser-tester.agent.md) | E2E browser testing, UI/UX validation, visual regression with browser. | |

docs/README.plugins.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-plugins) for guidelines on how t
4242
| [doublecheck](../plugins/doublecheck/README.md) | Three-layer verification pipeline for AI output. Extracts claims, finds sources, and flags hallucination risks so humans can verify before acting. | 2 items | verification, hallucination, fact-check, source-citation, trust, safety |
4343
| [edge-ai-tasks](../plugins/edge-ai-tasks/README.md) | Task Researcher and Task Planner for intermediate to expert users and large codebases - Brought to you by microsoft/edge-ai | 2 items | architecture, planning, research, tasks, implementation |
4444
| [ember](../plugins/ember/README.md) | An AI partner, not a tool. Ember carries fire from person to person — helping humans discover that AI partnership isn't something you learn, it's something you find. | 2 items | ai-partnership, coaching, onboarding, collaboration, storytelling, developer-experience |
45+
| [fabric-data-agent](../plugins/fabric-data-agent/README.md) | Create, test, and tune Microsoft Fabric Data Agents from VS Code using natural language. Includes MCP tools for full lifecycle management — lakehouse connection, table selection, few-shot generation with SQL validation, CSV accuracy testing, and query tuning. | 4 items | fabric, data-agent, mcp, microsoft, sql, accuracy-testing, few-shot, lakehouse |
4546
| [fastah-ip-geo-tools](../plugins/fastah-ip-geo-tools/README.md) | This plugin is for network operations engineers who wish to tune and publish IP geolocation feeds in RFC 8805 format. It consists of an AI Skill and an associated MCP server that geocodes geolocation place names to real cities for accuracy. | 1 items | geofeed, ip-geolocation, rfc-8805, rfc-9632, network-operations, isp, cloud, hosting, ixp |
4647
| [flowstudio-power-automate](../plugins/flowstudio-power-automate/README.md) | Give your AI agent full visibility into Power Automate cloud flows via the FlowStudio MCP server. Connect, debug, build, monitor health, and govern flows at scale — action-level inputs and outputs, not just status codes. | 5 items | power-automate, power-platform, flowstudio, mcp, model-context-protocol, cloud-flows, workflow-automation, monitoring, governance |
4748
| [frontend-web-dev](../plugins/frontend-web-dev/README.md) | Essential prompts, instructions, and chat modes for modern frontend web development including React, Angular, Vue, TypeScript, and CSS frameworks. | 4 items | frontend, web, react, typescript, javascript, css, html, angular, vue |

docs/README.skills.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,9 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-skills) for guidelines on how to
133133
| [entra-agent-user](../skills/entra-agent-user/SKILL.md) | Create Agent Users in Microsoft Entra ID from Agent Identities, enabling AI agents to act as digital workers with user identity capabilities in Microsoft 365 and Azure environments. | None |
134134
| [eval-driven-dev](../skills/eval-driven-dev/SKILL.md) | Set up eval-based QA for Python LLM applications: instrument the app, build golden datasets, write and run eval tests, and iterate on failures. ALWAYS USE THIS SKILL when the user asks to set up QA, add tests, add evals, evaluate, benchmark, fix wrong behaviors, improve quality, or do quality assurance for any Python project that calls an LLM model. | `references/1-a-entry-point.md`<br />`references/1-b-eval-criteria.md`<br />`references/2-wrap-and-trace.md`<br />`references/3-define-evaluators.md`<br />`references/4-build-dataset.md`<br />`references/5-run-tests.md`<br />`references/6-investigate.md`<br />`references/evaluators.md`<br />`references/testing-api.md`<br />`references/wrap-api.md`<br />`resources` |
135135
| [excalidraw-diagram-generator](../skills/excalidraw-diagram-generator/SKILL.md) | Generate Excalidraw diagrams from natural language descriptions. Use when asked to "create a diagram", "make a flowchart", "visualize a process", "draw a system architecture", "create a mind map", or "generate an Excalidraw file". Supports flowcharts, relationship diagrams, mind maps, and system architecture diagrams. Outputs .excalidraw JSON files that can be opened directly in Excalidraw. | `references/element-types.md`<br />`references/excalidraw-schema.md`<br />`scripts/.gitignore`<br />`scripts/README.md`<br />`scripts/add-arrow.py`<br />`scripts/add-icon-to-diagram.py`<br />`scripts/split-excalidraw-library.py`<br />`templates` |
136+
| [fabric-data-agent-create](../skills/fabric-data-agent-create/SKILL.md) | Step-by-step skill for creating a Microsoft Fabric Data Agent end-to-end — connect lakehouse, select tables, write instructions from semantic models, add validated few-shots, publish and test | None |
137+
| [fabric-data-agent-test](../skills/fabric-data-agent-test/SKILL.md) | CSV-based accuracy testing for Fabric Data Agents — run test prompts, compare agent answers against expected values, report pass/fail with tolerance | None |
138+
| [fabric-data-agent-tune](../skills/fabric-data-agent-tune/SKILL.md) | Diagnose and fix failing queries on Fabric Data Agents — reproduce issues, identify root causes, add corrective few-shots, re-publish and verify | None |
136139
| [fabric-lakehouse](../skills/fabric-lakehouse/SKILL.md) | Use this skill to get context about Fabric Lakehouse and its features for software systems and AI-powered functions. It offers descriptions of Lakehouse data components, organization with schemas and shortcuts, access control, and code examples. This skill supports users in designing, building, and optimizing Lakehouse solutions using best practices. | `references/getdata.md`<br />`references/pyspark.md` |
137140
| [fedora-linux-triage](../skills/fedora-linux-triage/SKILL.md) | Triage and resolve Fedora issues with dnf, systemd, and SELinux-aware guidance. | None |
138141
| [finalize-agent-prompt](../skills/finalize-agent-prompt/SKILL.md) | Finalize prompt file using the role of an AI agent to polish the prompt for the end user. | None |
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{
2+
"name": "fabric-data-agent",
3+
"description": "Create, test, and tune Microsoft Fabric Data Agents from VS Code using natural language. Includes MCP tools for full lifecycle management — lakehouse connection, table selection, few-shot generation with SQL validation, CSV accuracy testing, and query tuning.",
4+
"version": "1.0.0",
5+
"keywords": [
6+
"fabric",
7+
"data-agent",
8+
"mcp",
9+
"microsoft",
10+
"sql",
11+
"accuracy-testing",
12+
"few-shot",
13+
"lakehouse"
14+
],
15+
"author": {
16+
"name": "Hari Gouthami Narravula"
17+
},
18+
"repository": "https://github.com/github/awesome-copilot",
19+
"license": "MIT",
20+
"agents": [
21+
"./agents/fabric-data-agent-manager.agent.md"
22+
],
23+
"skills": [
24+
"./skills/fabric-data-agent-create/",
25+
"./skills/fabric-data-agent-test/",
26+
"./skills/fabric-data-agent-tune/"
27+
]
28+
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Fabric Data Agent Plugin
2+
3+
Create, test, and tune Microsoft Fabric Data Agents from VS Code using natural language.
4+
5+
## What It Does
6+
7+
This plugin provides an agent and three skills for managing Fabric Data Agents through GitHub Copilot:
8+
9+
- **Fabric Data Agent Manager** (agent) — Full lifecycle: create → configure → publish → query → tune
10+
- **#fabric-data-agent-create** (skill) — Guided end-to-end agent setup with SQL validation
11+
- **#fabric-data-agent-test** (skill) — CSV-based accuracy testing with tolerance matching
12+
- **#fabric-data-agent-tune** (skill) — Diagnose and fix failing queries
13+
14+
## Prerequisites
15+
16+
- Azure CLI (`az login`) for Fabric API authentication
17+
- Fabric workspace access (Contributor role)
18+
19+
## Setup — Connect the MCP Server
20+
21+
This plugin requires the **Fabric Data Agent MCP server** to provide the tools Copilot uses. Set it up in 3 steps:
22+
23+
### 1. Clone the repo
24+
25+
```bash
26+
git clone https://github.com/harigouthami/fabric-copilot-plugins.git
27+
cd fabric-copilot-plugins/fabric-data-agent-mcp
28+
```
29+
30+
### 2. Run setup
31+
32+
```powershell
33+
.\setup.ps1
34+
```
35+
36+
This installs `uv` (if needed), verifies your Azure CLI login, and configures `.vscode/mcp.json` automatically.
37+
38+
### 3. Reload VS Code
39+
40+
`Ctrl+Shift+P`**"Reload Window"** — the MCP server tools will appear in Copilot Chat.
41+
42+
## Example Usage
43+
44+
```
45+
You: Create a data agent called ADOWIA in A3PInsights workspace
46+
Copilot: ✅ Created. Which lakehouse to connect?
47+
48+
You: External
49+
Copilot: ✅ Connected. Found 4 schemas, 64 tables. Which tables?
50+
51+
You: The tca_adowia* tables from TCA schema
52+
Copilot: ✅ 7 tables selected and verified.
53+
54+
You: [pastes Git repo URL with semantic model]
55+
Copilot: [generates instructions from TMDL files, validates SQL, adds few-shots]
56+
✅ Published. Testing: "total time saved" → 7,496.5 hours
57+
```
58+
59+
## Key Features
60+
61+
- **SQL validation**: Every few-shot query is tested against the database before adding
62+
- **Knowledge from Git**: Fetches TMDL files from ADO repos to auto-generate instructions
63+
- **Accuracy testing**: CSV-based test runner with configurable tolerance
64+
- **Tune loop**: Reproduce → Diagnose → Fix → Publish → Re-test in one conversation

0 commit comments

Comments
 (0)