AI Admin API Server
FreeNot checkedA read-only MCP server for querying AI provider administration APIs, providing normalized usage, cost, and dashboard data for OpenAI and Anthropic.
About
A read-only MCP server for querying AI provider administration APIs, providing normalized usage, cost, and dashboard data for OpenAI and Anthropic.
README
Read-only MCP server for querying AI provider administration APIs and returning normalized usage, cost, and dashboard data.
Status
Built-in providers:
- OpenAI Admin API usage, costs, projects, users, and project API keys.
- Anthropic Admin API organization metadata, workspaces, API keys, messages usage, and costs.
- ElevenLabs workspace credit usage analytics, API request analytics, audit logs, user/subscription metadata, service accounts, and service-account API keys.
- OpenRouter management-key analytics, recent activity, credits, API key metadata, generation metadata, and model pricing metadata.
Planned providers:
- Google Cloud Billing export through BigQuery. This provider is not implemented yet. When it ships, release notes must state that direct BigQuery billing export queries can incur Google Cloud query costs.
All MCP tools are read-only. The server does not expose provider mutation tools.
External provider plugins can be loaded at startup with AI_ADMIN_PROVIDER_PLUGINS. See Provider Plugins.
Tech Stack
- Node.js 22+
- TypeScript
- pnpm
@modelcontextprotocol/sdk- Zod input schemas
- Vitest
Quick Start
Run the published package with npx:
OPENAI_ADMIN_KEY=sk-admin-... \
ANTHROPIC_ADMIN_KEY=sk-ant-admin-... \
ELEVENLABS_API_KEY=xi-... \
OPENROUTER_MANAGEMENT_KEY=or-mgmt-... \
npx @amaretto-software-labs/ai-admin-api-mcp --stdio
Pin a specific published version:
npx @amaretto-software-labs/[email protected] --stdio
For local repo development:
pnpm install
pnpm check
pnpm test
Run over STDIO:
OPENAI_ADMIN_KEY=sk-admin-... \
ANTHROPIC_ADMIN_KEY=sk-ant-admin-... \
ELEVENLABS_API_KEY=xi-... \
OPENROUTER_MANAGEMENT_KEY=or-mgmt-... \
pnpm start:stdio
Run over Streamable HTTP:
OPENAI_ADMIN_KEY=sk-admin-... \
ANTHROPIC_ADMIN_KEY=sk-ant-admin-... \
ELEVENLABS_API_KEY=xi-... \
OPENROUTER_MANAGEMENT_KEY=or-mgmt-... \
MCP_HTTP_AUTH_TOKEN=local-proxy-token \
pnpm start:http
HTTP listens on http://127.0.0.1:8787/mcp. Pass --unsafe-local-http only for local development where another process already protects the endpoint.
Run the gateway-compatible local HTTPS endpoint with a local development certificate:
OPENAI_ADMIN_KEY=sk-admin-... \
ANTHROPIC_ADMIN_KEY=sk-ant-admin-... \
ELEVENLABS_API_KEY=xi-... \
OPENROUTER_MANAGEMENT_KEY=or-mgmt-... \
MCP_HTTP_AUTH_TOKEN=local-proxy-token \
MCP_HTTPS_CERT_PATH=/path/to/localhost.pem \
MCP_HTTPS_KEY_PATH=/path/to/localhost.key \
pnpm start:https
HTTPS listens on https://127.0.0.1:8787/mcp.
Use the published package for Streamable HTTP or HTTPS by passing the same flags to npx:
MCP_HTTP_AUTH_TOKEN=local-proxy-token \
OPENAI_ADMIN_KEY=sk-admin-... \
ANTHROPIC_ADMIN_KEY=sk-ant-admin-... \
ELEVENLABS_API_KEY=xi-... \
OPENROUTER_MANAGEMENT_KEY=or-mgmt-... \
npx @amaretto-software-labs/ai-admin-api-mcp --http --port 8787
MCP_HTTP_AUTH_TOKEN=local-proxy-token \
OPENAI_ADMIN_KEY=sk-admin-... \
ANTHROPIC_ADMIN_KEY=sk-ant-admin-... \
ELEVENLABS_API_KEY=xi-... \
OPENROUTER_MANAGEMENT_KEY=or-mgmt-... \
MCP_HTTPS_CERT_PATH=/path/to/localhost.pem \
MCP_HTTPS_KEY_PATH=/path/to/localhost.key \
npx @amaretto-software-labs/ai-admin-api-mcp --https --port 8787
Configuration
| Variable | Required | Description |
|---|---|---|
AI_ADMIN_ENABLED_PROVIDERS |
No | Comma-separated provider ids. If omitted, loaded provider plugins may infer enablement from config/credentials. |
AI_ADMIN_PROVIDER_PLUGINS |
No | Comma-separated trusted ESM module specifiers, paths, or file: URLs for external provider plugins. |
AI_ADMIN_REQUIRED_PROVIDERS |
No | Comma-separated providers that must be enabled and report configured status at startup. |
AI_ADMIN_CREDENTIAL_MODE |
No | Only static is implemented in this runtime build. pass_through and hybrid are documented gateway contracts and fail fast. |
OPENAI_ADMIN_KEY |
OpenAI static mode | OpenAI Admin API key. |
OPENAI_BASE_URL |
No | Override for tests or compatible OpenAI Admin API gateways. Defaults to https://api.openai.com/v1. |
ANTHROPIC_ADMIN_KEY |
Anthropic static mode | Anthropic Admin API key, sent as x-api-key. |
ANTHROPIC_OAUTH_TOKEN |
Anthropic static mode | Optional Anthropic OAuth bearer token with admin scope. |
ANTHROPIC_BASE_URL |
No | Override for tests or compatible Anthropic Admin API gateways. Defaults to https://api.anthropic.com/v1. |
ANTHROPIC_VERSION |
No | Anthropic API version. Defaults to 2023-06-01. |
ANTHROPIC_BETA |
No | Comma-separated Anthropic beta headers, for example fast-mode-2026-02-01. |
ELEVENLABS_API_KEY |
ElevenLabs static mode | ElevenLabs API key, sent as xi-api-key. |
ELEVENLABS_BASE_URL |
No | Override for tests or compatible ElevenLabs API gateways. Defaults to https://api.elevenlabs.io/v1. |
OPENROUTER_MANAGEMENT_KEY |
OpenRouter aggregate reporting | OpenRouter management key, sent as bearer auth. Required for credits, activity, analytics, and API key metadata. |
OPENROUTER_API_KEY |
Optional OpenRouter static mode | OpenRouter API key for current-key, generation, and model metadata when no management key is configured. |
OPENROUTER_BASE_URL |
No | Override for tests or compatible OpenRouter API gateways. Defaults to https://openrouter.ai/api/v1. |
OPENROUTER_HTTP_REFERER |
No | Optional OpenRouter HTTP-Referer attribution header. |
OPENROUTER_APP_TITLE |
No | Optional OpenRouter X-Title attribution header. |
MCP_HTTP_AUTH_TOKEN |
HTTP mode | Bearer token required by the MCP HTTP endpoint unless unsafe local mode is used. |
MCP_HTTPS_CERT_PATH |
HTTPS mode | PEM certificate path for local HTTPS. |
MCP_HTTPS_KEY_PATH |
HTTPS mode | PEM private-key path for local HTTPS. |
MCP_CACHE_TTL_SECONDS |
No | Dashboard bundle cache TTL in seconds. Metadata list tools cache for 300 seconds. Defaults to 60. |
MCP_USER_AGENT |
No | Optional user agent context for future outbound request metadata. |
Credentials
Provider credentials must come from environment variables or an external host secret integration. They must never be sent as normal MCP tool arguments.
In v0.1 static mode, these credential refs are accepted:
credential:openai:staticcredential:anthropic:staticcredential:elevenlabs:staticcredential:openrouter:staticcredential:openrouter:managementcredential:openrouter:api
Omit credential_ref to use the static provider credential. Unknown refs are rejected.
Pass-through and broker modes are deployment contracts for an operator-supplied gateway. The gateway, credential store, tenant policy, audit layer, and envelope signing are outside this runtime build. See pass-through gateway docs.
Tools
Common tools:
ai_admin_list_providersai_admin_query_usageai_admin_query_costsai_admin_query_dashboard_bundle
Common query tools accept provider-specific arguments under provider_options[provider_id]:
{
"providers": ["openai"],
"provider_options": {
"openai": {
"usage_endpoint": "images",
"group_by": ["project_id", "model"]
}
},
"start": "2026-06-01T00:00:00Z",
"end": "2026-06-02T00:00:00Z",
"bucket_width": "1d"
}
OpenAI tools:
openai_admin_query_usageopenai_admin_query_costsopenai_admin_list_projectsopenai_admin_list_usersopenai_admin_list_project_api_keysopenai_admin_query_dashboard_bundle
Anthropic tools:
anthropic_admin_get_organizationanthropic_admin_list_workspacesanthropic_admin_list_api_keysanthropic_admin_query_messages_usageanthropic_admin_query_costsanthropic_admin_query_dashboard_bundle
ElevenLabs tools:
elevenlabs_admin_get_userelevenlabs_admin_get_subscriptionelevenlabs_admin_list_service_accountselevenlabs_admin_list_service_account_api_keyselevenlabs_admin_list_audit_logselevenlabs_admin_list_api_requestselevenlabs_admin_query_usageelevenlabs_admin_query_dashboard_bundle
OpenRouter tools:
openrouter_admin_get_current_keyopenrouter_admin_list_api_keysopenrouter_admin_get_api_keyopenrouter_admin_get_creditsopenrouter_admin_get_activityopenrouter_admin_get_analytics_metaopenrouter_admin_query_analyticsopenrouter_admin_get_generationopenrouter_admin_list_modelsopenrouter_admin_query_usageopenrouter_admin_query_costsopenrouter_admin_query_dashboard_bundle
Resources and Prompts
Resources:
ai-admin://providersai-admin://providers/{provider}/capabilitiesai-admin://schema/provider-capability-v1ai-admin://schema/usage-fact-v1ai-admin://schema/cost-fact-v1ai-admin://schema/dashboard-bundle-v1openai-admin://capabilitiesanthropic-admin://capabilitieselevenlabs-admin://capabilitiesopenrouter-admin://capabilities
External provider plugins can register their own tools and resources.
Prompts:
build_usage_dashboardinvestigate_cost_spikeexport_finance_report
Provider Notes
- OpenAI usage endpoints have endpoint-specific filters, groupings, and metrics. Unsupported parameters are rejected before any provider call.
- Anthropic costs are reported in minor units and normalized to USD major units. Priority Tier costs are not included in the Anthropic cost endpoint.
- Anthropic
speedusage filters/groupings requireANTHROPIC_BETA=fast-mode-2026-02-01. - ElevenLabs workspace analytics reports credit usage. The provider exposes
credit_count; provider-reported monetary cost is not available from the implemented endpoint. - OpenRouter aggregate reporting requires
OPENROUTER_MANAGEMENT_KEY. Analytics metadata/query endpoints are beta, activity is limited to the provider-supported completed UTC-day window, and generation metadata is a point lookup. OpenRouter spend values are normalized asopenrouter_credituntil USD semantics are confirmed. - Google Cloud Billing support is planned only. BigQuery queries against billing export tables can be cost-bearing.
MCP Client Example
{
"mcpServers": {
"ai-admin-api": {
"command": "pnpm",
"args": ["--dir", "/absolute/path/to/ai-admin-api-mcp", "start:stdio"],
"env": {
"OPENAI_ADMIN_KEY": "sk-admin-...",
"ANTHROPIC_ADMIN_KEY": "sk-ant-admin-...",
"ELEVENLABS_API_KEY": "xi-...",
"OPENROUTER_MANAGEMENT_KEY": "or-mgmt-..."
}
}
}
}
Docker
docker build -t ai-admin-api-mcp .
docker run --rm -p 8787:8787 \
-e OPENAI_ADMIN_KEY \
-e ANTHROPIC_ADMIN_KEY \
-e ELEVENLABS_API_KEY \
-e OPENROUTER_MANAGEMENT_KEY \
-e MCP_HTTP_AUTH_TOKEN \
ai-admin-api-mcp
The Docker image starts Streamable HTTP mode by default.
Development
pnpm check
pnpm test
pnpm test:live:openai
pnpm test:live:anthropic
pnpm test:live:openrouter
Live tests are skipped unless provider credentials are present.
Release
The Build and Publish GitHub Actions workflow runs pnpm check and pnpm test on pushes and pull requests targeting main.
Releases are manual through Actions -> Build and Publish -> Run workflow on main.
Inputs:
package-version: optional SemVer override. If omitted, the workflow uses the committed package version.npm-tag: npm dist-tag to use when publishing. Defaults tolatest.publish-to-npm: set totrueto publish@amaretto-software-labs/ai-admin-api-mcpto npm after the release is created.
The release job aligns the @amaretto-software-labs/ai-admin-api-mcp package version in the runner, rebuilds and tests the package, packs one npm tarball, pushes a v<package-version> git tag, creates a GitHub Release with the packed artifact, and optionally publishes @amaretto-software-labs/ai-admin-api-mcp to npm using trusted publishing. Configure npm trusted publishing for this repository and package before enabling publish-to-npm.
Install AI Admin API Server in Claude Desktop, Claude Code & Cursor
unyly install ai-admin-api-mcp-serverInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add ai-admin-api-mcp-server -- npx -y @amaretto-software-labs/ai-admin-api-mcpFAQ
Is AI Admin API Server MCP free?
Yes, AI Admin API Server MCP is free — one-click install via Unyly at no cost.
Does AI Admin API Server need an API key?
No, AI Admin API Server runs without API keys or environment variables.
Is AI Admin API Server hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install AI Admin API Server in Claude Desktop, Claude Code or Cursor?
Open AI Admin API Server on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzCompare AI Admin API Server with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
