Skip to main content
Glama
alttextai
by alttextai

AltText.ai MCP Server

An MCP server that lets AI assistants generate alt text, manage image libraries, and audit web pages for accessibility using the AltText.ai API.

Works with Claude Desktop, Claude Code, Cursor, Windsurf, and any MCP-compatible client.

Verify this package

This server runs npx -y @alttext_ai/alttext-mcp, which downloads and executes code with your API key in its environment. That's worth a moment of verification before you install — by you or by an AI agent doing the setup. Everything below should match:

Signal

Value

npm package

@alttext_ai/alttext-mcp

Source repository

github.com/alttextai/alttext-mcp

Publisher

AltText.ai

Provenance

Published from this repo's CI with npm provenance — npm shows a verified build badge linking the package to this exact commit

The npm scope is @alttext_ai (with an underscore), while the GitHub org is alttextai (no underscore). This is intentional, not a typosquat: the @alttextai npm scope was already taken, so we publish under @alttext_ai. The two names refer to the same official AltText.ai package.

To cryptographically verify the published package was built by this repo's CI — not just trust the metadata — run:

npm audit signatures

from a project where the package is installed. This validates the registry signature and the npm provenance attestation, which links the tarball to a specific commit and GitHub Actions build. A counterfeit package can forge repository.url and other metadata, but it cannot forge the provenance attestation — so this is the check that actually matters.

(For a quick, weaker cross-reference of the claimed source you can run npm view @alttext_ai/alttext-mcp repository.url, but note that field is publisher-controlled metadata and proves nothing on its own.)

Pinning a version

The setup snippet uses npx -y @alttext_ai/alttext-mcp, which always resolves to the latest published version and re-runs it on every launch. That keeps you current, but it also means a future release runs automatically without review. If you want a reproducible, audited install, pin a specific version:

"args": ["-y", "@alttext_ai/alttext-mcp@1.0.2"]

Run npm audit signatures against the pinned version, and bump it deliberately when you're ready to take a new release.

Related MCP server: aria51 MCP Server

Setup

Requirements: Node.js 18+ and an AltText.ai API key

Add the server to your MCP client configuration:

{
  "mcpServers": {
    "alttext-ai": {
      "command": "npx",
      "args": ["-y", "@alttext_ai/alttext-mcp"],
      "env": {
        "ALTTEXT_API_KEY": "your-api-key"
      }
    }
  }
}

Where to add this:

Client

Config file

Claude Desktop

claude_desktop_config.json

Claude Code

.mcp.json in your project root

Cursor

MCP settings in the Cursor preferences

Windsurf

MCP settings in the Windsurf preferences

Tools

Account Management

Tool

Description

get_account

Check your credit balance, usage, and account settings.

update_account

Update account name, webhook URL, or notification email.

Generate Alt Text

Tool

Description

generate_alt_text

Generate alt text for an image URL. Supports multilingual output, custom prompts, keywords, and character limits. Costs 1 credit.

generate_alt_text_from_file

Generate alt text from a local image file. Automatically base64-encodes and uploads. Costs 1 credit.

translate_image

Add alt text in a new language for an existing image (by asset_id). Costs 1 credit.

Manage Image Library

Tool

Description

list_images

List images in your library with pagination.

search_images

Search your image library by alt text content.

get_image

Get details for a specific image by asset ID.

update_image

Update alt text, tags, or metadata for an image.

delete_image

Delete an image from your library.

Bulk Operations

Tool

Description

bulk_create

Bulk generate alt text from a CSV file with image URLs and optional metadata.

scrape_page

Scan a web page, find images missing alt text, and queue generation. Results are async -- use list_images to check progress.

Example Prompts

Once configured, just ask your AI assistant:

Account & Credits

Generate Alt Text

  • "Generate alt text for https://example.com/photo.jpg"

  • "Generate alt text for this image" (with local file)

  • "Generate alt text in French and Spanish for this image"

  • "Translate image abc123 to German"

Manage Library

  • "Search my images for 'product photo'"

  • "List my images"

  • "Get details for image abc123"

  • "Update the alt text for asset abc123"

  • "Delete image xyz789"

Bulk Operations

  • "Scan https://example.com for images missing alt text"

  • "Process this CSV file of image URLs" (bulk_create)

Environment Variables

Variable

Required

Description

ALTTEXT_API_KEY

Yes

Your AltText.ai API key

ALTTEXT_API_BASE_URL

No

Override the API base URL (default: https://alttext.ai/api/v1)

Development

npm install
npm run build
npm test
npm run lint

Tests use mocked fetch calls -- no API key or network access needed.

License

MIT

Available Tools

12 tools
bulk_createBulk CreateA

Bulk generate alt text for multiple images from a CSV file. CSV should have columns: url (required), asset_id, lang, keywords, tags, metadata (optional).

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoEmail for completion notification
csv_fileYesPath to CSV file with image URLs and optional metadata

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full responsibility. It explains the input format but does not disclose whether the operation is asynchronous, what side effects occur, or what the return value is. The email parameter hints at completion notifications, but this is not mentioned in the description—a notable transparency gap for a bulk 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/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. It efficiently conveys the core purpose and the most critical input detail (CSV column structure).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a bulk operation with no output schema and no annotations, the description lacks essential context about process and results: it does not mention async behavior, completion notification (despite the email parameter), error handling, or what occurs after generation. It covers only input requirements and the high-level action.

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?

The description adds valuable meaning beyond the schema by specifying CSV columns: url (required), asset_id, lang, keywords, tags, metadata (optional). This clarifies what csv_file must contain. The email parameter is already described in the schema as 'Email for completion notification', so the description does not need to add more.

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

Purpose5/5

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

The description states a specific action—'Bulk generate alt text for multiple images from a CSV file'—with a clear verb, resource, and method. It distinguishes from single-image tools like generate_alt_text, though generate_alt_text_from_file may overlap, but the CSV/bulk nature is explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when multiple images are listed in a CSV and provides column requirements, but it does not explicitly contrast with siblings like generate_alt_text_from_file or state when not to use this tool. There is no when/when-not guidance.

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

delete_imageDelete ImageA

Delete an image from your AltText.ai library

ParametersJSON Schema
NameRequiredDescriptionDefault
asset_idYesThe asset ID of the image to delete

TDQS

A3.6/5.0
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 only states the action without disclosing whether the deletion is permanent, whether any associated data is affected, or any required permissions. This is minimal disclosure for a destructive 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/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that directly communicates the tool's purpose with no wasted words. It is appropriately sized for a simple delete operation.

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?

For a simple tool with one well-documented parameter, the description adequately covers the purpose and scope. It does not describe the return value or side effects, but for a delete operation this is largely implicit and the overall description is sufficient for selection and basic invocation.

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

Parameters3/5

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

The input schema has 100% coverage with a clear description for the only parameter, asset_id. The tool description does not add any extra parameter semantics beyond what the schema already provides, so the 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/5

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

The description clearly states the action (delete), the resource (image), and the scope (AltText.ai library). It distinguishes itself from sibling tools like get_image, update_image, and list_images by specifying the delete operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage is implied by the tool's name and description; it is obvious that this tool is used when you need to delete an image. However, it does not explicitly mention when not to use it or describe alternatives, such as using update_image to modify instead of delete.

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

generate_alt_textGenerate Alt TextA

Generate AI-powered alt text for an image URL. Returns the result synchronously (may take a few seconds). Costs 1 credit per image.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesPublic URL of the image
langNoComma-separated language codes (e.g. 'en', 'en,fr,es')
tagsNoTags for organization
asset_idNoCustom asset ID (default: auto-generated hash)
keywordsNoKeywords to incorporate
metadataNoCustom metadata (string key-value pairs)
max_charsNoMaximum character length for the alt text
overwriteNoOverwrite existing alt text if image was previously processed
gpt_promptNoCustom prompt template. Use {{AltText}} as a placeholder for the generated alt text.
negative_keywordsNoKeywords to avoid

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description adds valuable behavioral context: synchronous execution with possible latency and a credit cost. It does not mention overwrite behavior or the exact result format, but the disclosed traits go beyond the basic 'generate alt text' summary.

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?

The description is two sentences, front-loaded with the main purpose, and every word adds value. It efficiently conveys the operation, latency, and cost without redundancy.

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?

Given the complexity (10 parameters, nested objects) and absence of annotations/output schema, the description covers the key operational aspects: what it does, how it behaves, and associated cost. It could have mentioned overwrite defaults or the exact return format, but the core context is sufficiently complete for an agent to decide whether to invoke it.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description itself adds no parameter-specific meaning beyond what the schema already provides, but the schema is thorough enough that no compensation is needed.

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

Purpose5/5

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

The description clearly states the verb ('Generate'), resource ('alt text'), and scope ('for an image URL'), which distinguishes it from the sibling tool generate_alt_text_from_file. The purpose is concrete and immediately understandable.

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?

The description implies the tool is for generating alt text from a URL and notes that it runs synchronously and costs credits. It does not explicitly mention when not to use it or compare it to generate_alt_text_from_file, but the URL scope provides clear usage context.

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

generate_alt_text_from_fileGenerate Alt Text from FileA

Generate alt text from a local image file. Reads the file, base64-encodes it, and sends it to AltText.ai. Costs 1 credit.

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoComma-separated language codes (e.g. 'en', 'en,fr,es')
tagsNoTags for organization
asset_idNoCustom asset ID (default: auto-generated hash)
keywordsNoKeywords to incorporate
metadataNoCustom metadata (string key-value pairs)
file_pathYesAbsolute path to a local image file
max_charsNoMaximum character length for the alt text
overwriteNoOverwrite existing alt text if image was previously processed
gpt_promptNoCustom prompt template. Use {{AltText}} as a placeholder for the generated alt text.
negative_keywordsNoKeywords to avoid

TDQS

A3.9/5.0
Behavior3/5

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

No annotations exist, so the description must carry the full transparency burden. It discloses the external API call and credit cost, which is valuable. However, it omits whether the alt text is persisted to the service (suggested by parameters like overwrite and asset_id) or only returned, leaving a side-effect 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/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that captures the core purpose and a key cost detail. No redundant wording, very efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 10 parameters and no output schema, and the description is brief. While the schema is rich, the description does not clarify whether the generated alt text is saved or returned, which is a meaningful ambiguity given the persistence-related parameters. It is minimally adequate but incomplete.

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

Parameters3/5

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

Schema description coverage is 100% and all parameters have detailed descriptions (e.g., file_path, lang, overwrite). The description adds no extra parameter semantics beyond what the schema already 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/5

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

The description clearly states the action ('Generate alt text'), the specific input type ('local image file'), and the process ('Reads the file, base64-encodes it, and sends it to AltText.ai'), distinguishing it from sibling tools. It also adds a cost signal, making the purpose fully explicit.

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?

The description clearly implies the tool is for local files, which is a strong contextual cue against siblings like generate_alt_text. However, it does not explicitly state when not to use this tool or mention an alternative for remote images, so there is some room for ambiguity.

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

get_accountGet AccountA

Get your AltText.ai account info including credit balance, usage, and settings

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior2/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. It only states that the tool 'gets' info, which implies a read operation, but it does not disclose any behavioral details such as authentication requirements, rate limits, or whether the data is live or cached. For a read-only tool, this is a minimal disclosure.

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?

The description is a single, well-structured sentence that starts with the action, includes the resource and key details, with no filler words.

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?

Given the tool's simplicity (0 params, no output schema), the description adequately explains the purpose and the type of data returned. It could be more explicit about the exact response shape, but for account info retrieval, the description is sufficiently 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?

The input schema has zero parameters, so there is no parameter documentation needed. The baseline for 0 params is 4. The description adds no param info, but none is needed.

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

Purpose5/5

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

Description uses specific verb 'Get' and identifies the resource 'AltText.ai account info' with concrete data points (credit balance, usage, settings). Clearly distinguishes from siblings like update_account, which is a different operation.

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?

The description implies the tool is for retrieving the current account's information. There are no alternative get-account tools among siblings; the only related sibling is update_account for modifications, so context is clear. However, it does not explicitly state when to use this vs alternatives, but given no direct alternative, it is clear enough.

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

get_imageGet ImageA

Get details for a specific image by its asset ID

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoFilter alt texts by language code
asset_idYesThe asset ID of the image

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. 'Get details' clearly indicates a read-only operation with no side effects, which is transparent enough. It does not disclose return format, error behavior, or permission requirements, but for a simple read tool, this is acceptable.

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?

The description is a single sentence, front-loaded with the action and resource. Every word contributes value, with no redundancy or fluff.

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?

For a simple get-by-ID tool with no output schema, the description is mostly complete. 'Get details' implies a return value, and the schema clarifies parameters. It could explicitly mention filtering alt texts via the lang parameter, but the schema already conveys that. Overall, a brief but sufficient description.

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

Parameters3/5

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

The input schema has 100% parameter description coverage. The asset_id and lang parameters are clearly documented ('The asset ID of the image' and 'Filter alt texts by language code'). The description adds no extra parameter semantics, but the schema does the heavy lifting, justifying a baseline score of 3.

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

Purpose5/5

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

The description clearly states the tool's function: 'Get details for a specific image by its asset ID.' It uses a specific verb ('Get') and resource ('image') with a unique identifier ('asset ID'), distinguishing it from sibling tools like list_images (all images) and update_image/delete_image (mutations).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: use this tool when you have a specific asset ID and need its details. The phrase 'by its asset ID' suggests this is not for listing or searching. However, there is no explicit mention of when NOT to use it or alternatives like search_images for finding by criteria.

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

list_imagesList ImagesB

List images in your AltText.ai library with pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoFilter images by exact URL match
langNoFilter alt texts by language code
pageNoPage number (default: 1)
sortNoSort column (default: id)
limitNoItems per page (default: 20, max: 100)
directionNoSort direction (default: DESC)

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It only mentions pagination but does not state that the operation is read-only, what data is returned, or any default ordering. For a list operation, this is minimal transparency.

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?

The description is a single sentence that is direct and front-loaded with the key action and resource. No unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, but without an output schema or annotations, the description could do more to explain return format or default behavior. It covers the basic purpose but leaves gaps for an agent needing to know what response to expect.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all 6 parameters. The description adds no additional meaning beyond mentioning pagination, which is already captured by the page, limit, and direction parameters.

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 clearly states the tool lists images from the AltText.ai library and mentions pagination. It distinguishes itself from single-image tools like get_image, but does not explicitly differentiate from search_images, which is a similar listing tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through 'with pagination', suggesting it is for paginated browsing of images. However, it provides no explicit guidance on when to use this tool versus search_images or other siblings, nor does it state any exclusions.

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

scrape_pageScrape PageA

Find images on a web page and queue alt-text generation jobs. Images are processed asynchronously.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL of the web page to scrape
htmlNoOptional HTML override (if omitted, server fetches the page)
langNoComma-separated language codes (e.g. 'en', 'en,fr,es')
keywordsNoKeywords to incorporate
max_charsNoMaximum character length for the alt text
gpt_promptNoCustom prompt template. Use {{AltText}} as a placeholder for the generated alt text.
include_existingNoInclude images that already have alt text
negative_keywordsNoKeywords to avoid

TDQS

A3.9/5.0
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 asynchronous processing behavior, which is useful, but it does not mention side effects, authentication requirements, rate limits, or what is returned. The async note adds value but leaves many behavioral aspects unspecified.

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 concise sentences, front-loaded with the main action and followed by a key behavioral note. No wasted words, and the structure is easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (8 parameters, no output schema, no annotations), the description is somewhat minimal. It states the core behavior and async nature, but it does not explain the return value or how to track the queued jobs, which would be expected for an asynchronous job-queueing tool.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all 8 parameters. The description does not add any meaning beyond the schema, so the baseline of 3 applies.

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

Purpose5/5

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

The description is clear and specific: 'Find images on a web page and queue alt-text generation jobs' uses a concrete verb and resource, and distinguishes this tool from siblings like generate_alt_text or translate_image by focusing on page scraping and job queuing.

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?

The description provides clear context on when to use the tool (when you need alt text for images on a web page), but it does not explicitly mention exclusions or alternatives, such as 'for a single image use generate_alt_text'. Thus it has clear context but no exclusions.

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

search_imagesSearch ImagesB

Search images by alt text content

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoFilter by language code
limitNoMax results to return (default: 20)
queryYesSearch query to match against alt text

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It only states the search field and does not disclose critical behaviors such as case sensitivity, pagination, ordering, or what data is returned. This leaves the agent uncertain about edge cases and output format.

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?

The description is a single, focused sentence with no filler. It communicates the core purpose efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with well-documented parameters, but the description does not explain the return format or behavioral nuances. Since no output schema is provided, the description should clarify what the tool returns, but it does not.

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

Parameters3/5

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

The input schema provides 100% coverage with descriptions for all three parameters (query, lang, limit). The description adds minimal meaning beyond the schema, but the schema already documents the parameters clearly, so no additional compensation is needed.

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 clearly states the tool's function: searching images by alt text content. The verb 'search' and specific scope 'by alt text content' distinguish it from listing or retrieving images, though it does not explicitly name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context (when you need to find images by alt text) but provides no explicit guidance on when not to use it or what alternatives exist. The sibling list shows other image tools, but the description does not differentiate them.

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

translate_imageTranslate ImageA

Add alt text in a new language for an existing image. Uses the asset_id to find the image and generates a translation. Costs 1 credit.

ParametersJSON Schema
NameRequiredDescriptionDefault
langYesTarget language code(s), comma-separated (e.g. 'de', 'fr,es')
asset_idYesThe asset ID of the existing image to translate

TDQS

A3.8/5.0
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 for behavioral disclosure. It adds useful context such as 'Costs 1 credit' and the use of asset_id, but it does not specify whether the existing alt text is replaced or added to, nor does it mention permissions, reversibility, or return values. This is a moderate gap given the lack of annotations.

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?

The description is three short sentences that are front-loaded with the primary purpose, followed by supporting details (asset_id usage and cost). It is appropriately sized with no wasted words; every sentence adds value.

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?

The tool is simple (2 required params, no output schema), and the description covers the core purpose and a key behavioral trait (cost). It could be more complete by explaining what happens to the existing alt text or what the tool returns, but given the low complexity and schema richness, it is reasonably complete. Minor gaps remain.

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

Parameters3/5

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

The input schema already provides full descriptions for both asset_id and lang (100% coverage). The description adds little beyond restating that asset_id identifies the image and lang is the new language, which is already clear from the schema. Baseline 3 is appropriate because the schema does the heavy lifting.

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

Purpose5/5

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

The description clearly states the action ('Add alt text in a new language') and the target resource ('an existing image'), using a specific verb and distinguishing it from sibling tools like generate_alt_text. It also mentions the key identifier (asset_id), reinforcing the tool's purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies the tool is for existing images by saying 'for an existing image' and 'Uses the asset_id to find the image,' but it does not explicitly contrast with alternatives like generate_alt_text or state when to choose this tool over others. Usage guidance is inferred, not stated.

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

update_accountUpdate AccountA

Update your AltText.ai account settings (name, webhook URL, notification email)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoAccount name
webhook_urlNoWebhook URL for processing notifications
notification_emailNoEmail address for notifications

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations, the description carries the burden of behavioral disclosure. It does not state whether the update is partial or full replacement, whether all parameters are optional, or what the response format is. The description adds no behavioral detail beyond the schema already provides.

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?

The description is a single, front-loaded sentence with no filler. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple update tool with three optional parameters and no output schema, the description conveys the core purpose but omits behavioral nuances like whether at least one parameter must be supplied. It is adequate but leaves gaps.

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

Parameters3/5

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

Schema coverage is 100%, so parameters are fully documented in the schema. The description only restates the field names without adding extra meaning, meeting the baseline for schema-described parameters.

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

Purpose5/5

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

The description clearly states the tool updates AltText.ai account settings and enumerates the specific fields (name, webhook URL, notification email). This distinguishes it from sibling tools like get_account (read) and image/text generation tools.

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?

The description implies use for modifying account settings but does not explicitly state when not to use it or contrast with get_account. It provides clear context without exclusions.

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

update_imageUpdate ImageC

Update alt text and/or metadata for an existing image

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoLanguage code for the alt text (default: 'en')
tagsNoReplace tags
alt_textNoNew alt text value
asset_idYesThe asset ID of the image to update
metadataNoReplace metadata (string key-value pairs)
overwriteNoIf false, skip language entries that already exist

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full responsibility for behavioral disclosure. It only states 'Update alt text and/or metadata' without revealing that tags and metadata are fully replaced, that the overwrite parameter controls skipping existing language entries, or any permission requirements. This undermines an agent's ability to anticipate side effects of the mutation.

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?

The description is a single concise sentence, 'Update alt text and/or metadata for an existing image', with no wasted words. It is front-loaded with the action verb and clearly states the target. This is an ideal length for a purpose statement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (6 parameters, nested objects, no output schema, no annotations) and the presence of closely related sibling tools, the description is insufficient. The schema covers parameter details, but the description omits usage context, behavioral nuances, and selection guidance, making it incomplete for an agent to correctly invoke and understand the tool's impact.

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

Parameters3/5

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

The input schema provides full descriptions for all six parameters (100% coverage), so the baseline applies. The description adds minimal semantic value beyond identifying alt text and metadata, but it does not mention tags, overwrite, or lang. With schema coverage this high, the description need not repeat parameter details, so a score of 3 is appropriate.

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 clearly identifies the tool as updating an existing image, with a specific verb 'Update' and resource 'existing image'. It mentions 'alt text and/or metadata' as updatable fields, which distinguishes it from get, list, and delete operations. However, it omits the tags field and doesn't differentiate from sibling tools like translate_image or generate_alt_text, which also modify alt text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does 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 such as generate_alt_text, translate_image, or update_account. It lacks any context about prerequisites, use cases, or conditions under which this tool is preferred. With several sibling tools that could modify images, the absence of explicit selection guidance is a notable gap.

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

TDQS

A3.7/5.0
Disambiguation4/5

Most tools target distinct resources/actions, but generate_alt_text and generate_alt_text_from_file overlap in purpose (both generate alt text) and could cause selection confusion. Other tools like list_images vs search_images are clearly differentiated.

Naming Consistency4/5

Tools follow a consistent verb_noun pattern (get_account, list_images, delete_image) with snake_case, but 'bulk_create' breaks the pattern as an adjective_verb phrase. Minor deviation, overall predictable.

Tool Count5/5

12 tools is well within the ideal 3-15 range. Each tool serves a clear purpose and the count matches the domain of alt-text generation and image library management.

Completeness5/5

The surface covers the full workflow: account management, single/bulk generation, file input, page scraping, translation, and CRUD operations on images. No significant dead ends for the stated purpose.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

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/alttextai/alttext-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server