Skip to main content
Glama

agnes-mcp

An MCP (Model Context Protocol) server for the Agnes AI API by Sapiens AI.

It exposes all four documented core capabilities as MCP tools, integrates every Agnes model, and surfaces all configurable parameters — including the 1M-token context window and 4K video resolution.

  • Base URL: https://apihub.agnes-ai.com/v1 (OpenAI-compatible)

  • Auth: Authorization: Bearer <AGNES_API_KEY>

Core capabilities & tools

#

Capability

Tool(s)

Models

1

Text generation & reasoning

agnes_chat

agnes-2.0-flash, agnes-1.5-flash

2

Image generation & editing

agnes_image

agnes-image-2.1-flash, agnes-image-2.0-flash

3

Video & audio-video generation (async)

agnes_video_create, agnes_video_query, agnes_video_wait

agnes-video-v2.0

4

Multimodal understanding

agnes_vision (+ image input in agnes_chat)

agnes-2.0-flash, agnes-1.5-flash

Model discovery

agnes_models

all

Highlights

  • 1M contextagnes_chat / agnes_vision accept max_tokens up to 1,048,576; agnes-2.0-flash supports a 1M-token context window.

  • 4K videoagnes_video_create accepts width/height up to 3840 (multiples of 64). The gateway auto-standardizes to the nearest supported level (480p/720p/1080p/4K).

  • All parameters — temperature, top_p, max_tokens, stream, tools, tool_choice, Thinking mode (chat_template_kwargs.enable_thinking and Anthropic-style thinking.budget_tokens), frequency/presence/repetition penalty, stop, seed, image input (URL/data-URI), response_format, return_base64, num_frames (8n+1, ≤441), frame_rate (1–60), negative_prompt, seed, and free-form extra_body passthrough.

  • Resilience — automatic retry with exponential backoff for transient errors (429 capacity/cooldown, 5xx), as recommended by the Agnes error-code docs.

  • Streamingstream: true is consumed server-side and returned as assembled text.

Related MCP server: mcp-media-engine

Setup

cd agnes-mcp
npm install
npm run build

Configure your API key in .env (already created):

AGNES_API_KEY=sk-...

Optional override:

AGNES_BASE_URL=https://apihub.agnes-ai.com/v1

Run

npm start            # node dist/index.js  (stdio transport)
npm run dev          # tsx src/index.ts

Integrate with an MCP client

Add to your client config (e.g. Claude Desktop / opencode):

{
  "mcpServers": {
    "agnes": {
      "command": "node",
      "args": ["/Users/yingjunchi/Downloads/agnes-mcp/dist/index.js"],
      "env": { "AGNES_API_KEY": "sk-..." }
    }
  }
}

Because Agnes AI is OpenAI-compatible, you can also use it directly as a model provider (Base URL https://apihub.agnes-ai.com/v1, model agnes-2.0-flash).

Tests

Every capability is verified against the live API (the key in .env must be valid):

npm test                 # all tests
npm run test:chat        # chat: basic, multi-turn, streaming, tools, thinking, 1.5-flash
npm run test:vision      # multimodal understanding
npm run test:image       # text-to-image (url + base64), image-to-image, 2.0-flash
npm run test:video       # create, query, wait-for-completion (slow)
npm run test:models      # model listing

The video wait test polls until the task completes and asserts the final MP4 URL is returned.

API quirks handled

  • Image base64: the documented top-level return_base64: true does not actually populate b64_json. This server normalizes it to extra_body.response_format = "b64_json", which is the working path for both text-to-image and image-to-image.

  • Image-to-image: input images are placed in extra_body.image (not top-level) per the 2.1 docs.

  • Video query: uses the recommended GET /agnesapi?video_id= (host root, not /v1) and falls back to the legacy GET /v1/videos/{task_id}.

Project layout

agnes-mcp/
├── src/
│   ├── client.ts   # Agnes API client (4 capabilities, all params, retry)
│   ├── tools.ts    # MCP tool definitions & handlers
│   └── index.ts    # stdio MCP server entry
├── tests/          # live-API tests (models, chat, vision, image, video)
├── .env            # AGNES_API_KEY (and optional overrides)
└── package.json

Available Tools

7 tools
agnes_chatA

Capability 1 — Text generation & reasoning. OpenAI-compatible chat completions. Supports multi-turn conversation, system prompts, tool/function calling, streaming, and Thinking mode. Models: agnes-2.0-flash, agnes-1.5-flash. agnes-2.0-flash supports up to 1M-token context (set max_tokens up to 1048576). Vision is also available here by passing image_url content parts; use agnes_vision for a simpler image-understanding interface.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoChat model name.agnes-2.0-flash
messagesYesConversation messages (system/user/assistant/tool).
temperatureNoSampling randomness. Lower = more deterministic.
top_pNoNucleus sampling probability.
max_tokensNoMax output tokens. agnes-2.0-flash supports a 1M context window; bound here is 1,048,576.
streamNoEnable SSE streaming (consumed server-side, full text returned).
toolsNoTool/function definitions for agent workflows.
tool_choiceNoHow the model uses tools.
enable_thinkingNoEnable Thinking mode via chat_template_kwargs.enable_thinking (OpenAI-compatible).
thinking_budgetNoAnthropic-compatible thinking budget_tokens (implies thinking.type='enabled'). Recommended: 2048+.
frequency_penaltyNoReduce repetition (agnes-1.5-flash).
presence_penaltyNoEncourage new topics (agnes-1.5-flash).
repetition_penaltyNoRepetition control coefficient (agnes-1.5-flash).
stopNoCustom stop sequences (agnes-1.5-flash).
seedNoRandom seed for reproducibility (agnes-1.5-flash).

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 full burden. It covers streaming behavior (server-side consumed, full text returned), thinking mode, tool calling, and vision support. However, it lacks details on potential issues like error handling, destructive actions, rate limits, or cost implications, leaving gaps in 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 concise and structured: four sentences covering main capability, features, models, and vision. No redundant information, and key points are front-loaded.

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 (15 parameters, no output schema), the description covers the core purpose and capabilities well. However, it does not explain the return format or output structure, which would be helpful for an AI agent invoking the tool. Still, the description is largely complete for the main functionality.

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% with descriptions for all 15 parameters. The description adds minor context (e.g., 1M-token context limit, vision via image_url), but most parameter semantics are already well-documented in the schema. Baseline 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 it is for text generation and reasoning, OpenAI-compatible chat completions, and lists capabilities including multi-turn conversation, system prompts, tool calling, streaming, thinking mode, and vision. It also specifies supported models and context lengths, distinguishing it from siblings like agnes_vision which provides a simpler interface for image understanding.

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 mentions vision is available but suggests using agnes_vision for a simpler interface, providing some guidance. However, it does not explicitly state when to use this tool vs. alternatives like agnes_image or agnes_video_* tools, nor does it provide when-not-to-use scenarios.

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

agnes_imageA

Capability 2 — Image generation & editing. Text-to-Image and Image-to-Image (edit/transform/multi-image compose). Models: agnes-image-2.1-flash, agnes-image-2.0-flash. Required: model, prompt, size. For image-to-image, pass 'image' (array of public URLs or data URIs). Note: image dimensions must be multiples of 16. Put response_format inside extra_body (handled automatically here).

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoImage model name.agnes-image-2.1-flash
promptYesText prompt describing the desired image or edit instruction.
sizeNoOutput size, e.g. 1024x1024, 1024x768, 768x1024. Must be multiples of 16.1024x1024
imageNoInput images (public URL or data:image/...;base64,... URI) for image-to-image / multi-image.
response_formatNoOutput format. url (default) or b64_json.url
return_base64NoText-to-image only: top-level flag to return base64 (alternative to response_format=b64_json).
extra_bodyNoFree-form advanced parameters merged into extra_body.

TDQS

A4/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 full burden. It discloses dimension constraints and automatic handling of response_format, but does not cover error behavior, rate limits, or destructive nature of edits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is concise and front-loaded with purpose. It lists models and requirements efficiently, though it could be more structured with sub-sections.

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 7 parameters and no output schema or annotations, the description covers input usage and constraints well, but lacks details on return structure and error scenarios, leaving some gaps for the agent.

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?

Schema description coverage is 100%, but the description adds value by highlighting required parameters (model, prompt, size) even though model and size have defaults, and by explaining the image parameter usage for image-to-image and extra_body handling.

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 'Image generation & editing' and specifies Text-to-Image and Image-to-Image capabilities, distinguishing it from sibling tools like agnes_chat (text) and agnes_video_* (video). The verb 'generate' and 'edit' with resource 'image' is specific.

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?

It lists required fields (model, prompt, size) and explains when to include the 'image' parameter for image-to-image. However, it does not explicitly state when not to use this tool or compare to alternatives beyond sibling domains.

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

agnes_modelsA

List all available Agnes AI models (text/chat, image, video) with their limits. Useful to discover model names before calling the other tools.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/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 burden. It states the tool lists models with limits, implying a read-only operation, but does not explicitly mention safety, idempotency, or any potential side effects. For a simple listing, this is acceptable but lacks full 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?

Two sentences, front-loaded with purpose and then usage guidance. Every word earns its place; no wasted text.

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

Completeness5/5

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

Given the tool has 0 parameters, no output schema, and is a simple list operation, the description fully covers what the tool does and its role among siblings. It mentions the three categories and limits, which is sufficient for an agent to understand the tool's purpose.

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 no parameters (0 params), so baseline score is 4. The description adds value by explaining what the output contains (models with limits and categories), which is meaningful given no output schema exists. It does not need to discuss 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 verb 'list' and resource 'available Agnes AI models' with categories (text/chat, image, video) and what is included (their limits). It distinguishes from siblings by indicating it is useful 'before calling the other tools', making its purpose and relationship clear.

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 explicitly says 'Useful to discover model names before calling the other tools', which tells the agent when to use this tool (as a prerequisite for siblings). It does not provide explicit when-not scenarios, but the context is strong enough for correct usage selection.

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

agnes_video_createA

Capability 3 — Video & audio-video generation (async). Create a video task from text, a single image, multiple images, or keyframes. Model: agnes-video-v2.0. Returns task_id and video_id. Poll the result with agnes_video_query or agnes_video_wait. Highlights: width/height accept up to 4K (3840). Video dimensions must be multiples of 64. num_frames ≤ 441 and must equal 8n+1 (e.g. 81, 121, 161, 241, 441). frame_rate 1–60. seconds = num_frames / frame_rate.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoVideo model name.agnes-video-v2.0
promptYesTextual description of the desired video.
imageNoSingle image URL (image-to-video) or array (multi-image / keyframes).
modeNoGeneration mode, e.g. 'ti2vid' or 'keyframes' (placed in extra_body.mode).
heightNoVideo height (multiples of 64). Up to 4K (3840). Default 768.
widthNoVideo width (multiples of 64). Up to 4K (3840). Default 1152.
num_framesNoTotal frames. Must be ≤ 441 and equal 8n+1 (81,121,161,241,441).
frame_rateNoFPS, 1–60. Default ~24.
num_inference_stepsNoNumber of inference steps.
seedNoRandom seed for reproducibility.
negative_promptNoDescribe content to avoid.
extra_bodyNoAdvanced passthrough merged into extra_body (e.g. image[], mode).

TDQS

A4.1/5.0
Behavior3/5

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

The description reveals async behavior and constraints like multiples of 64, frame count formula, and duration calculation. With no annotations, it partially covers behavioral traits but omits authentication, rate limits, and resource lifecycle details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is a single paragraph with clear sections: capability, model, return type, polling direction, and constraints. It's information-dense without redundancy, efficiently earning each sentence.

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 12-parameter video creation tool with no output schema and no annotations, the description covers return types, constraints, and mode variations. It lacks only minor details like default values for some params, which are in the schema.

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?

Schema coverage is 100%, baseline 3. The description adds meaningful clarifications: width/height up to 4K, multiples of 64, num_frames formula (8n+1), and seconds relation. It also explains image can be single or array for keyframes, exceeding schema detail.

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 explicitly states the tool creates a video task from text, image(s), or keyframes, and distinguishes from siblings by referencing polling tools. It names the model and return type, making the purpose clear and specific.

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?

It guides the agent to poll results using agnes_video_query or agnes_video_wait, differentiating after creation. However, it doesn't explicitly contrast with agnes_image or other generation tools, leaving some ambiguity about when to choose this over alternatives.

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

agnes_video_queryA

Query the status/result of an async video task. Recommended: pass video_id (returned by agnes_video_create). Legacy: pass task_id. When status is 'completed', the final video URL is in remixed_from_video_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
video_idNoRecommended: the video_id from create response.
task_idNoLegacy: the task_id from create response.
model_nameNoExplicit model name for the query (overrides default).

TDQS

A4.4/5.0
Behavior4/5

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

Discloses key behavior: async status query, completion condition, and result field (remixed_from_video_id). No annotations provided, so description carries full burden. Could add detail on polling behavior or error states, but adequate.

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 with no waste. Front-loads purpose, then usage, then result. Every sentence earns its place.

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 no output schema and 3 optional params, description explains query methods and result. Lacks mention of error handling, timeouts, or auth. But for a simple query tool, it's fairly 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?

Schema coverage is 100%, baseline 3. Description adds meaning beyond schema: video_id is recommended, task_id is legacy, model_name overrides default. Clearly explains the two query methods.

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?

Clearly states the tool queries the status/result of an async video task, specifying the two query methods (video_id recommended, task_id legacy) and what happens on completion. Distinct from siblings like agnes_video_create and agnes_video_wait.

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?

Provides clear guidance on which parameter to use (video_id recommended, task_id legacy). Implicitly tells when not to use this tool (e.g., when needing to create or wait for video). No explicit when-not-to-use, but sufficient.

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

agnes_video_waitA

Poll an async video task (by video_id) until it reaches a terminal state (completed/failed) or times out. Returns the final result including the video URL when completed. Video generation can take tens of seconds to minutes.

ParametersJSON Schema
NameRequiredDescriptionDefault
video_idYesThe video_id returned by agnes_video_create.
model_nameNo
interval_msNoPoll interval in ms. Default 5000.
timeout_msNoMax wait in ms. Default 600000 (10 min).

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden. It discloses polling behavior, terminal states (completed/failed), timeout, and the return including video URL. It also gives a time estimate. It does not mention error handling, rate limits, or side effects, but covers the core behavioral traits adequately.

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 wasted words. The first sentence states the core function, and the second adds key details (return value, time expectation). It is front-loaded and efficient.

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 description explains the return value (final result with video URL) and mentions failure/timeout states, but lacks detail on the structure of the result or error handling. Given the complexity of a polling tool and no output schema, it is fairly complete but could be enhanced with response format examples. It also does not explicitly reference sibling tools.

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

Parameters2/5

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

Schema description coverage is 75% (3 of 4 parameters have descriptions). The tool description adds no extra meaning beyond the schema: it does not explain model_name at all, nor does it clarify the purpose of interval_ms or timeout_ms beyond what the schema provides. Since model_name remains undocumented in both, the description fails to compensate for this gap.

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 polls an async video task by video_id until a terminal state (completed/failed) or timeout. It specifies the verb 'poll' and the resource 'async video task,' and distinguishes itself from siblings like agnes_video_create (which starts the task) and agnes_video_query (likely a non-blocking check).

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 implicitly guides usage: call this after agnes_video_create returns a video_id. It sets expectations with 'Video generation can take tens of seconds to minutes.' However, it does not explicitly contrast with agnes_video_query or give when-not-to-use scenarios. The context is clear but not exhaustive.

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

agnes_visionA

Capability 4 — Multimodal understanding. Send one or more images (public URLs or data URIs) plus a text instruction and the model describes, analyzes, OCRs, or answers questions about the visual content. Models: agnes-2.0-flash, agnes-1.5-flash (both accept image_url input).

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoVision-capable chat model.agnes-2.0-flash
imagesYesOne or more publicly accessible image URLs or data:image/...;base64,... URIs.
instructionNoWhat to do with the image(s).Describe the content of this image.
systemNoOptional system prompt.
temperatureNo
max_tokensNoMax output tokens (up to 1M context).
streamNo

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 bears the full transparency burden. It mentions sending images and text but does not disclose behaviors like rate limits, error handling for invalid images, authentication needs, or output format. The description covers basic operation but lacks depth on behavioral nuances.

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 concise at three sentences, front-loading the core purpose first. Every sentence serves a purpose: stating the capability, explaining input types, and listing models. No extraneous information.

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 7 parameters and no output schema, the description adequately covers the main input types and use case. It explains the image formats and instruction purpose. However, it omits description of the return value (expected to be model-generated text) and does not mention streaming behavior. Still, it is sufficiently complete for a typical vision 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 description coverage is 71%, so the baseline is moderate. The description adds meaning beyond the schema by clarifying that 'images' can be public URLs or data URIs, and that 'instruction' is a text prompt. However, for parameters like temperature, max_tokens, and stream, it provides no additional context beyond the schema.

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 purpose as multimodal understanding, specifying that it accepts images (URLs or data URIs) and a text instruction to describe, analyze, OCR, or answer questions. It also lists the available models. This distinguishes it from sibling tools like agnes_chat (text-only) and agnes_image (image generation).

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?

While the description explains what the tool does, it does not explicitly state when to use it versus alternatives or when not to use it. The context of sibling tools implies vision tasks, but no direct guidance is given for exclusion criteria (e.g., text-only queries should use agnes_chat).

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updatesv1.0.0
    • First observedagnes_chat
    • First observedagnes_image
    • First observedagnes_models
    • First observedagnes_video_create
    • First observedagnes_video_query
    • First observedagnes_video_wait
    • First observedagnes_vision

TDQS

A3.9/5.0

Scored across 7 tools

Disambiguation4/5

Each tool targets a distinct capability (chat, image, video creation, video query, video wait, vision, model listing). Slight overlap between agnes_chat and agnes_vision regarding vision tasks is clarified in descriptions, so agents can disambiguate.

Naming Consistency3/5

All tools use 'agnes_' prefix, but naming patterns vary: some are single nouns (chat, image, models, vision) while others use verb_noun compounds (video_create, video_query, video_wait). The convention is not fully consistent but still readable.

Tool Count5/5

7 tools is well-scoped for an AI API server covering text, image, video generation, and model discovery. Each tool serves a clear purpose without unnecessary overlap or missing essential operations.

Completeness4/5

Core workflows for text generation, image generation/editing, video generation (async with status polling), and vision understanding are covered. Minor gaps include no explicit tool for deleting or updating generated content, but these are typical for generation APIs.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers