{"id":"e1ce2659-89d3-4255-97b1-bdb46c9c0b9d","shortId":"y6mer2","kind":"skill","title":"Power Platform Mcp Connector Suite","tagline":"Awesome Copilot skill by Github","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"],"capabilities":["skill","source-github","category-awesome-copilot"],"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":{"install_from":"skills.sh"}},"qualityScore":"0.300","qualityRationale":"deterministic score 0.30 from registry signals: · indexed on skills.sh · published under github/awesome-copilot","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:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T08:40:12.595Z","embedding":null,"createdAt":"2026-04-18T20:26:15.086Z","updatedAt":"2026-04-22T08:40:12.595Z","lastSeenAt":"2026-04-22T08:40:12.595Z","tsv":"'/mcp':119,403 '1':284,392 '1.0':94,480 '2':305,416 '2.0':125,378,395,436,507,576,580,634,664,675 '230x230':649 '3':323,431 '4':340,449 '5':356 '500x500':651 '6':372 'accomplish':246 'add':343 'advanc':387 'agent':55,89,227,475,520 'analysi':698,716,722 'analyt':692 'analyz':308 'analyzecustomertrend':713 'api':264,275,277,539,733,736 'api-def':538 'api-key':263 'apidefinition.swagger.json':84,393,541 'apiproperties.json':95,417 'approv':48 'array':183,498 'attack':596,630 'audienc':591 'authent':100,261,379,424,521,672,726 'automat':560 'awesom':6 'azur':270,730 'basic':267 'best':384,584 'boolean':182 'brand':421 'c':104 'call':45 'capabl':33,345 'category-awesome-copilot' 'certif':357,363,635,655 'certification-readi':654 'checklist':469 'clear':515 'cli':301,336,532,546,564 'common':197 'communic':126 'compat':531 'complet':77,285,366,637,686 'complianc':135,162,316,370,443,471,508,606,646,662 'compliant':408 'comprehens':17,659 'configur':425,523,681 'confus':628 'connect':221 'connector':4,14,21,74,80,97,114,232,238,287,297,342,350,360,418,548,554,688,689 'connectorpackagevalidator.ps1':568 'constraint':134 'context':25,230 'copilot':7,30,35,132,160,314,333,460,518 'core':82 'creat':76 'create/update':555 'created/updated':551 'criteria':707 'crm':734 'csrf':614 'current':37 'custom':20,103,597,677,691,696,705,711,718 'data':53,697,712,721,725 'debug':337 'def':540 'definit':131,410,415,490 'deputi':629 'descript':516 'detail':710 'diagnos':326 'dimens':652 'display':234 'document':115,653 'endpoint':120,196,401,483,513,620 'enforc':617 'enhanc':380,577,600,665 'entiti':191 'environ':269,729 'error':209,445,544 'etc':273 'exampl':660,682 'execut':455 'exist':311,347 'expect':390 'express.js':272 'extens':399 'extern':276 'failur':222 'field':493 'file':51,83,290 'file-lik':50 'filter':202 'find':704 'fix':200,310 'flow':673 'format':396,648 'full':192,511 'function':40,271,731 'futur':72 'generat':16,75,281,288,529,714 'getcustomerprofil':708 'github':10 'guidanc':451 'handl':111,438,446 'harden':375 'header':229,407 'host':268,728 'https':616,622 'hybrid':341 'icon':645 'iconbrandcolor':422 'implement':22,254,376,450,586,589,627 'includ':217,300,500 'inform':644 'inputs/outputs':169 'insight':700 'integ':181 'integr':27,117,142,279,324,330,462 'issu':198,331 'json':109,123,434,505,720 'json-rpc':108,122,433,504 'key':265 'like':52 'list':249 'llm':43 'logic':214,444,599 'manag':458 'mcp':3,13,32,92,107,116,243,251,296,329,344,382,400,429,441,478,482,527,582,605,624,667,693 'mcp-streamabl':91,477 'mcperrorrespons':129 'mcprespons':127 'mcpresponse/mcperrorresponse':414 'messag':437 'metadata':98,367,419,638 'microsoft':29,362,398 'mode':282,283,304,322,339,355,371,685 'model':24 'ms':88,226,474 'must':58 'name':233,235,690 'need':248,702 'new':286,293,687 'none':262 'number':176,180 'oauth':373,377,571,575,579,633,663,674 'oauth2':266,727 'object':184 'orchestr':530 'output':61,145,188,220,391,503 'pac':545,553,563 'packag':566 'paconn':318,534,536 'paramet':608,612 'pass':542,559 'passthrough':595 'pattern':456 'platform':2,12,19,79,295,349 'png':647 'polici':426,524,671 'post':118,402 'power':1,11,18,78,294,348 'practic':385,585,626,669 'pre':67 'pre-written':66 'prepar':70,358,359 'prevent':594,615,631 'primit':177,207,411 'privaci':670 'procedur':467 'product':619,641 'profil':719 'prompt':65,150 'proper':352,405,522,680 'protect':609 'protocol':26,90,228,406,442,476 'provid':260 'purpos':240,695 'read':57 'readi':547,656 'readm':657 'readme.md':112 'ref':166 'refer':137,164,204,485 'registr':453 'remov':203 'report':723 'request/response':439 'requir':423,574,636 'resolv':328 'resourc':49,141,146,185,215,255,258,457,499,717 'rest':735 'retriev':709 'rpc':110,124,435,506 'run':569 'schema':130,154,158,306,312,409,489 'scratch':299 'script':556 'script.csx':101,432,510,558,603 'searchcustom':703 'secur':374,383,573,583,598,610,625,661,668,678 'separ':190 'server':239,244,694 'servic':643 'settings.json':639 'setup':303 'singl':139,170,210,495 'skill':8 'source-github' 'standard':578 'state':607,611 'step':463 'strategi':459 'streamabl':93,479 'string':175,179 'structur':724 'studio':31,36,133,161,315,334,461,519 'submiss':364 'success':570 'suit':5,15 'support':38,64,73,149,153 'swagger':394 'target':274,732 'technic':470 'templat':69,427,525 'test':464 'throughout':514 'token':388,587,590 'tool':39,60,144,148,168,187,201,219,247,252,321,338,452,502,701 'transform':105,430,440,528 'trend':715 'troubleshoot':156,325 'type':138,140,165,171,178,205,208,211,256,412,486,492,496 'unavail':216 'upload':565 'uri':193,512 'usag':683 'use':206,317,335,621 'user':47 'valid':155,157,213,302,307,320,353,369,389,448,466,468,533,535,537,557,561,567,588,592,601,679 'valu':172 'variabl':231 'verifi':223 'within':632 'without':543 'workflow':354 'written':68 'x':87,225,473 'x-ms-agentic-protocol':86,224,472 'yaml':684 'yet':63,152","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-04-22T06:52:28.169Z"},{"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-04-22T08:40:12.595Z"}],"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","source":"skills_sh","category":"awesome-copilot","skills_sh_url":"https://skills.sh/github/awesome-copilot/power-platform-mcp-connector-suite"},"updatedAt":"2026-04-22T08:40:12.595Z"}}