N33RD MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@N33RD MCP ServerShow me usage analytics for consumer abc-123"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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-serverOr use directly with npx:
npx @tonkabits/n33rd-mcp-serverConfiguration
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 keyN33RD_ROLE(required) - Role:partnerorconsumerN33RD_URL(optional) - API base URL (default:https://api.n33rd.com)
Available Tools
Partner Role
Service Management:
list_services- List all configured servicescreate_service- Add new upstream serviceupdate_service- Update service configurationconfigure_service_auth- Configure authentication (Bearer, Basic, API Key, OAuth2)
Consumer Management:
list_consumers- List all consumerscreate_consumer- Create consumer with API keyget_consumer- Get consumer details and usagerotate_consumer_key- Rotate consumer's API keyrevoke_consumer_key- Permanently revoke keyreactivate_consumer_key- Reactivate revoked keytoggle_consumer_key- Temporarily enable/disable key
Plan Management:
list_plans- List pricing planscreate_plan- Create new plan
Analytics:
get_dashboard- Partner dashboard with analytics
Consumer Role
get_dashboard- Consumer dashboard with usageget_analytics- Detailed usage analyticsrotate_my_key- Rotate own API keyget_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
claudeThen 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:
Partner creates landing page with auto-approval
AI agent calls
create_consumer(or signs up via landing page)Agent receives API key automatically
Agent makes requests through N33RD proxy
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:
Partner gives AI agent their API key
AI configures upstream services
AI creates/manages consumer keys
AI monitors usage and rotates keys
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 devTesting
Test the MCP server with the MCP Inspector:
npm install -g @modelcontextprotocol/inspector
mcp-inspector npx @tonkabits/n33rd-mcp-serverContributing
Contributions welcome! Please open an issue or PR on GitHub.
License
MIT
Links
N33RD Platform: https://n33rd.com
API Documentation: https://api.n33rd.com/docs
Model Context Protocol: https://modelcontextprotocol.io
Available Tools
14 toolsconfigure_service_authC
Configure authentication for a service
| Name | Required | Description | Default |
|---|---|---|---|
| auth_type | Yes | Authentication type | |
| service_id | Yes | Service ID | |
| auth_config | Yes | Auth configuration (token, username/password, etc.) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| tier | Yes | Pricing tier (e.g., trial, monthly, payg) | |
| Yes | Consumer email |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| tier | Yes | Plan tier name | |
| stripe_price_id | No | Stripe Price ID (optional) | |
| requests_included | No | Requests included (for PAYG) | |
| rate_limit_per_day | Yes | Daily request limit |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Service name | |
| base_url | Yes | Base URL for the service | |
| description | No | Service description |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| consumer_id | Yes | Consumer ID (UUID) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| consumer_id | Yes | Consumer ID (UUID) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| consumer_id | Yes | Consumer ID (UUID) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| consumer_id | Yes | Consumer ID (UUID) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | Enable or disable the key | |
| consumer_id | Yes | Consumer ID (UUID) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Service name | |
| base_url | No | Base URL for the service | |
| service_id | Yes | Service ID | |
| description | No | Service description |
TDQS
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.
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.
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.
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.
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.
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.
14 tool updates
v0.1.0- First observed
configure_service_auth - First observed
create_consumer - First observed
create_plan - First observed
create_service - First observed
get_consumer - First observed
get_dashboard - First observed
list_consumers - First observed
list_plans - First observed
list_services - First observed
reactivate_consumer_key - First observed
revoke_consumer_key - First observed
rotate_consumer_key - First observed
toggle_consumer_key - First observed
update_service
TDQS
Scored across 14 tools
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.
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.
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.
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
Related MCP Connectors
AI service marketplace — agents discover, call, and pay for API services automatically.
BizGigz Agent Marketplace - register AI agents, manage API keys, and discover MCP capabilities
Give your AI hands. Identity, credential vault, and API gateway for autonomous agents.
Verified, pay-per-use API tools for AI agents through one authenticated connection.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables 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 npmMIT
- FlicenseNot gradedqualityNot gradedmaintenanceProvides 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.-
- FlicenseNot gradedqualityNot gradedmaintenanceEnables 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-
- FlicenseAqualityDmaintenanceEnables AI assistants to interact with SMB platform APIs for querying business data, managing tasks, accessing connectors, dashboards, and monitoring security.16-