nexalayer-mcp
OfficialNexaLayer 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/mcpOr 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-mcpThe 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 |
| List the compact, paginated catalog of available proxy products and current prices. | No |
| Create a dynamic or static proxy session with an idempotency key. | Yes — deducts from the account balance |
| Rotate a dynamic session when health or telemetry recommends it. | May affect paid usage |
| Terminate a session and release its network resource; early termination does not imply a refund. | No new charge |
| Read a session health score and rotation recommendation. | No |
| Read traffic and request usage for a session. | No |
| Read spend limits, current spend, pause state, and daily reset. | No |
| Set API-key and daily spend limits, alerts, and pause behavior. | No direct charge |
| Read actionable budget-threshold alerts. | No |
| Read the account balance and trial-credit state. | No |
| 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 devUseful 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:smokenpm 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
中文文档首页: docs/zh/README.md
中文 Quick Start: docs/zh/quick-start.md
Playwright 中文 Demo: docs/zh/playwright-demo.md
Python 中文示例说明: examples/python-quickstart/README.zh.md
Playwright 中文示例代码: examples/playwright-zh
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/AgentThe intended GitHub repository is:
NexaLayer/nexalayer-agentAvailable Tools
11 toolsnexalayer_create_sessionAIdempotent
Create a paid network session. This action incurs charges against the account balance. Configure a budget first and obtain owner approval for autonomous spend.
| Name | Required | Description | Default |
|---|---|---|---|
| duration | No | ||
| protocol | No | socks5 | |
| quantity | No | ||
| product_no | Yes | ||
| country_code | No | ||
| session_type | Yes | ||
| idempotency_key | Yes |
TDQS
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.
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.
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.
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.
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.
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_balanceARead-onlyIdempotent
Read the current account balance and trial-credit state.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_budgetARead-onlyIdempotent
Read spend limits, current spend, pause state, and next daily reset.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_productsBRead-onlyIdempotent
List a compact, paginated catalog of currently available products and prices before purchasing.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| type | No | all | |
| page_size | No | ||
| country_code | No | ||
| available_only | No |
TDQS
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.
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.
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.
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.
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.
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_transactionsCRead-onlyIdempotent
List billing transactions for audit and reconciliation.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| page_size | No |
TDQS
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.
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.
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.
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.
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.
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_sessionCIdempotent
Rotate a dynamic session after health or telemetry recommends rotation.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| session_id | Yes | ||
| idempotency_key | Yes |
TDQS
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.
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.
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.
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.
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.
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_healthBRead-onlyIdempotent
Read health score and rotation recommendation for a session.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes |
TDQS
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.
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.
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.
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.
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.
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_usageCRead-onlyIdempotent
Read traffic and request usage for a session.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes |
TDQS
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.
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.
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.
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.
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.
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_budgetBDestructiveIdempotent
Set key and daily spend limits. This is a consequential write and should require owner approval.
| Name | Required | Description | Default |
|---|---|---|---|
| paused | No | ||
| key_limit_usd | No | ||
| daily_limit_usd | No | ||
| idempotency_key | Yes | ||
| pause_on_exceed | No | ||
| alert_thresholds | No |
TDQS
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.
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.
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.
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.
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.
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_sessionADestructiveIdempotent
Terminate a session and release its underlying network resource. Early termination does not imply a refund.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes |
TDQS
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.
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.
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.
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.
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.
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_alertsBRead-onlyIdempotent
Read actionable budget threshold alerts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
11 tool updates
v0.1.4- First observed
nexalayer_create_session - First observed
nexalayer_get_balance - First observed
nexalayer_get_budget - First observed
nexalayer_list_products - First observed
nexalayer_list_transactions - First observed
nexalayer_rotate_session - First observed
nexalayer_session_health - First observed
nexalayer_session_usage - First observed
nexalayer_set_budget - First observed
nexalayer_terminate_session - First observed
nexalayer_usage_alerts
TDQS
Scored across 11 tools
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.
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.
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.
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
Related MCP Connectors
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
HiveCapital MCP Server — autonomous investment layer for AI agents
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA 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.69MIT
- AlicenseNot gradedqualityCmaintenanceMCP 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.1AGPL 3.0
- AlicenseNot gradedqualityFmaintenanceA Model Context Protocol (MCP) server that enables multiple AI agents to share memory, coordinate tasks, and collaborate effectively across IDEs and CLI tools.12 npm21MIT
- FlicenseNot gradedqualityDmaintenanceA robust, lightweight Model Context Protocol (MCP) server designed to empower your AI Agents with context-awareness, safe execution sandboxes, and dedicated thought logs.-