{"id":"ee252e89-b8a3-4e51-b48d-0f70b6ba7b17","shortId":"heWbbm","kind":"skill","title":"azure-relay","tagline":"Expert knowledge for Azure Relay development including troubleshooting, security, configuration, and integrations & coding patterns. Use when configuring Hybrid Connections, WCF relays, Entra ID/SAS auth, Private Link, or .NET/Node.js Relay clients, and other Azure Relay related ","description":"# Azure Relay Skill\n\nThis skill provides expert guidance for Azure Relay. Covers troubleshooting, security, configuration, and integrations & coding patterns. It combines local quick-reference content with remote documentation fetching capabilities.\n\n## How to Use This Skill\n\n> **IMPORTANT for Agent**: Use the **Category Index** below to locate relevant sections. For categories with line ranges (e.g., `L35-L120`), use `read_file` with the specified lines. For categories with file links (e.g., `[security.md](security.md)`), use `read_file` on the linked reference file\n\n> **IMPORTANT for Agent**: If `metadata.generated_at` is more than 3 months old, suggest the user pull the latest version from the repository. If `mcp_microsoftdocs` tools are not available, suggest the user install it: [Installation Guide](https://github.com/MicrosoftDocs/mcp/blob/main/README.md)\n\nThis skill requires **network access** to fetch documentation content:\n- **Preferred**: Use `mcp_microsoftdocs:microsoft_docs_fetch` with query string `from=learn-agent-skill`. Returns Markdown.\n- **Fallback**: Use `fetch_webpage` with query string `from=learn-agent-skill&accept=text/markdown`. Returns Markdown.\n\n## Category Index\n\n| Category | Lines | Description |\n|----------|-------|-------------|\n| Troubleshooting | L32-L36 | Diagnosing and fixing common Azure Relay exceptions, including connection, authentication, quota, and configuration errors, with guidance on causes and resolutions. |\n| Security | L37-L46 | Authentication and network security for Azure Relay: Entra ID and SAS auth, managed identities, IP firewall, virtual network rules, and Private Link Service configuration. |\n| Configuration | L47-L51 | Network and firewall requirements for Azure Relay, including which ports/protocols to open for Hybrid Connections and WCF relays and how to configure them. |\n| Integrations & Coding Patterns | L52-L57 | Using Azure Relay Hybrid Connections from .NET and Node.js (WebSockets), plus low-level protocol details for implementing custom clients and integrations |\n\n### Troubleshooting\n| Topic | URL |\n|-------|-----|\n| Resolve common Azure Relay exceptions | https://learn.microsoft.com/en-us/azure/azure-relay/relay-exceptions |\n\n### Security\n| Topic | URL |\n|-------|-----|\n| Authenticate applications to Azure Relay with Entra ID | https://learn.microsoft.com/en-us/azure/azure-relay/authenticate-application |\n| Use managed identities to access Azure Relay | https://learn.microsoft.com/en-us/azure/azure-relay/authenticate-managed-identity |\n| Configure IP firewall rules for Azure Relay | https://learn.microsoft.com/en-us/azure/azure-relay/ip-firewall-virtual-networks |\n| Configure network security for Azure Relay | https://learn.microsoft.com/en-us/azure/azure-relay/network-security |\n| Secure Azure Relay with Private Link Service | https://learn.microsoft.com/en-us/azure/azure-relay/private-link-service |\n| Configure SAS and Entra ID auth for Azure Relay | https://learn.microsoft.com/en-us/azure/azure-relay/relay-authentication-and-authorization |\n\n### Configuration\n| Topic | URL |\n|-------|-----|\n| Configure required port settings for Azure Relay | https://learn.microsoft.com/en-us/azure/azure-relay/relay-port-settings |\n\n### Integrations & Coding Patterns\n| Topic | URL |\n|-------|-----|\n| Use Azure Relay Hybrid Connections .NET APIs | https://learn.microsoft.com/en-us/azure/azure-relay/relay-hybrid-connections-dotnet-api-overview |\n| Use Azure Relay Node.js WebSocket APIs | https://learn.microsoft.com/en-us/azure/azure-relay/relay-hybrid-connections-node-ws-api-overview |\n| Implement Azure Relay Hybrid Connections protocol | https://learn.microsoft.com/en-us/azure/azure-relay/relay-hybrid-connections-protocol |","tags":["azure","relay","agent","skills","microsoftdocs","agent-skills","agentic-skills","agentskill","ai-agents","ai-coding","azure-functions","azure-kubernetes-service"],"capabilities":["skill","source-microsoftdocs","skill-azure-relay","topic-agent","topic-agent-skills","topic-agentic-skills","topic-agentskill","topic-ai-agents","topic-ai-coding","topic-azure","topic-azure-functions","topic-azure-kubernetes-service","topic-azure-openai","topic-azure-sql-database","topic-azure-storage"],"categories":["Agent-Skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/MicrosoftDocs/Agent-Skills/azure-relay","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add MicrosoftDocs/Agent-Skills","source_repo":"https://github.com/MicrosoftDocs/Agent-Skills","install_from":"skills.sh"}},"qualityScore":"0.698","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 497 github stars · SKILL.md body (3,739 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-04-22T00:53:36.369Z","embedding":null,"createdAt":"2026-04-18T21:59:55.712Z","updatedAt":"2026-04-22T00:53:36.369Z","lastSeenAt":"2026-04-22T00:53:36.369Z","tsv":"'/en-us/azure/azure-relay/authenticate-application':336 '/en-us/azure/azure-relay/authenticate-managed-identity':346 '/en-us/azure/azure-relay/ip-firewall-virtual-networks':356 '/en-us/azure/azure-relay/network-security':365 '/en-us/azure/azure-relay/private-link-service':375 '/en-us/azure/azure-relay/relay-authentication-and-authorization':387 '/en-us/azure/azure-relay/relay-exceptions':322 '/en-us/azure/azure-relay/relay-hybrid-connections-dotnet-api-overview':415 '/en-us/azure/azure-relay/relay-hybrid-connections-node-ws-api-overview':424 '/en-us/azure/azure-relay/relay-hybrid-connections-protocol':433 '/en-us/azure/azure-relay/relay-port-settings':400 '/microsoftdocs/mcp/blob/main/readme.md)':157 '3':128 'accept':196 'access':162,341 'agent':77,121,180,194 'api':412,421 'applic':327 'auth':27,244,381 'authent':218,233,326 'avail':147 'azur':2,7,36,39,48,213,238,266,291,317,329,342,352,361,367,383,396,407,417,426 'azure-relay':1 'capabl':69 'categori':80,88,104,200,202 'caus':226 'client':33,309 'code':16,56,285,402 'combin':59 'common':212,316 'configur':13,20,53,221,256,257,282,347,357,376,388,391 'connect':22,217,275,294,410,429 'content':64,166 'cover':50 'custom':308 'descript':204 'detail':305 'develop':9 'diagnos':209 'doc':172 'document':67,165 'e.g':92,108 'entra':25,240,332,379 'error':222 'except':215,319 'expert':4,45 'fallback':184 'fetch':68,164,173,186 'file':98,106,113,118 'firewal':248,263,349 'fix':211 'github.com':156 'github.com/microsoftdocs/mcp/blob/main/readme.md)':155 'guid':154 'guidanc':46,224 'hybrid':21,274,293,409,428 'id':241,333,380 'id/sas':26 'ident':246,339 'implement':307,425 'import':75,119 'includ':10,216,268 'index':81,201 'instal':151,153 'integr':15,55,284,311,401 'ip':247,348 'knowledg':5 'l120':95 'l32':207 'l32-l36':206 'l35':94 'l35-l120':93 'l36':208 'l37':231 'l37-l46':230 'l46':232 'l47':259 'l47-l51':258 'l51':260 'l52':288 'l52-l57':287 'l57':289 'latest':136 'learn':179,193 'learn-agent-skil':178,192 'learn.microsoft.com':321,335,345,355,364,374,386,399,414,423,432 'learn.microsoft.com/en-us/azure/azure-relay/authenticate-application':334 'learn.microsoft.com/en-us/azure/azure-relay/authenticate-managed-identity':344 'learn.microsoft.com/en-us/azure/azure-relay/ip-firewall-virtual-networks':354 'learn.microsoft.com/en-us/azure/azure-relay/network-security':363 'learn.microsoft.com/en-us/azure/azure-relay/private-link-service':373 'learn.microsoft.com/en-us/azure/azure-relay/relay-authentication-and-authorization':385 'learn.microsoft.com/en-us/azure/azure-relay/relay-exceptions':320 'learn.microsoft.com/en-us/azure/azure-relay/relay-hybrid-connections-dotnet-api-overview':413 'learn.microsoft.com/en-us/azure/azure-relay/relay-hybrid-connections-node-ws-api-overview':422 'learn.microsoft.com/en-us/azure/azure-relay/relay-hybrid-connections-protocol':431 'learn.microsoft.com/en-us/azure/azure-relay/relay-port-settings':398 'level':303 'line':90,102,203 'link':29,107,116,254,371 'local':60 'locat':84 'low':302 'low-level':301 'manag':245,338 'markdown':183,199 'mcp':142,169 'metadata.generated':123 'microsoft':171 'microsoftdoc':143,170 'month':129 'net':296,411 'net/node.js':31 'network':161,235,250,261,358 'node.js':298,419 'old':130 'open':272 'pattern':17,57,286,403 'plus':300 'port':393 'ports/protocols':270 'prefer':167 'privat':28,253,370 'protocol':304,430 'provid':44 'pull':134 'queri':175,189 'quick':62 'quick-refer':61 'quota':219 'rang':91 'read':97,112 'refer':63,117 'relat':38 'relay':3,8,24,32,37,40,49,214,239,267,278,292,318,330,343,353,362,368,384,397,408,418,427 'relev':85 'remot':66 'repositori':140 'requir':160,264,392 'resolut':228 'resolv':315 'return':182,198 'rule':251,350 'sas':243,377 'section':86 'secur':12,52,229,236,323,359,366 'security.md':109,110 'servic':255,372 'set':394 'skill':41,43,74,159,181,195 'skill-azure-relay' 'source-microsoftdocs' 'specifi':101 'string':176,190 'suggest':131,148 'text/markdown':197 'tool':144 'topic':313,324,389,404 'topic-agent' 'topic-agent-skills' 'topic-agentic-skills' 'topic-agentskill' 'topic-ai-agents' 'topic-ai-coding' 'topic-azure' 'topic-azure-functions' 'topic-azure-kubernetes-service' 'topic-azure-openai' 'topic-azure-sql-database' 'topic-azure-storage' 'troubleshoot':11,51,205,312 'url':314,325,390,405 'use':18,72,78,96,111,168,185,290,337,406,416 'user':133,150 'version':137 'virtual':249 'wcf':23,277 'webpag':187 'websocket':299,420","prices":[{"id":"abc6d2c2-0b11-40a8-8514-33543f30842c","listingId":"ee252e89-b8a3-4e51-b48d-0f70b6ba7b17","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"MicrosoftDocs","category":"Agent-Skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:59:55.712Z"}],"sources":[{"listingId":"ee252e89-b8a3-4e51-b48d-0f70b6ba7b17","source":"github","sourceId":"MicrosoftDocs/Agent-Skills/azure-relay","sourceUrl":"https://github.com/MicrosoftDocs/Agent-Skills/tree/main/skills/azure-relay","isPrimary":false,"firstSeenAt":"2026-04-18T21:59:55.712Z","lastSeenAt":"2026-04-22T00:53:36.369Z"}],"details":{"listingId":"ee252e89-b8a3-4e51-b48d-0f70b6ba7b17","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"MicrosoftDocs","slug":"azure-relay","github":{"repo":"MicrosoftDocs/Agent-Skills","stars":497,"topics":["agent","agent-skills","agentic-skills","agentskill","ai","ai-agents","ai-coding","azure","azure-functions","azure-kubernetes-service","azure-openai","azure-sql-database","azure-storage","azure-virtual-machine","claude-code","github-copilot","microsoft-learn","openai-codex","skills"],"license":"cc-by-4.0","html_url":"https://github.com/MicrosoftDocs/Agent-Skills","pushed_at":"2026-04-19T02:43:40Z","description":"Curated Agent Skills for Microsoft & Azure – giving AI coding assistants structured, real-time expertise from Microsoft Learn docs.","skill_md_sha":"43318c7479ad16d3fbdf35705e5f8ea56625d5eb","skill_md_path":"skills/azure-relay/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/MicrosoftDocs/Agent-Skills/tree/main/skills/azure-relay"},"layout":"multi","source":"github","category":"Agent-Skills","frontmatter":{"name":"azure-relay","description":"Expert knowledge for Azure Relay development including troubleshooting, security, configuration, and integrations & coding patterns. Use when configuring Hybrid Connections, WCF relays, Entra ID/SAS auth, Private Link, or .NET/Node.js Relay clients, and other Azure Relay related development tasks. Not for Azure Service Bus (use azure-service-bus), Azure Event Hubs (use azure-event-hubs), Azure Web PubSub (use azure-web-pubsub), Azure Application Gateway (use azure-application-gateway).","compatibility":"Requires network access. Uses mcp_microsoftdocs:microsoft_docs_fetch or fetch_webpage to retrieve documentation."},"skills_sh_url":"https://skills.sh/MicrosoftDocs/Agent-Skills/azure-relay"},"updatedAt":"2026-04-22T00:53:36.369Z"}}