Skip to main content
Glama
tonkabits
by tonkabits

N33RD MCP Server

Model Context Protocol server for the N33RD platform. Enables AI agents to programmatically manage API services, consumers, and keys.

What is This?

This MCP server exposes N33RD platform operations to AI assistants like Claude, allowing them to:

  • As Partner: Manage upstream services, create/manage consumers, configure authentication, handle API keys

  • As Consumer: View usage analytics, rotate own API key, check plan limits

NOT Supported (Manual-Only for Security):

  • Stripe Operations: All Stripe credential and billing operations must be manual

📚 Complete Documentation: See MCP_SERVER.md for comprehensive guide including security, permissions, Stripe operations, audit/compliance, and troubleshooting.

Related MCP server: Knowledge Server

Installation

npm install -g @tonkabits/n33rd-mcp-server

Or use directly with npx:

npx @tonkabits/n33rd-mcp-server

Configuration

Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "n33rd-partner": {
      "command": "npx",
      "args": ["-y", "@tonkabits/n33rd-mcp-server"],
      "env": {
        "N33RD_API_KEY": "your_partner_api_key_here",
        "N33RD_ROLE": "partner"
      }
    }
  }
}

Claude Code (CLI)

Add to your project's .claude/settings.json:

{
  "mcpServers": {
    "n33rd": {
      "command": "npx",
      "args": ["-y", "@tonkabits/n33rd-mcp-server"],
      "env": {
        "N33RD_API_KEY": "your_api_key_here",
        "N33RD_ROLE": "partner"
      }
    }
  }
}

Environment Variables

  • N33RD_API_KEY (required) - Your N33RD API key

  • N33RD_ROLE (required) - Role: partner or consumer

  • N33RD_URL (optional) - API base URL (default: https://api.n33rd.com)

Available Tools

Partner Role

Service Management:

  • list_services - List all configured services

  • create_service - Add new upstream service

  • update_service - Update service configuration

  • configure_service_auth - Configure authentication (Bearer, Basic, API Key, OAuth2)

Consumer Management:

  • list_consumers - List all consumers

  • create_consumer - Create consumer with API key

  • get_consumer - Get consumer details and usage

  • rotate_consumer_key - Rotate consumer's API key

  • revoke_consumer_key - Permanently revoke key

  • reactivate_consumer_key - Reactivate revoked key

  • toggle_consumer_key - Temporarily enable/disable key

Plan Management:

  • list_plans - List pricing plans

  • create_plan - Create new plan

Analytics:

  • get_dashboard - Partner dashboard with analytics

Consumer Role

  • get_dashboard - Consumer dashboard with usage

  • get_analytics - Detailed usage analytics

  • rotate_my_key - Rotate own API key

  • get_plan_info - Current plan information

Usage Examples

With Claude Desktop

Once configured, you can ask Claude:

"List all my API services"

"Create a new consumer with email john@example.com on the trial plan"

"Show me the usage for consumer ID abc-123"

"Rotate the API key for consumer xyz-789"

"Configure Bearer token authentication for service srv_abc with token sk_live_..."

With Claude Code

cd /path/to/your/project
claude

Then in the CLI:

"List all my consumers and their usage"

"Create a new service called 'Books API' with base URL https://api.books.com"

"Show me which consumers are close to their rate limits"

Use Cases

AI Agent as Consumer

An AI agent can register itself as a consumer and access your API:

  1. Partner creates landing page with auto-approval

  2. AI agent calls create_consumer (or signs up via landing page)

  3. Agent receives API key automatically

  4. Agent makes requests through N33RD proxy

  5. All requests are metered and billed

Example:

User: "I need to access the Books API"
AI: [Uses create_consumer tool]
AI: "I've registered for access. Here's my API key: books_api_live_abc123..."
AI: [Makes requests through https://api.n33rd.com/p/yourname/books/search?q=science]

AI Agent as Partner

An AI agent can manage an entire API service:

  1. Partner gives AI agent their API key

  2. AI configures upstream services

  3. AI creates/manages consumer keys

  4. AI monitors usage and rotates keys

  5. AI responds to usage alerts

Example:

User: "Create 5 test API keys for our QA team"
AI: [Uses create_consumer tool 5 times]
AI: "Created 5 keys. Here are the credentials..."

User: "Rotate all keys that haven't been used in 30 days"
AI: [Checks usage via get_consumer, rotates stale keys]
AI: "Rotated 3 inactive keys and sent emails with new credentials"

Security

  • API keys are not stored - Only passed via environment variables

  • Encrypted in transit - All requests use HTTPS

  • Role-based access - Tools filtered by role (partner/consumer)

  • Same authentication as platform - Uses existing N33RD auth

Development

# Clone repository
git clone https://github.com/tonkabits/n33rd-mcp-server.git
cd n33rd-mcp-server

# Install dependencies
npm install

# Build
npm run build

# Run in development mode
export N33RD_API_KEY=your_key
export N33RD_ROLE=partner
npm run dev

Testing

Test the MCP server with the MCP Inspector:

npm install -g @modelcontextprotocol/inspector
mcp-inspector npx @tonkabits/n33rd-mcp-server

Contributing

Contributions welcome! Please open an issue or PR on GitHub.

License

MIT

Available Tools

14 tools
configure_service_authC

Configure authentication for a service

ParametersJSON Schema
NameRequiredDescriptionDefault
auth_typeYesAuthentication type
service_idYesService ID
auth_configYesAuth configuration (token, username/password, etc.)

TDQS

C2.6/5.0
Behavior2/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 itself. It only says 'Configure authentication', which implies a mutation but does not state whether existing auth is overwritten, whether the change is reversible, whether it takes effect immediately, or whether it requires special permissions. For a mutation tool with zero annotation coverage, this is a significant gap.

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 a single concise sentence with no wasted words. It is front-loaded with the verb and resource. However, it is so brief that it sacrifices useful context, so it earns a 4 rather than a 5.

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 mutation tool with no annotations and no output schema, the description is too thin. It does not explain the effect of the operation, the meaning of auth_config per auth_type, or any side effects. The schema covers parameter names but not the behavioral context an agent needs to call this correctly.

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 100%, so the schema already documents all three parameters. The description adds no extra meaning beyond the schema, but the baseline of 3 applies because the schema does the heavy lifting. The auth_config nested object is only vaguely described as 'Auth configuration (token, username/password, etc.)', and the description does not clarify how it maps to each auth_type.

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

Purpose3/5

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

The description states a clear verb and resource ('Configure authentication for a service'), so an agent can tell it is a write operation on service auth. However, it does not distinguish it from sibling tools like update_service or create_service, and the title is null, so the description carries the entire burden of identifying what this tool is for.

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 given on when to use this tool versus alternatives. The sibling list includes update_service and create_service, which could plausibly also touch service configuration, but the description does not mention them or any conditions for choosing this tool. An agent must infer usage from the name and schema alone.

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

create_consumerB

Create a new consumer with API key

ParametersJSON Schema
NameRequiredDescriptionDefault
tierYesPricing tier (e.g., trial, monthly, payg)
emailYesConsumer email

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 must carry the full burden of behavioral disclosure. 'With API key' hints at a side effect, but it doesn't clarify whether the key is returned, if duplicate emails are rejected, whether permissions are required, or what happens to existing consumers. This is a significant gap for a mutation tool.

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 a single, clear sentence that front-loads the action. It is not verbose, though it omits potentially valuable details. For a simple create tool, this length is acceptable, though it could be more informative without becoming bloated.

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 no annotations, the description should compensate by explaining return values and constraints. It does not state what the response contains (e.g., the API key), whether the email must be unique, or any error conditions. Given the sibling tools for key management, the agent might need to know that the key is created but not how it is returned.

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 100%, so both parameters are already documented in the schema. The description adds no additional parameter-level meaning beyond the schema; the mention of 'API key' is a consequence, not a parameter explanation. Baseline 3 is appropriate.

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

Purpose4/5

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

The description states a specific verb and resource ('Create a new consumer'), which clearly distinguishes it from sibling tools like create_service and create_plan. The added 'with API key' provides extra context about the outcome, though it doesn't name any alternative it is not.

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

Usage Guidelines3/5

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

Usage is implied by the resource name: use this when you need to create a consumer. However, there is no explicit guidance about when not to use it or alternatives like get_consumer for retrieval. The description is adequate but leaves the agent to infer the decision from the tool name alone.

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

create_planB

Create a new pricing plan

ParametersJSON Schema
NameRequiredDescriptionDefault
tierYesPlan tier name
stripe_price_idNoStripe Price ID (optional)
requests_includedNoRequests included (for PAYG)
rate_limit_per_dayYesDaily request limit

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'create a new pricing plan', which implies a mutation but offers no details on side effects, required permissions, idempotency, or whether the operation is reversible. This is a significant gap for a write operation.

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 a single, efficient sentence with no wasted words. It is appropriately front-loaded with the action and resource. However, it is so minimal that it sacrifices useful context, but for conciseness alone, it scores well.

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

Completeness2/5

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

Given the tool's complexity (4 params, required fields, optional Stripe ID) and the absence of annotations and output schema, the description is inadequate. It fails to mention required parameters, the relationship to Stripe, or any operational context. An agent would need to rely entirely on the schema, which is insufficient for a complete understanding.

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 description coverage is 100%, so the input schema already documents all four parameters. The description adds no additional meaning about parameters, but per the baseline rule for high coverage, a score of 3 is appropriate.

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 states a clear verb 'Create' and resource 'pricing plan', which unambiguously distinguishes it from sibling tools like create_service and create_consumer. It also implicitly differentiates from list_plans by indicating a creation action. This is a specific, non-redundant statement.

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. There is no mention of prerequisites, conditions, or when another tool would be more appropriate. The agent is left to infer that this is for creating a plan, but no context or exclusions are given.

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

create_serviceA

Add a new upstream service to proxy requests through

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesService name
base_urlYesBase URL for the service
descriptionNoService description

TDQS

A3.5/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 discloses that a new service will be added, but gives no behavioral details such as duplicate-name handling, validation rules, required permissions, or side effects beyond creation.

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 that states the action and purpose with no filler. It earns its place without redundancy.

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 description plus schema is sufficient for a simple three-field creation call, and no output schema means return-value details are not formally needed. However, it lacks explicit alternative-tool routing and behavioral notes (e.g., duplicate handling), which keeps it from being fully complete.

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 100%, so the schema already documents all three parameters. The description's phrase 'proxy requests through' adds a small amount of context about base_url, but does not go beyond the schema baseline.

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

Purpose5/5

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

The description uses a specific verb ('Add') and names the resource ('upstream service'), and clarifies the purpose ('to proxy requests through'). It is immediately distinguishable from siblings like update_service and list_services.

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 word 'new' implies this tool is for creating services rather than modifying existing ones, but no explicit when-to-use/when-not-to-use guidance or alternative tools are mentioned. The usage context is implied from the verb rather than stated.

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

get_consumerC

Get consumer details and usage

ParametersJSON Schema
NameRequiredDescriptionDefault
consumer_idYesConsumer ID (UUID)

TDQS

C2.9/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 disclosing behavior. It implies a read operation by using 'Get', but it does not explicitly state that it is read-only, describe what 'usage' refers to, or indicate any output shape. This leaves meaningful uncertainty for a tool with no output schema.

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 a single sentence with no filler or redundancy, and it front-loads the primary action and object. It loses a point because the ambiguous term 'usage' could be clarified without much added length.

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 read tool with no output schema and no annotations, the description is too thin. It does not explain what fields or usage data will be returned, whether the operation is safe/idempotent, or how it fits among the many consumer-related siblings. An agent would likely need to call it to discover its behavior.

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 single parameter consumer_id is already fully described in the input schema as a UUID. The description adds no additional meaning about the parameter, so the baseline of 3 applies because schema coverage is 100%.

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 identifies a clear verb and resource: retrieve details and usage for a single consumer. It is easily distinguished from sibling list_consumers, which addresses multiple consumers, and from create/rotate/revoke operations. The term 'usage' is somewhat vague but does not obscure the core purpose.

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 given for when to use this tool versus alternatives. There is no mention that this is the right choice for retrieving a single consumer by ID, nor is there any contrast with list_consumers or the key-management siblings. 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.

get_dashboardB

Get partner dashboard with analytics

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/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 implies a read operation with 'Get' but does not state whether authentication is required, whether data is live or cached, whether there are side effects, or what the response contains.

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 single sentence 'Get partner dashboard with analytics' is front-loaded and contains no filler. It is appropriately compact for a zero-argument getter, even though broader contextual detail is absent.

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 simple zero-parameter tool, the high-level purpose is stated well enough for an agent to select it among the siblings. However, 'analytics' is vague, and with no output schema the description does not clarify what data the agent can expect to receive.

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

Parameters4/5

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

The tool has zero parameters, so there is nothing for the description to add beyond the schema. Schema description coverage is vacuously 100%, and the description correctly avoids introducing parameters that do not exist.

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 names the verb 'Get' and the resource 'partner dashboard with analytics', so the tool's purpose is understandable. It is distinct in spirit from the sibling CRUD tools like create_service and update_service, though it does not explicitly contrast itself with any one sibling.

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 offers no guidance on when to choose this tool over alternatives such as list_consumers or list_services. It merely states what the tool does and leaves all usage decisions to inference.

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

list_consumersA

List all consumers for this partner

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/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 behavioral burden. It clearly signals a read-only listing operation, but does not disclose pagination, limits, ordering, or response characteristics. This is acceptable for a simple list tool but not rich.

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. It states the action, resource, and scope efficiently.

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-only list operation, the description provides enough information to invoke the tool correctly. It lacks output format details and pagination caveats, but the simplicity of the tool keeps this gap minor.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4. The description adds no parameter details, but none are needed given the empty input schema and full 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 uses a specific verb ('List'), a clear resource ('consumers'), and a scoping qualifier ('for this partner'). It differentiates well from siblings like list_services and list_plans, and from get_consumer.

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 'List all consumers' implies bulk enumeration, but no explicit guidance is given for when to choose this over get_consumer or other sibling tools. Context is present but alternatives are not mentioned.

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

list_plansA

List all pricing plans for this partner

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the burden of disclosing behavior. The verb 'List' correctly implies a read-only operation, but the description does not mention return shape, ordering, filtering, or whether archived/inactive plans are included. It is adequate for a simple tool but not detailed.

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 wasted words. Every word contributes meaning and there is no redundancy.

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 list operation, the description is nearly complete: it names the resource and scope. The only gap is the lack of an output schema or description of what fields each plan contains, which matters because no output schema exists.

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?

There are zero parameters, so the baseline is 4. The description adds useful scoping context ('for this partner') even though no input parameters exist.

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

Purpose5/5

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

The description uses a specific verb and resource ('List all pricing plans') and specifies the scope ('for this partner'). This clearly distinguishes it from sibling tools like list_consumers, list_services, and create_plan without requiring schema inspection.

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 purpose implicitly tells an agent when to call it (whenever all pricing plans are needed), but there is no explicit guidance on when not to use it or which alternative to choose. Usage is implied rather than stated.

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

list_servicesA

List all services configured by this partner

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose operational behavior itself, but it only states that it lists all services. It does not mention pagination, result size, rate limits, or whether the operation is read-only beyond the implied list verb.

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

Conciseness5/5

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

The description is a single, focused sentence with no redundant information. It is appropriately short for a parameterless list operation.

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 operation is simple, but the description lacks details about return format, pagination, or listing behavior. Since no output schema or annotations exist, a bit more guidance would improve completeness, though the basic call is understandable.

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

Parameters4/5

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

The tool has zero parameters, so the input schema already covers all options; there are no parameters to explain. The description still clarifies that the scope is 'all services', giving some useful semantic 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?

Description clearly states the verb 'list' and the resource 'services', with the scoping qualifier 'configured by this partner'. This distinguishes it from sibling list tools such as list_consumers and list_plans.

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 on when to use this tool over alternatives like list_consumers or list_plans. The description merely states what it does without noting when not to use it or which sibling to choose.

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

reactivate_consumer_keyA

Reactivate a previously revoked consumer key

ParametersJSON Schema
NameRequiredDescriptionDefault
consumer_idYesConsumer ID (UUID)

TDQS

A3.7/5.0
Behavior2/5

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

There are no annotations to cover destructive/read-only safety, so the description carries the full burden. It identifies the action as a reactivation but does not disclose what happens if the key is already active, whether the operation is idempotent, what side effects occur, or what the response looks like. This is a meaningful gap for a state-changing tool.

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

Conciseness5/5

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

The description is a single tightly worded sentence that front-loads the action and condition. There is no repetition of the tool name and no wasted content.

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?

Given the low complexity (one required parameter, fully covered schema, no nested objects), the description is mostly sufficient to understand the tool's purpose. However, because there are no annotations and no output schema, some behavioral context—such as idempotency, permission requirements, or error conditions—would improve completeness 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 single parameter consumer_id is fully described in the schema with its type and format, and the schema description coverage is 100%. The tool description adds no extra parameter guidance, so a baseline of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('Reactivate') and a specific resource ('consumer key'), and adds the condition 'previously revoked' which distinguishes it from siblings like revoke_consumer_key, rotate_consumer_key, and toggle_consumer_key. An agent can immediately tell what this tool does without opening the schema.

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 phrase 'previously revoked' clearly states the precondition for using the tool, so an agent knows this applies to a revoked key that needs to be active again. It does not explicitly name alternatives or exclusions, but the context is clear enough that this is for reactivating, not revoking, rotating, or toggling.

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

revoke_consumer_keyB

Permanently revoke a consumer API key

ParametersJSON Schema
NameRequiredDescriptionDefault
consumer_idYesConsumer ID (UUID)

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action is permanent, which is important, but it doesn't disclose whether the key is immediately invalidated, whether existing tokens/sessions using the key are affected, or whether this action can be reversed (it says 'permanently', implying not). It also doesn't mention any authorization requirements.

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 a single, concise sentence that front-loads the key behavioral trait (permanently revoke). It's efficient and to the point, though it could add a bit more context without becoming bloated.

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 destructive, irreversible action with no annotations and no output schema, the description is thin. It doesn't explain the impact on the consumer, whether the key can be recreated, or what happens to existing integrations using the key. Given the permanence, an agent needs more context to safely invoke this tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents the single parameter (consumer_id as a UUID). The description doesn't add any additional meaning about the parameter beyond what the schema provides, so the baseline of 3 is appropriate.

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 (permanently revoke) and the resource (a consumer API key). It distinguishes itself from sibling tools like rotate_consumer_key, reactivate_consumer_key, and toggle_consumer_key by emphasizing permanence, though it doesn't explicitly name those alternatives.

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

Usage Guidelines3/5

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

The description implies this is for permanently disabling a consumer key, which contrasts with siblings like reactivate_consumer_key and toggle_consumer_key. However, it doesn't explicitly state when to choose this over rotate_consumer_key or toggle_consumer_key, nor does it mention any prerequisites or consequences.

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

rotate_consumer_keyC

Rotate a consumer API key

ParametersJSON Schema
NameRequiredDescriptionDefault
consumer_idYesConsumer ID (UUID)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden, but it only says 'Rotate a consumer API key'. It does not disclose whether the old key is immediately invalidated, whether a new key is returned, whether active requests are affected, or any other side effects. For a destructive-ish security-sensitive mutation, this is a significant transparency gap.

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 a single, front-loaded sentence with no filler or repetition. It is efficient, though the brevity comes at the cost of behavioral detail.

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

Completeness2/5

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

Given that this is a key-rotation mutation with no annotations and no output schema, the description is too thin. A competent agent cannot tell what the operation actually does to the consumer's keys or what the expected outcome is, making the definition incomplete for correct invocation.

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 only parameter, consumer_id, is fully described in the input schema as 'Consumer ID (UUID)', giving 100% schema coverage. The description adds no extra meaning beyond the schema, so the baseline of 3 is appropriate.

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

Purpose4/5

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

The description states a specific action ('Rotate') on a specific resource ('a consumer API key'), so an agent can tell it is a key-management operation. However, it does not distinguish itself from sibling tools like revoke_consumer_key or toggle_consumer_key, which are also key lifecycle operations.

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 given about when rotation should be chosen over revoke, reactivate, or toggle. There are no context cues, prerequisites, or exclusions mentioned, leaving the agent to infer the right scenario.

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

toggle_consumer_keyB

Temporarily enable/disable a consumer API key

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYesEnable or disable the key
consumer_idYesConsumer ID (UUID)

TDQS

B3.3/5.0
Behavior2/5

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

There are no annotations, so the description must disclose behavioral consequences. It communicates that the change is temporary and reversible, but it does not explain what happens to already-issued keys/sessions, whether there are rate-limit or permission implications, or how the toggle interacts with revocation.

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, tight sentence with no filler. It front-loads the key action and expresses scope and temporality in very few words.

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 minimal two-parameter tool without an output schema, the description carries an adequate but not complete picture. It gives the intent and the temporal qualifier, but the omission of behavioral details and the lack of a clear distinction from revoke/reactivate leave an agent to infer too much.

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 already documents both required parameters with 100% coverage, giving clear descriptions for 'enabled' and 'consumer_id'. The description adds no new parameter-level detail beyond the schema; 'enable/disable' maps directly onto the boolean 'enabled' field.

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-action ('enable/disable') and a specific resource ('consumer API key'), with 'Temporarily' adding scope. It is unambiguous about the core operation, though it does not explicitly differentiate from siblings like revoke_consumer_key or reactivate_consumer_key.

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 word 'Temporarily' is an implied usage cue for short-term, reversible toggling rather than permanent revocation. However, the description never explicitly names the appropriate alternative for when 'temporary' is not the right choice, so the guidance remains mostly implicit.

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

update_serviceC

Update an existing service configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoService name
base_urlNoBase URL for the service
service_idYesService ID
descriptionNoService description

TDQS

C2.9/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 fact that it updates configuration, but provides no information about update semantics (partial vs full overwrite), idempotency, permissions required, or side effects. For a mutation tool with zero annotation coverage, this is insufficient.

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 a single, short sentence with no filler or redundant content. It is perfectly concise, though the brevity yields vague semantics. The structure is appropriate, earning a high score for efficiency despite the content gap.

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

Completeness2/5

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

Given the absence of output schema and annotations, the description must compensate by explaining update behavior, parameter interplay, and likely constraints. It does none of this. For a mutation tool with 4 parameters and no return format, the definition is incomplete.

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 100%, so the schema already documents all parameters. The description adds only the generic word 'configuration', which maps to the properties but does not explain whether fields are optional updates or require strict patch semantics. This meets the baseline but adds no additional meaning.

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

Purpose4/5

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

The description states a specific verb ('update') and a broad resource ('service configuration'), and specifies it applies to an existing service, which distinguishes it from create_service. However, it does not enumerate which fields can be updated or clarify the relationship to configure_service_auth, so it is clear but not fully differentiated.

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 use this tool versus alternatives. It does not mention that it is for modifying an existing service and not for creation, nor does it point to configure_service_auth for authentication settings. An agent must infer use cases from the name and schema.

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. 14 tool updatesv0.1.0
    • First observedconfigure_service_auth
    • First observedcreate_consumer
    • First observedcreate_plan
    • First observedcreate_service
    • First observedget_consumer
    • First observedget_dashboard
    • First observedlist_consumers
    • First observedlist_plans
    • First observedlist_services
    • First observedreactivate_consumer_key
    • First observedrevoke_consumer_key
    • First observedrotate_consumer_key
    • First observedtoggle_consumer_key
    • First observedupdate_service

TDQS

B3.4/5.0

Scored across 14 tools

Disambiguation4/5

Most tools clearly target distinct resources and actions, but the key lifecycle tools (revoke, reactivate, toggle, rotate) are closely related and could be confused despite helpful descriptions. Still, each has a defined role.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern, such as list_consumers, create_service, rotate_consumer_key, and list_plans. No mixed naming conventions or vague generic verbs appear.

Tool Count5/5

With 14 tools, the set is well-scoped for a partner/API management server. Each major area—consumers, services, plans, and dashboard analytics—has appropriate coverage without excessive redundancy.

Completeness3/5

The consumer key lifecycle is well covered, but there are notable CRUD gaps: no delete_service, no update_consumer, no delete_plan, and no update_plan. Create/list/update exists for services, but other core resources lack full lifecycle coverage.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables complete AI agent lifecycle management through MoluAbi's platform, allowing users to create, manage, and interact with AI assistants. Provides comprehensive tools for agent operations with secure authentication, usage tracking, and payment integration.
    6,496 npm
    MIT
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Provides LLM-agnostic access to API documentation through MCP and REST endpoints, enabling AI assistants to retrieve, search, and proxy requests to whitelisted APIs across multiple platforms.
    -
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables AI agents to dynamically discover and interact with APIs through Swagger/OpenAPI specifications and Postman collections using a strategic four-tool approach. It streamlines API integration by providing universal tools for endpoint discovery, detailed request information, and authenticated execution.
    1
    -