Skip to main content
Glama

toolkit-mcp-server

Server Details

Generate IDs, QR codes, and hashes, encode values, geolocate IPs, plus gated host diagnostics.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
cyanheads/toolkit-mcp-server
GitHub Stars
18
Server Listing
toolkit-mcp-server

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.7/5 across 5 of 5 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a clear, distinct purpose: encoding/decoding, ID generation, QR generation, IP geolocation, and hashing. There is no overlap or ambiguity between tools.

Naming Consistency5/5

All tools follow the consistent 'toolkit_verb_noun' pattern (e.g., toolkit_encode_value, toolkit_generate_id). The naming is uniform and predictable.

Tool Count5/5

5 tools is well-scoped for a utility toolkit. Each tool serves a distinct function without being too sparse or overwhelming.

Completeness4/5

The tools cover core utilities (encoding, hashing, ID generation, QR generation, geolocation) but lack QR decoding and other common transformations. Minor gap but overall cohesive.

Available Tools

5 tools
toolkit_encode_valuetoolkit-mcp-server: encode valueA
Read-onlyIdempotent
Inspect

Encode or decode a value across base64, base64url, hex, or URL (percent) encoding, in either direction. Set operation to "encode" to transform raw UTF-8 text into the chosen encoding, or "decode" to recover the original text from an encoded value. base64url uses the URL-safe alphabet (- and _ instead of + and /); url applies encodeURIComponent / decodeURIComponent. Decoding a value that is malformed for the chosen encoding is reported as a recoverable error, not a silent best-effort.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesThe value to transform — raw text for encode, an encoded string for decode.
encodingYesThe encoding to apply: base64, URL-safe base64url, hex, or URL percent-encoding.
operationYes"encode" transforms text into the encoding; "decode" recovers text from an encoded value.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYesThe transformed value (encoded text, or the decoded original).
encodingYesThe encoding that was applied.
operationYesThe operation that was performed.
Behavior5/5

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

Annotations already declare readOnlyHint and idempotentHint. Description adds: base64url alphabet details, url using encodeURIComponent, and that malformed decode returns a recoverable error (no silent fallback). This provides meaningful behavioral context beyond annotations.

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?

Three dense sentences covering operation, encodings, error behavior. No redundant words. Front-loaded with main action.

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?

With output schema present, no need to describe return values. Description covers all essential aspects: inputs (raw text vs encoded), operation, encoding choices, error handling. Complete for this straightforward tool.

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?

Schema covers all 3 params at 100% with clear descriptions. Description adds general context about operation direction and encoding specifics, but does not introduce new per-parameter detail beyond schema. Some value added by overall framing, so above baseline 3.

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?

Clear verb+resource: 'encode or decode a value' across four named encodings. Distinct from siblings (generate_id, generate_qr, geolocate_ip, hash_value) which serve entirely different purposes.

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?

Explicitly states when to use encode vs decode and defines each encoding variant (base64, base64url, hex, URL). Notes error handling for malformed decode input. Lacks explicit comparison to sibling tools but the distinct domains make this less critical.

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

toolkit_generate_idtoolkit-mcp-server: generate idA
Read-only
Inspect

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.

ParametersJSON 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

ParametersJSON Schema
NameRequiredDescription
idsYesThe minted identifiers — exactly count of them, in mint order; for uuid_v7 and ulid that order is strictly increasing (sorted by creation).
typeYesThe identifier format that was minted.
countYesThe number of identifiers minted (equals the requested count).
Behavior5/5

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

Annotations already declare readOnlyHint=true, and the description reinforces this by describing a pure generation function with no side effects. It adds critical behavioral details beyond annotations: the ids array is never truncated, uuid_v7 and ulid batches are monotonic and strictly increasing, and type selection impacts sortability. No contradiction with annotations.

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?

Four sentences, all substantive. First sentence states purpose and key differentiator. Second explains type parameter with format details. Third explains count and batch behavior with guarantees. Fourth cross-references another tool. No filler, every sentence earns its place.

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 the tool has only 2 parameters (both with defaults, 100% schema coverage, enums for type), a rich output schema exists, and annotations cover the behavioral profile, the description is fully complete. It covers the generation source, format semantics, batch behavior guarantees, and even downstream usage. No gaps for an agent to act on.

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?

Schema description coverage is 100%, so baseline is 3. The description adds significant value beyond schema: it explains the cryptographic nature of generation, the specific properties of each format (time-ordered for uuid_v7, lexicographically sortable for ulid, Crockford-base32 for ulid), and batch monotonicity guarantees. It does not add syntax details but that's unnecessary given the schema already has enums and defaults.

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 clearly states the tool mints cryptographically-random identifiers using the platform CSPRNG, explicitly distinguishing it from model-generated values. It specifies the verb 'mint' and the resource 'cryptographically-random identifiers', and the sibling tools (encode, generate QR, geolocate, hash) are all clearly different in purpose.

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?

The description explicitly explains when to use this tool (when IDs must be unpredictable) versus not (model-generated values), and even provides cross-reference to toolkit_generate_qr for the next step. It gives clear context for format selection (uuid_v4, uuid_v7, ulid) and batch behavior.

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

toolkit_generate_qrtoolkit-mcp-server: generate QR codeA
Read-onlyIdempotent
Inspect

Encode text or a URL into a QR code. data is the content to encode (a link, a generated identifier such as toolkit_generate_id's ids[0], or any string). format selects the output: svg returns inline SVG markup, png_base64 returns base64-encoded PNG bytes (with mimeType and byteLength), and terminal returns a block of Unicode block characters renderable in a monospace terminal. errorCorrection (L/M/Q/H) trades data capacity for damage tolerance, margin sets the quiet-zone width, and scale sets pixels per module for raster output. The returned version (1–40) reflects how dense the encoded data is. png_base64 renders (modules + 2 × margin) × scale pixels per side and rejects anything past 2048 px with a typed raster_too_large error, so a dense symbol needs a lower scale; svg carries no such limit.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesThe text or URL to encode. 2953 is the absolute ceiling (QR version 40, level L, byte mode); usable capacity drops at higher errorCorrection levels, so over-capacity data is rejected with a typed data_too_large error rather than a generic failure.
scaleNoPixels per module for raster (png_base64) output. Ignored for terminal. png_base64 also bounds the whole image at 2048 px per side, so a dense symbol or a wide margin admits a lower scale than 32.
formatNoOutput format: svg markup, png_base64 (raster bytes), or a terminal-renderable string.svg
marginNoQuiet-zone width in modules around the symbol. The spec recommends 4.
errorCorrectionNoError-correction level: L (~7% recoverable) to H (~30%). Higher tolerance lowers data capacity.M

Output Schema

ParametersJSON Schema
NameRequiredDescription
formatYesThe format that was produced.
contentYesThe QR artifact: SVG markup, a terminal-renderable string, or base64 PNG bytes for png_base64.
versionYesQR symbol version (1–40); higher versions hold denser data and indicate denser content.
mimeTypeNoMIME type of content for image formats. Absent for the terminal format.
byteLengthNoDecoded byte size of the PNG. Present only for png_base64.
Behavior5/5

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

The description goes well beyond the readOnlyHint and idempotentHint annotations. It discloses the different output formats (svg, png_base64, terminal), the error-correction trade-off, pixel size limits for png_base64 (2048 px side), the version range, and typed error conditions (data_too_large, raster_too_large). This richly informs the agent about the tool's behavior.

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?

The description is a single, dense paragraph that efficiently conveys all necessary information. Every sentence adds value. It is front-loaded with the main purpose. However, it could be slightly improved by using bullet points or separate sections for readability, though it remains concise and effective.

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 the tool has an output schema, the description does not need to explain return values. It covers all parameters, format options, error cases, limits, and version semantics. The description is complete for the complexity of the tool (5 parameters, 2 enums, dynamic constraints).

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?

Schema coverage is 100%, so the baseline is 3. The description adds value by explaining the relationship between scale, margin, and pixel size for png_base64, the error-correction levels' impact on data capacity, and the version output. It also clarifies that scale is ignored for terminal output. This is more than the schema alone provides.

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 clearly states 'Encode text or a URL into a QR code.' This is a specific verb+resource (encode into QR code) that uniquely identifies the tool's purpose. It distinguishes itself from sibling tools (generate_id, encode_value, etc.) without overlap.

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?

The description does not explicitly state when to use this tool vs. alternatives, but the context is clear: it is for QR code generation. It provides concrete usage examples (links, generated IDs, any string) and mentions error cases, which helps an agent decide. However, direct 'when-not' guidance is absent, so it's not a 5.

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

toolkit_geolocate_iptoolkit-mcp-server: geolocate IPA
Read-onlyIdempotent
Inspect

Resolve a public IP address (or hostname) to geographic and network metadata: country, region, city, latitude/longitude, the owning ASN and organization, timezone, and the proxy/hosting/mobile quality flags. target accepts an IPv4/IPv6 address or a hostname — a hostname is DNS-resolved first and the resolvedIp field echoes which IP was actually located. The provider is called directly (never the target), so this is SSRF-free and safe to expose anywhere. Results are best-effort and provider-bounded: VPNs, proxies, mobile NAT, and anycast all defeat IP-to-location, accuracy is city-level at best, and many fields can be absent for reserved or thinly-documented ranges — absent fields are reported as unknown, never invented. Read proxy, hosting, and mobile before trusting the coordinates: a true on any of them means the location describes infrastructure, not the user. Private/reserved addresses have no public geolocation and are rejected. The source field names which provider answered.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesA public IPv4/IPv6 address or a hostname (e.g. "8.8.8.8" or "example.com").

Output Schema

ParametersJSON Schema
NameRequiredDescription
asnNoAutonomous System number, e.g. "AS15169". Absent on providers that omit it.
orgNoOwning organization or ISP, e.g. "Google LLC". Absent when unknown.
cityNoCity name. Absent when unknown.
proxyNoTrue when the address is a known proxy, VPN, or Tor exit — the location describes the exit node, not the user. Absent when the provider does not report it.
mobileNoTrue when the address belongs to a mobile carrier network, where NAT can place the location far from the device. Absent when unreported.
regionNoRegion or state name. Absent when unknown.
sourceYesThe provider that answered the lookup, e.g. "ip-api".
targetYesThe target as supplied (IP or hostname).
countryNoCountry name. Absent when the provider does not report it.
hostingNoTrue when the address belongs to a hosting or datacenter network, so the location is a facility rather than a person. Absent when unreported.
latitudeNoLatitude in decimal degrees. Absent when unknown.
timezoneNoIANA timezone, e.g. "America/Los_Angeles". Absent when unknown.
longitudeNoLongitude in decimal degrees. Absent when unknown.
resolvedIpYesThe IP that was actually located (a supplied hostname is resolved to this first).
countryCodeNoISO 3166-1 alpha-2 country code. Absent when unknown.
Behavior5/5

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

The description goes far beyond the annotations (readOnlyHint, openWorldHint, idempotentHint) by detailing SSRF safety, best-effort nature, provider-bounded accuracy, handling of absent fields (reported as unknown, never invented), and the significance of proxy/hosting/mobile flags. It also explains that hostnames are DNS-resolved and that private addresses are rejected. This is rich behavioral context.

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?

The description is relatively long but every sentence adds unique value (purpose, parameter behavior, safety, limitations, output interpretation). It is front-loaded with the main purpose. While it could be slightly tighter, it is well-structured and not redundant.

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 the tool has an output schema (not shown but present), the description does not need to detail return values. It covers input behavior, security, accuracy limitations, quality flag interpretation, and error conditions (private address rejection). This is complete for a single-parameter lookup tool with rich metadata.

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?

Schema coverage is 100% for the single parameter 'target', which already describes accepted formats. The description adds value by explaining that hostnames are DNS-resolved first and the resolved IP is echoed in the output, and that private/reserved addresses are rejected. This provides meaning beyond the schema structure.

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 clearly states that the tool resolves an IP address or hostname to geographic and network metadata, listing specific fields (country, region, city, lat/lng, ASN, organization, timezone, quality flags). This is a specific verb-resource combination that distinguishes it from sibling tools (encode, generate IDs, hash, QR) which are unrelated.

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?

The description explains when to use the tool (geolocation lookup) and includes important caveats: private addresses are rejected, accuracy is best-effort, results may be unreliable for VPNs/proxies. It also states that the tool is SSRF-free and safe to expose. However, it does not explicitly contrast with alternative tools, though the sibling tools are unrelated enough that this is not a major gap.

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

toolkit_hash_valuetoolkit-mcp-server: hash valueA
Read-onlyIdempotent
Inspect

Generate a cryptographic digest of a value, or verify a value against an expected digest. Set operation to "generate" for a lowercase-hex digest, or "compare" to constant-time-check value against the expected digest — compare is timing-safe and avoids manual string equality checks. Algorithm defaults to sha256; sha512 is also secure, while md5 and sha1 are exposed for checksum and file-integrity compatibility ONLY and must not be used for passwords, signatures, or any security purpose. inputEncoding controls how value and expected are read before hashing (utf8 default, or hex/base64 for raw binary data) so binary blobs need no decode round-trip. The canonical use is matching a download against a vendor-published checksum.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesThe data to hash, interpreted per inputEncoding (raw text by default).
expectedNoThe expected lowercase-hex digest to compare against. Required when operation is "compare".
algorithmNoDigest algorithm. sha256 (default) or sha512 for security; md5/sha1 are checksum/compat only — not for security.sha256
operationNo"generate" produces a digest; "compare" constant-time-checks value against expected.generate
inputEncodingNoHow value (and expected's pre-image, when relevant) is decoded before hashing: utf8 text, hex, or base64.utf8

Output Schema

ParametersJSON Schema
NameRequiredDescription
digestNoLowercase-hex digest of value. Present for operation "generate".
matchesNoConstant-time equality of the computed digest against expected. Present for operation "compare".
algorithmYesThe algorithm used.
operationYesThe operation performed.
lengthInBytesNoDigest size in bytes (32 for sha256, 64 for sha512, 20 for sha1, 16 for md5). Present for "generate".
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the agent knows the tool is safe and idempotent. The description adds value by disclosing that 'compare' is timing-safe ('constant-time-check value against expected digest — compare is timing-safe and avoids manual string equality checks') and that md5/sha1 are for compatibility only. It does not contradict annotations.

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?

The description is 4 sentences, well-structured and front-loaded with the core purpose. Each sentence adds value: operation modes, algorithm security warnings, input encoding utility, and a canonical use case. Slightly longer than necessary but every sentence earns its place.

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 the tool's complexity (5 parameters, 2 operations, security nuances), 100% schema coverage, and the presence of an output schema (which explains return values), the description is complete. It covers all behavioral aspects: dual modes, algorithm security, encoding flexibility, and a concrete use case. No gaps remain.

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?

Schema description coverage is 100% and provides solid defaults and enum explanations. The description adds additional meaning: it explains why compare is preferred over manual equality checks (timing safety), how inputEncoding helps avoid decode round-trips for binary data, and that sha256/sha512 are secure while md5/sha1 are not. This goes beyond the schema's basic descriptions.

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 uses specific verbs ('generate' and 'verify') and resources ('cryptographic digest', 'value'), clearly distinguishing the tool's two operations. It differentiates from siblings by focusing on hashing and comparison, which none of the listed sibling tools (encode, generate id, generate qr, geolocate ip) perform.

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?

The description explicitly states when to use each operation ('Set operation to "generate"... or "compare"...'), warns against using md5/sha1 for security purposes ('must not be used for passwords, signatures'), and provides canonical use cases ('matching a download against a vendor-published checksum'). It implicitly distinguishes from siblings by covering hashing, which they do not.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    14 utility tools via the PublicSoftTools API: QR code generation, PDF compress/merge/split/convert/unlock, cryptographic hashing (MD5/SHA-1/SHA-256/SHA-512), UUID generation, base64 encode/decode, secure password generation, IP geolocation, DNS records, SSL certificate check, and WHOIS lookup. Free tier: 1,500 calls/month.
    14
    13
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Provides deterministic system information and developer utilities including date/time operations, OS details, math calculations, random data generation, hashing, text formatting, data validation, encoding/decoding, and log analysis.
    20
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Provides deterministic micro-utilities as an MCP server, including free tools for conversion, text processing, hashing, encoding, ID generation, and regex, plus paid per-call tools for timezone, cron, RRULE, currency, diff, JSON Schema validation, and date math.
    13
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.