# Azure Foundry Agent

> Invoke Azure Foundry agents for task classification and AI workflows. Use when user asks to rate a task, prioritize work, classify tasks, or interact with Foundry agents. Requires Azure MCP tools to be available.

- Skill: `spboyer/azure-foundry-agent` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add spboyer/azure-foundry-agent`
- Raw SKILL.md: https://api.skillmd.com/api/skills/spboyer/azure-foundry-agent/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: spboyer (https://skillmd.com/u/spboyer)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/spboyer/azure-foundry-agent

---


# Azure Foundry Agent Skill

Invoke Azure Foundry agents using the Azure MCP tools. This skill enables discovering Foundry resources, listing agents, and invoking agents for task classification and other AI workflows.

## Configuration

Copy `config.example.yaml` to `config.yaml` and customize:

```yaml
# Azure subscription (optional - uses current if not set)
subscription: ""

# Foundry resource name (from foundry_resource_get)
resource: "shboyer-copilot-proj-resource"

# Project name
project: "shboyer-copilot-proj"

# Default agent
agent: "priority-detection-agent"

# Keywords that trigger this skill
triggers:
  - "rate my task"
  - "prioritize"
```

The endpoint is constructed automatically:
`https://<resource>.services.ai.azure.com/api/projects/<project>`

When a user message contains any trigger keyword, use this skill's workflow.

## Prerequisites

- Azure MCP tools must be available (`azure-mcp-foundry`)
- User must be authenticated to Azure (`az login`)
- A Foundry project with deployed agents

## Workflow

### Step 1: Get Current Subscription

First, determine the user's current Azure subscription:

```bash
az account show --query "{subscriptionId:id, name:name}" -o json
```

### Step 2: List Foundry Resources

Use the Azure MCP to list Foundry resources in the subscription:

```
Tool: azure-mcp-foundry
Command: foundry_resource_get
Parameters:
  subscription: <subscription-id-from-step-1>
```

This returns all AIServices resources with their endpoints and deployed models.

### Step 3: List Agents in a Project

Once you have the resource endpoint, list available agents:

```
Tool: azure-mcp-foundry
Command: foundry_agents_list
Parameters:
  endpoint: https://<resource-name>.services.ai.azure.com/api/projects/<project-name>
```

**Note:** The endpoint format for agents uses `.services.ai.azure.com` (not `.cognitiveservices.azure.com`).

### Step 4: Invoke an Agent

Connect to and query a specific agent:

```
Tool: azure-mcp-foundry
Command: foundry_agents_connect
Parameters:
  agent-id: <agent-id-from-step-3>
  endpoint: https://<resource-name>.services.ai.azure.com/api/projects/<project-name>
  query: <user-message>
```

## Example: Task Priority Classification

For the `priority-detection-agent`:

**Input:** "Create a new PO for new supplies"

**Output:**
```json
{
  "priority": "MEDIUM",
  "reasoning": "Creating a purchase order for new supplies is an important task that supports ongoing operations. While it should be addressed promptly, it is typically part of planned work and does not constitute an emergency.",
  "task_content": "Create a new PO for new supplies"
}
```

### Priority Guidelines

- **HIGH**: Critical emergencies - production outages, security breaches, system failures, customer-impacting issues
- **MEDIUM**: Important tasks with reasonable deadlines, planned work, non-critical bugs
- **LOW**: Nice-to-have improvements, cosmetic changes, tasks marked "when time permits"

## Available Commands Reference

| Command | Purpose | Required Parameters |
|---------|---------|---------------------|
| `foundry_resource_get` | List Foundry resources | `subscription` |
| `foundry_agents_list` | List agents in a project | `endpoint` |
| `foundry_agents_connect` | Invoke an agent | `agent-id`, `endpoint`, `query` |
| `foundry_agents_create` | Create a new agent | See MCP docs |
| `foundry_threads_list` | List conversation threads | `endpoint` |
| `foundry_threads_get-messages` | Get thread messages | `endpoint`, `thread-id` |

## Error Handling

- **Missing subscription**: Run `az account show` to get current subscription
- **Authentication failed**: Run `az login` to authenticate
- **Agent not found**: Use `foundry_agents_list` to verify agent ID
- **Invalid endpoint**: Ensure endpoint uses `.services.ai.azure.com/api/projects/` format

## Tips

1. Cache the subscription ID and endpoint for subsequent calls
2. The agent ID from `foundry_agents_list` (e.g., `asst_xxx`) is used in `foundry_agents_connect`
3. Thread IDs from agent responses can be used to continue conversations
4. Use `foundry_resource_get` without `resource-name` to list all resources

