illustrator-mcp
Server Quality Checklist
Latest release: v1.0.0
- Disambiguation4/5
Most tools have clearly distinct purposes, but illustrator_status and illustrator_document_info both report document-related information and could be confused. illustrator_run_script also overlaps with everything by design, though its description frames it as the fallback for uncovered operations.
Naming Consistency4/5The tools consistently use the illustrator_ prefix and mostly follow a verb_noun pattern (create_document, open_document, add_rectangle). However, illustrator_status and illustrator_document_info break the verb-first pattern, and run_script uses a different verb style than the rest.
Tool Count5/5Ten tools is well-scoped for an Illustrator automation server. The set covers document lifecycle, export, basic drawing, text, and inspection without feeling bloated or sparse.
Completeness3/5The surface covers document creation, opening, saving, exporting, adding shapes/text, and inspecting documents, but lacks direct operations for modifying or deleting existing objects, managing layers/artboards, or handling selections. The generic run_script tool fills these gaps but at the cost of a more complete purpose-built API.
Average 3.7/5 across 10 of 10 tools scored. Lowest: 2.8/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 2 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It only states 'exports' without mentioning side effects like overwriting existing files, whether the file is created fresh, or what happens if the target path is invalid. It does not indicate if the operation is reversible or what errors may occur. This is insufficient for a file-writing operation with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no fluff. It states the key facts (action, formats, path) efficiently. Every word earns its place, and the structure is front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that writes a file, the description is incomplete. It does not mention whether the document must be open, what happens if the path exists, or whether the operation returns a status. There is no output schema, so the agent cannot infer response behavior. Given the simplicity of the tool (only two params), some of this could be implied, but the lack of any leading or trailing context makes it minimally viable at best.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes 'path' (absolute output path including extension), but 'format' has no description beyond the enum. The tool description does not add meaning to the parameters: it merely repeats that output goes to a path. It fails to explain the relationship between format and extension, or any constraints (e.g., whether extension must match format). With only 50% schema coverage, the description should compensate, but it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (export), the resource (active document), and the supported formats (PNG, JPEG, PDF, SVG) plus output path. It is specific and not a tautology, and it distinguishes itself from save_document by framing it as an export of the active document. However, it does not explicitly differentiate from sibling tools like save_document or run_script, leaving some ambiguity about when export is preferred.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as save_document or create_document. There is no mention of prerequisites (e.g., an open document), file overwrite behavior, or conditions like 'use export when you need an image format'. The lack of any usage context forces the agent to infer applicability solely from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Does not disclose return value, side effects, error handling, or whether it modifies the active document. Minimal behavioral info.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence, no fluff, but lacks detail. Structure is simple and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the schema has only minimal descriptions, the tool description does not fill gaps like output, errors, or context. Incomplete for a robust tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only fillColor has schema description; x, y, text, fontSize lack explanation. Description mentions position but not units or coordinate system. Lacks detail on meaning of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it adds a point-text frame with given content, position, font size, and color to the active document. Distinguishes from shape-adding tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus others, or any preconditions. Does not mention coordinate system or any requirements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose side effects and requirements. It mentions 'active layer' and 'active document' but does not warn about errors if no document is open, whether the operation modifies the existing document (though implied), or what happens if invalid coordinates are provided. No return value or error behavior is described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no unnecessary words. The primary action is front-loaded in the first sentence, and the coordinate system clarification is in the second. It is efficient and easily parsed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 6 parameters, no output schema, and no annotations, so the description must carry more context. It omits error handling, prerequisites (e.g., having an active document open), and return values. An agent might not know how to interpret failures or what the tool returns upon success, which is a significant gap for a tool with multiple parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (only fillColor and strokeColor have descriptions). The description clarifies that x and y coordinates are measured in points from the top-left of the artboard, which adds meaning for those parameters. However, it does not explicitly state that width and height are also in points, and it does not elaborate on the fill/stroke behavior beyond what the schema already provides. This partial compensation is helpful but not comprehensive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Draws a filled/stroked rectangle') with a clear resource (rectangle) and context ('active layer of the active document'). It clearly differentiates from sibling tools like `illustrator_add_ellipse` by naming the shape explicitly. The coordinate system note also adds specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. The description implies it's for rectangles but does not mention conditions, prerequisites, or mention sibling tools. An agent must infer that this is the right choice for rectangle creation based solely on the name and brief description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the launching behavior, which is important, and notes it reports version and document summary. However, it does not specify whether launching Illustrator has side effects, requires user interaction, or what happens if Illustrator is already running. The 'launching it if needed' hint is valuable but could be more transparent about consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and efficient, stating the primary action and expected output. It is not overly verbose, but it could be slightly front-loaded with the core purpose (status check) before mentioning the launch behavior, though the current order is still logical and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a status tool with no parameters and no output schema, the description covers the basics: connection, launch, version, and document summary. However, it lacks details on return format, potential failure modes, or side effects, which are important for an agent to use it correctly. Given the low complexity, the description is adequate but not complete enough to fully guide an agent without extra context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the schema has no properties, so the description doesn't need to explain parameters. The description correctly focuses on the tool's behavior rather than parameters, which is appropriate for a parameterless tool. It adds context about what the status check includes, which is useful beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool connects to Illustrator, launches it if needed, and reports version and open documents. It is specific about the verb 'connects' and the resource 'Illustrator' and distinguishes from siblings by focusing on status rather than document operations. However, it doesn't explicitly contrast with sibling tools like illustrator_document_info, which might also report document info, leading to slight ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is for checking connection and status, which is useful before performing other operations, but it does not explicitly state when to use it versus alternatives like illustrator_document_info. There is no mention of when not to use it, leaving the usage context somewhat implicit rather than clearly defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It uses the verb 'reports,' which implies a read-only, non-destructive operation, but it does not explicitly state that it makes no changes or that it does not require special permissions. It also does not mention any potential side effects or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the action ('Reports') and the target ('the active document'), followed by a clear list of the specific details it provides. It is efficient and free of unnecessary wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lists the exact information returned (name, path, size, artboard count, layer names), which is sufficient for a simple info tool. However, it does not specify the output format (e.g., data structure) or mention what happens if no document is active, leaving minor gaps in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no input parameters, so there is nothing to explain beyond the schema. The description does not add any parameter-related semantics, but since the schema is trivially covered (no parameters), a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: it reports details of the active document, listing specific attributes (name, path, size, artboard count, layer names). This distinguishes it from sibling tools that create, open, save, or export documents, as it is the only one focused on information retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given on when to use this tool versus alternatives. While it is implied that it should be used to inspect the current document, there is no mention of prerequisites (e.g., having a document open) or comparison with other info tools like 'illustrator_status'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It explains the coordinate system (points from top-left) and the active layer/document context, which is useful. However, it does not disclose whether the tool returns anything, how it affects selection or undo, or possible failure modes. It also leaves ambiguous whether fill/stroke are always applied, though the schema clarifies via 'Omit for no fill/stroke'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The primary action is front-loaded, followed by the coordinate clarification. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a drawing command with 6 parameters and no output schema, the description covers the essential behavior and coordinate system but omits details like explicit units for width/height, return value, and error conditions. It also does not mention how the shape is added (e.g., selection, stacking) or any side effects. Given the moderate complexity, it is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning to x and y by specifying the coordinate origin and units (points), which is critical and not in the schema. It implies width/height are in the same unit, and the reference to fill/stroke maps to the color parameters. Schema descriptions exist for fillColor and strokeColor but not for numeric params, so the description compensates for the 33% coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Draws a filled/stroked ellipse') and the target ('active layer of the active document'), distinguishing it from sibling drawing tools like add_rectangle and add_text. The title reinforces the resource as an ellipse/circle.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, does not mention prerequisites (e.g., an open active document), and offers no exclusions or conditions. An agent must infer usage entirely from the purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It states the primary effect (active document) but omits any disclosure about error handling, file permissions, what happens to the current document, or side effects of opening. For a state-changing operation with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no fluff. It states the action, supported formats, and key effect in an efficient manner.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple open operation with one parameter and no output schema, the description covers the essential action and effect. It lacks detail on failure modes or handling of currently open documents, but these are minor for an open operation. Overall, it is adequate for an agent to correctly invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter (path) is fully described with an example. The tool description adds no extra meaning beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb (Opens) and resource (file from disk), specific formats listed, and the effect of making it the active document. This distinguishes it from create/save/export siblings without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: use this to load an existing file. It doesn't explicitly exclude creation or saving, but the description's scope is obvious. No explicit alternatives are named, but the sibling list makes the differentiation apparent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It clearly reveals the core write behavior and the Save As distinction, but it does not mention potential overwrite/error conditions, what happens to the active document after a Save As, or whether any confirmation/return is produced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one focused sentence with no filler. It front-loads the primary action and immediately clarifies the optional-path behavior, making it easy for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter save operation, the description tells the agent exactly what happens in both invocation modes, which is sufficient to call it correctly. It omits explicit return/error behavior, but that is not a major gap for such a straightforward tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter `path` is already fully documented in the schema with its type, optionality, and '.ai' requirement at 100% coverage. The description only restates that information and adds no additional semantic detail, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Saves'), a clear resource ('the active document'), and the two modes of behavior: in-place save and Save As via `path`. This also differentiates it from sibling `illustrator_export_document`, since it explicitly targets .ai files rather than export formats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear conditional usage: call with no `path` to save in place, or supply a `path` to Save As. It does not explicitly name alternatives like `illustrator_export_document`, so it stops short of full when/not guidance, but the operational conditions are unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given no annotations, the description carries the burden. It discloses that the tool creates a new document and makes it the active document, which implies it changes application state. It does not mention potential side effects like overwriting, but creation tools are typically non-destructive. It also does not disclose whether it returns anything, but that is not critical. The description is honest about the core behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the core purpose and includes essential unit information. No redundancy; each part contributes (new, blank, size, active). Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool, the description covers the essential behavior: creation, units for size, and active status. It doesn't mention return values or error handling, but the schema and typical tool behavior suffice. It could mention that it creates a document in the current project or workspace, but given the simplicity, it's fairly complete. The sibling context makes it clear this is the 'new document' tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents each parameter, so baseline is 3. The description adds the conversion 72pt = 1in, which is valuable for agents understanding units. It also ties width/height to artboard size, reinforcing the schema. The colorMode and name are adequately described in schema, but the unit clarification adds meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Creates a new, blank Illustrator document' with specific actions (create, make active). It specifies the resource (Illustrator document) and differentiates from siblings like open_document (which opens existing) and save_document (which saves). The mention of
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: it is for creating a new document rather than opening or modifying existing ones. It explicitly states that the document becomes the active document, which guides subsequent tool calls. It does not explicitly exclude alternatives, but the specificity of 'new, blank' makes the use case clear. No prerequisites or caveats are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool executes arbitrary code, notes the language is 'roughly ES3', and explains the return value behavior ('value of the last expression ... returned as a string'). It also lists relevant object model areas (app, documents, PathItem, etc.). While it doesn't warn about destructive side effects, 'arbitrary' and 'anything' convey broad capability. This is solid disclosure for an escape-hatch tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences cover action, usage, return semantics, and object model references. No filler or repetition. The most important information is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a single parameter and no output schema, the description is nearly complete: it explains what it does, when to use, and how to get results. The only gap is error handling or exception behavior, but that's a minor omission for an arbitrary-code tool. The object model docs reference further helps the agent craft scripts without external lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the 'script' parameter is described as 'ExtendScript source code to run inside Illustrator.' The tool description adds value beyond the schema by explaining how to produce a return value ('end your script with a bare expression') and providing context about the language (ES3) and the object model. This exceeds the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Executes arbitrary ExtendScript') and the resource (Illustrator's scripting language, 'inside the running Illustrator instance'). It explicitly distinguishes itself from siblings with 'Use this for anything the other tools don't cover directly', making its role as a catch-all tool unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit usage guidance: 'Use this for anything the other tools don't cover directly.' This tells the agent when to choose this tool over sibling tools and implicitly when not to use it (when a specific tool covers the task).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Christancho-co/illustrator-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server