Skip to main content
Glama
MSPbotsAI

pax8-mcp

by MSPbotsAI

pax8-mcp

Stateless HTTP MCP service for the Pax8 Partner API. Exposes Pax8 data as MCP tools so AI assistants can query companies, subscriptions, invoices, orders, products, and usage data.

Architecture

  • Stateless — no user state or credentials stored between requests

  • Per-request auth — access token passed via X-Pax8-Token header on every call

  • Concurrent-safe — Python contextvars isolate credentials across parallel requests

  • Transports — HTTP (production) or stdio (development)

Related MCP server: crewio-mcp

Endpoints

Endpoint

Description

POST /mcp

MCP protocol entry point (JSON-RPC)

GET /health

Health check

Default port: 8080

Authorization

Pass your Pax8 access token in every /mcp request:

X-Pax8-Token: <your_access_token>

The service forwards the token as Authorization: Bearer <token> to the Pax8 API. Tokens are never stored globally — each request is fully isolated.

Tool List

Tool

Description

Key Parameters

pax8_list_companies

List companies in the partner account

page, size, sort, name

pax8_list_company_contacts

List contacts for a company

company_id, page, size

pax8_list_subscriptions

List subscriptions

page, size, sort, company_id, status, product_id

pax8_list_subscription_usage_summaries

List usage summaries for a subscription

subscription_id, page, size

pax8_list_invoices

List invoices

page, size, sort, company_id, status

pax8_list_invoice_items

List line items for an invoice

invoice_id, page, size

pax8_list_orders

List orders

page, size, sort, company_id, status

pax8_list_products

List products in the Pax8 marketplace

page, size, sort, vendor_name, product_name

pax8_list_usage_summary_lines

List usage lines for a usage summary

usage_summary_id, page, size

Parameter Details

Pagination (all list tools):

  • page — zero-based page number (default: 0)

  • size — results per page (default: 10)

  • sort — field and direction, e.g. "name,asc" or "createdDate,desc"

pax8_list_subscriptions status values: Active, Cancelled, PendingManual, PendingAutomated, PendingCancel, Terminated, Expired, Trial

Quick Start

Local development (env mode)

# Copy and edit environment config
cp .env.example .env
# Set PAX8_API_TOKEN and AUTH_MODE=env in .env

# Install dependencies
uv sync

# Run the server
MCP_TRANSPORT=http AUTH_MODE=env python -m pax8_mcp

Docker (gateway mode — production)

docker build -t pax8-mcp .
docker run -p 8080:8080 -e AUTH_MODE=gateway pax8-mcp

Or with Docker Compose:

docker compose up

Test Examples

Health check:

curl http://localhost:8080/health
# {"status":"ok","transport":"http","auth_mode":"gateway"}

List companies:

curl -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -H "X-Pax8-Token: <your_access_token>" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "pax8_list_companies",
      "arguments": {"page": 0, "size": 5}
    }
  }'

List subscriptions for a company:

curl -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -H "X-Pax8-Token: <your_access_token>" \
  -d '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/call",
    "params": {
      "name": "pax8_list_subscriptions",
      "arguments": {"company_id": "<company_uuid>", "status": "Active"}
    }
  }'

List invoice items:

curl -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -H "X-Pax8-Token: <your_access_token>" \
  -d '{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tools/call",
    "params": {
      "name": "pax8_list_invoice_items",
      "arguments": {"invoice_id": "<invoice_uuid>"}
    }
  }'

List usage lines for a usage summary:

curl -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -H "X-Pax8-Token: <your_access_token>" \
  -d '{
    "jsonrpc": "2.0",
    "id": 4,
    "method": "tools/call",
    "params": {
      "name": "pax8_list_usage_summary_lines",
      "arguments": {"usage_summary_id": "<usage_summary_uuid>"}
    }
  }'

Configuration Reference

Variable

Default

Description

PAX8_API_TOKEN

Access token (env mode only)

PAX8_BASE_URL

https://api.pax8.com/v1

Pax8 API base URL

PAX8_AUTH_HEADER

X-Pax8-Token

MCP request header carrying the token

MCP_TRANSPORT

stdio

http for production, stdio for local dev

MCP_HTTP_PORT

8080

HTTP listen port

MCP_HTTP_HOST

0.0.0.0

HTTP listen host

AUTH_MODE

gateway

gateway (per-request, SOP-compliant) or env (dev only)

Available Tools

9 tools
pax8_list_companiesA

List companies in the Pax8 partner account.

    Args:
        page: Zero-based page number for pagination (default: 0).
        size: Number of results per page (default: 10).
        sort: Sort field and direction, e.g. "name,asc" or "createdDate,desc".
        name: Filter companies by name (partial match).
    
ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
pageNo
sizeNo
sortNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It implies a read-only operation via 'List' but does not explicitly state that no data is modified, nor does it disclose rate limits or any other behavioral constraints. It does explain pagination parameters, which helps, but for a tool with zero annotations, a bit more explicit disclosure (e.g., 'This is a read-only operation') would be ideal.

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

Conciseness5/5

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

The description is efficient: one sentence for purpose, followed by a clean, tabulated Args block. There is no redundant phrasing, and the key information is front-loaded. Every line adds 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?

Given that an output schema exists, return values are covered. The description covers the operation and parameters sufficiently. It does not mention any edge cases (e.g., empty results, error handling) but for a simple list tool this is acceptable. The sibling context and lack of nested objects keep the complexity low, so the description is complete enough.

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

Parameters5/5

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

The description provides detailed explanations for all four parameters that go well beyond the schema. It clarifies that 'page' is zero-based, 'size' is the number of results, 'sort' follows a specific format ('name,asc'), and 'name' is a partial match filter. With 0% schema coverage, this is a strong compensation—an agent can correctly construct calls without needing additional context.

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

Purpose5/5

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

The description clearly states the verb 'List' and the resource 'companies in the Pax8 partner account'. This unambiguously distinguishes it from sibling tools like pax8_list_company_contacts (contacts) and pax8_list_invoices (invoices), leaving no doubt about what this tool returns.

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

Usage Guidelines4/5

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

The description makes it obvious when to use this tool—whenever a list of companies is needed. It does not explicitly name alternatives or conditions for not using it, but because all siblings are for different entities, the context alone provides sufficient guidance. A small mention of 'use this for companies, not contacts' would make it a 5.

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

pax8_list_company_contactsA

List contacts for a specific company.

    Args:
        company_id: The unique identifier of the company.
        page: Zero-based page number for pagination (default: 0).
        size: Number of results per page (default: 10).
    
ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
sizeNo
company_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose behavioral traits. The description states 'List contacts', which implies a read-only operation, but it does not explicitly confirm that it is non-destructive, nor does it mention any permissions, rate limits, or output format details. The description adds minimal behavioral context beyond the verb itself.

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

Conciseness5/5

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

The description is concise, front-loaded with the main purpose, and structured as a docstring with clear parameter explanations. Every sentence adds value; there is no redundancy or unnecessary detail. It is appropriately sized for a simple list operation.

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?

Given the tool's simplicity, an output schema exists (though not shown), so the description need not explain return values. The description covers the purpose and all parameters. It could add details about error handling or required permissions, but for a straightforward read-only list operation with well-documented parameters, it is sufficiently complete.

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

Parameters5/5

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

The schema has 0% description coverage, but the description thoroughly explains each parameter: company_id as the unique identifier, page as zero-based with a default, and size as results per page with a default. This adds significant meaning beyond the schema's types and defaults, fully compensating for the lack of schema-level descriptions.

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

Purpose5/5

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

The description clearly states the tool lists contacts for a specific company, using a specific verb and resource. It differentiates from sibling tools like pax8_list_companies by specifying the resource is contacts and that it is scoped to a company. The purpose 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?

The description implies the tool is for retrieving contacts for a company, which is distinct from listing companies, invoices, or other resources. However, it does not explicitly state when to use this tool versus alternatives, nor does it mention any exclusions or prerequisites. The usage context is clear from the name and description but lacks explicit routing guidance.

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

pax8_list_invoice_itemsA

List line items for a specific invoice.

    Args:
        invoice_id: The unique identifier of the invoice.
        page: Zero-based page number for pagination (default: 0).
        size: Number of results per page (default: 10).
    
ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
sizeNo
invoice_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the operation and parameters, without mentioning error conditions, auth requirements, rate limits, or side effects. It does not contradict any annotations, but adds minimal behavioral context beyond the obvious list action.

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

Conciseness5/5

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

The description is extremely concise, with the purpose front-loaded and each sentence earning its place. It avoids unnecessary verbosity and clearly lists parameters in a structured format.

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?

The tool has an output schema, so return values are covered there. The description explains pagination semantics and the required invoice_id. For a simple list tool, it provides all essential information an agent needs to call it correctly. Minor gaps like error handling are not critical for this complexity level.

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?

Schema description coverage is 0%, so the description must compensate. It does: each parameter gets a brief explanation, including that page is zero-based and size is per-page count. This adds meaning beyond the bare schema fields, though not deeply.

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

Purpose5/5

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

The description clearly states the action (list), resource (line items), and scope (specific invoice). This distinguishes it from sibling tools like pax8_list_invoices or pax8_list_subscriptions, which target different resources.

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 usage context is implied: use this tool when you need line items for a specific invoice. However, there is no explicit guidance on when not to use it or how it compares to alternatives such as pax8_list_invoices or pax8_list_usage_summary_lines.

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

pax8_list_invoicesA

List invoices in the Pax8 partner account.

    Args:
        page: Zero-based page number for pagination (default: 0).
        size: Number of results per page (default: 10).
        sort: Sort field and direction, e.g. "invoiceDate,desc".
        company_id: Filter by company ID.
        status: Filter by invoice status, e.g. "Paid", "Unpaid", "Overdue".
    
ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
sizeNo
sortNo
statusNo
company_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It accurately describes a read-only listing operation but does not explicitly mention side effects, error behavior, or pagination limits beyond the parameter defaults.

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

Conciseness5/5

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

The description is concise and well-structured, with a short opening line followed by bullet-like parameter explanations. No unnecessary information 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?

The description provides enough contextual detail for an agent to invoke the tool correctly, including parameter semantics and defaults. Since an output schema is available, not describing the return structure is acceptable, though a brief note on expected errors or authorization could make it slightly more complete.

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

Parameters5/5

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

All five parameters are described clearly, including defaults, the zero-based page index, and examples for sort and status filters. This fully compensates for the 0% schema description coverage.

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

Purpose5/5

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

The description clearly states the tool's purpose: listing invoices in the Pax8 partner account. It provides a specific verb and resource, distinguishing it from related tools like invoice items.

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 explains the parameters and gives examples, but it does not explicitly state when to use this tool versus sibling tools such as pax8_list_invoice_items. The intended usage is implied by the name and parameters, but not explicitly contrasted with alternatives.

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

pax8_list_ordersC

List orders in the Pax8 partner account.

    Args:
        page: Zero-based page number for pagination (default: 0).
        size: Number of results per page (default: 10).
        sort: Sort field and direction, e.g. "orderDate,desc".
        company_id: Filter by company ID.
        status: Filter by order status, e.g. "Pending", "Completed", "Cancelled".
    
ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
sizeNo
sortNo
statusNo
company_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior1/5

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

No annotations are present, and the description does not disclose any behavioral details such as read-only nature, side effects, rate limits, authentication requirements, or error behavior. The description adds no transparency beyond the raw operation name.

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

Conciseness5/5

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

The description is extremely concise, containing only the essential purpose statement and parameter explanations. No redundant or irrelevant content is present.

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?

The description lacks information about return format, pagination behavior beyond the parameter defaults, filtering semantics, ordering rules, or error conditions. Given that the schema covers only parameter shapes and no output schema is shown, the description leaves major functional gaps for an agent.

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?

The schema provides only parameter names and types with zero description coverage. The description adds some semantic context by providing examples (e.g., sort 'orderDate,desc', status values) and explaining defaults, but it does not fully specify valid values, formats, or relationships between parameters.

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 clearly states the action ('List') and the resource ('orders') within the Pax8 partner account. It does not explicitly differentiate from sibling list tools, but the resource 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 Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like pax8_list_subscriptions or pax8_list_invoices. The description only lists parameters without explaining context or conditions for use.

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

pax8_list_productsA

List products available in the Pax8 marketplace.

    Args:
        page: Zero-based page number for pagination (default: 0).
        size: Number of results per page (default: 10).
        sort: Sort field and direction, e.g. "productName,asc".
        vendor_name: Filter by vendor name (partial match).
        product_name: Filter by product name (partial match).
    
ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
sizeNo
sortNo
vendor_nameNo
product_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

The description uses 'List', which implies a read-only operation, and provides parameter descriptions that clarify behavior. With no annotations provided, the description alone conveys the non-destructive nature, though it does not explicitly state side-effect-free or idempotent behavior.

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

Conciseness5/5

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

The description is brief and to the point, containing only the action, resource, and a compact parameter list. There is no redundant or filler text.

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?

The description provides enough context for a straightforward list operation, including parameter semantics and an example for sort. It does not describe the return format, but for a simple listing tool the output is likely self-explanatory, and the presence of an output schema mitigates this gap.

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

Parameters5/5

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

Each of the five parameters is described in the Args section with clear semantics: page (zero-based), size (results per page), sort (field and direction with example), vendor_name (partial match filter), and product_name (partial match filter). This fully covers the schema parameters and adds meaning beyond their titles and defaults.

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

Purpose5/5

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

The description clearly states the action ('List products') and the target resource ('Pax8 marketplace'), distinguishing it from sibling tools that list other entities like companies, invoices, or subscriptions.

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

Usage Guidelines4/5

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

The description indicates it is a listing operation with optional filters and pagination parameters. It does not explicitly contrast with alternative tools, but the resource name 'products' is sufficiently specific to avoid ambiguity with siblings.

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

pax8_list_subscriptionsA

List subscriptions in the Pax8 partner account.

    Args:
        page: Zero-based page number for pagination (default: 0).
        size: Number of results per page (default: 10).
        sort: Sort field and direction, e.g. "startDate,asc".
        company_id: Filter by company ID.
        status: Filter by subscription status. One of: Active, Cancelled,
            PendingManual, PendingAutomated, PendingCancel, Terminated, Expired, Trial.
        product_id: Filter by product ID.
    
ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
sizeNo
sortNo
statusNo
company_idNo
product_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of explaining behavior. It lists the basic function and parameters, but does not disclose pagination behavior, sort format details (beyond an example), or potential errors, leaving some behavioral aspects unclear.

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

Conciseness5/5

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

The description is concise and well-structured, with a single introductory sentence followed by a clear parameter list. No unnecessary information 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?

Given the tool's simplicity and the presence of an output schema, the description is nearly complete. It could add a note about default pagination or listing behavior, but the core use case is fully covered.

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

Parameters5/5

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

The description text provides a clear explanation for every parameter (page, size, sort, company_id, status, product_id), including valid status values and an example for sort. This adds significant meaning beyond the schema titles and defaults.

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

Purpose5/5

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

The description clearly states the tool lists subscriptions within the Pax8 partner account, using a specific verb and resource. It is easily distinguishable from sibling tools that list companies, invoices, products, etc.

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

Usage Guidelines4/5

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

The description provides no explicit usage guidance, but the resource type (subscriptions) and available filters make it obvious when to use this tool versus siblings. It could improve by mentioning that it is the appropriate choice for subscription-related queries.

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

pax8_list_subscription_usage_summariesB

List usage summaries for a specific subscription.

    Args:
        subscription_id: The unique identifier of the subscription.
        page: Zero-based page number for pagination (default: 0).
        size: Number of results per page (default: 10).
    
ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
sizeNo
subscription_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only states the action and lists parameters, with no disclosure of behavior beyond pagination defaults. It does not mention whether the operation is read-only, potential error conditions, rate limits, or any side effects. For a list operation this is minimal; the description is not misleading but leaves much to inference.

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 description is concise, with a single introductory sentence followed by a structured Args block. It is efficient and avoids redundancy. The Args section is front-loaded with parameter semantics, and there is no filler. It could be more concise by removing the docstring format, but it is appropriately sized.

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?

The tool has an output schema (not shown), so return format does not need to be explained. However, the description lacks any mention of pagination behavior beyond defaults, error handling, or any special cases like empty results. For a simple list tool with one required parameter, this is adequate but not thorough. The presence of sibling tools for related operations is not addressed, leaving the agent to guess when to use this specific one.

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 description adds meaning beyond the schema: it explains 'page' as 'Zero-based page number for pagination' with a default, and 'size' as 'Number of results per page' with a default. 'subscription_id' is described as 'The unique identifier of the subscription,' which clarifies its role. Since the schema itself has no parameter descriptions (coverage 0%), this description compensates by defining each parameter's purpose and default behavior.

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 the action ('List usage summaries') and the scope ('for a specific subscription'), which is clear. It does not explicitly differentiate from the sibling tool pax8_list_usage_summary_lines, but the phrase 'for a specific subscription' implies a per-subscription focus, distinguishing it from a broader usage-summary-lines tool. This is slightly more specific than a generic 'list' but lacks explicit sibling differentiation.

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?

The description provides no guidance on when to use this tool versus alternatives such as pax8_list_usage_summary_lines or pax8_list_subscriptions. There is no mention of prerequisites, typical use cases, or conditions that would favor this tool. The agent must infer usage from the name alone.

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

pax8_list_usage_summary_linesA

List usage lines for a specific usage summary.

    Args:
        usage_summary_id: The unique identifier of the usage summary.
        page: Zero-based page number for pagination (default: 0).
        size: Number of results per page (default: 10).
    
ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
sizeNo
usage_summary_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

The operation is described as 'List', which implies a read-only, non-destructive action. However, with no annotations provided, the description does not explicitly disclose any side effects, pagination behavior, or rate limits beyond the parameter documentation.

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

Conciseness5/5

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

The description is brief, containing a one-line summary followed by a clean parameter list. No redundant information or fluff.

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?

Given that the tool is a list operation and the context indicates an output schema exists (though not shown), the description is sufficient. It does not specify the return format, but this is standard for list endpoints and not critical for invoking the tool correctly.

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

Parameters5/5

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

The description explains all three parameters (usage_summary_id, page, size) with clear, concise semantics, covering exactly what each controls. This fully compensates for the schema's lack of per-property descriptions.

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

Purpose5/5

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

The description clearly identifies a specific verb ('List') and resource ('usage summary lines') for a given usage summary, distinguishing it from sibling tools that list companies, invoices, or other resources.

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

Usage Guidelines4/5

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

The purpose is obvious from the resource name, but the description does not explicitly state when to prefer this tool over alternatives (e.g., when you have a usage_summary_id and need line items). It is implicit rather than explicit.

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. 9 tool updatesv0.1.0
    • First observedpax8_list_companies
    • First observedpax8_list_company_contacts
    • First observedpax8_list_invoice_items
    • First observedpax8_list_invoices
    • First observedpax8_list_orders
    • First observedpax8_list_products
    • First observedpax8_list_subscription_usage_summaries
    • First observedpax8_list_subscriptions
    • First observedpax8_list_usage_summary_lines

TDQS

A3.7/5.0

Scored across 9 tools

Disambiguation5/5

Each tool targets a distinct entity (companies, contacts, invoices, subscriptions, etc.), so there is no overlap or ambiguity in purpose.

Naming Consistency5/5

All tools follow the exact same pattern 'pax8_list_<entity>', with clear and consistent naming conventions.

Tool Count5/5

With 9 tools, the set is well-scoped for a read-only listing API, covering all major data entities without excess.

Completeness3/5

The tool surface covers listing for all main entities but lacks any retrieval by ID, creation, update, or delete operations, making it incomplete for full CRUD/lifecycle coverage typical of a domain API.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    Hosted HTTP MCP server that exposes Crewio CRM as tools for AI assistants, enabling CRUD operations on deals, contacts, companies, comments, and full-text search.
    -
  • A
    license
    A
    quality
    D
    maintenance
    Model Context Protocol (MCP) server for Microsoft Dynamics 365 Business Central. Provides AI assistants with direct access to Business Central data through properly formatted API v2.0 calls.
    6
    8 npm
    8
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    Provides reusable MCP tools for Amazon Connect AI Agents and Bedrock AgentCore to look up customers, manage support tickets, schedule appointments, update CRM records, retrieve knowledge, and create tasks.
    7
    -