2Xapi.com GPT-image MCP Server
Server Quality Checklist
Latest release: v0.3.1
- Disambiguation5/5
Each tool has a clearly distinct purpose: configuration get/set, moderation control, image generation, image editing, and model listing. There is no meaningful overlap or ambiguity between tool boundaries.
Naming Consistency5/5All tools follow a consistent verb_noun snake_case pattern: get_config, set_config, set_moderation, generate_image, edit_image, list_image_models. Verb choice and naming style are uniform throughout.
Tool Count5/5Six tools is well-scoped for an image generation MCP server: configuration, moderation, generation, editing, and model discovery. Each tool earns its place without unnecessary bloat or missing essentials.
Completeness4/5The core workflow is covered: configuring the backend, generating images, editing images, and listing available models. The only minor gap is that get_config does not explicitly expose current moderation settings, though set_moderation persists them to config.json.
Average 4.2/5 across 6 of 6 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 14 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under Apache 2.0.
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
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses the external API dependency, config-based endpoint/key/model resolution, per-call overrides, and the return value (image URL plus local path under save conditions). This is solid coverage, though it could also mention rate limits, errors, or data-sent-to-third-party implications.
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 three focused sentences with no filler. The primary purpose is front-loaded, and each sentence contributes: what it does, how configuration works, and what it returns.
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?
The description captures the core flow, configuration dependency, and return contract, but there is no output schema and no annotations. Missing details such as accepted size/quality values, what include_preview does, save_dir mechanics, and error behavior leave meaningful gaps for an agent invoking this tool correctly in varied cases.
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 description coverage is 0%, so the description must compensate, and it does add meaning for n ('one or more'), model (per-call override), and save (triggers local path). However, it does not explain size, quality, include_preview, or valid value formats, leaving several parameters dependent on their self-explanatory names only.
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 opens with a specific action and resource: 'Generate one or more images from a text prompt.' This clearly identifies the tool's purpose and naturally distinguishes it from the sibling edit_image, which would modify existing images rather than generate new ones.
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 provides useful context by pointing to get_config / set_config and explaining that per-call arguments override defaults, implying the tool relies on prior configuration. However, it does not explicitly state when to choose generate_image over edit_image or list_image_models, so usage guidance remains implicit rather than explicit.
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 that the operation is a list/GET, implying read-only behavior, and specifies the HTTP endpoint. However, it does not mention potential pagination, error handling, or whether it requires authentication, though these may be less relevant for a simple list operation.
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 and resource. It includes the endpoint in parentheses without fluff, making every word meaningful.
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?
Given the tool's simplicity (no parameters, no annotations) and the presence of an output schema, the description is largely complete. It explains what is listed and from where. A brief note about usage in the image generation workflow could add context but is not strictly necessary.
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 zero parameters, and the schema is empty, so schema coverage is 100% vacuously. Per the rubric, 0 parameters warrants a baseline of 4. The description adds no parameter-specific details, but none are needed since there are no 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?
The description clearly states the tool's function with a specific verb 'List' and resource 'models exposed by the configured image backend'. It also includes the HTTP endpoint (GET /models), which distinguishes it from sibling tools like generate_image or set_config.
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?
No explicit guidance is given on when to use this tool versus alternatives. The context implies it is for viewing available models before image generation, but there is no direct statement such as 'use this before calling generate_image' or 'instead of other configuration tools'.
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 provided, the description carries the full behavioral burden. It discloses supported image reference formats, mask usage, return behavior ('Returns the edited image URL(s) and metadata'), optional local saving, and configuration-derived credentials/model. It does not detail local save destination/overwrite behavior or API rate-limit/cost effects, but overall it provides substantial operational context.
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 front-loaded with the core purpose, followed by compact, non-redundant sentences covering accepted input formats, mask behavior, output/save behavior, and configuration source. Every sentence adds useful information without padding.
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?
The tool has 9 parameters, no annotations, no output schema, and zero schema descriptions, so the description needs to be quite comprehensive. It covers the essential workflow and several optional behaviors, but leaves size/quality/n/include_preview semantics and output metadata shape undocumented, which limits how confidently an agent can use the full parameter surface.
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 description coverage is 0%, so the description must compensate for undocumented parameters. It adds meaning for images (local path, URL, data URI, base64), mask (region to regenerate), save (optional local saving), and model (default from config), but it does not clarify n, size, quality, or include_preview beyond their bare schema names and defaults.
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 opens with a precise verb set ('Edit, transform, combine or extend') applied to 'one or more input images' and clarifies the modality as 'image + text to image, aka img2img'. This clearly distinguishes the tool from the sibling generate_image, which would operate without input images.
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 makes the use case clear: editing/transforming existing images with a prompt via the images/edits API. It also points to get_config/set_config for endpoint/key/model configuration, but it does not explicitly state when to prefer generate_image or list_image_models instead, leaving alternatives to inference rather than instruction.
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 provided, the description carries the full burden. It explains persistence to a config file, that null/omitted fields remain unchanged, and that changes apply immediately without restart. This is valuable behavioral insight beyond a basic 'update' statement, though it does not cover potential validation or side effects.
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 three sentences: purpose, behavior, and field list. It is front-loaded and each sentence earns its place. No filler or repetition of schema information.
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 config-update tool with no annotations and 5 parameters, the description covers the key aspects: partial update semantics, persistence, immediate effect, and the relevant fields. An output schema exists, so not explaining the return value is acceptable. It could have added a note about validation or file location, but overall it is complete enough.
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 description coverage is 0%, so the description must compensate. It lists all five field names and explains the null/omitted behavior, which adds meaning beyond the raw schema. However, it does not elaborate on the role or allowed values of each field, relying on the self-explanatory names.
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 'Update one or more GPT-image settings and persist them to the config file,' which is a specific verb + resource. It also lists the exact fields involved, making it easy to distinguish from sibling tools like get_config (read) and generate_image (use).
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 provides clear context by noting that changes take effect immediately for subsequent generate_image calls, implying this is the tool to use before generating images. It does not explicitly name alternatives or exclusions, but the intended usage is clear from the context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for disclosing behavior. It covers the screening timing, rejection of disallowed prompts, persistence to config.json, immediate effect, and the null-unchanged semantics, which is comprehensive and goes well beyond the 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with four sentences each adding unique value: purpose, behavior, null semantics, persistence, and disabling. There is no redundancy or fluff.
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?
The description thoroughly covers the tool's behavior and effects, and an output schema exists to document return values. However, it leaves the meanings of key parameters undefined, which is a significant gap for a configuration tool with no schema descriptions. This prevents full completeness.
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 has 0% description coverage for its five parameters, so the description must compensate. It only explains that null arguments are unchanged and that enabled=false turns moderation off, leaving model, prompt, api_key, and api_base_url unexplained. This is insufficient for an agent to correctly set these 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?
The description clearly states the tool's function: configuring a moderation gate for pre-generation screening. It uses a specific verb 'Configure' and identifies the resource as the moderation gate, effectively distinguishing it from sibling tools like set_config and generate_image.
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 provides clear context for when to use this tool—to configure moderation screening before image API calls—and explains how to disable it. However, it does not explicitly mention alternatives or exclusion criteria, though the focus on moderation makes the use case fairly 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?
With no annotations, the description bears responsibility for behavioral disclosure. It usefully reveals that the API key is masked, and the verb 'Show' implies a read-only operation. However, it does not mention potential errors (e.g., missing config file) or other side effects, though for a simple getter this is minor.
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, front-loaded with the main purpose and immediately listing the returned fields. The second sentence adds the masking detail and a pointer to set_config, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless getter with an output schema present, the description fully covers what the tool does and what it returns. It names all output fields and notes masking, which is sufficient context for an agent to invoke it correctly.
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 zero parameters, so the schema provides no param details and the description doesn't need to explain any. The baseline for 0 parameters is 4, which is appropriate; no additional param semantics are required.
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?
Description states a specific action ('Show') on a specific resource ('the current GPT-image configuration') and enumerates the exact fields returned. It clearly distinguishes from the sibling set_config by indicating this tool displays rather than modifies.
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?
The description explicitly tells when to use this tool (to view configuration) and provides an alternative: 'Use set_config to change any of these values.' This effectively explains when not to use it for modifications.
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/2xapi/2Xapi.com-GPT-image-MCP-Server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server