Skip to main content
Glama
cyanheads

toolkit-mcp-server

by cyanheads

toolkit-mcp-server: generate id

toolkit_generate_id
Read-only

Generate cryptographically-random identifiers (UUID v4, UUID v7, or ULID) in batches up to 1000, ensuring unpredictable, sortable IDs for your application.

Instructions

Mint cryptographically-random identifiers using the platform CSPRNG — the correct source for IDs that must be unpredictable, unlike model-generated values. type selects the format: uuid_v4 (random, the default), uuid_v7 (time-ordered, sortable by creation), or ulid (26-char Crockford-base32, lexicographically sortable). Set count to mint a batch in one call (up to 1000); the returned ids array always contains exactly count values and is never truncated. For uuid_v7 and ulid, a batch is monotonic — strictly increasing even within the same millisecond — so the ids array stays in sorted creation order. IDs from this tool feed into toolkit_generate_qr (pass ids[0] as data) to create a scannable code.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeNoIdentifier format: uuid_v4 (random), uuid_v7 (time-ordered), or ulid (sortable Crockford-base32).uuid_v4
countNoHow many identifiers to mint (1–1000). The full batch is always returned.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idsNoThe minted identifiers — exactly count of them, in mint order; for uuid_v7 and ulid that order is strictly increasing (sorted by creation).
typeNoThe identifier format that was minted.
countNoThe number of identifiers minted (equals the requested count).
errorNoPresent when the call failed. Absent on success.
Behavior4/5

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

Annotations only declare readOnlyHint=true and idempotentHint=false. The description enriches this by clarifying that the result is cryptographically random, that the ids array always contains exactly count values and is never truncated, and that batches for uuid_v7/ulid are monotonic and sorted. These behavioral details go beyond what annotations provide, though it does not mention failure modes or performance characteristics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense paragraph with zero filler. It front-loads the core purpose, then details types and count, then adds behavioral guarantees and a cross-reference to a related tool. Every sentence earns its place and the structure is logical.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given only 2 parameters, 100% schema coverage, and a provided output schema, the description is complete. It covers the purpose, usage, parameter semantics, behavioral guarantees, and even a downstream use case. There is nothing an agent needs to know to call it correctly that is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides 100% description coverage for both parameters. The description adds value by explaining the semantic difference between uuid_v4, uuid_v7, and ulid (including sortability), the default behavior, and the monotonic ordering within a batch — none of which are in the schema descriptions. It also clarifies the count semantics (exact return size).

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?

The description opens with a specific action ('Mint cryptographically-random identifiers') and a precise resource ('platform CSPRNG'), and immediately distinguishes it from the alternative of model-generated values. It also names the three output formats with their distinct properties, so an agent can clearly tell this tool apart from siblings like toolkit_hash_value or toolkit_generate_qr.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use this tool ('IDs that must be unpredictable') and when not ('unlike model-generated values'), and it names a concrete downstream use case (feed ids[0] into toolkit_generate_qr). This leaves no ambiguity about the appropriate context of use.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cyanheads/toolkit-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server