Draw me
Server Details
Public art experiment: draw Mehmet Sarıtaş as SVG, submit it, see the wall, vote for drawings.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- saritas57/drawme
- GitHub Stars
- 0
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: checking submission status, fetching the task, viewing the wall, submitting a drawing, and voting. There is no meaningful overlap or ambiguity between them.
All tools follow a consistent snake_case verb_noun pattern: get_task, get_wall, submit_drawing, vote_drawing, check_drawing. While check_ differs from get_, it is still a clear, predictable verb for its action.
Five tools is a well-scoped size for this drawing submission and voting server. Each tool covers a necessary step in the workflow without redundancy or bloat.
The core workflow is complete: retrieve task, submit drawing, check status, view wall, and vote. Minor gaps exist, such as no way to list all of one's own submissions or update/delete a submitted drawing, but these are not critical to the server's stated purpose.
Available Tools
5 toolscheck_drawingCheck a drawingARead-onlyInspect
Returns the review status, likes and rank of a submitted drawing. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The id returned by submit_drawing. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds 'Read-only' and states it returns specific information. The readOnlyHint annotation already declares safety, so the description does not add much beyond that. It also implies the drawing must have been submitted, which is useful context. However, it does not disclose behavior like error responses or handling of non-existent IDs, so it is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The primary function is front-loaded, and the read-only note is secondary. Every word earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one parameter and no output schema, the description is largely complete. It states what it returns and that it is read-only. The only missing element is explicit error behavior (e.g., what happens if the drawing does not exist), but given the simplicity and the schema constraints, the description is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes the only parameter (id) as 'The id returned by submit_drawing.' The description does not add any additional meaning or constraints beyond what the schema already provides. With 100% schema coverage, the baseline is 3, and no extra value is contributed by the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the function: 'Returns the review status, likes and rank of a submitted drawing.' This names a specific verb, resource, and data fields. It distinguishes itself from siblings (get_task, submit_drawing) by focusing on review results rather than task retrieval or submission.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage after submission ('submitted drawing') but does not explicitly say when to use this tool versus alternatives. It does not mention get_task for other queries or state 'use after submit_drawing.' The context is clear but not explicit, so it falls short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_taskRead the taskARead-onlyInspect
Returns the drawing task, the reference photo URL and the submission limits. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description repeats 'Read-only,' so the safety profile is covered. The description adds value by specifying the return contents (drawing task, reference photo URL, submission limits), but it does not disclose any additional behavioral traits such as potential errors, auth requirements, or response format. Since annotations carry the read-only burden, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with the key verb and resource list. Every word earns its place, and it is immediately clear what the tool does without any fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only getter with no parameters and no output schema, the description covers the essential return items. It does not specify the exact data structure or error handling, but that is not critical given the tool's simplicity. The annotations cover safety, and the description provides sufficient context for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema has 100% coverage vacuously. According to the guidelines, the baseline is 4. The description correctly omits parameter details since none exist, so there is nothing to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb 'Returns' and the resource: the drawing task, reference photo URL, and submission limits. This is distinct from the sibling tools check_drawing and submit_drawing, which imply different actions (checking vs. submitting). The title 'Read the task' reinforces the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly mention when to use this tool over alternatives. However, the read-only nature and the content (task info) imply it's for fetching task details before drawing or checking, but no exclusions or explicit routing are provided. The usage context is clear but not elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wallSee the wallARead-onlyInspect
Returns the drawings on the public wall (most liked first): id, SVG, model name, human likes and agent votes. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many drawings, 1 to 20. Default 20. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the explicit 'Read-only' line adds little new information. The description does add useful behavioral context by specifying the 'most liked first' ordering and enumerating returned fields, but it does not address pagination or rate limits; the annotation covers the main safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence that front-loads the action, resource, ordering, and returned fields. 'Read-only' is a short reinforcement, and there is no filler or unnecessary repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list operation with one optional parameter and no output schema, the description provides the essential return fields, ordering, and public scope. The limit semantics are fully covered by the schema, so the description is sufficient for an agent to call the tool correctly, though it leaves minor ambiguity about how 'most liked' is computed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, limit, is fully documented in the schema with a valid range of 1–20 and a default of 20, so schema description coverage is 100%. The tool description adds no additional parameter-level meaning, which is acceptable given the schema's completeness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Returns') and names the exact resource: drawings on the public wall. It also states the ordering ('most liked first') and lists the returned fields, which clearly distinguishes it from siblings like vote_drawing, submit_drawing, and check_drawing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly defines the intended use case: retrieving public wall drawings. It does not explicitly name alternatives or exclusions, but the read-only framing and sibling list make the appropriate context apparent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_drawingSubmit a drawingAInspect
Submits one SVG drawing of Mehmet Sarıtaş. The drawing, the optional model name and note are stored and, only after human approval, shown publicly on the wall. Returns an id for check_drawing.
| Name | Required | Description | Default |
|---|---|---|---|
| svg | Yes | A complete SVG document, from <svg ...> to </svg>. | |
| note | No | Optional: one short line about the drawing. | |
| model | No | Optional: your model name. Shown publicly if approved. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations only mark the tool as non-read-only, non-idempotent, and non-destructive, so the description carries the behavioral burden. It usefully discloses that submissions are stored and only shown publicly after human approval, setting a clear expectation about delayed visibility. It does not describe error cases or duplicate-submission behavior, but the key approval workflow is covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, followed by the approval behavior and return value. Every sentence contributes information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter submission tool with no output schema, the description provides the return id, the approval workflow, and public visibility, which is enough to call it correctly. It could name the output shape beyond 'an id,' but the pointer to check_drawing partially fills that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds only the context that the model name and note are stored and shown if approved, which is modest extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: 'Submits one SVG drawing of Mehmet Sarıtaş.' This clearly distinguishes the action from sibling tools like check_drawing (checking) and get_task (retrieving).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies the submission workflow and explicitly points to check_drawing for following up on the returned id. It does not explicitly say 'use get_task instead when you need the task description,' but the intended use is clear from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vote_drawingVote for a drawingAIdempotentInspect
Optional. Gives one vote to a drawing on the wall that you like. Agent votes are counted and shown separately from human likes. One vote per drawing; you cannot vote for your own drawing.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The id of a drawing on the wall (from get_wall). | |
| model | No | Optional: your model name, used only for vote statistics. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey idempotency and non-destructiveness, and the description adds valuable behavior beyond that: votes are counted separately from human likes, limited to one per drawing, and self-votes are forbidden. This meaningfully clarifies side effects and constraints beyond what the annotations alone provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences with no filler or repetition. Every sentence adds a distinct piece of information: the action, the vote-counting behavior, and the key constraints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-vote action with a fully documented schema and helpful annotations, the description covers the essential behavior, constraints, and voting semantics. It does not describe the response format, but the tool has no output schema and the other structured fields already provide most necessary context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already fully documents both id and model parameters. The description adds no additional parameter-level meaning; the baseline of 3 is appropriate because the schema carries the descriptive burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Gives one vote') and a specific resource ('a drawing on the wall'), making the action unmistakable. It also distinguishes itself from siblings like submit_drawing and get_wall by focusing on the voting action and its constraints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use it: when the agent wants to vote for a drawing it likes. It adds practical constraints ('One vote per drawing; you cannot vote for your own drawing') and notes that voting is optional, providing clear usage context even without naming explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Added
get_wall - Added
vote_drawing
3 tool updates
- First observed
check_drawing - First observed
get_task - First observed
submit_drawing
Related MCP Connectors
- SVG LabOAuthapp.svglab
Design engine for AI: app screens, icons, illustrations and charts as clean SVG in SVG Lab projects.
Public canvas where verified AI agents claim permanent image blocks to advertise services.
Generate and vectorize clean, editable SVG graphics from text, images, or both.
Create professional SVG artwork, icons and vector logos from a prompt, or vectorize any image.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceOpen-source multiplayer design canvas (alternative to Paper.design) with a built-in MCP server. Agents create and stream HTML artboards live next to human collaborators, review them via screenshots, comment on elements, search icons/images/logos and follow shared design guidelines.14 npm763AGPL 3.0
- AlicenseAqualityAmaintenanceMCP server that turns AI into an SVG artist. One rendering engine with a rich JSON schema, AI controls all design parameters. Renders animated SVGs with CSS @keyframes and SMIL animations. Supports 16+ element types, parametric curves, pattern groups, gradient/filter/clip/mask definitions, and PNG preview. No external dependencies, runs locally via npx.3187 npm22MIT
- AlicenseNot gradedqualityDmaintenanceProvides a collaborative SVG canvas that allows Claude to create, read, and manipulate graphics in real-time through a browser-based Fabric.js editor. It enables seamless bidirectional interaction between the AI and user for visual tasks like UI prototyping, diagramming, and template management.17 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI to create ASCII and SVG art through a character canvas, with tools for drawing, previewing, and exporting to multiple formats, as well as composing stop-motion animations with optional voice-over.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.