Skip to main content
Glama
submitator

Submitator MCP Server

Official
by submitator

Set the logo

set_logo
DestructiveIdempotent

Sets or replaces a project's logo by fetching an image URL or using a permitted local file, so each project displays the correct branding.

Instructions

Sets or replaces a project's logo. A URL is fetched right away (a failed fetch answers image_unreachable); with the npx package a local file inside SUBMITATOR_FILES_DIR (or the folder the server started in) works too.

Input Schema

NameRequiredDescriptionDefault
urlNoPublic image URL: PNG, JPEG, GIF or WebP, 5 MB at most
file_pathNoA local image inside SUBMITATOR_FILES_DIR (or the starting folder), instead of url
project_idYesProject id (prj_...)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, but the description adds real context: the URL is fetched immediately and a failed fetch surfaces as the image_unreachable error, plus the SUBMITATOR_FILES_DIR constraint on local paths. That timing and error behavior is not derivable from annotations or schema.

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?

Two tight sentences, front-loaded with the action, then the failure mode, then the alternative input path. No filler and nothing repeated from the schema.

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?

With no output schema, the description covers the meaningful failure signal and both input routes. It omits what happens to an existing logo beyond 'replaces' and any project-state prerequisite, but for a 3-param tool with full schema coverage and annotations this is close to complete.

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 baseline is 3, but the description goes beyond it by tying url and file_path to an either/or choice and by explaining what 'the starting folder' means in the file_path definition. Format and size limits remain schema-only, which is fine.

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?

The description names a specific verb and resource ('Sets or replaces a project's logo') so the agent knows exactly what changes. It does not, however, distinguish itself from adjacent image tools like add_screenshot or remove_image, which a reader must infer.

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?

It clearly explains the two input modes — supply a URL, or with the npx package supply a local file — which is the main decision an agent faces here. It stops short of saying when to prefer this over add_screenshot or how it interacts with remove_image.

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