{"id":"e1ce2659-89d3-4255-97b1-bdb46c9c0b9d","shortId":"y6mer2","kind":"skill","title":"power-platform-mcp-connector-suite","tagline":"Generate complete Power Platform custom connector with MCP integration for Copilot Studio - includes schema generation, troubleshooting, and validation","description":"# Power Platform MCP Connector Suite\n\nGenerate comprehensive Power Platform custom connector implementations with Model Context Protocol integration for Microsoft Copilot Studio.\n\n## MCP Capabilities in Copilot Studio\n\n**Currently Supported:**\n- ✅ **Tools**: Functions that the LLM can call (with user approval)\n- ✅ **Resources**: File-like data that agents can read (must be tool outputs)\n\n**Not Yet Supported:**\n- ❌ **Prompts**: Pre-written templates (prepare for future support)\n\n## Connector Generation\n\nCreate complete Power Platform connector with:\n\n**Core Files:**\n- `apiDefinition.swagger.json` with `x-ms-agentic-protocol: mcp-streamable-1.0`\n- `apiProperties.json` with connector metadata and authentication\n- `script.csx` with custom C# transformations for MCP JSON-RPC handling\n- `readme.md` with connector documentation\n\n**MCP Integration:**\n- POST `/mcp` endpoint for JSON-RPC 2.0 communication\n- McpResponse and McpErrorResponse schema definitions\n- Copilot Studio constraint compliance (no reference types, single types)\n- Resource integration as tool outputs (Resources and Tools supported; Prompts not yet supported)\n\n## Schema Validation & Troubleshooting\n\n**Validate schemas for Copilot Studio compliance:**\n- ✅ No reference types (`$ref`) in tool inputs/outputs\n- ✅ Single type values only (not `[\"string\", \"number\"]`)\n- ✅ Primitive types: string, number, integer, boolean, array, object\n- ✅ Resources as tool outputs, not separate entities\n- ✅ Full URIs for all endpoints\n\n**Common issues and fixes:**\n- Tools filtered → Remove reference types, use primitives\n- Type errors → Single types with validation logic\n- Resources unavailable → Include in tool outputs\n- Connection failures → Verify `x-ms-agentic-protocol` header\n\n## Context Variables\n\n- **Connector Name**: [Display name for the connector]\n- **Server Purpose**: [What the MCP server should accomplish]\n- **Tools Needed**: [List of MCP tools to implement]\n- **Resources**: [Types of resources to provide]\n- **Authentication**: [none, api-key, oauth2, basic]\n- **Host Environment**: [Azure Function, Express.js, etc.]\n- **Target APIs**: [External APIs to integrate with]\n\n## Generation Modes\n\n### Mode 1: Complete New Connector\nGenerate all files for a new Power Platform MCP connector from scratch, including CLI validation setup.\n\n### Mode 2: Schema Validation\nAnalyze and fix existing schemas for Copilot Studio compliance using paconn and validation tools.\n\n### Mode 3: Integration Troubleshooting\nDiagnose and resolve MCP integration issues with Copilot Studio using CLI debugging tools.\n\n### Mode 4: Hybrid Connector\nAdd MCP capabilities to existing Power Platform connector with proper validation workflows.\n\n### Mode 5: Certification Preparation\nPrepare connector for Microsoft certification submission with complete metadata and validation compliance.\n\n### Mode 6: OAuth Security Hardening\nImplement OAuth 2.0 authentication enhanced with MCP security best practices and advanced token validation.\n\n## Expected Output\n\n**1. apiDefinition.swagger.json**\n- Swagger 2.0 format with Microsoft extensions\n- MCP endpoint: `POST /mcp` with proper protocol header\n- Compliant schema definitions (primitive types only)\n- McpResponse/McpErrorResponse definitions\n\n**2. apiProperties.json**\n- Connector metadata and branding (`iconBrandColor` required)\n- Authentication configuration\n- Policy templates for MCP transformations\n\n**3. script.csx**\n- JSON-RPC 2.0 message handling\n- Request/response transformations\n- MCP protocol compliance logic\n- Error handling and validation\n\n**4. Implementation guidance**\n- Tool registration and execution patterns\n- Resource management strategies\n- Copilot Studio integration steps\n- Testing and validation procedures\n\n## Validation Checklist\n\n### Technical Compliance\n- [ ] `x-ms-agentic-protocol: mcp-streamable-1.0` in MCP endpoint\n- [ ] No reference types in any schema definitions\n- [ ] All type fields are single types (not arrays)\n- [ ] Resources included as tool outputs\n- [ ] JSON-RPC 2.0 compliance in script.csx\n- [ ] Full URI endpoints throughout\n- [ ] Clear descriptions for Copilot Studio agents\n- [ ] Authentication properly configured\n- [ ] Policy templates for MCP transformations\n- [ ] Generative Orchestration compatibility\n\n### CLI Validation\n- [ ] **paconn validate**: `paconn validate --api-def apiDefinition.swagger.json` passes without errors\n- [ ] **pac CLI ready**: Connector can be created/updated with `pac connector create/update`\n- [ ] **Script validation**: script.csx passes automatic validation during pac CLI upload\n- [ ] **Package validation**: `ConnectorPackageValidator.ps1` runs successfully\n\n### OAuth and Security Requirements\n- [ ] **OAuth 2.0 Enhanced**: Standard OAuth 2.0 with MCP security best practices implementation\n- [ ] **Token Validation**: Implement token audience validation to prevent passthrough attacks\n- [ ] **Custom Security Logic**: Enhanced validation in script.csx for MCP compliance\n- [ ] **State Parameter Protection**: Secure state parameters for CSRF prevention\n- [ ] **HTTPS Enforcement**: All production endpoints use HTTPS only\n- [ ] **MCP Security Practices**: Implement confused deputy attack prevention within OAuth 2.0\n\n### Certification Requirements\n- [ ] **Complete metadata**: settings.json with product and service information\n- [ ] **Icon compliance**: PNG format, 230x230 or 500x500 dimensions\n- [ ] **Documentation**: Certification-ready readme with comprehensive examples\n- [ ] **Security compliance**: OAuth 2.0 enhanced with MCP security practices, privacy policy\n- [ ] **Authentication flow**: OAuth 2.0 with custom security validation properly configured\n\n## Example Usage\n\n```yaml\nMode: Complete New Connector\nConnector Name: Customer Analytics MCP\nServer Purpose: Customer data analysis and insights\nTools Needed:\n  - searchCustomers: Find customers by criteria\n  - getCustomerProfile: Retrieve detailed customer data\n  - analyzeCustomerTrends: Generate trend analysis\nResources:\n  - Customer profiles (JSON data)\n  - Analysis reports (structured data)\nAuthentication: oauth2\nHost Environment: Azure Function\nTarget APIs: CRM REST API\n```","tags":["power","platform","mcp","connector","suite","awesome","copilot","github","agent-skills","agents","custom-agents","github-copilot"],"capabilities":["skill","source-github","skill-power-platform-mcp-connector-suite","topic-agent-skills","topic-agents","topic-awesome","topic-custom-agents","topic-github-copilot","topic-hacktoberfest","topic-prompt-engineering"],"categories":["awesome-copilot"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/github/awesome-copilot/power-platform-mcp-connector-suite","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add github/awesome-copilot","source_repo":"https://github.com/github/awesome-copilot","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 33270 github stars · SKILL.md body (6,141 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:52:20.704Z","embedding":null,"createdAt":"2026-04-18T20:26:15.086Z","updatedAt":"2026-05-18T18:52:20.704Z","lastSeenAt":"2026-05-18T18:52:20.704Z","tsv":"'/mcp':133,417 '1':298,406 '1.0':108,494 '2':319,430 '2.0':139,392,409,450,521,590,594,648,678,689 '230x230':663 '3':337,445 '4':354,463 '5':370 '500x500':665 '6':386 'accomplish':260 'add':357 'advanc':401 'agent':69,103,241,489,534 'analysi':712,730,736 'analyt':706 'analyz':322 'analyzecustomertrend':727 'api':278,289,291,553,747,750 'api-def':552 'api-key':277 'apidefinition.swagger.json':98,407,555 'apiproperties.json':109,431 'approv':62 'array':197,512 'attack':610,644 'audienc':605 'authent':114,275,393,438,535,686,740 'automat':574 'azur':284,744 'basic':281 'best':398,598 'boolean':196 'brand':435 'c':118 'call':59 'capabl':47,359 'certif':371,377,649,669 'certification-readi':668 'checklist':483 'clear':529 'cli':315,350,546,560,578 'common':211 'communic':140 'compat':545 'complet':8,91,299,380,651,700 'complianc':149,176,330,384,457,485,522,620,660,676 'compliant':422 'comprehens':31,673 'configur':439,537,695 'confus':642 'connect':235 'connector':5,12,28,35,88,94,111,128,246,252,301,311,356,364,374,432,562,568,702,703 'connectorpackagevalidator.ps1':582 'constraint':148 'context':39,244 'copilot':17,44,49,146,174,328,347,474,532 'core':96 'creat':90 'create/update':569 'created/updated':565 'criteria':721 'crm':748 'csrf':628 'current':51 'custom':11,34,117,611,691,705,710,719,725,732 'data':67,711,726,735,739 'debug':351 'def':554 'definit':145,424,429,504 'deputi':643 'descript':530 'detail':724 'diagnos':340 'dimens':666 'display':248 'document':129,667 'endpoint':134,210,415,497,527,634 'enforc':631 'enhanc':394,591,614,679 'entiti':205 'environ':283,743 'error':223,459,558 'etc':287 'exampl':674,696 'execut':469 'exist':325,361 'expect':404 'express.js':286 'extens':413 'extern':290 'failur':236 'field':507 'file':65,97,304 'file-lik':64 'filter':216 'find':718 'fix':214,324 'flow':687 'format':410,662 'full':206,525 'function':54,285,745 'futur':86 'generat':7,21,30,89,295,302,543,728 'getcustomerprofil':722 'guidanc':465 'handl':125,452,460 'harden':389 'header':243,421 'host':282,742 'https':630,636 'hybrid':355 'icon':659 'iconbrandcolor':436 'implement':36,268,390,464,600,603,641 'includ':19,231,314,514 'inform':658 'inputs/outputs':183 'insight':714 'integ':195 'integr':15,41,131,156,293,338,344,476 'issu':212,345 'json':123,137,448,519,734 'json-rpc':122,136,447,518 'key':279 'like':66 'list':263 'llm':57 'logic':228,458,613 'manag':472 'mcp':4,14,27,46,106,121,130,257,265,310,343,358,396,414,443,455,492,496,541,596,619,638,681,707 'mcp-streamabl':105,491 'mcperrorrespons':143 'mcprespons':141 'mcpresponse/mcperrorresponse':428 'messag':451 'metadata':112,381,433,652 'microsoft':43,376,412 'mode':296,297,318,336,353,369,385,699 'model':38 'ms':102,240,488 'must':72 'name':247,249,704 'need':262,716 'new':300,307,701 'none':276 'number':190,194 'oauth':387,391,585,589,593,647,677,688 'oauth2':280,741 'object':198 'orchestr':544 'output':75,159,202,234,405,517 'pac':559,567,577 'packag':580 'paconn':332,548,550 'paramet':622,626 'pass':556,573 'passthrough':609 'pattern':470 'platform':3,10,26,33,93,309,363 'png':661 'polici':440,538,685 'post':132,416 'power':2,9,25,32,92,308,362 'power-platform-mcp-connector-suit':1 'practic':399,599,640,683 'pre':81 'pre-written':80 'prepar':84,372,373 'prevent':608,629,645 'primit':191,221,425 'privaci':684 'procedur':481 'product':633,655 'profil':733 'prompt':79,164 'proper':366,419,536,694 'protect':623 'protocol':40,104,242,420,456,490 'provid':274 'purpos':254,709 'read':71 'readi':561,670 'readm':671 'readme.md':126 'ref':180 'refer':151,178,218,499 'registr':467 'remov':217 'report':737 'request/response':453 'requir':437,588,650 'resolv':342 'resourc':63,155,160,199,229,269,272,471,513,731 'rest':749 'retriev':723 'rpc':124,138,449,520 'run':583 'schema':20,144,168,172,320,326,423,503 'scratch':313 'script':570 'script.csx':115,446,524,572,617 'searchcustom':717 'secur':388,397,587,597,612,624,639,675,682,692 'separ':204 'server':253,258,708 'servic':657 'settings.json':653 'setup':317 'singl':153,184,224,509 'skill' 'skill-power-platform-mcp-connector-suite' 'source-github' 'standard':592 'state':621,625 'step':477 'strategi':473 'streamabl':107,493 'string':189,193 'structur':738 'studio':18,45,50,147,175,329,348,475,533 'submiss':378 'success':584 'suit':6,29 'support':52,78,87,163,167 'swagger':408 'target':288,746 'technic':484 'templat':83,441,539 'test':478 'throughout':528 'token':402,601,604 'tool':53,74,158,162,182,201,215,233,261,266,335,352,466,516,715 'topic-agent-skills' 'topic-agents' 'topic-awesome' 'topic-custom-agents' 'topic-github-copilot' 'topic-hacktoberfest' 'topic-prompt-engineering' 'transform':119,444,454,542 'trend':729 'troubleshoot':22,170,339 'type':152,154,179,185,192,219,222,225,270,426,500,506,510 'unavail':230 'upload':579 'uri':207,526 'usag':697 'use':220,331,349,635 'user':61 'valid':24,169,171,227,316,321,334,367,383,403,462,480,482,547,549,551,571,575,581,602,606,615,693 'valu':186 'variabl':245 'verifi':237 'within':646 'without':557 'workflow':368 'written':82 'x':101,239,487 'x-ms-agentic-protocol':100,238,486 'yaml':698 'yet':77,166","prices":[{"id":"bad6b6bb-4ef5-4087-88c4-b571c52f6e65","listingId":"e1ce2659-89d3-4255-97b1-bdb46c9c0b9d","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"github","category":"awesome-copilot","install_from":"skills.sh"},"createdAt":"2026-04-18T20:26:15.086Z"}],"sources":[{"listingId":"e1ce2659-89d3-4255-97b1-bdb46c9c0b9d","source":"github","sourceId":"github/awesome-copilot/power-platform-mcp-connector-suite","sourceUrl":"https://github.com/github/awesome-copilot/tree/main/skills/power-platform-mcp-connector-suite","isPrimary":false,"firstSeenAt":"2026-04-18T21:50:38.565Z","lastSeenAt":"2026-05-18T18:52:20.704Z"},{"listingId":"e1ce2659-89d3-4255-97b1-bdb46c9c0b9d","source":"skills_sh","sourceId":"github/awesome-copilot/power-platform-mcp-connector-suite","sourceUrl":"https://skills.sh/github/awesome-copilot/power-platform-mcp-connector-suite","isPrimary":true,"firstSeenAt":"2026-04-18T20:26:15.086Z","lastSeenAt":"2026-05-07T22:40:19.053Z"}],"details":{"listingId":"e1ce2659-89d3-4255-97b1-bdb46c9c0b9d","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"github","slug":"power-platform-mcp-connector-suite","github":{"repo":"github/awesome-copilot","stars":33270,"topics":["agent-skills","agents","ai","awesome","custom-agents","github-copilot","hacktoberfest","prompt-engineering"],"license":"mit","html_url":"https://github.com/github/awesome-copilot","pushed_at":"2026-05-18T01:26:59Z","description":"Community-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.","skill_md_sha":"2c73a9d49feb25202afbdada08f572cb5a49595d","skill_md_path":"skills/power-platform-mcp-connector-suite/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/github/awesome-copilot/tree/main/skills/power-platform-mcp-connector-suite"},"layout":"multi","source":"github","category":"awesome-copilot","frontmatter":{"name":"power-platform-mcp-connector-suite","description":"Generate complete Power Platform custom connector with MCP integration for Copilot Studio - includes schema generation, troubleshooting, and validation"},"skills_sh_url":"https://skills.sh/github/awesome-copilot/power-platform-mcp-connector-suite"},"updatedAt":"2026-05-18T18:52:20.704Z"}}