Query and manage Microsoft Graph and Azure Resource Manager APIs from MCP clients.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add lokka --env CLIENT_ID='<CLIENT_ID>' --env CLIENT_SECRET='<CLIENT_SECRET>' --env TENANT_ID='<TENANT_ID>' -- npx -y @merill/lokka~/.codex/config.toml
[mcp_servers.lokka]
command = "npx"
args = ["-y", "@merill/lokka"]
env = { CLIENT_ID = "<CLIENT_ID>", CLIENT_SECRET = "<CLIENT_SECRET>", TENANT_ID = "<TENANT_ID>" }
# codex mcp add lokka --env CLIENT_ID='<CLIENT_ID>' --env CLIENT_SECRET='<CLIENT_SECRET>' --env TENANT_ID='<TENANT_ID>' -- npx -y @merill/lokka~/.cursor/mcp.json
{
"mcpServers": {
"lokka": {
"command": "npx",
"args": [
"-y",
"@merill/lokka"
],
"env": {
"CLIENT_ID": "<CLIENT_ID>",
"CLIENT_SECRET": "<CLIENT_SECRET>",
"TENANT_ID": "<TENANT_ID>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"lokka": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@merill/lokka"
],
"env": {
"CLIENT_ID": "<CLIENT_ID>",
"CLIENT_SECRET": "<CLIENT_SECRET>",
"TENANT_ID": "<TENANT_ID>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"lokka": {
"command": "npx",
"args": [
"-y",
"@merill/lokka"
],
"env": {
"CLIENT_ID": "<CLIENT_ID>",
"CLIENT_SECRET": "<CLIENT_SECRET>",
"TENANT_ID": "<TENANT_ID>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"lokka": {
"command": "npx",
"args": [
"-y",
"@merill/lokka"
],
"env": {
"CLIENT_ID": "<CLIENT_ID>",
"CLIENT_SECRET": "<CLIENT_SECRET>",
"TENANT_ID": "<TENANT_ID>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"lokka": {
"command": "npx",
"args": [
"-y",
"@merill/lokka"
],
"env": {
"CLIENT_ID": "<CLIENT_ID>",
"CLIENT_SECRET": "<CLIENT_SECRET>",
"TENANT_ID": "<TENANT_ID>"
}
}
}
}Environment variables
CLIENT_IDCLIENT_SECRETTENANT_ID
Replace the placeholders with your own credentials and keep them out of version control.