Minimal MCP server demonstrating credential brokering and agent tooling for NyxID, exposing account management tools without HTTP loopback or secret-bearing DTOs
The NyxID MCP server provides 22 tools with consistent verb-noun naming and detailed descriptions. All tools follow a clear naming convention (list_*, get_*, update_*, delete_*, set_*) and include substantive descriptions explaining what each tool does and its Ask-mode behavior. However, there are critical gaps in parameter documentation and schema completeness that prevent this from achieving a higher grade. Parameter descriptions are entirely absent from the provided schema definitions, while the tool descriptions are solid (avg ~250 chars, well above the 194-char production baseline), individual parameters lack the critical context LLMs need to invoke them correctly. For example, 'api_key_id' appears in 8+ tools but has no description explaining what format it should be, what it controls, or where to obtain it. The schema shows minLength/maxLength constraints but no human-readable guidance. Additionally, no output schemas are documented, we cannot verify what fields are returned, their types, or how they chain to downstream tools. Error handling and security patterns are referenced in descriptions ('Ask mode requires acknowledgement') but not formalized in tool definitions. The tool set itself is well-organized (agent keys, bindings, bots, routes, services, nodes, approvals form a logical domain model), and naming conventions are consistent with production baselines (all tools start with action verbs, 90%+ compliance with verb_noun pattern). The server demonstrates understanding of agent-interaction patterns (destructive tools require acknowledgement IDs, read-only vs write vs destructive risk classification) but lacks the parameter-level and response-level detail needed for LLMs to use these tools reliably without trial-and-error.
Bind an existing credential to an agent key and connected service. Never enter a raw credential. Non-destructive. In Ask mode, requires this chat's account acknowledgement. Key creation/rotation, credentials, approval decisions, org administration and billing are available only in the UI.
Delete an agent key and revoke its credentials. Destructive: Ask mode also requires a single-use action acknowledgement. In Ask mode, requires this chat's account acknowledgement. Key creation/rotation, credentials, approval decisions, org administration and billing are available only in the UI.
Delete a channel bot and its routes. Destructive: Ask mode also requires a single-use action acknowledgement. In Ask mode, requires this chat's account acknowledgement. Key creation/rotation, credentials, approval decisions, org administration and billing are available only in the UI.
Delete a channel conversation's agent route. Destructive: Ask mode also requires a single-use action acknowledgement. In Ask mode, requires this chat's account acknowledgement. Key creation/rotation, credentials, approval decisions, org administration and billing are available only in the UI.
No parameter descriptions provided. Tools expose parameters like 'api_key_id', 'bot_id', 'service_id', 'acknowledgement_id' without any description of format, origin, or usage. LLMs cannot reliably determine what values to pass.
No output schemas documented. Tools return data but the schema files do not specify what fields are returned, their types, or structure. LLMs cannot plan downstream tool calls without knowing what data to extract.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
Delete a credential node and disconnect its session. Destructive: Ask mode also requires a single-use action acknowledgement. In Ask mode, requires this chat's account acknowledgement. Key creation/rotation, credentials, approval decisions, org administration and billing are available only in the UI.
Delete a connected service and its stored credential. Destructive: Ask mode also requires a single-use action acknowledgement. In Ask mode, requires this chat's account acknowledgement. Key creation/rotation, credentials, approval decisions, org administration and billing are available only in the UI.
Inspect an agent key's permissions and settings. Non-destructive. In Ask mode, requires this chat's account acknowledgement. Key creation/rotation, credentials, approval decisions, org administration and billing are available only in the UI.
Inspect a channel bot's non-secret settings. Non-destructive. In Ask mode, requires this chat's account acknowledgement. Key creation/rotation, credentials, approval decisions, org administration and billing are available only in the UI.
List an agent key's credential bindings without credentials. Non-destructive. In Ask mode, requires this chat's account acknowledgement. Key creation/rotation, credentials, approval decisions, org administration and billing are available only in the UI.
List agent keys without secrets.
List per-service approval settings. Non-destructive. In Ask mode, requires this chat's account acknowledgement. Key creation/rotation, credentials, approval decisions, org administration and billing are available only in the UI.
List channel bots without credentials or tokens. Non-destructive. In Ask mode, requires this chat's account acknowledgement. Key creation/rotation, credentials, approval decisions, org administration and billing are available only in the UI.
List conversation-to-agent channel routes. Non-destructive. In Ask mode, requires this chat's account acknowledgement. Key creation/rotation, credentials, approval decisions, org administration and billing are available only in the UI.
List connected services, including disabled services and is_active. Non-destructive. In Ask mode, requires this chat's account acknowledgement. Key creation/rotation, credentials, approval decisions, org administration and billing are available only in the UI.
List credential nodes without secrets. Non-destructive. In Ask mode, requires this chat's account acknowledgement. Key creation/rotation, credentials, approval decisions, org administration and billing are available only in the UI.
Read pending approvals. Decisions must be made in the NyxID UI. Non-destructive. In Ask mode, requires this chat's account acknowledgement. Key creation/rotation, credentials, approval decisions, org administration and billing are available only in the UI.
Set a connected service's approval requirement and mode. Non-destructive. In Ask mode, requires this chat's account acknowledgement. Key creation/rotation, credentials, approval decisions, org administration and billing are available only in the UI.
Create or update a bot conversation's agent route and default/agent-initiated settings. Assistant chat keys cannot be route agents. Non-destructive. In Ask mode, requires this chat's account acknowledgement. Key creation/rotation, credentials, approval decisions, org administration and billing are available only in the UI.
Enable or disable a connected service without deleting it. Non-destructive. In Ask mode, requires this chat's account acknowledgement. Key creation/rotation, credentials, approval decisions, org administration and billing are available only in the UI.
Delete an agent credential binding. Destructive: Ask mode also requires a single-use action acknowledgement. In Ask mode, requires this chat's account acknowledgement. Key creation/rotation, credentials, approval decisions, org administration and billing are available only in the UI.
Update agent key permissions, bindings scope and non-secret settings. Assistant chat keys cannot be modified. Non-destructive. In Ask mode, requires this chat's account acknowledgement. Key creation/rotation, credentials, approval decisions, org administration and billing are available only in the UI.
Update a channel bot label or public app id. Enter credentials in the UI. Non-destructive. In Ask mode, requires this chat's account acknowledgement. Key creation/rotation, credentials, approval decisions, org administration and billing are available only in the UI.
update_agent_key and set_channel_route expose too many optional parameters (13+ fields) without clear field-level constraints or dependencies. For example, 'allowed_service_slugs' vs 'allow_all_services' are related but the relationship is not documented. LLMs may pass conflicting combinations.
Acknowledgement fields are required for destructive operations but no guidance on how to obtain them. 'acknowledgement_id' appears in delete_agent_key, unbind_agent_key_credential, delete_channel_bot, delete_channel_route, delete_service, delete_node, but no tool or procedure to generate or retrieve these IDs is documented.
List tools do not document pagination support (limit, offset, cursor) or result caps. For example, list_agent_keys and list_channel_bots may return thousands of records, but there is no indication of pagination parameters or max result size. This risks context-window exhaustion.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) in schema definitions. The 'Risk' classification exists in the metadata but is not expressed in the MCP tool annotations. This prevents clients from flagging destructive operations before execution.
Error handling is not formalized. Descriptions mention 'Ask mode requires acknowledgement' but do not define what errors are returned when constraints are violated (e.g., invalid api_key_id, permission denied, resource not found). LLMs have no recovery guidance.