All-in-one TACACS+ / MCP lab appliance (taclabd) - a TACACS+ server with integrated MCP (Model Context Protocol) support for authentication, authorization, and accounting operations
TacLab exposes 33 tools with basic naming and descriptions, but critical gaps undermine production readiness. Tool names follow verb_noun convention (get, list, create, delete, update), which is positive. However, 100% of tools lack parameter descriptions, a hard blocker per the rubric. Input schemas are present but minimal (most tools have 0-4 params with type info only, no descriptions). Descriptions are present for tools themselves (10-50 chars typically) but fall short of the 50-200 char LLM-optimized baseline. No output schemas are documented. Error handling is absent, no recovery guidance, no categorization of retryable vs fatal errors. Security concerns: tools like taclab.authentication.test and taclab.tokens.create expose sensitive operations without documented permission gates or audit trails. Composition is reasonable (tools are single-purpose), but lack of parameter descriptions and output schemas prevents confident chaining.
Test authentication for a user with specified credentials
Create a new TACACS+ client
Delete a TACACS+ client
Get a specific client by ID
List all TACACS+ clients in the system
Update an existing TACACS+ client
Get the effective configuration
Export the current configuration
Zero parameter descriptions across all 33 tools. LLMs cannot infer what 'user_id', 'method', 'scopes', or 'category' parameters mean without explicit descriptions.
No output schemas documented for any tool. LLMs cannot plan downstream tool calls or extract required fields (e.g., user_id from create_user response) without knowing the response structure. This blocks tool chaining.
Destructive operations (delete, reset, revoke) lack confirmation or dry-run support. taclab.users.delete, taclab.runtime.reset, and taclab.tokens.revoke can permanently destroy data without agent safeguards. No recovery guidance in error responses.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
Reload the configuration from file
Validate a configuration document
List system events with optional filtering
Create a new group
Delete a group
Get a specific group by ID
List all groups in the system
Update an existing group
Evaluate TACACS+ policy for a user, client, and service combination
Test RADIUS access authentication
List RADIUS attributes
Send RADIUS Change-of-Authorization (CoA) request
Send RADIUS Disconnect-Request (CoD) to terminate a session
Evaluate RADIUS policy
List active RADIUS sessions
Reset the runtime state
Get system status including user, group, client, and token counts
Create a new API token
List API tokens
Revoke an API token
Create a new user
Delete a user
Get a specific user by ID
List all users in the system
Update an existing user
Sensitive tools (taclab.authentication.test, taclab.tokens.create, taclab.tokens.revoke) expose no permission gates or scope declarations. No audit trail or logging documented. Agents can invoke these without permission checks.
Tool descriptions are too brief (10-50 chars). Rubric baseline is 50-200 chars for LLM-optimized descriptions. Current descriptions lack context on WHEN to use each tool, dependencies, and expected outcomes. E.g., 'Get system status' does not explain what 'status' includes or when to call it.