Skip to main content
Glama

4chems Platform — IUCLID, CHESAR & QSAR Toolbox hosting

Create Self Service Tenant

create_self_service_tenant

Create a 7-day trial tenant for the caller's business email domain (UC-052). Needs a verified email on a business domain and attestation: true; answers auth.email_not_verified, tenant.attestation_required, tenant.free_mail_domain (free-mail address), tenant.domain_exists (a live trial tenant on the domain) or trial.exists_for_domain (the domain already had its one trial; call start_inquiry). The trial lasts exactly 7 days; ttl / expires_at in the body are ignored.

Input Schema

NameRequiredDescriptionDefault
bodyNoRequest body for POST /v1/onboarding/tenants (UC-052). The domain is derived from the caller's verified token email claim (NFR-006 pt 4) — it is not a request parameter. attestation must be true; the endpoint raises 422 if false (NFR-006 §8a).
authorizationYes

Output Schema

NameRequiredDescriptionDefault
typeYes
errorNo
resultNo
statusYes
target_idNo
created_atYes
finished_atNo
target_typeNo
operation_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Adds real behavior beyond annotations: the trial lasts exactly 7 days, ttl/expires_at are silently ignored, and it enumerates the error taxonomy (auth.email_not_verified, tenant.attestation_required, tenant.free_mail_domain, tenant.domain_exists, trial.exists_for_domain). This explains the non-idempotent one-trial-per-domain semantics that the annotations only hint at.

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?

Purpose and preconditions are front-loaded, and the error-code enumeration earns its place by telling the agent what to expect. It is dense and slightly run-on, but nearly every clause carries information.

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?

An output schema exists, so return values need not be described, and the description covers preconditions, side effects (7-day TTL), failure modes, and the sibling escape hatch. Complete enough for a mutating onboarding call.

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 coverage is 50% and the nested body/legal_entity semantics live in the schema, so the description only adds the attestation=true requirement and the note that ttl/expires_at are ignored (fields not even present in the schema). Useful, but it does not compensate for the undocumented authorization parameter.

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?

States a specific verb and resource ('Create a 7-day trial tenant') scoped to 'the caller's business email domain', and tags the use case (UC-052). It is clearly distinct from registration/invitation siblings, and it even names the alternative (start_inquiry) for the exhausted-trial case.

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?

Preconditions are explicit ('verified email on a business domain and attestation: true'), and the trial.exists_for_domain branch routes the agent to start_inquiry. It lacks a general 'do not use this when X' beyond that one alternative, but the context is strong.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.