Dev & Engineering ✓ Microsoft · Official

Azure SMS for Java

Send Azure Communication Services SMS from Java with per-recipient results and delivery tracking.

48/ 100
Use with care

Useful, but reliability, evidence or controls still have material gaps.

See how it was scored ↓
Works as-is in
Codex · Claude Code
Stars
★ 2.7k
Last updated
3mo ago
License
MIT
javaazure-communication-servicessmsotp-delivery
+2delivery-reportsmaven

What does this skill do, and when should you use it?

This skill is for developers using the Azure Communication Services SMS Java SDK. It covers single-recipient and bulk messaging, synchronous and asynchronous clients, delivery reports, tags, and per-recipient error handling. Examples show DefaultAzureCredential, managed identity, connection strings, and AzureKeyCredential authentication. It fits Java applications that need notifications, OTPs, alerts, or batch SMS, but it does not provide a complete application or deployment solution.

Shows how to add the Maven dependency, create an SmsClient or SmsAsyncClient, call the Azure Communication Services SMS API for one or more E.164 phone numbers, and inspect message IDs, recipients, success flags, HTTP statuses, and error messages. It also covers enabling delivery reports, adding business tags, handling HTTP 429 responses, and receiving delivery status through Azure Event Grid.

Good fit
  • A Java application needs to deliver login verification codes or one-time passwords.
  • An order system must send confirmation, status-change, or security-alert messages.
  • A marketing or operations service needs to send one message to several recipients and inspect each result.
  • A critical notification workflow needs Delivered or Failed status through Event Grid.
  • A team wants DefaultAzureCredential locally and managed identity in production.

How do you install this skill?

Before you use it
  • Establish user consent, opt-out, regional compliance, pricing, and carrier constraints before sending SMS, with application-level confirmation or approval where appropriate.
  • Do not place phone numbers, OTPs, or other sensitive data in tags, logs, or error messages; prefer managed identity or short-lived credentials and protect connection strings and access keys.
  • Verify the actual azure-communication-sms 1.2.0 API and add missing imports before adoption; implement recoverable handling for 429s, network failures, timeouts, and idempotent retries.
  • Confirm Azure Communication Services, Event Grid, and SMS capability reachability and compliance in the target region, especially mainland China.
Before you start
Your agent needs
  • Network access
Install first
  • Java
  • com.azure:azure-communication-sms:1.2.0
  • Azure Communication Services SMS resource

Install the repository's skill collection with npx skills add microsoft/skills, then select the needed skill in the wizard. The README also documents cloning the repository and copying a specific skill directory; it does not document a standalone installation command for this skill. Add the Maven dependency com.azure:azure-communication-sms:1.2.0 to the Java project.

Generic route: install into Claude Code manually (macOS / Linux)
tmp="$(mktemp -d)"
git clone --depth 1 https://github.com/microsoft/skills.git "$tmp"
mkdir -p ~/.claude/skills
cp -R "$tmp/.github/plugins/azure-sdk-java/skills/azure-communication-sms-java" ~/.claude/skills/
rm -rf "$tmp"

Generated from the source repository and skill path; it copies only this skill's folder. If the author's install steps above differ, follow those first. To scope it to one project, replace ~/.claude/skills with that project's .claude/skills.

How do you use this skill?

Try saying

Once installed, send your agent any of these to trigger it:

  • send SMS Java,
  • delivery report SMS.

Useful trigger phrases include “send SMS Java,” “SMS notification,” “OTP SMS,” “bulk SMS,” and “delivery report SMS.” Provide an ACS sender number, recipient number or list, and message text; enable delivery reports and set a tag when needed. The examples create a client with DefaultAzureCredential, a connection string, or AzureKeyCredential, then call send or sendWithResponse. Use SmsAsyncClient for reactive operations. In production, the DefaultAzureCredential example requires AZURE_TOKEN_CREDENTIALS=prod or a specific credential setting.

What are this skill's strengths and limitations?

Pros
  • Covers synchronous, asynchronous, single-recipient, and bulk-send patterns.
  • Includes per-recipient success, status-code, and error handling.
  • Documents Event Grid delivery reports, business tags, and a 429 retry recommendation.
  • Shows Entra ID, managed identity, connection-string, and AzureKeyCredential options.
Limitations
  • Targets the Java SDK and cannot be used directly for other languages.
  • Does not include a complete application, deployment configuration, or runnable Event Grid webhook.
  • The source does not provide independent test-coverage details for this individual skill.
  • Sending requires a configured Azure Communication Services resource and sender number.

How does this skill compare with similar options?

Side by side with related skills; every score comes from the same FSRS standard.

Skill FS score Stars Last updated License
Azure SMS for Java this page ✓ Microsoft · Official 48 · Use with care ★ 2.7k 3mo ago MIT
Azure Communication Chat for Java ✓ Microsoft · Official 44 · Not recommended ★ 2.7k 3mo ago MIT
Azure AI Persistent Agents for Java ✓ Microsoft · Official 47 · Use with care ★ 2.7k 3mo ago MIT
Azure App Configuration for Java ✓ Microsoft · Official 43 · Not recommended ★ 2.7k 3mo ago MIT
SkillHub Backend Module Structure Guide 52 · Use with care ★ 5.2k 12d ago Apache-2.0

How did FollowSkills review this skill?

FollowSkills review · FSRS-2.0
Use with care
48/ 100 5-point scale 2.4 / 5
1Trust13 / 25 · 2.6/5

The documentation offers Entra ID, managed identity, connection-string, and access-key patterns, with credential configuration via environment variables. However, sending SMS and receiving Event Grid callbacks create external effects; there is no user-confirmation guidance, consent/opt-out/compliance boundary, or rollback strategy. The OTP example places a phone number in a tag, potentially widening sensitive-data exposure, so trust is far from full marks.

2Reliability8 / 20 · 2.0/5

Single-recipient, bulk, async, delivery-report, error-handling, and rate-limit paths are covered, including per-recipient failures and request-level exceptions. However, examples omit some imports, configuration requirements are not fully consistent with connection-string usage, retry behavior is simplified, and idempotency or duplicate sends are not addressed. This is a static-only review with no skill-specific tests, so the score remains below the static ceiling.

3Adaptability8 / 15 · 2.7/5

Trigger phrases and intended Java scenarios for notifications, OTP, bulk SMS, and delivery reports are reasonably clear. Non-fit boundaries, pricing, regional/carrier constraints, compliance requirements, and formal input/output contracts are absent; Chinese-language handling, message segmentation, and mainland-China reachability are also undocumented. The core function depends on Azure Communication Services, with insufficient environment-fit evidence.

4Convention9 / 15 · 3.0/5

The skill has YAML metadata, an MIT license, a version, installation notes, layered examples, error handling, best practices, and a reference file. It lacks a skill-level changelog, explicit maintenance owner, update path, compatibility matrix, and a clear known-limitations section; dependency and version-update policy is also unclear, so points are deducted.

5Effectiveness6 / 15 · 2.0/5

The material can directly guide common Java ACS SMS integrations, including sending, bulk, async, delivery reports, and OTP flows. But the examples were not executed in this review, some require added imports and configuration, and production-grade security and retry work remains. Under static calibration, the result is therefore capped conservatively.

6Verifiability4 / 10 · 2.0/5

The supplied files contain concrete Maven coordinates, API calls, failure branches, and complete examples, providing some auditability. There is no committed test suite or CI evidence specific to this skill path, and repository-wide harness material does not establish reproduction of this skill's key paths, so a higher static score is not justified.

1 2 3 4 5 6

Open a dimension to read why it scored that way

Reviewed Jul 20, 2026 Reviewed revision 9ccaf7c3704a Review evidence[1][2][3][4][5][6][7][8][9][10][11]

Evidence confidence:Low — Mostly static review, author material or a limited demo; useful for discovery, not high-risk decisions.

See the full review method →

FAQ

Does this skill include SMS service pricing?
No pricing information is provided; the source only covers the SDK and configuration patterns.
Do send failures throw exceptions?
Individual message failures are generally returned through SmsSendResult, while request-level failures such as authentication or network errors are handled with HttpResponseException in the example.
Can bulk sends report the result for each number?
Yes. sendWithResponse returns multiple SmsSendResult objects that can be checked individually for status, recipient, message ID, and errors.
Where are delivery reports received?
Through Azure Event Grid. An Event Grid subscription must be configured for the ACS resource.

More skills from this repository

All from microsoft/agent-skills

Dev & Engineering ✓ Microsoft · Official

Azure Communication Chat for Java

A practical Java SDK guide for building Azure real-time chat threads, messaging, and participant workflows.

★ 2.7k FS 44 Not recommended 3mo ago
Dev & Engineering ✓ Microsoft · Official

Azure AI Persistent Agents for Java

Guides Java developers through building and managing Azure AI agents with persistent threads, messages, runs, and tools.

★ 2.7k FS 47 Use with care 3mo ago
Dev & Engineering ✓ Microsoft · Official

Azure App Configuration for Java

Guides Java apps in centralizing settings, feature flags, and release snapshots.

★ 2.7k FS 43 Not recommended 3mo ago
Dev & Engineering ✓ Microsoft · Official

Azure CallingServer Java Legacy Maintainer

Maintain legacy CallingServer Java code and migrate it toward Azure Communication Services Call Automation.

★ 2.7k FS 52 Use with care 3mo ago
Dev & Engineering ✓ Microsoft · Official

Azure Communication Common for Java

Guides Java developers through shared ACS authentication, token refresh, and communication identifier handling.

★ 2.7k FS 51 Use with care 3mo ago
Dev & Engineering ✓ Microsoft · Official

Azure Call Automation for Java

Build Java workflows for IVR, call routing, recording, and voice-driven interactions.

★ 2.7k FS 43 Not recommended 3mo ago
Dev & Engineering ✓ Microsoft · Official

Azure Monitor Query for Java

Query Azure Monitor logs and resource metrics from Java applications.

★ 2.7k FS 52 Use with care 3mo ago
Dev & Engineering ✓ Microsoft · Official

Azure Batch Java Job Orchestration

Run and manage large-scale parallel and HPC workloads on Azure from Java.

★ 2.7k FS 48 Use with care 3mo ago
Dev & Engineering ✓ Microsoft · Official

Azure Event Grid for Java

A practical Java SDK guide for publishing, consuming, and handling Azure Event Grid events.

★ 2.7k FS 47 Use with care 3mo ago
Dev & Engineering ✓ Microsoft · Official

Azure Blob Storage for Java

A practical Java playbook for building file and streaming workflows on Azure Blob Storage.

★ 2.7k FS 47 Use with care 3mo ago
Dev & Engineering ✓ Microsoft · Official

Entra Authentication Events for .NET

Customize Entra ID authentication flows with Azure Functions.

★ 2.7k FS 43 Not recommended 3mo ago
Dev & Engineering ✓ Microsoft · Official

Azure Identity for Java

Configure secure Microsoft Entra ID authentication for Java applications using Azure SDKs.

★ 2.7k FS 51 Use with care 3mo ago
Dev & Engineering ✓ Microsoft · Official

Azure AI Content Safety for Java

Helps Java applications detect harmful text and images and manage custom blocklists.

★ 2.7k FS 48 Use with care 3mo ago
Dev & Engineering ✓ Microsoft · Official

Azure AI Anomaly Detector for Java

A practical Java skill for building univariate and multivariate time-series anomaly detection with Azure AI Anomaly Detector.

★ 2.7k FS 47 Use with care 3mo ago
Dev & Engineering ✓ Microsoft · Official

Azure Cosmos DB Java Skill

Guides Java developers in building globally distributed, partitioned, and reactive Azure Cosmos DB applications.

★ 2.7k FS 45 Not recommended 3mo ago
Dev & Engineering ✓ Microsoft · Official

Azure Monitor Telemetry for Java

Guides Java teams in exporting OpenTelemetry data to Azure Monitor.

★ 2.7k FS 44 Not recommended 3mo ago
Dev & Engineering ✓ Microsoft · Official

Azure Event Hubs Java Skill

Build production-oriented Java event streaming applications on Azure Event Hubs.

★ 2.7k FS 57 Use with care 3mo ago
Dev & Engineering ✓ Microsoft · Official

Azure Upgrade

Assess and automate Azure plan, SKU, service, and legacy Java SDK upgrades.

★ 2.7k FS 52 Use with care 3mo ago
Dev & Engineering ✓ Microsoft · Official

Azure AI Vision Image Analysis for Java

A practical Java SDK guide for captions, OCR, object detection, tagging, and smart image cropping.

★ 2.7k FS 51 Use with care 3mo ago
Dev & Engineering ✓ Microsoft · Official

Azure Key Vault Keys for Java

Ground Java coding agents in secure Azure Key Vault and Managed HSM key-management workflows.

★ 2.7k FS 49 Use with care 3mo ago

Related skills