mcp-create-adaptive-cards

Skill converted from mcp-create-adaptive-cards.prompt.md

By github · 8,769 installs

npx skills add github/awesome-copilot --skill mcp-create-adaptive-cards

Source repository · Upstream listing

json { "functions": [ { "name": "GetBudgets", "description": "Returns budget details including name and available funds", "capabilities": { "response semantics": { "data path": "$", "properties": { "title": "$.name", "subtitle": "$.availableFunds" }, "static template": { "type": "AdaptiveCard", "$schema": "http://adaptivecards.io/schemas/adaptive card.json", "version": "1.5", "body": [ { "type": "Container", "$data": "${$root}", "items": [ { "type": "TextBlock", "text": "Name: ${if(name, name, 'N/A')}", "wrap": true }, { "type": "TextBlock", "text": "Available funds: ${if(availableFunds, formatNumber(availableFunds, 2), 'N/A')}", "wrap": true } ] } ] } } } } ] } json { "name": "GetTransactions", "description": "Returns transaction details with dynamic templates", "capabilities": { "response semantics": { "data path": "$.transactions", "properties": { "template selector": "$.displayTemplate" } } } } json { "transactions": [ { "budgetName": "Fourth Coffee lobby renovation", "amount": 2000, "description": "Property survey for permit application", "expenseCategory": "permits", "displayTemplate": "$.templates.debit" }, { "budgetName": "Fourth Coffee lobby renovation", "amount": 5000, "description": "Additional funds to cover cost overruns", "expenseCategory": null, "displayTemplate": "$.templates.credit" } ], "templates": { "debit": { "type": "AdaptiveCard", "version": "1.5", "body": [ { "type": "TextBlock", "size": "medium", "weight": "bolder", "color": "attention", "text": "Debit" }, { "type": "FactSet", "facts": [ { "title": "Budget", "value": "${budgetName}" }, { "title": "Amount", "value": "${formatNumber(amount, 2)}" }, { "title": "Category", "value": "${if(expenseCategory, expenseCategory, 'N/A')}" }, { "title": "Description", "value": "${if(description, description, 'N/A')}" } ] } ], "$schema": "http://adaptivecards.io/schemas/adaptive card.json" }, "credit": { "type": "AdaptiveCard", "version": "1.5", "body": [ { "type": "TextBlock", "size": "medium", "weight": "bolder", "color": "good", "text": "Credit" }, { "type": "FactSet", "facts": [ { "title": "Budget", "value": "${budgetName}" }, { "title": "Amount", "value": "${formatNumber(amount, 2)}" }, { "title": "Description", "value": "${if(description, description, 'N/A')}" } ] } ], "$schema": "http://adaptivecards.io/schemas/adaptive card.json" } } } json { "capabilities": { "response semantics": { "data path": "$.items", "properties": { "title": "$.name", "template selector": "$.templateId" }, "static template": { "type": "AdaptiveCard", "version": "1.5", "body": [ { "type": "TextBlock", "text": "Default: ${name}", "wrap": true } ] } } } } json "data path": "$" // Root of response "data path": "$.results" // In results property "data path": "$.data.items"// Nested path json "properties": { "title": "$.name", // Citation title "subtitle": "$.description", // Citation subtitle "url": "$.link" // Citation link } json "template selector": "$.displayTemplate" json { "type": "TextBlock", "text": "${if(field, field, 'N/A')}" // Show field or 'N/A' } json { "type": "TextBlock", "text": "${formatNumber(amount, 2)}" // Two decimal places } json { "type": "Container", "$data": "${$root}", // Break to root context "items": [ ... ] } json { "type": "Image", "url": "${imageUrl}", "$when": "${imageUrl != null}" // Only show if imageUrl exists } json { "type": "TextBlock", "text": "Text content", "size": "medium", // small, default, medium, large, extraLarge "weight": "bolder", // lighter, default, bolder "color": "attention", // default, dark, light, accent, good, warning, attention "wrap": true } json { "type": "FactSet", "facts": [ { "title": "Label", "value": "Value" } ] } json { "type": "Image", "url": "https://example.com/image.png", "size": "medium", // auto, stretch, small, medium, large "style": "default" // default, person } json { "type": "Container", "$data": "${items}", // Iterate over array "items": [ { "type": "TextBlock", "text": "${name}" } ] } json { "type": "ColumnSet", "columns": [ { "type": "Column", "width": "auto", "items": [ ... ] }, { "type": "Column", "width": "stretch", "items": [ ... ] } ] } json { "type": "Action.OpenUrl", "title": "View Details", "url": "https://example.com/item/${id}" } json { "functions": [ { "name": "SearchProjects", "description": "Search for projects with status and details", "capabilities": { "response semantics": { "data path": "$.projects", "properties": { "title": "$.name", "subtitle": "$.status", "url": "$.projectUrl" }, "static template": { "type": "AdaptiveCard", "$schema": "http://adaptivecards.io/schemas/adaptive card.json", "version": "1.5", "body": [ { "type": "Container", "$data": "${$root}", "items": [ { "type": "TextBlock", "size": "medium", "weight": "bolder", "text": "${if(name, name, 'Untitled Project')}", "wrap": true }, { "type": "FactSet", "facts": [ { "title": "Status", "value": "${status}" }, { "title": "Owner", "value": "${if(owner, owner, 'Unassigned')}" }, { "title": "Due Date", "value": "${if(dueDate, dueDate, 'Not set')}" }, { "title": "Budget", "value": "${if(budget, formatNumber(budget, 2), 'N/A')}" } ] }, { "type": "TextBlock", "text": "${if(description, description, 'No description')}", "wrap": true, "separator": true } ] } ], "actions": [ { "type": "Action.OpenUrl", "title": "View Project", "url": "${projectUrl}" } ] } } } } ] } json { "type": "Container", "$data": "${items}", "items": [ { "type": "ColumnSet", "columns": [ { "type": "Column", "width": "auto", "items": [ { "type": "Image", "url": "${thumbnailUrl}", "size": "small", "$when": "${thumbnailUrl != null}" } ] }, { "type": "Column", "width": "stretch", "items": [ { "type": "TextBlock", "text": "${title}", "weight": "bolder", "wrap": true } ] } ] } ] } json { "type": "TextBlock", "text": "${status}", "color": "${if(status == 'Completed', 'good', if(status == 'In Progress', 'attention', 'default'))}" } json { "type": "TextBlock", "text": "$${formatNumber(amount, 2)}" }