Manages Azure AI Foundry projects including connections, datasets, search indexes, and model evaluations using Java.
- GitHub stars
- 3,194
- Files
- 2
- Last commit
- Nov 11, 2026
- License
- MIT
- Allowed tools
- —
What does the azure-ai-projects-java skill do?
azure-ai-projects-java manages Azure AI Foundry projects including connections, datasets, search indexes, and model evaluations using Java.
Summary generated from the skill's SKILL.md.
About the azure-ai-projects-java skill
Managing Azure AI Foundry projects through Java code is what this skill enables for developers building AI-driven applications. It provides a high-level SDK to handle various project components including connections, datasets, search indexes, and model evaluations. An agent should load this skill when it needs to programmatically interact with Azure AI resources or automate the lifecycle of AI infrastructure.
The toolset includes specialized clients such as ConnectionsClient for enumerating resources, DatasetsClient for document uploads, and IndexesClient for managing search indexes. It also provides access to an EvaluationsClient to run model evaluations and an EvaluatorsClient for managing configurations. Users must provide a PROJECT_ENDPOINT environment variable and can use DefaultAzureCredential for authentication. The SDK produces structured objects like PagedIterable for resource listing and specific models for index management, allowing for precise control over the AI project environment.
What an agent can do with it
- 1Perform model evaluationsRun evaluations on AI models using the integrated OpenAI evaluation services.
- 2Handle dataset uploadsUpload documents and manage datasets for AI training or retrieval tasks.
Written from the skill's SKILL.md. Every use case is checked against a quote from it.
How to install the azure-ai-projects-java skill
Each command copies the skill folder into the client's skills directory. Restart the client or start a new session to load it.Install the azure-ai-projects-java skill in Claude Code
~/.claude/skills/azure-ai-projects-java/SKILL.md
$ npx degit microsoft/skills/.github/plugins/azure-sdk-java/skills/azure-ai-projects-java ~/.claude/skills/azure-ai-projects-javaInstall the azure-ai-projects-java skill in Claude Code (project)
.claude/skills/azure-ai-projects-java/SKILL.md
$ npx degit microsoft/skills/.github/plugins/azure-sdk-java/skills/azure-ai-projects-java .claude/skills/azure-ai-projects-javaInstall the azure-ai-projects-java skill in Codex
~/.agents/skills/azure-ai-projects-java/SKILL.md
$ npx degit microsoft/skills/.github/plugins/azure-sdk-java/skills/azure-ai-projects-java ~/.agents/skills/azure-ai-projects-javaInstall the azure-ai-projects-java skill in Gemini CLI
~/.gemini/skills/azure-ai-projects-java/SKILL.md
$ npx degit microsoft/skills/.github/plugins/azure-sdk-java/skills/azure-ai-projects-java ~/.gemini/skills/azure-ai-projects-javaInstall the azure-ai-projects-java skill in Claude.ai
npx degit microsoft/skills/.github/plugins/azure-sdk-java/skills/azure-ai-projects-java azure-ai-projects-java && zip -r azure-ai-projects-java.zip azure-ai-projects-java # claude.ai → Customize → Skills → + → Create skill → Upload a skill → azure-ai-projects-java.zip
Automated checks
Ran Nov 15, 2026Full report →Passed our automated checks. That is not a security audit: read the scripts before you let an agent run them. How checks work · What to fix for more points
- Source repository linked and reachablemicrosoft/skills/.github/plugins/azure-sdk-java/skills/azure-ai-projects-java is public and reachablegithub.com/microsoft/skills/tree/HEAD/.github/plugins/azure- ↗Pass
- Open source license (OSI)MITspdx.org/licenses/MIT.html ↗Pass
- Commit or release in the last yearLast commit 2026-11-11github.com/microsoft/skills/commits ↗Pass
- No download-and-run or credential theft in scriptsNo scripts in the skill folderPass
- No hidden instructions in SKILL.mdNo override phrases, safeguard switches, credential requests or hidden charactersgithub.com/microsoft/skills/blob/HEAD/.github/plugins/azure- ↗Pass
- Pre-approved tools are scopedNo pre-approved tools; the agent asks before using onegithub.com/microsoft/skills/blob/HEAD/.github/plugins/azure- ↗Pass
- SKILL.md follows the Agent Skills formatthe description does not say when to use the skillgithub.com/microsoft/skills/blob/HEAD/.github/plugins/azure- ↗Finding
SKILL.md
View on GitHubAzure AI Projects SDK for Java
High-level SDK for Azure AI Foundry project management with access to connections, datasets, indexes, and evaluations.
Installation
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-ai-projects</artifactId>
<version>1.0.0-beta.1</version>
</dependency>
Environment Variables
PROJECT_ENDPOINT=https://<resource>.services.ai.azure.com/api/projects/<project> # Required for project configuration
AZURE_TOKEN_CREDENTIALS=prod # Required only if DefaultAzureCredential is used in production
Authentication
import com.azure.ai.projects.AIProjectClientBuilder;
import com.azure.core.credential.TokenCredential;
import com.azure.identity.AzureIdentityEnvVars;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.identity.ManagedIdentityCredentialBuilder;
TokenCredential credential = new DefaultAzureCredentialBuilder()
.requireEnvVars(AzureIdentityEnvVars.AZURE_TOKEN_CREDENTIALS)
.build();
// Or use a specific credential directly in production:
// See https://learn.microsoft.com/java/api/overview/azure/identity-readme?view=azure-java-stable#credential-classes
// TokenCredential credential = new ManagedIdentityCredentialBuilder().build();
AIProjectClientBuilder builder = new AIProjectClientBuilder()
.endpoint(System.getenv("PROJECT_ENDPOINT"))
.credential(credential);
Client Hierarchy
The SDK provides multiple sub-clients for different operations:
| Client | Purpose |
|---|---|
ConnectionsClient |
Enumerate connected Azure resources |
DatasetsClient |
Upload documents and manage datasets |
DeploymentsClient |
Enumerate AI model deployments |
IndexesClient |
Create and manage search indexes |
EvaluationsClient |
Run AI model evaluations |
EvaluatorsClient |
Manage evaluator configurations |
SchedulesClient |
Manage scheduled operations |
// Build sub-clients from builder
ConnectionsClient connectionsClient = builder.buildConnectionsClient();
DatasetsClient datasetsClient = builder.buildDatasetsClient();
DeploymentsClient deploymentsClient = builder.buildDeploymentsClient();
IndexesClient indexesClient = builder.buildIndexesClient();
EvaluationsClient evaluationsClient = builder.buildEvaluationsClient();
Core Operations
List Connections
import com.azure.ai.projects.models.Connection;
import com.azure.core.http.rest.PagedIterable;
PagedIterable<Connection> connections = connectionsClient.listConnections();
for (Connection connection : connections) {
System.out.println("Name: " + connection.getName());
System.out.println("Type: " + connection.getType());
System.out.println("Credential Type: " + connection.getCredentials().getType());
}
List Indexes
indexesClient.listLatest().forEach(index -> {
System.out.println("Index name: " + index.getName());
System.out.println("Version: " + index.getVersion());
System.out.println("Description: " + index.getDescription());
});
Create or Update Index
import com.azure.ai.projects.models.AzureAISearchIndex;
import com.azure.ai.projects.models.Index;
String indexName = "my-index";
String indexVersion = "1.0";
String searchConnectionName = System.getenv("AI_SEARCH_CONNECTION_NAME");
String searchIndexName = System.getenv("AI_SEARCH_INDEX_NAME");
Index index = indexesClient.createOrUpdate(
indexName,
indexVersion,
new AzureAISearchIndex()
.setConnectionName(searchConnectionName)
.setIndexName(searchIndexName)
);
System.out.println("Created index: " + index.getName());
Access OpenAI Evaluations
The SDK exposes OpenAI's official SDK for evaluations:
import com.openai.services.EvalService;
EvalService evalService = evaluationsClient.getOpenAIClient();
// Use OpenAI evaluation APIs directly
Best Practices
- Use DefaultAzureCredential for production authentication
- Reuse client builder to create multiple sub-clients efficiently
- Handle pagination when listing resources with
PagedIterable - Use environment variables for connection names and configuration
- Check connection types before accessing credentials
Error Handling
import com.azure.core.exception.HttpResponseException;
import com.azure.core.exception.ResourceNotFoundException;
try {
Index index = indexesClient.get(indexName, version);
} catch (ResourceNotFoundException e) {
System.err.println("Index not found: " + indexName);
} catch (HttpResponseException e) {
System.err.println("Error: " + e.getResponse().getStatusCode());
}
Reference Links
Files in this skill
2azure-ai-projects-java skill questions
How do I install the azure-ai-projects-java skill in Claude Code?
Run npx degit microsoft/skills/.github/plugins/azure-sdk-java/skills/azure-ai-projects-java ~/.claude/skills/azure-ai-projects-java. Claude Code loads skills from ~/.claude/skills (all projects) or .claude/skills (one project) and uses a skill when its description matches the task.
Which clients can use the azure-ai-projects-java skill?
Any client that reads the Agent Skills format: Claude Code, Codex, Gemini CLI and claude.ai (upload as a ZIP). Scripts in the skill run only where the client allows code execution.
What can I manage with the Azure AI Projects Java SDK?
The SDK allows you to manage Azure AI Foundry project connections, datasets, search indexes, model deployments, and evaluations.
How do I authenticate with the SDK in a production environment?
It is recommended to use DefaultAzureCredential for production authentication.