Skip to main content
Glama

Luala

Add a selfie

add_selfie

Adds one selfie to the user's selfie set in Luala, which shoots are made from, free: one face, clearly visible, up to 15 selfies in the set. Pass the file the user attached as photo. If you can't, but the file is in your sandbox, call with its content_type (image/jpeg, image/png or image/webp: convert a HEIC to JPEG first) and size in bytes, PUT the file to the answer's upload url with its headers, then call again with the answer's key. Called with none of these, it answers with the luala.app page where the user adds it. The user accepted the upload rules when connecting Luala.

Input Schema

NameRequiredDescriptionDefault
keyNo
sizeNo
photoNoThe file the user attached.
content_typeNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the supplied annotations (which only mark it as a non-read-only, non-idempotent open-world write): it discloses the free tier, the single-clearly-visible-face rule, the 15-selfie set limit, the accepted MIME types, the HEIC-to-JPEG conversion requirement, the two-step upload handshake, and that the user already accepted the upload rules. That is exactly the mutation, quota and consent context an agent needs before calling.

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?

Front-loads the purpose and stays compact for a multi-step upload protocol, with no filler sentences. The telegraphic, run-on phrasing of the upload branch ('call with its content_type ... and size in bytes, PUT the file ... with its headers, then call again') is dense and costs some parseability.

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?

Covers the tricky parts of a nested-object, multi-step upload tool and explains what the no-parameter call returns. It does not say what a successful add returns (e.g., the created selfie or remaining quota), and there is no output schema to fill that gap, though the 'answer's upload url/key' wording hints at the shape.

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

Parameters5/5

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

With only 25% schema description coverage, the description carries the burden well: photo is 'the file the user attached', content_type is constrained to image/jpeg, image/png or image/webp with a HEIC caveat, size is in bytes, and key comes from the upload answer. Each of the four parameters is given operational meaning the schema does not provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Adds one selfie to the user's selfie set in Luala, which shoots are made from', plus the hard constraint of one face and a 15-selfie cap. It does not explicitly contrast itself with the sibling add_photo, so an agent must infer the selfie-vs-photo distinction from the name and the 'selfie set' phrasing.

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?

Lays out three concrete invocation modes: pass the attached file as photo, or pass content_type plus size for a sandboxed file then PUT and re-call with key, or call with nothing to get the luala.app page. This is strong when-to guidance for each branch, but it never names a sibling tool as an alternative when the content is not a selfie.

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.

Resources