This server has severe definition quality issues across almost all dimensions. While 44 tools are registered, the vast majority lack proper parameter schemas and descriptions. Most tools expose only a generic 'request' parameter with minimal schema information (type: object, description only). Parameter descriptions are missing or generic ('Create link request parameters'). Output schemas are undocumented. Error handling patterns are absent from visible code. The server is code-generated by Speakeasy, which explains the uniform lack of detail, the generator did not produce production-grade tool definitions. No evidence of enumeration constraints, format validation, or actionable error messages. Tool names follow verb-noun pattern correctly (links-create, links-delete, tags-update, etc.), but this alone cannot overcome missing schemas and descriptions on parameters.
Retrieve analytics data
Retrieve a list of commissions
Update a commission
Create a customer
Delete a customer
Retrieve a customer
Retrieve a list of customers
Update a customer
Check the availability of one or more domains Check if a domain name is available for purchase. You can check multiple domains at once.
Generic request parameter with no nested schema details. 36 of 44 tools expose only {'request': {'type': 'object', 'description': 'X request parameters'}} with zero visibility into actual parameters (fields, types, constraints). This forces LLMs to guess at valid parameter names and types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 6 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 29 | - | v1 |
Create a domain Create a domain for the authenticated workspace.
Delete a domain Delete a domain from a workspace. It cannot be undone. This will also delete all the links associated with the domain.
Retrieve a list of domains Retrieve a list of domains associated with the authenticated workspace.
Register a domain Register a domain for the authenticated workspace. Only available for Enterprise Plans.
Update a domain Update a domain for the authenticated workspace.
Manage embed tokens for referrals
Retrieve a list of events
Create a folder
Delete a folder
Retrieve a list of folders
Update a folder
Count links
Create a short link
Create multiple short links
Delete a link
Delete multiple links
Retrieve a link
Retrieve a list of links
Update a link
Update multiple links
Create or update a link
Retrieve partner analytics
Create a partner
Create a partner link
Retrieve partner links
Create or update a partner link
Retrieve QR code information
Create a tag
Delete a tag
Retrieve a list of tags
Update a tag
Track a lead event
Track a sale event
Retrieve workspace information
Update workspace information
Trivial descriptions under 30 characters for 40+ tools. Examples: 'Count links' (11 chars), 'Retrieve a link' (15 chars), 'Update a tag' (12 chars). These lack context for when/why an LLM should select the tool, violating the 10 - 1024 character guideline and baseline of 194 chars average.
No output schemas documented. Nowhere in the visible code can an LLM learn what fields are returned by any tool. This prevents agents from planning multi-step operations and understanding what data is available after each call.
No error handling guidance visible. The formatResult function in tools.ts does minimal validation and returns generic 'Unsupported content type' errors. No actionable error messages that tell LLMs how to recover (e.g., 'User not found, try search_users() first').
Domains tools show better schema detail (domains-create has 8 nested properties with types, domains-list has 4 parameters), but most other 36 tools do not follow this pattern. Inconsistent schema quality across the server.
No enum constraints visible. Tools likely accept free-form strings where enums would help (e.g., archived: true/false should be documented as such; status fields likely have valid values not specified).
No parameter descriptions visible for nested request object properties in 36+ tools. LLMs cannot infer what 'request.property' means or what values are valid.
Code-generated by Speakeasy. The package.json and source files show 'Code generated by Speakeasy' headers throughout. This explains the uniformity and lack of hand-tuned descriptions, the generator prioritized API completeness over LLM usability. Generator output requires manual refinement for production.