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.

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.

Yes — deducts from the account balance

nexalayer_rotate_session

Rotate a dynamic session when health or telemetry recommends it.

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

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 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, 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.

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.

Repository Origin

This code was split out from:

/Users/minzhenfa/sourceCode/wan-workspace/IPProxy/Agent

The intended GitHub repository is:

NexaLayer/nexalayer-agent

Available Tools

11 tools
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.

ParametersJSON Schema
NameRequiredDescriptionDefault
durationNo
protocolNosocks5
quantityNo
product_noYes
country_codeNo
session_typeYes
idempotency_keyYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare this is a non-read-only, idempotent, non-destructive, open-world write. The description adds behavioral value the annotations cannot: it incurs charges against the account balance and requires a budget plus owner approval. It still omits cost magnitude or billing timing.

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?

Three short sentences, front-loaded with the action and then the cost/prerequisite warnings. Every sentence carries information an agent needs before calling.

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?

Covers the cost and authorization story well, and no output schema exists so return values need not be explained. However, for a 7-parameter mutation tool with zero schema descriptions, the definition leaves the entire input contract undocumented, which is a significant completeness gap.

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

Parameters1/5

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

Schema description coverage is 0% across 7 parameters, including 3 required ones (session_type, product_no, idempotency_key), so the description must compensate and does not. No parameter is mentioned, explained, or constrained; an agent gets no help understanding duration, quantity, country_code, or the enum choices.

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 and resource: 'Create a paid network session' clearly states the operation and its cost nature. It is distinguishable from siblings like nexalayer_rotate_session and nexalayer_terminate_session, though it does not explicitly name an alternative.

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 preconditions: configure a budget first and obtain owner approval for autonomous spend, which effectively routes the agent to nexalayer_set_budget. No explicit exclusions (e.g., when not to create a session), so it falls short of a 5.

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.

ParametersJSON Schema
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.

ParametersJSON Schema
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_list_productsB
Read-onlyIdempotent

List a compact, paginated catalog of currently available products and prices before purchasing.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
typeNoall
page_sizeNo
country_codeNo
available_onlyNo

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds only mild behavioral context ('compact, paginated', 'currently available'), without explaining page semantics, rate limits, or ordering. Adds some value but not much over 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.

Conciseness4/5

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

A single front-loaded sentence with no filler, which is structurally good. However, that brevity is achieved by omitting necessary detail rather than by tight editing, so it is efficient but under-sized for a 5-parameter 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?

With 5 optional parameters, 0% schema coverage, and no output schema, the description should clarify filtering and pagination behavior. It omits the availability default, currency/country scoping, and product-type filtering, leaving the agent guessing about how results are shaped.

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 5 parameters, so the description carries the full burden and largely fails it. It hints at pagination but never mentions page, page_size, type (dynamic/static), country_code, or available_only. An agent cannot tell that the default result is already availability-filtered, nor what the type enum means.

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 (catalog of products and prices) with a clear scope qualifier (currently available). It does not explicitly contrast with the sibling session/budget/transaction tools, but the resource is distinct enough that an agent can distinguish it. Slightly weakened by vague adjectives like 'compact'.

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 phrase 'before purchasing' implies the tool is a pre-purchase discovery step, which is a usable contextual cue, but no when-to-use conditions, ordering constraints, or alternatives are named. The agent must infer that this is the entry point for any product-related flow.

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.

ParametersJSON Schema
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_rotate_sessionC
Idempotent

Rotate a dynamic session after health or telemetry recommends rotation.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNo
session_idYes
idempotency_keyYes

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare this is a non-read-only, idempotent, non-destructive, open-world operation, so the safety profile is covered externally. The description adds nothing about what rotation actually does to the session, whether the old credentials are invalidated, or what callers should expect, so it contributes almost no behavioral context beyond the structured hints.

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 the action first and the trigger second; no filler. It is efficient, though it is arguably too short to carry the needed context.

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 mutating session-lifecycle tool with no output schema, 0% parameter documentation, and only generic annotations, a single sentence leaves too much unspecified: rotation semantics, the required idempotency_key, and the reason field are all unexplained.

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 none of the three parameters. session_id is loosely inferable from 'session', but idempotency_key (required, with length bounds) and reason are completely unaddressed, so the description does not 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?

The description uses a specific verb ('Rotate') with a specific resource ('a dynamic session'), which an agent can distinguish from create_session and terminate_session. It stops short of explicitly contrasting itself with those siblings, but the action is 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?

It implies a trigger condition ('after health or telemetry recommends rotation'), which hints at using nexalayer_session_health first, but never names that sibling or states when NOT to rotate. Usage is implied rather than directed.

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.

ParametersJSON Schema
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.

ParametersJSON Schema
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.

ParametersJSON Schema
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.

ParametersJSON Schema
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.

ParametersJSON Schema
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. 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

B3.4/5.0

Scored across 11 tools

Disambiguation5/5

Each tool maps to a distinct resource and action: products, budget read/write, alerts, balance, transactions, and session lifecycle/telemetry. The closest pairs (get_balance vs. get_budget, usage_alerts vs. session_usage) have clearly different described purposes, so an agent can reliably select among them.

Naming Consistency4/5

All tools use the nexalayer_ prefix and snake_case, with a mostly consistent verb_noun pattern such as list_products, set_budget, and create_session. Three read tools use noun phrases instead (usage_alerts, session_health, session_usage), which is a minor deviation but still readable and predictable.

Tool Count5/5

Eleven tools is well-scoped for a network session and billing domain. Each tool covers a needed operation across catalog, budget, alerts, billing, and session controls, with no obvious redundancy or trivial filler.

Completeness3/5

Core billing/budget operations and session create/rotate/terminate plus health/usage reads are covered. However, there is no list_sessions or get_session tool, so an agent cannot enumerate or recover session IDs for existing sessions, which is a notable gap for autonomous session management.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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
  • F
    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.
    -