Skip to main content
Glama
Amaretto-Software-Labs

AI Admin API MCP Server

AI Admin API MCP Server

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.

Related MCP server: openai-usage-mcp

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/ai-admin-api-mcp@0.0.1 --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:static

  • credential:anthropic:static

  • credential:elevenlabs:static

  • credential:openrouter:static

  • credential:openrouter:management

  • credential: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_providers

  • ai_admin_query_usage

  • ai_admin_query_costs

  • ai_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_usage

  • openai_admin_query_costs

  • openai_admin_list_projects

  • openai_admin_list_users

  • openai_admin_list_project_api_keys

  • openai_admin_query_dashboard_bundle

Anthropic tools:

  • anthropic_admin_get_organization

  • anthropic_admin_list_workspaces

  • anthropic_admin_list_api_keys

  • anthropic_admin_query_messages_usage

  • anthropic_admin_query_costs

  • anthropic_admin_query_dashboard_bundle

ElevenLabs tools:

  • elevenlabs_admin_get_user

  • elevenlabs_admin_get_subscription

  • elevenlabs_admin_list_service_accounts

  • elevenlabs_admin_list_service_account_api_keys

  • elevenlabs_admin_list_audit_logs

  • elevenlabs_admin_list_api_requests

  • elevenlabs_admin_query_usage

  • elevenlabs_admin_query_dashboard_bundle

OpenRouter tools:

  • openrouter_admin_get_current_key

  • openrouter_admin_list_api_keys

  • openrouter_admin_get_api_key

  • openrouter_admin_get_credits

  • openrouter_admin_get_activity

  • openrouter_admin_get_analytics_meta

  • openrouter_admin_query_analytics

  • openrouter_admin_get_generation

  • openrouter_admin_list_models

  • openrouter_admin_query_usage

  • openrouter_admin_query_costs

  • openrouter_admin_query_dashboard_bundle

Resources and Prompts

Resources:

  • ai-admin://providers

  • ai-admin://providers/{provider}/capabilities

  • ai-admin://schema/provider-capability-v1

  • ai-admin://schema/usage-fact-v1

  • ai-admin://schema/cost-fact-v1

  • ai-admin://schema/dashboard-bundle-v1

  • openai-admin://capabilities

  • anthropic-admin://capabilities

  • elevenlabs-admin://capabilities

  • openrouter-admin://capabilities

External provider plugins can register their own tools and resources.

Prompts:

  • build_usage_dashboard

  • investigate_cost_spike

  • export_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 speed usage filters/groupings require ANTHROPIC_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 as openrouter_credit until 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 to latest.

  • publish-to-npm: set to true to publish @amaretto-software-labs/ai-admin-api-mcp to 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.

Available Tools

4 tools
ai_admin_list_providersA
Read-only

List enabled providers, health, configured reporting surfaces, and known limitations.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint: true and openWorldHint: false, so the safety profile is covered. The description adds value by disclosing the specific content returned (health, reporting surfaces, known limitations), which goes beyond the raw annotations. However, it does not describe output format, pagination, or any other behavioral traits, so it meets the baseline but doesn't exceed it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that conveys all essential information without wasted words. It is appropriately concise and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter, read-only listing tool, the description is fairly complete. It enumerates the included content: enabled providers, health, configured reporting surfaces, and known limitations. There is no output schema, so the description carries the burden of explaining what is returned, which it does sufficiently. A minor gap is not mentioning whether disabled providers are omitted or if any filtering is needed, but the phrase 'enabled providers' clarifies the scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, and the input schema is an empty object. The baseline for 0 params is 4, and there is nothing for the description to explain. The description adds no parameter info, but none is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'List' and identifies the resource 'providers' with clear scope: enabled providers, health, configured reporting surfaces, and known limitations. This clearly distinguishes it from sibling tools like ai_admin_query_usage, ai_admin_query_costs, and ai_admin_query_dashboard_bundle, which focus on usage/costs/dashboards rather than provider status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for checking enabled providers and their health, but it does not explicitly state when to use this tool versus the alternatives (e.g., 'use ai_admin_query_usage for usage data'). There is no exclusion or alternative guidance beyond the resource name itself. The context signals from sibling names help, but the description does not articulate when this is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ai_admin_query_costsA
Read-only

Query normalized cost facts from one or more enabled providers. Pass provider-specific options under provider_options[provider_id].

ParametersJSON Schema
NameRequiredDescriptionDefault
endYes
startYes
providersNo
include_rawNo
credential_refsNo
provider_optionsNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as read-only and open-world, so the description's main contribution is noting that it queries 'normalized' cost facts and works with 'enabled' providers. This adds a bit of context but doesn't disclose behaviors like credential requirements, result shape, or rate limits, so it does not go far beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that get straight to the point, front-loading the action and purpose without any filler. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having six parameters, nested objects, and no output schema, the description is minimal and omits important context such as how cost facts are returned, what 'normalized' entails, how multiple providers are specified, and how credentials are handled. This leaves the agent under-informed for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description only references provider_options, one of six parameters. The schema coverage is 0%, but the description does not explain the meaning of start, end, providers, include_raw, or credential_refs, so it fails to compensate for the sparse schema semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action and resource: 'query normalized cost facts' from 'enabled providers.' This distinguishes it from sibling tools that list providers, query usage, or fetch dashboard bundles, making the tool's purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is for querying cost data and instructs how to pass provider-specific options, but it does not explicitly state when to prefer this over the sibling tools or any exclusions. There is no mention of alternatives or when-not-to-use, so guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ai_admin_query_dashboard_bundleA
Read-only

Build dashboard bundles across one or more enabled providers. Pass provider-specific options under provider_options[provider_id].

ParametersJSON Schema
NameRequiredDescriptionDefault
endNo
startNo
top_nNo
providersNo
bucket_widthNo1d
credential_refsNo
include_metadataNo
provider_optionsNo

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is known. The description adds the provider_options structure and 'enabled providers' scope, but does not disclose output format, pagination, or behavior when no providers are specified. With annotations covering the core safety traits, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, both front-loaded with the primary purpose then a key parameter detail. No wasted words—every sentence carries useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters, nested objects, and no output schema, the description is too sparse. It explains only the provider_options nesting and the cross-provider scope. Most parameters are undocumented, and the return shape is unknown. For a tool of this complexity, the description is incomplete and leaves substantial gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds meaningful explanation for provider_options (provider_options[provider_id]) and implies providers refers to enabled providers, but leaves start, end, top_n, bucket_width, credential_refs, and include_metadata unexplained. Some value is added, but not sufficient for full compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'build' and resource 'dashboard bundles', with a specific scope of 'across one or more enabled providers'. It distinguishes itself from sibling tools like query_usage and query_costs by emphasizing bundling across providers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: this tool is for building aggregated dashboard bundles across multiple providers. It implies usage for multi-provider scenarios, but does not explicitly mention alternatives or exclusion criteria. The sibling names hint at alternatives, but the description itself lacks a when-not-to-use statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ai_admin_query_usageA
Read-only

Query normalized usage facts from one or more enabled providers. Pass provider-specific options under provider_options[provider_id].

ParametersJSON Schema
NameRequiredDescriptionDefault
endYes
startYes
providersNo
include_rawNo
bucket_widthNo1d
credential_refsNo
provider_optionsNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safe read-only nature is covered. The description adds context about passing provider-specific options via provider_options[provider_id], but does not disclose rate limits, pagination, or return format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, each earning its place. The first states the purpose; the second gives a direct usage tip. No redundant wording or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters, nested objects, no output schema), the description is too sparse. It omits critical context about the date range, provider selection, raw data inclusion, bucket widths, credential references, and expected response shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description only explains provider_options. The other six parameters (start, end, providers, include_raw, bucket_width, credential_refs) remain completely undocumented, leaving the agent without guidance on their meaning or usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Query' and the resource 'normalized usage facts' from 'one or more enabled providers', which is specific and distinguishes it from sibling tools like query_costs and query_dashboard_bundle.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies its use for querying usage data but does not explicitly contrast it with alternatives or state when not to use it. No exclusions or alternative tool references are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 4 tool updatesv0.0.1
    • First observedai_admin_list_providers
    • First observedai_admin_query_costs
    • First observedai_admin_query_dashboard_bundle
    • First observedai_admin_query_usage

TDQS

A4/5.0
Disambiguation5/5

Each tool targets a distinct concern: listing providers, querying usage, querying costs, and querying dashboard bundles. The descriptions make clear boundaries between them, and the dashboard bundle is a combined view rather than overlapping the individual queries.

Naming Consistency5/5

All tool names follow the same verb_noun pattern with a consistent 'ai_admin' prefix. The verbs are distinct and appropriately chosen for their actions, and the naming is uniform and predictable.

Tool Count5/5

With 4 tools, the server is well-scoped for its purpose. Each tool fulfills a necessary role in the admin/query domain, and the count is neither too thin nor excessive.

Completeness4/5

The tools cover the core read-side needs for AI administration: listing providers and querying usage, costs, and dashboards. However, there are no write or management operations (e.g., enabling/disabling providers), which could be considered a gap for a full admin API, though it's acceptable for a monitoring-focused server.

Maintenance

ActivityStale
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    An MCP server for unified cost tracking and analysis across AWS, OpenAI, and Anthropic. It enables users to query expenditures, compare costs across providers, and analyze usage trends through natural language.
    10
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for querying OpenAI usage and cost data, including spend summaries, daily breakdowns, month-over-month comparisons, and token usage by model.
    3
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    A read-only MCP server that enables AI agents to act as GCP platform engineers, allowing them to investigate incidents, take inventory, and find cost-optimization opportunities in Google Cloud projects without mutating any infrastructure.
    16
    2
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Amaretto-Software-Labs/ai-admin-api-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server