For Agents
Read Azure VM instance metadata and obtain managed identity OAuth tokens from inside the VM via the Azure Instance Metadata Service.
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the InstanceMetadataClient, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with InstanceMetadataClient API.
Retrieve compute, network, and tag metadata for the running Azure VM
Fetch an attested document signed by Azure to prove VM identity to relying parties
Look up the managed identity client and tenant ids assigned to the VM
Obtain an OAuth 2.0 access token for a managed identity scoped to a target resource
GET STARTED
Use for: Get the metadata of the Azure VM I am running on, Retrieve a managed identity access token for an Azure resource, Find the client id of the managed identity assigned to this VM, Get an attested document to prove this VM's identity
Not supported: Does not handle Azure Resource Manager calls, secret storage, or cross-VM discovery — use for in-VM metadata reads and managed identity token issuance only.
Jentic publishes the only available OpenAPI document for InstanceMetadataClient, keeping it validated and agent-ready.
Jentic publishes the only available OpenAPI specification for InstanceMetadataClient, keeping it validated and agent-ready. The Azure Instance Metadata Service (IMDS) is a non-routable endpoint reachable from inside an Azure VM at 169.254.169.254 that returns information about the running instance and issues managed identity tokens. It exposes 4 endpoints to fetch instance metadata, an attested document, managed identity info, and an OAuth 2.0 access token for the VM's assigned identity.
Operate without storing credentials by relying on the VM's IMDS endpoint
Patterns agents use InstanceMetadataClient API for, with concrete tasks.
★ Credential-Free Azure SDK Auth
Workloads running on Azure VMs avoid embedded secrets by calling /identity/oauth2/token to obtain a managed identity bearer token, then passing it to other Azure APIs. The IMDS endpoint is reachable only from the VM itself, so no inbound network rules are needed. Adopting this pattern typically takes a couple of hours per workload and removes a class of secret-rotation problems.
Call /identity/oauth2/token with resource=https://management.azure.com/ from the VM and return the bearer token.
VM Self-Description for Tagging and Routing
Bootstrap scripts read /instance to discover the VM's region, vmSize, resourceGroupName, and tags, then configure their behaviour accordingly — for example, registering with a region-specific service discovery system. Because IMDS is local, the call is fast and does not depend on AAD. This is the standard way to make Azure VMs self-aware without baking config into images.
GET /instance and return the compute.location, compute.vmSize, and the value of the tag named 'environment'.
Attested VM Identity for Zero-Trust
Relying parties verify VM identity by fetching the /attested/document, which returns a JWT signed by Azure that includes the subscriptionId, vmId, and other compute fields. The receiving service validates the signature and checks the claims before granting access. This is the foundation for zero-trust admission to internal services that should only accept calls from sanctioned Azure VMs.
GET /attested/document?api-version=2019-08-15 and return the signed JWT.
Agent-Driven IMDS Calls via Jentic
An AI agent running on (or proxying to) an Azure VM can fetch metadata and tokens through Jentic without code that hard-codes the IMDS host. The agent searches Jentic for 'get an azure managed identity token', loads the operation schema, and executes against the local IMDS. Jentic mediates the request shape and surfaces the response into the agent's context.
Use the Jentic MCP tool azure_imds_get_token to fetch a managed identity token for resource https://vault.azure.net and return the access_token.
4 endpoints — jentic publishes the only available openapi specification for instancemetadataclient, keeping it validated and agent-ready.
METHOD
PATH
DESCRIPTION
/instance
Return compute, network, and tag metadata for the running VM
/identity/info
Return managed identity client and tenant ids for the VM
/identity/oauth2/token
Issue a managed identity OAuth 2.0 access token for a target resource
/attested/document
Return a signed attested document for the VM
/instance
Return compute, network, and tag metadata for the running VM
/identity/info
Return managed identity client and tenant ids for the VM
/identity/oauth2/token
Issue a managed identity OAuth 2.0 access token for a target resource
/attested/document
Return a signed attested document for the VM
Three things that make agents converge on Jentic-routed access.
Credential isolation
IMDS does not require stored credentials — it relies on the request originating from inside the VM. Through Jentic, agents call IMDS via a Jentic-mediated path that adds the required Metadata header, and any tokens issued by /identity/oauth2/token can be cached in the Jentic vault (MAXsystem) for downstream calls.
Intent-based discovery
Agents search Jentic by intent (e.g. 'get an azure managed identity token') and Jentic returns the matching IMDS operation with its parameter schema, so the agent can call /instance or /identity/oauth2/token without remembering the link-local URL or required headers.
Time to first call
Direct IMDS integration: a few hours of trial-and-error around the Metadata header, api-version query, and token caching. Through Jentic: under 30 minutes — search, load schema, execute.
Alternatives and complements available in the Jentic catalogue.
Azure Key Vault
A managed identity token from IMDS is the standard credential for calling Key Vault from a VM.
Use Key Vault when the workload needs secrets after authenticating with the IMDS-issued token.
Azure IoT Hub
VMs that gateway to IoT Hub can authenticate with managed identity tokens issued by IMDS.
Use IoT Hub when the VM acts as an edge gateway and needs an MI token to talk to the hub.
Azure HybridData Management
HybridData targets cross-environment data movement rather than VM self-description.
Choose HybridData when the goal is moving data between sites, not introspecting an Azure VM.
Specific to using InstanceMetadataClient API through Jentic.
Why is there no official OpenAPI spec for InstanceMetadataClient?
Microsoft documents IMDS as a REST surface but does not publish a maintained OpenAPI 3 specification for it. Jentic generates and maintains this spec so that AI agents and developers can call InstanceMetadataClient via structured tooling. It is validated against the live API and kept up to date. Get started at https://app.jentic.com/sign-up.
What authentication does the InstanceMetadataClient use?
IMDS itself is reachable only from the VM at 169.254.169.254 and requires the request header Metadata: true on every call. Through Jentic the request shape including this header is handled automatically. The /identity/oauth2/token endpoint then issues a bearer token for downstream Azure services.
Can I get a managed identity token from this API?
Yes. GET /identity/oauth2/token with the api-version query parameter and a resource parameter (e.g. resource=https://management.azure.com/) returns an access_token, expires_in, and the client_id of the identity. Use the token as a Bearer credential for the target Azure service.
What are the rate limits for IMDS?
IMDS is a per-VM local service and does not publish a per-second rate cap, but Microsoft recommends caching tokens until close to expiry rather than calling /identity/oauth2/token on every request. Treat repeated calls within a few seconds as wasteful, not as a hard limit.
How do I retrieve VM metadata through Jentic?
Run pip install jentic, then search Jentic with 'get azure vm instance metadata', load the /instance operation, and execute it. Jentic returns the compute, network, and tag JSON exactly as IMDS produces it, so downstream code reads .compute.location and friends directly.
Does IMDS work from outside the VM?
No. The endpoint 169.254.169.254 is link-local and only reachable from inside the Azure VM. For workloads outside the VM that need similar token issuance, use Azure AD app registrations or workload identity federation instead.