AltText.ai MCP Server
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AltText.ai MCP ServerGenerate alt text for https://example.com/photo.jpg"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 | |
Source repository | |
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 signaturesfrom 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 Code |
|
Cursor | MCP settings in the Cursor preferences |
Windsurf | MCP settings in the Windsurf preferences |
Tools
Account Management
Tool | Description |
| Check your credit balance, usage, and account settings. |
| Update account name, webhook URL, or notification email. |
Generate Alt Text
Tool | Description |
| Generate alt text for an image URL. Supports multilingual output, custom prompts, keywords, and character limits. Costs 1 credit. |
| Generate alt text from a local image file. Automatically base64-encodes and uploads. Costs 1 credit. |
| Add alt text in a new language for an existing image (by asset_id). Costs 1 credit. |
Manage Image Library
Tool | Description |
| List images in your library with pagination. |
| Search your image library by alt text content. |
| Get details for a specific image by asset ID. |
| Update alt text, tags, or metadata for an image. |
| Delete an image from your library. |
Bulk Operations
Tool | Description |
| Bulk generate alt text from a CSV file with image URLs and optional metadata. |
| Scan a web page, find images missing alt text, and queue generation. Results are async -- use |
Example Prompts
Once configured, just ask your AI assistant:
Account & Credits
"How many credits do I have left?"
"Update my webhook URL to https://example.com/webhook"
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 |
| Yes | Your AltText.ai API key |
| No | Override the API base URL (default: |
Development
npm install
npm run build
npm test
npm run lintTests use mocked fetch calls -- no API key or network access needed.
License
MIT
Available Tools
12 toolsbulk_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).
| Name | Required | Description | Default |
|---|---|---|---|
| No | Email for completion notification | ||
| csv_file | Yes | Path to CSV file with image URLs and optional metadata |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| asset_id | Yes | The asset ID of the image to delete |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public URL of the image | |
| lang | No | Comma-separated language codes (e.g. 'en', 'en,fr,es') | |
| tags | No | Tags for organization | |
| asset_id | No | Custom asset ID (default: auto-generated hash) | |
| keywords | No | Keywords to incorporate | |
| metadata | No | Custom metadata (string key-value pairs) | |
| max_chars | No | Maximum character length for the alt text | |
| overwrite | No | Overwrite existing alt text if image was previously processed | |
| gpt_prompt | No | Custom prompt template. Use {{AltText}} as a placeholder for the generated alt text. | |
| negative_keywords | No | Keywords to avoid |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Comma-separated language codes (e.g. 'en', 'en,fr,es') | |
| tags | No | Tags for organization | |
| asset_id | No | Custom asset ID (default: auto-generated hash) | |
| keywords | No | Keywords to incorporate | |
| metadata | No | Custom metadata (string key-value pairs) | |
| file_path | Yes | Absolute path to a local image file | |
| max_chars | No | Maximum character length for the alt text | |
| overwrite | No | Overwrite existing alt text if image was previously processed | |
| gpt_prompt | No | Custom prompt template. Use {{AltText}} as a placeholder for the generated alt text. | |
| negative_keywords | No | Keywords to avoid |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Filter alt texts by language code | |
| asset_id | Yes | The asset ID of the image |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Filter images by exact URL match | |
| lang | No | Filter alt texts by language code | |
| page | No | Page number (default: 1) | |
| sort | No | Sort column (default: id) | |
| limit | No | Items per page (default: 20, max: 100) | |
| direction | No | Sort direction (default: DESC) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the web page to scrape | |
| html | No | Optional HTML override (if omitted, server fetches the page) | |
| lang | No | Comma-separated language codes (e.g. 'en', 'en,fr,es') | |
| keywords | No | Keywords to incorporate | |
| max_chars | No | Maximum character length for the alt text | |
| gpt_prompt | No | Custom prompt template. Use {{AltText}} as a placeholder for the generated alt text. | |
| include_existing | No | Include images that already have alt text | |
| negative_keywords | No | Keywords to avoid |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Filter by language code | |
| limit | No | Max results to return (default: 20) | |
| query | Yes | Search query to match against alt text |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | Yes | Target language code(s), comma-separated (e.g. 'de', 'fr,es') | |
| asset_id | Yes | The asset ID of the existing image to translate |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Account name | |
| webhook_url | No | Webhook URL for processing notifications | |
| notification_email | No | Email address for notifications |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language code for the alt text (default: 'en') | |
| tags | No | Replace tags | |
| alt_text | No | New alt text value | |
| asset_id | Yes | The asset ID of the image to update | |
| metadata | No | Replace metadata (string key-value pairs) | |
| overwrite | No | If false, skip language entries that already exist |
TDQS
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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
Generate AI images, videos, music, SFX & speech in any AI assistant. Results appear inline in chat.
Direct access to Cypress tests results and accessibility reports in your AI workflow.
One API for 100+ AI video, image, music and speech models.
Real SEO data for AI assistants: page audits, Keyword Planner volumes, Search Console history.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI assistants to generate images, text, and audio content through the Pollinations APIs. Provides direct access to multimodal generation capabilities including image creation from text prompts, text-to-speech, and text generation.12134MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI coding assistants to test web accessibility by scanning URLs, detecting violations, and running focused audits on keyboard navigation, screen reader compatibility, and WCAG criteria — all within the assistant's loop.MIT
- AlicenseAqualityCmaintenanceProvides conversational, actionable accessibility testing for AI agents, including auditing, prioritization, and code-level fixes.2222MIT
- AlicenseCqualityBmaintenanceEnables AI assistants to interact with the AIGigLab API for lead generation, LinkedIn automation, voice cloning/TTS, and visual asset generation.3718MIT
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/alttextai/alttext-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server