Skip to main content
Glama

NexaLayer Agent

NexaLayer MCP Server — a Model Context Protocol (MCP) server that lets AI agents create and manage proxy sessions with budget guardrails.

The MCP implementation is in mcp/, with its source entry point at mcp/src/index.ts. The published package builds that file to the runtime entry path mcp/dist/index.js.

Current public starting prices are $0.23/GB for dynamic proxy sessions and $1.05/month for shared static proxy sessions. Exclusive static proxy sessions are $1.43–$5.86/month (launch pricing, live API authoritative). Query GET /v1/public/products or the authenticated product catalog for the current, authoritative quote and availability before creating a paid session.

MCP Server

Install

Run the published stdio server with npm:

npx -y @nexalayer/mcp

Or build and run the existing Docker image from the repository root:

docker build -t nexalayer-mcp ./mcp
docker run -i --rm \
  -e NEXALAYER_API_KEY="$NEXALAYER_API_KEY" \
  nexalayer-mcp

The Docker image uses stdio and does not expose a port.

Configure

Set NEXALAYER_API_KEY for API-backed tool calls. The server can start and expose initialize and tools/list without a key so MCP clients and directories can discover its capabilities. NEXALAYER_BASE_URL is an optional override.

Claude Desktop and Cursor both accept an mcpServers configuration like this:

{
  "mcpServers": {
    "nexalayer": {
      "command": "npx",
      "args": ["-y", "@nexalayer/mcp"],
      "env": {
        "NEXALAYER_API_KEY": "agk_your_key"
      }
    }
  }
}

Tools

Tool

Description

Charges

nexalayer_list_products

List the compact, paginated catalog of available proxy products and current prices.

No

nexalayer_create_session

Create a dynamic or static proxy session with an idempotency key. The create API does not honor include_credentials and omits proxy credentials. PRICE_MISMATCH (409): re-read prices, retry once. BUDGET_EXCEEDED and INSUFFICIENT_BALANCE (402): ask the owner, don't retry.

Yes — deducts from the account balance

nexalayer_get_session

Read one session. Credentials are omitted unless include_credentials=true; never log them.

No

nexalayer_rotate_session

Rotate a dynamic session when health or telemetry recommends it. Credentials are omitted unless include_credentials=true; never log them.

May affect paid usage

nexalayer_terminate_session

Terminate a session and release its network resource; early termination does not imply a refund.

No new charge

nexalayer_session_health

Read a session health score and rotation recommendation.

No

nexalayer_session_usage

Read traffic and request usage for a session.

No

nexalayer_get_budget

Read spend limits, current spend, pause state, and daily reset.

No

nexalayer_set_budget

Set API-key and daily spend limits, alerts, and pause behavior.

No direct charge

nexalayer_usage_alerts

Read actionable budget-threshold alerts.

No

nexalayer_get_balance

Read the account balance and trial-credit state.

No

nexalayer_list_transactions

List billing transactions for audit and reconciliation.

No

nexalayer_check_status

Check component status and incidents before retrying or filing a ticket.

No

nexalayer_known_issues

List known issues with runnable workaround steps, filtered by error code.

No

nexalayer_report_issue

File a support ticket; recent request ids and error codes are attached automatically.

No

nexalayer_get_ticket

Read a ticket's status, severity, events, and workaround.

No

Transport: stdio.

See the mcp/ package README for packaging, Docker, pricing, and approval-policy details.

Related MCP server: Agentic Vault

Backend API

The repository also contains the Agent Layer backend for NexaLayer, the Network Execution Layer for AI Agents.

This service exposes API-first capabilities for AI Agent, Playwright, Puppeteer, Browser-use, crawler, and automation workflows:

  • Agent account registration and API key authentication

  • Dynamic and static proxy session lifecycle management

  • Session telemetry, health scoring, and rotation recommendations

  • Billing, balance, recharge, transaction, and usage-facing endpoints

  • Natural-language agent routes for controlled proxy network operations

Local Development

npm install
cp .env.example .env
npm run db:generate
npm run dev

Useful Commands

npm run build
npm run lint
npm run test:unit
npm test
npm run test:phase0
npm run test:phase0:real
npm run test:phase0:static
npm run test:smoke

npm run test:phase0 is the safe profile. It validates registration, API key auth, product listing, balance, and transactions without creating a paid proxy session.

npm run test:phase0:real sets PHASE0_ALLOW_PAID=1 and creates one low-volume dynamic session, polls until active, explicitly requests credentials with include_credentials=true, checks proxy.full_url, reports telemetry, reads health and billing, then terminates the session in a cleanup step. Use NEXALAYER_PRODUCT_NO, PHASE0_QUANTITY, and PHASE0_PRINT_PROXY_URL=1 when you need a specific product or need to inspect the returned proxy URL.

npm run test:phase0:static creates one minimal static session, polls for proxy info, reports telemetry, reads health and billing, then terminates the session and releases the static resource. It is a paid smoke profile and should only be used in controlled environments.

The broader npm run test:smoke suite may create real Agent accounts, proxy sessions, orders, or billing records depending on environment configuration. Review docs/agentTest.md and the target environment before running it.

Session detail and rotation responses hide proxy.full_url by default. Send include_credentials=true only when the caller needs to connect, and never log the returned credentials. nexalayer_get_session and nexalayer_rotate_session pass that flag through. POST /sessions does not honor it, so nexalayer_create_session omits proxy credentials; read the session after it is active. Read measured traffic from GET /v1/sessions/{session_id}/usage. Unknown product numbers return HTTP 404 with PRODUCT_NOT_FOUND. PRICE_MISMATCH is HTTP 409: re-read prices, retry once. BUDGET_EXCEEDED and INSUFFICIENT_BALANCE are HTTP 402: ask the owner, don't retry.

Support (machine-readable)

API errors use an additive envelope: code, message, and details are unchanged, plus retryable, retry_after, suggested_action, side_effects, doc_url, known_issue_id, request_id, and a support contact. MCP tools return the same object in structuredContent with isError: true.

  • GET /v1/public/status: components, current state, and incident history (no key)

  • GET /v1/public/known-issues: known issues with workaround steps (no key)

  • GET /v1/public/errors and /v1/public/errors/{code}: error catalog (no key)

  • GET /v1/public/sla: early-access response targets, not guarantees (no key)

  • POST /v1/support/tickets, GET /v1/support/tickets/{ticket_id}: tickets scoped to the API key

Human contact: support@nexalayer.net (Telegram @LEWISMIN). If the upstream is down during terminate, billing stops at the first terminate attempt. See docs/SUPPORT.md for triage, response targets, alerts, and environment variables.

Chinese Docs and Examples

NexaLayer is not a raw proxy IP service. The Chinese MVP documentation presents it as a session-based network execution layer for Playwright, Puppeteer, Browser-use, AI browser agents, crawlers, and automation workflows.

Available Tools

16 tools
nexalayer_check_statusA
Read-onlyIdempotent

Check NexaLayer service status before retrying or filing a ticket. Returns each component (api, sessions, billing, catalog, upstream_network) as operational, degraded_performance, partial_outage, major_outage, or under_maintenance, plus active incidents and recent incident history. If the component your call depends on is not operational, wait and retry later instead of reporting an issue. No API key needed; no charge.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover readOnly, idempotent, and non-destructive, so the description's job is lower. It adds genuinely useful operational context beyond them: no API key required, no charge, and the correct behavioral response to a non-operational component. It does not mention caching, rate limits, or freshness of incident history.

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

Conciseness4/5

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

Four sentences, front-loaded with purpose, then return shape, then the decision rule, then the access/cost note. All content earns its place, though the full enum enumeration is slightly long and the closing 'No API key needed; no charge' could be folded in.

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

Completeness5/5

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

With no output schema and no parameters, the description carries the return-value burden itself and does so: component names, the five possible statuses, and incident data. Combined with annotations covering the safety profile, an agent has everything needed to call and interpret this tool correctly.

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 takes zero parameters, so the baseline is 4 per the rubric. The description correctly implies a no-argument invocation via "No API key needed; no charge" and adds no misleading parameter hints.

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?

States a specific verb and resource ("Check NexaLayer service status") and enumerates exactly what comes back: per-component states (api, sessions, billing, catalog, upstream_network), active incidents, and incident history. The enum vocabulary and the 'wait and retry later instead of reporting an issue' framing implicitly separate it from report_issue and known_issues siblings.

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?

Gives clear when-to-use context ("before retrying or filing a ticket") and a concrete when-not action ("wait and retry later instead of reporting an issue"), which routes the agent away from report_issue. It stops short of naming the sibling tools explicitly, so it is a strong 4 rather than a 5.

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

nexalayer_create_sessionA
Idempotent

Create a paid network session. This action incurs charges against the account balance. Configure a budget first and obtain owner approval for autonomous spend. The create API does not honor include_credentials and omits proxy credentials; read the session with include_credentials=true. Credentials are omitted unless include_credentials=true; never log them. PRICE_MISMATCH (409: re-read prices, retry once). BUDGET_EXCEEDED and INSUFFICIENT_BALANCE (402: ask the owner, don't retry).

NameRequiredDescriptionDefault
durationNo
protocolNosocks5
quantityNo
product_noYes
country_codeNo
session_typeYes
idempotency_keyYes

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly=false, destructive=false, idempotent=true, openWorld=true), and the description adds material context beyond them: monetary charges against account balance, approval requirements, credential handling ('never log them'), and failure-mode semantics for 402/409. The idempotency_key requirement is consistent with idempotentHint=true.

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

Conciseness4/5

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

The purpose and cost warning are front-loaded, and the error-code guidance is compact and scannable. There is mild redundancy in stating the credentials/read-back rule twice, but overall nearly every clause carries operational value.

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 charged, open-world mutation with no output schema, the description covers cost, approval, credential exposure, and error handling well. The notable remaining hole is that it leaves all seven input parameters undefined, which matters given the schema's 0% description coverage.

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% across 7 parameters (session_type, product_no, idempotency_key, duration, quantity, protocol, country_code), and the description explains none of them — no units, formats, or defaults. The only parameter-like identifier mentioned, include_credentials, is not even in the input schema, so it does not compensate for the gap.

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

Purpose4/5

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

The opening sentence gives a specific verb+resource — 'Create a paid network session' — which is unmistakable against siblings like nexalayer_terminate_session, nexalayer_rotate_session, or nexalayer_get_session. It does not explicitly name an alternative tool, so it falls short of full sibling routing, but the create semantics are unambiguous.

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

Usage Guidelines5/5

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

It states prerequisites ('Configure a budget first and obtain owner approval for autonomous spend'), the create-vs-read distinction ('The create API does not honor include_credentials... read the session with include_credentials=true'), and explicit retry policy per error class (retry once on 409, do not retry on 402). This is concrete when-to-use/when-not guidance an agent can act on.

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

nexalayer_get_balanceA
Read-onlyIdempotent

Read the current account balance and trial-credit state.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is fully covered. The description adds only that the value is 'current' and that trial-credit state is included, which is mild data-content context rather than behavioral disclosure.

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?

A single front-loaded sentence with no waste, naming exactly what is read and what is included.

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-argument, read-only tool with no output schema, the description conveys the two pieces of returned information (balance and trial-credit state). The exact response shape and currency/units are unstated, but nothing needed to invoke it correctly is missing.

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 takes zero parameters, so there is nothing for the description to disambiguate; per the rubric the baseline for a no-param tool is 4.

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

Purpose4/5

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

Specific verb+resource: 'Read the current account balance and trial-credit state.' It is clearly a read of balance state, distinguishable from nexalayer_get_budget and nexalayer_list_transactions. It does not explicitly contrast itself with those siblings, so it stops short of a 5.

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

Usage Guidelines2/5

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

No when-to-use, when-not-to-use, or alternative routing is given. The description never mentions get_budget or list_transactions, so an agent must infer that this is the lightweight balance check versus the more detailed budget call.

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

nexalayer_get_budgetA
Read-onlyIdempotent

Read spend limits, current spend, pause state, and next daily reset.

NameRequiredDescriptionDefault

No parameters

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, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds the useful detail that the payload includes pause state and next daily reset timing, but says nothing about auth requirements, rate limits, or freshness of the spend figure.

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?

A single front-loaded sentence with no filler; every listed item (limits, spend, pause state, reset) is meaningful content rather than restated metadata.

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 zero-parameter read tool with full annotation coverage, the description is nearly sufficient, and since no output schema exists, enumerating the returned fields is genuinely valuable. It stops short of explaining reset cadence/format or whether the read is account- or workspace-scoped.

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 takes zero parameters, so the baseline of 4 applies. The description correctly avoids inventing parameter semantics and instead spends its words on the returned fields.

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

Purpose4/5

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

States a specific verb ("Read") and enumerates the exact resource contents returned: spend limits, current spend, pause state, and next daily reset. This clearly separates it from nexalayer_get_balance, but the description never names or contrasts a sibling, so differentiation is left to inference.

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

Usage Guidelines2/5

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

There is no statement of when to call this versus nexalayer_get_balance, nexalayer_set_budget, or nexalayer_usage_alerts, and no prerequisites or exclusions are given. An agent must infer usage purely from the resource list.

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

nexalayer_get_sessionA
Read-onlyIdempotent

Read one session's status and proxy endpoint. Credentials are omitted unless include_credentials=true; never log them.

NameRequiredDescriptionDefault
session_idYes
include_credentialsNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful context beyond that: credentials are withheld by default and gated behind include_credentials=true, plus a 'never log them' sensitivity warning that an agent would not infer from 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 tight sentences, front-loaded with the action and return content, followed by the credential caveat. Nothing wasted and no filler.

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?

With no output schema, the description usefully states what comes back (status and proxy endpoint) and conditions the credential fields. It is nearly complete for a simple two-param read tool, though a hint about session_id format or error behavior when the session is missing would close the remaining gap.

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 carry parameter meaning. It explains include_credentials (default false, credentials omitted unless true), which is the non-obvious parameter, but says nothing about session_id beyond its presence in the name/required list. Partial compensation rather than full.

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

Purpose4/5

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

States a specific verb ('Read') and resource ('one session's status and proxy endpoint'), so the agent knows this fetches a single session's details rather than listing or mutating. It does not, however, distinguish itself from nexalayer_session_health, which also reads session status, leaving ambiguity among siblings.

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?

Usage is implied: read one session's status/endpoint by id. There is no explicit when-to-use, when-not-to-use, or reference to alternatives such as nexalayer_session_health for deeper health data or nexalayer_session_usage for usage metrics.

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

nexalayer_get_ticketA
Read-onlyIdempotent

Read a NexaLayer support ticket: status (received, triaged, needs_info, in_progress, awaiting_approval, workaround_available, resolved, closed), severity, events, matched known issue with workaround steps, and resolution. Poll no sooner than next_check_after_seconds. No charge.

NameRequiredDescriptionDefault
ticket_idYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so safety is covered. The description adds value beyond that with a rate-limit instruction (next_check_after_seconds) and a cost disclosure ('No charge'), both of which are behavioral facts the annotations cannot express.

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

Conciseness4/5

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

One dense sentence that front-loads the verb and resource, followed by two short imperative sentences for polling and cost. The long status enumeration is justified since it is the payoff of the call, though it makes the first sentence heavy.

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?

With no output schema, the description correctly carries the return-value burden by naming the fields returned, including the full status enum and the known-issue/workaround pair. Only gaps are minor: no indication of what happens on an unknown ticket_id or how events are structured.

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?

Only one parameter exists and its format is constrained by the schema pattern (^tkt_[A-Za-z0-9]+$). The description does not restate or extend ticket_id semantics, but with a single trivially-named identifier the baseline for near-zero parameter complexity applies.

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?

States a specific verb ('Read') and resource ('NexaLayer support ticket') and then enumerates the payload the agent will get back (status, severity, events, known issue/workaround, resolution). This distinguishes it cleanly from siblings like nexalayer_known_issues and nexalayer_report_issue.

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?

Provides one concrete usage constraint — 'Poll no sooner than next_check_after_seconds' — which is real operational guidance. However, it says nothing about when to prefer this tool over nexalayer_known_issues or nexalayer_check_status, so alternative selection is left to inference.

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

nexalayer_known_issuesA
Read-onlyIdempotent

List known issues with machine-runnable workaround steps. Call this with the error_code from a failed tool call (for example UPSTREAM_UNAVAILABLE or BACKEND_ERROR) before filing a ticket; if an issue matches, run its workaround.steps instead of reporting. No API key needed; no charge.

NameRequiredDescriptionDefault
statusNoopen
componentNo
error_codeNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and non-open-world behaviour, so safety is covered. The description adds genuinely new behavioural context: no API-key/auth requirement, no cost, and the fact that matches yield executable workaround.steps. It stops short of describing the match semantics or response shape in detail, hence a 4 rather than 5.

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

Conciseness4/5

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

Three sentences, front-loaded with the purpose, then the invocation trigger, then the fallback action and cost note. Nothing is redundant, though the final 'No API key needed; no charge' clause is slightly tangential to selection and could be trimmed.

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 read-only, argument-light lookup tool with annotations covering the safety profile and no output schema, the description supplies the essential call trigger and the follow-up behaviour ('run its workaround.steps'). It does not explain how matching works or what the returned list contains, which leaves a modest gap for such a workflow-critical tool.

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 carries the burden, and it only clarifies one of three parameters (error_code, with example values UPSTREAM_UNAVAILABLE / BACKEND_ERROR). The enum parameter 'status', its default, and 'component' are entirely unexplained in both schema and description, so the compensation is partial.

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?

States a specific verb and resource ('List known issues') plus the distinguishing feature 'machine-runnable workaround steps', which separates it from a plain status/issue listing. It also implicitly routes against sibling report_issue via 'before filing a ticket' and 'instead of reporting', so an agent can tell what this tool is for versus its neighbours.

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

Usage Guidelines5/5

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

Gives an explicit trigger ('Call this with the error_code from a failed tool call'), the ordering constraint ('before filing a ticket'), and the alternative action when a match is found ('run its workaround.steps instead of reporting'). It even pre-empts operational concerns with 'No API key needed; no charge', leaving almost nothing to inference.

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

nexalayer_list_productsB
Read-onlyIdempotent

List a compact catalog of current products and prices before purchasing.

NameRequiredDescriptionDefault
typeNoall
limitNo
cursorNo
countryNo
in_stockNo

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds only that the catalog is 'compact' and 'current'; it says nothing about pagination via cursor, result caps, or filtering behavior.

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

Conciseness4/5

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

A single short sentence with the core purpose front-loaded and no filler. It is efficient, though its brevity comes at the cost of covering pagination and filter parameters.

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?

For a five-parameter, zero-coverage list tool with no output schema and no annotation detail about returns, the description is too thin: pagination (cursor/limit), the type enum, and the country/in_stock filters go entirely unaddressed.

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% across five parameters (type, limit, cursor, country, in_stock), and the description explains none of them. 'Compact' loosely hints at a limit and 'current' at inventory filtering, but an agent gets no guidance on the type enum, pagination, or the country/stock filters.

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

Purpose4/5

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

The description gives a concrete verb and resource: 'List a compact catalog of current products and prices.' That is clear and distinguishable from the session/billing-oriented siblings, but it does not name or contrast with any sibling tool.

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 trailing phrase 'before purchasing' implies the intended context (pre-purchase price browsing), so usage is inferable, but there is no explicit when-to-use statement, no exclusions, and no mention of alternatives for purchase or balance checks.

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

nexalayer_list_transactionsC
Read-onlyIdempotent

List billing transactions for audit and reconciliation.

NameRequiredDescriptionDefault
pageNo
page_sizeNo

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is fully covered. The description adds no behavioral context of its own — nothing about scope (whose transactions), ordering, or pagination limits — so it contributes almost nothing beyond the structured fields.

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

Conciseness4/5

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

A single front-loaded sentence with no filler. It is efficient, though arguably too terse given the tool's pagination behavior is undescribed.

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 no output schema and zero parameter documentation, the description leaves open what a transaction record contains, whether the listing is scoped to the caller's account, and how paging should be driven. It is not complete enough for reliable invocation.

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%, so the description is expected to compensate, but it never mentions the page/page_size parameters or their defaults and bounds. An agent gets no guidance on paging semantics or typical page sizes.

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

Purpose4/5

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

States a specific verb (List) and resource (billing transactions) plus a purpose, which is enough to distinguish it from siblings like get_balance or list_products. It stops short of explicitly contrasting itself with any named sibling.

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?

"For audit and reconciliation" implies the usage context but gives no when-to-use/when-not guidance and names no alternative tool. An agent must infer that this is the read counterpart to the budget/session tools.

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

nexalayer_report_issueA
Idempotent

File a support ticket with NexaLayer. Use only after following the error's suggested_action and checking nexalayer_check_status and nexalayer_known_issues. Recent request_ids and error codes seen by this MCP server are attached automatically, so you do not need to copy them. The server assigns severity (S1 outage or wrong billing, S2 broken with no workaround, S3 bug with a workaround, S4 question or feature request). Returns ticket_id and next_check_after_seconds; poll with nexalayer_get_ticket. Never include API keys, proxy passwords, or full_url: they are redacted and the ticket is escalated as a security issue. No charge.

NameRequiredDescriptionDefault
toolNoThe NexaLayer tool that failed, e.g. nexalayer_terminate_session
actualNo
summaryYes
categoryYes
expectedNo
session_idNo
error_codesNo
request_idsNo
known_issue_idNo
desired_outcomeNo
idempotency_keyNoReuse the same key when retrying so only one ticket is filed
severity_claimedNo

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only cover the safety/idempotency profile (readOnlyHint=false, idempotentHint=true), and the description adds substantial behavior beyond that: automatic attachment of recent request_ids and error codes, server-side severity assignment with a full S1-S4 rubric, the security redaction/escalation rule for API keys, proxy passwords and full_url, and that the call is free. This is exactly the context annotations cannot convey.

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?

Purpose is front-loaded in the first sentence, followed by prerequisites, then auto-attached context, then return/severity semantics, then the security caveat. Every sentence carries distinct information with no filler.

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

Completeness5/5

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

With no output schema, the description compensates by naming the return values (ticket_id, next_check_after_seconds) and the polling path. For a 12-parameter mutation tool it covers prerequisites, side effects, severity logic and security handling, leaving only per-parameter documentation thin.

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 coverage is only 17% across 12 parameters, so the description must carry the load. It clarifies two important semantics — request_ids/error_codes are auto-attached and severity is server-assigned (weakening the role of severity_claimed) — but leaves category enum meanings, summary, actual/expected, session_id, known_issue_id, desired_outcome and tool unexplained in both places.

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?

States a specific verb and resource ('File a support ticket with NexaLayer') and immediately separates the tool from the sibling diagnostics it should not replace (nexalayer_check_status, nexalayer_known_issues). An agent can distinguish it from get_ticket and the error-handling siblings without opening any schema.

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

Usage Guidelines5/5

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

Gives explicit prerequisites ('Use only after following the error's suggested_action and checking nexalayer_check_status and nexalayer_known_issues') and names the follow-up tool ('poll with nexalayer_get_ticket'). It also tells the agent what it does NOT need to supply, which is a form of usage guidance.

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

nexalayer_rotate_sessionA
Idempotent

Rotate a dynamic session after health or telemetry recommends rotation. Credentials are omitted unless include_credentials=true; never log them.

NameRequiredDescriptionDefault
reasonNo
session_idYes
idempotency_keyYes
include_credentialsNo

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly=false, idempotent=true, destructive=false), so the bar is lower, and the description still adds meaningful new behavior: credentials are suppressed by default and must never be logged. It omits what happens to the pre-rotation session or failure behavior, keeping it out of 5 territory.

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 tight sentences, front-loaded with the action and its trigger, followed by the credential caveat. No filler and nothing redundant with structured fields.

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

Completeness3/5

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

For a mutation tool with no output schema, the description covers the credential handling and trigger but says nothing about what rotation does to the existing session, whether it is reversible, or what is returned. Adequate but with visible gaps.

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% across 4 parameters, so the description carries the full burden. It clarifies only include_credentials (default false, gates credential return) and leaves reason, session_id, and idempotency_key completely unexplained.

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

Purpose4/5

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

The description states a specific verb+resource ('rotate a dynamic session') that is clearly distinct from sibling operations like nexalayer_create_session or nexalayer_terminate_session. It does not name those siblings explicitly, so it stops short of a 5.

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?

It gives a trigger condition ('after health or telemetry recommends rotation'), which is real usage context, but no guidance on when to rotate versus terminate or recreate a session, and no exclusions. Usage is implied rather than fully specified.

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

nexalayer_session_healthB
Read-onlyIdempotent

Read health score and rotation recommendation for a session.

NameRequiredDescriptionDefault
session_idYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds only the shape of the result (health score + rotation recommendation), which is useful given there is no output schema, but it says nothing about score scale, recommendation values, or failure modes.

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

Conciseness4/5

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

A single ten-word sentence with the verb and resource front-loaded and zero filler. It is efficient, though so terse that it arguably underserves a tool with no output schema.

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

Completeness3/5

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

For a read-only, single-parameter tool whose annotations already cover safety, the description is nearly sufficient — and it helpfully states what is returned despite the absence of an output schema. It still leaves the meaning and range of 'health score' and the possible rotation recommendations unspecified, which matters because the agent may act on that recommendation via nexalayer_rotate_session.

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% for the single required parameter, so the description would need to compensate and it does not — session_id is never mentioned. However, the parameter is a self-evident identifier whose name leaves little ambiguity, so the practical risk is low.

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

Purpose4/5

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

The description names a specific verb ('Read') and a specific resource ('health score and rotation recommendation for a session'), so an agent can distinguish it from siblings like nexalayer_session_usage or nexalayer_get_balance. It stops short of explicitly contrasting itself with the closest sibling (session_usage), so it isn't a 5.

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?

Usage is only implied: an agent can infer this is the call to make when deciding whether a session should be rotated, especially given nexalayer_rotate_session exists as a sibling. There is no explicit when-to-use, no exclusion, and no named alternative for related questions such as raw usage.

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

nexalayer_session_usageC
Read-onlyIdempotent

Read traffic and request usage for a session.

NameRequiredDescriptionDefault
session_idYes

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that — no time window, aggregation scope, or rate/retention behavior — so it is essentially a restatement of the readOnly annotation.

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

Conciseness4/5

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

One short, front-loaded sentence with no filler or redundancy. It is efficient, though the brevity comes at the cost of the missing context noted elsewhere.

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 no output schema, no annotations beyond the safety hints, and an undocumented required parameter, the description should explain what usage is returned (traffic vs. request counts, time window, units). It does none of that, leaving the agent unable to predict the response or scope.

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% for the single required session_id, so the description carries the burden of explaining it but only says 'for a session'. It does not clarify the identifier's format, source, or scope, adding no meaning beyond the parameter name.

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

Purpose4/5

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

States a specific verb (Read) and resource (traffic and request usage) scoped to a session, which is more concrete than a bare name restatement. It partially distinguishes itself from siblings like nexalayer_session_health or nexalayer_get_balance, but never explicitly contrasts the resource it returns against those.

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

Usage Guidelines2/5

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

No when-to-use guidance and no alternatives named. With siblings such as nexalayer_session_health and nexalayer_get_balance available, the agent is left to infer whether usage data belongs here or in one of those tools.

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

nexalayer_set_budgetB
DestructiveIdempotent

Set key and daily spend limits. This is a consequential write and should require owner approval.

NameRequiredDescriptionDefault
pausedNo
key_limit_usdNo
daily_limit_usdNo
idempotency_keyYes
pause_on_exceedNo
alert_thresholdsNo

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the agent knows this is a destructive, idempotent write. The description adds that it is 'consequential' and 'should require owner approval,' which is useful extra context beyond annotations. However, it doesn't explain what gets destroyed/overwritten or how idempotency_key interacts with re-calls. With annotations covering the safety profile, 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.

Conciseness4/5

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

Two short sentences with no waste, front-loading the action and then the approval constraint. Efficient and clear, though slightly terse for a complex tool.

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?

A mutation tool with no output schema and 0% parameter description coverage requires a richer description to be complete. The current text leaves most parameters undocumented, doesn't explain the idempotency requirement, and doesn't clarify the approval workflow beyond a vague 'should require.' Significant gaps remain for correct invocation.

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 mentions only 'key and daily spend limits,' which maps to just two of six parameters (key_limit_usd, daily_limit_usd). Parameters like paused, pause_on_exceed, alert_thresholds, and idempotency_key are completely undocumented in both schema and description. The description fails to compensate for the coverage gap.

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

Purpose4/5

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

States a specific verb and resource: 'Set key and daily spend limits.' This distinguishes it from the sibling nexalayer_get_budget (read) and other non-budget siblings. It doesn't explicitly name get_budget as the read counterpart, but the verb 'set' clearly signals a write operation.

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 says 'should require owner approval,' which implies a usage context (elevated permissions), but does not explicitly state when to use this tool vs the read-only nexalayer_get_budget or when not to use it. Usage is only implied, not clearly laid out.

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

nexalayer_terminate_sessionA
DestructiveIdempotent

Terminate a session and release its underlying network resource. Early termination does not imply a refund.

NameRequiredDescriptionDefault
session_idYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and openWorldHint=true. The description adds genuinely new context beyond them: that the session's underlying network resource is released and that early termination carries no refund, which is a billing-behavior detail an agent cannot get from structured fields.

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 tight sentences with zero filler, front-loaded with what the tool does before the billing caveat. Every clause earns its place.

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 one-parameter destructive tool with no output schema, the description covers the action, the resource released, and the billing consequence, while annotations carry safety and idempotency. A note on what happens to an already-terminated session is the only notable gap, and idempotentHint partly covers it.

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% and the single required session_id is never described in the text. The parameter name is largely self-explanatory (a session identifier) and no format ambiguity is introduced, but the description adds no meaning beyond the schema.

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

Purpose4/5

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

States a specific verb (terminate) and resource (session) plus the side effect of releasing the underlying network resource. It is implicitly distinct from siblings like create_session and rotate_session, but it never names or contrasts those siblings explicitly.

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

Usage Guidelines2/5

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

There is no explicit when-to-use guidance and no mention of alternatives such as rotate_session or session_health. The refund caveat hints at cost implications but does not tell the agent under what conditions this tool should be chosen over its siblings.

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

nexalayer_usage_alertsB
Read-onlyIdempotent

Read actionable budget threshold alerts.

NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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

The annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds no behavioral context beyond that, such as whether alerts persist after reading, how they are generated, or their freshness.

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

Conciseness4/5

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

A single short sentence with no filler, front-loading the action and resource. It is efficient, though borderline under-specified rather than genuinely concise.

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

Completeness3/5

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

For a no-parameter read tool with no output schema, the description is minimally adequate but omits what an alert actually contains and what makes it "actionable." With no output schema to fall back on, a sentence on the return shape would have added real value.

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 takes zero parameters, so the baseline is 4 under the scoring rules. There is nothing for the description to disambiguate.

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

Purpose4/5

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

The description gives a specific verb ("Read") and a specific resource ("actionable budget threshold alerts"), which is distinct from siblings like nexalayer_get_budget and nexalayer_list_transactions. However, it does not explicitly differentiate itself from those siblings, so an agent must infer the boundary on its own.

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

Usage Guidelines2/5

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

There is no guidance on when to call this versus nexalayer_get_budget or nexalayer_session_usage, both of which could plausibly surface budget-related information. The word "actionable" is the only hint at usage context and it is not explained.

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.

  1. 4 tool updatesv0.1.6
    • Addednexalayer_check_status
    • Addednexalayer_get_ticket
    • Addednexalayer_known_issues
    • Addednexalayer_report_issue
  2. 3 tool updatesv0.1.5
    • Addednexalayer_get_session
    • Changednexalayer_list_products8 fields changed
      • removedInput schema / properties / available_only
        Removed value: -{
        -  "default": true,
        -  "type": "boolean"
        -}
      • addedInput schema / properties / country
        Added value: +{
        +  "type": "string"
        +}
      • removedInput schema / properties / country_code
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / cursor
        Added value: +{
        +  "type": "string"
        +}
      • addedInput schema / properties / in_stock
        Added value: +{
        +  "default": true,
        +  "type": "boolean"
        +}
      • addedInput schema / properties / limit
        Added value: +{
        +  "default": 20,
        +  "maximum": 100,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • removedInput schema / properties / page
        Removed value: -{
        -  "default": 1,
        -  "exclusiveMinimum": 0,
        -  "type": "integer"
        -}
      • removedInput schema / properties / page_size
        Removed value: -{
        -  "default": 20,
        -  "maximum": 50,
        -  "minimum": 1,
        -  "type": "integer"
        -}
    • Changednexalayer_rotate_session1 field changed
      • addedInput schema / properties / include_credentials
        Added value: +{
        +  "default": false,
        +  "type": "boolean"
        +}
  3. 11 tool updatesv0.1.4
    • First observednexalayer_create_session
    • First observednexalayer_get_balance
    • First observednexalayer_get_budget
    • First observednexalayer_list_products
    • First observednexalayer_list_transactions
    • First observednexalayer_rotate_session
    • First observednexalayer_session_health
    • First observednexalayer_session_usage
    • First observednexalayer_set_budget
    • First observednexalayer_terminate_session
    • First observednexalayer_usage_alerts

TDQS

A3.5/5.0

Scored across 16 tools

Disambiguation5/5

Each tool targets a distinct resource-action pair across clearly separated domains: sessions (create/get/rotate/terminate/usage/health), budget (set/get/alerts), billing (balance/transactions), support (status/known_issues/report/get_ticket), and catalog (list_products). The closest pairs—session_health vs session_usage and get_budget vs usage_alerts—are differentiated by descriptions (health/rotation vs traffic, limits/spend vs threshold alerts). No two tools appear to do the same thing.

Naming Consistency4/5

All tools share the nexalayer_ prefix and snake_case, and most follow a verb_noun pattern (get_balance, list_transactions, create_session, rotate_session, report_issue). A few are noun phrases rather than verb-first (session_health, usage_alerts, known_issues, session_usage), a minor deviation from the otherwise predictable pattern.

Tool Count4/5

16 tools sit at the upper end of the comfortable range but each earns its place across five functional areas (sessions, budget, billing, support, catalog). The count is slightly heavy but reasonable for the breadth of the service being governed.

Completeness4/5

Core lifecycle coverage is strong: create/get/rotate/terminate plus usage and health for sessions, set/get budget with alerts, balance and transactions for billing, and a full support loop (status, known_issues, report, get_ticket). The notable gap is the absence of a list_sessions operation to enumerate existing sessions, a minor inconvenience rather than a dead end.

Maintenance

ActivityNo data
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A proxy server that bridges AI agents and external APIs by dynamically translating OpenAPI specifications into standardized MCP tools, enabling seamless interaction without custom integration code.
    69
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server that lets AI agents call APIs without ever seeing the credentials, using a local encrypted vault and per-secret allowlist policies for HTTP requests and subprocess environment variables.
    1
    AGPL 3.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    A robust, lightweight Model Context Protocol (MCP) server designed to empower your AI Agents with context-awareness, safe execution sandboxes, and dedicated thought logs.
    ISC