Skip to main content
Glama

AI Connect MCP Server

An MCP (Model Context Protocol) server that allows AI agents to query and manage jobs in the AI Connect platform.

About AI Connect Jobs

AI Connect Jobs is a robust asynchronous task management system on the AI Connect platform, enabling the creation, monitoring, and execution of jobs across different platforms like Slack and WhatsApp, with support for scheduled execution, automatic retries, and timeout handling. The API provides endpoints to create, list, query, and cancel jobs, allowing developers and external systems to easily integrate asynchronous processing functionalities into their applications, automating complex workflows without the need to implement the entire task management infrastructure.

Related MCP server: agent-mesh MCP Server

Features

This MCP Server provides tools for AI agents to:

  • ๐Ÿ“‹ List Jobs: Query all jobs with advanced filtering

  • ๐Ÿ” Get Specific Job: Retrieve details of a specific job by ID

  • โœ… Create Jobs: Create new jobs for immediate or scheduled execution

  • โŒ Cancel Jobs: Cancel running or scheduled jobs

  • ๐Ÿ“Š Monitor Status: Track job status (WAITING, RUNNING, COMPLETED, FAILED, CANCELED)

Technologies

  • Node.js with TypeScript

  • Model Context Protocol (MCP) by Anthropic

  • Zod for schema validation

  • AI Connect API for integration with the Agent Jobs system

Installation

You can run the MCP server directly using npx without installation:

npx @aiconnect/agentjobs-mcp --help

Local Installation

  1. Clone the repository:

git clone <repository-url>
cd agentjobs-mcp
  1. Install dependencies:

npm install
  1. Configure environment variables (Optional):

The MCP server comes with default values from .env.example, so you can run it without setting any environment variables. However, you must provide an API key for authentication.

cp .env.example .env

Edit the .env file with your credentials:

DEFAULT_ORG_ID=your-organization     # Default: aiconnect
AICONNECT_API_KEY=your-api-key       # Required: Must be provided
AICONNECT_API_URL=https://api.aiconnect.cloud/api/v0  # Default
DEFAULT_TIMEZONE=America/Sao_Paulo   # Default: UTC (informational only, surfaced via get_context)

Important: If no environment variables are provided, the server will use these defaults:

  • DEFAULT_ORG_ID: aiconnect

  • AICONNECT_API_URL: https://api.aiconnect.cloud/api/v0

  • AICONNECT_API_KEY: empty (must be provided for API calls to work)

  • DEFAULT_TIMEZONE: UTC

  1. Build the project:

npm run build

Usage

CLI Usage

The MCP server now supports CLI commands for easy management:

# Show help and usage information
npx @aiconnect/agentjobs-mcp --help

# Show version information
npx @aiconnect/agentjobs-mcp --version

# Show current configuration status
npx @aiconnect/agentjobs-mcp --config

# Start MCP server (default behavior)
npx @aiconnect/agentjobs-mcp

Setting Environment Variables:

# Using environment variables with npx
AICONNECT_API_URL=https://api.aiconnect.cloud/api/v0 \
AICONNECT_API_KEY=your-api-key-here \
npx @aiconnect/agentjobs-mcp

# Or create a .env file (recommended for development)
cp .env.example .env
# Edit .env with your credentials
npx @aiconnect/agentjobs-mcp

Required Environment Variables:

Optional Environment Variables:

  • DEFAULT_ORG_ID: Fallback organization ID when a tool's org_id parameter is omitted (default: aiconnect)

  • DEFAULT_TIMEZONE: Preferred timezone surfaced by the get_context tool so LLM clients can format timestamps. Informational only โ€” does not change behavior of other tools, which continue to emit timestamps in UTC (default: UTC)

CLI Command Examples:

# Quick help
npx @aiconnect/agentjobs-mcp -h

# Check version
npx @aiconnect/agentjobs-mcp -v

# Verify configuration before starting
npx @aiconnect/agentjobs-mcp -c

# Test with environment variables
env AICONNECT_API_URL=https://api.aiconnect.cloud/api/v0 \
    AICONNECT_API_KEY=test-key \
    npx @aiconnect/agentjobs-mcp --config

Local Development

For local development, you can use npm scripts:

# Build and test CLI commands
npm run cli:help
npm run cli:version  
npm run cli:config

# Run test suite (if available)
npm run test:cli

Configuration Options

This MCP server is designed to work out-of-the-box with minimal configuration. It uses a smart fallback system:

  1. With environment variables: Full control over all settings

  2. Without environment variables: Uses defaults from .env.example

  3. Partial configuration: Mix of environment variables and defaults

Default Values (when no env vars are set):

  • DEFAULT_ORG_ID: "aiconnect"

  • AICONNECT_API_URL: "https://api.aiconnect.cloud/api/v0"

  • AICONNECT_API_KEY: "" (empty - you must provide this)

  • DEFAULT_TIMEZONE: "UTC"

Error Handling:

  • The server will always start, even if environment variables are missing.

  • If AICONNECT_API_KEY or AICONNECT_API_URL are not provided, each tool will return a clear error message upon execution, guiding the user to configure the environment correctly.

  • If DEFAULT_ORG_ID is not set, it defaults to "aiconnect".

  • If DEFAULT_TIMEZONE is not set, it defaults to "UTC". This value is purely informational (returned by the get_context tool) and does not affect timestamp parsing or formatting in other tools.

Running the MCP server

npm start

The server will start and wait for connections via stdio transport.

Claude Desktop Configuration

To use this MCP server with Claude Desktop, add the following configuration to your claude_desktop_config.json file:

{
  "mcpServers": {
    "agentjobs": {
      "command": "node",
      "args": ["/path/to/agentjobs-mcp/build/index.js"],
      "env": {
        "DEFAULT_ORG_ID": "your-organization",
        "AICONNECT_API_KEY": "your-api-key",
        "AICONNECT_API_URL": "https://api.aiconnect.cloud/api/v0",
        "DEFAULT_TIMEZONE": "America/Sao_Paulo"
      }
    }
  }
}

Local Development with Claude Code

For development and testing, you can add this MCP server directly to your Claude Code project:

# Prerequisites: build the project first
npm install
npm run build

# Configure your .env file
cp .env.example .env
# Edit .env with your API credentials

# Add MCP server to Claude Code (project scope)
claude mcp add --scope project agentjobs -- ./mcp-agentjobs.sh

This allows you to test and use the AgentJobs tools directly within Claude Code during development, providing immediate feedback and easier debugging.

Available Tools

๐Ÿ“Š get_jobs_stats

Get aggregated statistics for agent jobs without retrieving individual job data. Optimized for dashboards and monitoring with minimal network overhead.

Parameters:

  • scheduled_at_gte: Start of period (ISO 8601)

  • scheduled_at_lte: End of period (ISO 8601)

  • org_id: Organization filter

  • job_type_id: Job type filter

  • tags: Tags filter (comma-separated)

  • status: Status filter

  • channel_code: Channel filter

๐Ÿ”ง list_jobs

Lists all jobs with filtering and pagination options.

Parameters:

  • status (optional): Filter by status (WAITING, RUNNING, COMPLETED, FAILED, CANCELED)

  • job_type_id (optional): Filter by job type

  • channel_code (optional): Filter by channel code

  • limit (optional): Result limit (default: 50)

  • offset (optional): Pagination offset

  • sort (optional): Field and direction for sorting

  • include_activities (optional): Attach recent activities to each job (default: false)

  • activities_limit_per_job (optional): Max activities per job (1โ€“100, default 15)

  • activities_total_limit (optional): Global cap across the response (1โ€“3000, default 500)

  • activities_sort (optional): created_at or -created_at (default -created_at)

๐Ÿ” get_job

Gets details of a specific job.

Parameters:

  • job_id (required): ID of the job to query

  • include_activities (optional): Attach recent activities as an inline overlay (default: false)

  • include_limit (optional): Max activities to attach (1โ€“100, default 50)

  • include_sort (optional): created_at or -created_at (default -created_at)

๐Ÿงพ get_job_activities

Retrieves the audit activity trail for a specific agent job via the dedicated /services/activities endpoint. Supports real pagination (no truncation) and server-side filtering. Use this for focused investigation of a job's activity log; for a quick overlay of recent activities, use get_job with include_activities=true.

Parameters:

  • job_id (required): ID of the agent job

  • org_id (optional): Organization scope

  • status (optional): submitted, completed, or canceled

  • activity_type_code (optional): Open-string code (e.g., ai_completion)

  • source_type (optional): dispatch, process_module, or direct

  • limit (optional): Page size (default 50)

  • offset (optional): Pagination offset (default 0)

  • sort (optional): Sort field/direction (default -created_at)

โœ… create_job

Creates a new job for execution.

Parameters:

  • target_channel: Target channel configuration

  • job_type_id: Job type ID

  • config: Job configuration (timeouts, retries, etc.)

  • params: Job-specific parameters

  • scheduled_at (optional): Date/time for scheduled execution

  • delay (optional): Random delay in minutes

โŒ cancel_job

Cancels a running or scheduled job.

Parameters:

  • job_id (required): ID of the job to cancel

  • reason (optional): Cancellation reason

Job Status

Jobs can have the following status values:

  • WAITING: Job waiting for execution

  • SCHEDULED: Job scheduled for future execution

  • RUNNING: Job currently running

  • COMPLETED: Job completed successfully

  • FAILED: Job failed

  • CANCELED: Job was canceled

Usage Examples

List running jobs

Agent: "Show me all jobs that are currently running"

Query specific job

Agent: "What's the status of job job-123?"

Create scheduled job

Agent: "Create a daily report job for Slack channel C123456 to run tomorrow at 9 AM"

Cancel job

Agent: "Cancel job job-456 because it's no longer needed"

Project Structure

agentjobs-mcp/
โ”œโ”€โ”€ src/                    # TypeScript source code
โ”‚   โ”œโ”€โ”€ index.ts           # Main MCP server entry point
โ”‚   โ”œโ”€โ”€ config.ts          # Configuration loader
โ”‚   โ””โ”€โ”€ tools/             # Directory for all MCP tools
โ”‚       โ”œโ”€โ”€ get_jobs_stats.ts     # Tool for getting job statistics
โ”‚       โ”œโ”€โ”€ list_jobs.ts          # Tool for listing jobs
โ”‚       โ”œโ”€โ”€ get_job.ts            # Tool for getting a job
โ”‚       โ”œโ”€โ”€ get_job_activities.ts # Tool for getting a job's activity trail
โ”‚       โ”œโ”€โ”€ create_job.ts         # Tool for creating a job
โ”‚       โ””โ”€โ”€ cancel_job.ts         # Tool for canceling a job
โ”œโ”€โ”€ build/                 # Compiled JavaScript code
โ”œโ”€โ”€ docs/                  # Documentation
โ”‚   โ””โ”€โ”€ agent-jobs-api.md  # API documentation
โ”œโ”€โ”€ package.json           # Dependencies and scripts
โ”œโ”€โ”€ tsconfig.json          # TypeScript configuration
โ”œโ”€โ”€ .env.example           # Environment variables example
โ””โ”€โ”€ README.md              # This file

Development

Available scripts

  • npm run build: Compiles TypeScript

  • npm start: Runs the compiled server

  • npm run debug: Runs server in debug mode with detailed logging

  • npm run test:tools: Tests tool loading without starting server

  • npm run cli:config: Shows current configuration

  • npm run cli:version: Shows version information

  • npm run cli:help: Shows help information

Debugging

For detailed debugging information, see Debug Guide.

Quick Debug Commands:

# Test configuration
npm run cli:config

# Test tool loading
npm run test:tools

# Run in debug mode
MCP_DEBUG=true npm run debug

# Use debug helper script (Fish shell)
./debug.fish help
./debug.fish quick

Debug Environment:

# Copy debug environment template
cp .env.debug .env
# Edit .env with your API credentials
# Run with debug environment
./debug.fish debug-with-env

Adding new tools

Adding a new tool is simple:

  1. Create a new TypeScript file inside the src/tools/ directory (e.g., my_new_tool.ts).

  2. Implement your tool logic following the existing pattern. The server will automatically detect and register it on startup.

  3. Recompile the project with npm run build.

  4. Test with npm run test:tools to verify loading.

Contributing

  1. Fork the project

  2. Create a feature branch (git checkout -b feature/new-feature)

  3. Commit your changes (git commit -am 'Add new feature')

  4. Push to the branch (git push origin feature/new-feature)

  5. Open a Pull Request

License

This project is licensed under the MIT License.

Support

For technical support or questions about AI Connect Jobs:


Note: This project was developed using the Anthropic mcp-tools scaffold for integration with the AI Connect platform.

Available Tools

6 tools
cancel_jobB

Cancels an agent job by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesThe unique identifier of the job to be canceled. Example: 'job-12345'.
reasonNoAn optional reason explaining why the job is being canceled.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations only provide a title, so the description carries the full burden. It states the action is to cancel a job, implying a destructive mutation, but lacks details on permissions needed, whether cancellation is reversible, rate limits, or what happens post-cancellation. It adds basic context but misses key behavioral traits.

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, efficient sentence with zero wasted words. It's front-loaded with the core action and resource, making it easy to scan and understand quickly.

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 destructive mutation tool with no annotations beyond a title and no output schema, the description is inadequate. It lacks information on permissions, side effects, error handling, or return values, leaving significant gaps in understanding the tool's behavior and context.

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%, with clear parameter documentation in the schema. The description doesn't add any meaning beyond what the schema provides, such as explaining parameter interactions or usage nuances. Baseline 3 is appropriate as the schema does the heavy lifting.

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 action ('cancels') and target resource ('an agent job by its ID'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_job' or 'list_jobs' beyond the obvious action difference, missing specific sibling distinction.

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?

No guidance is provided on when to use this tool versus alternatives or any prerequisites. While the action 'cancels' implies it's for active jobs, there's no explicit mention of job state requirements, error conditions, or comparison with siblings like 'create_job'.

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

create_jobB

Create a new Agent Job with the minimal set of fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_type_idYesID of the job type (e.g. "mood-monitor")
target_channelYesWhere the agent will communicate.
paramsNoFreeโ€‘form params passed to the agent
scheduled_atNoSchedule the job to run later

TDQS

B3.1/5.0
Behavior2/5

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

Annotations only provide a title, so the description carries full burden. It states this creates a new job but lacks behavioral details like required permissions, whether it's idempotent, what happens on failure, or if it triggers immediate execution. The mention of 'minimal set of fields' hints at constraints but is vague.

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, efficient sentence that front-loads the core purpose without unnecessary words. It's appropriately sized for a tool with good schema coverage, making every word count.

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 no output schema and minimal annotations, the description is incomplete for a creation tool. It covers the basic action but lacks details on return values, error handling, or behavioral traits, leaving gaps that could hinder agent usage despite good schema coverage.

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 parameters. The description adds no additional meaning beyond implying 'minimal fields' might relate to required parameters, but it doesn't clarify which fields are minimal or provide usage context beyond the schema.

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 action ('Create') and resource ('Agent Job'), specifying it's a new job with minimal fields. It distinguishes from siblings like 'cancel_job' or 'get_job' by being the creation tool, though it doesn't explicitly contrast with 'list_jobs' or 'get_jobs_stats'.

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?

No guidance on when to use this tool versus alternatives is provided. It doesn't mention prerequisites, dependencies, or contrast with sibling tools like 'list_jobs' for viewing existing jobs or 'cancel_job' for stopping them, leaving the agent to infer usage context.

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

get_jobB

Retrieves an agent job by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesThe unique identifier of the job you want to retrieve. Example: 'job-12345'.
org_idNoThe organization ID. Example: 'aiconnect'.

TDQS

B3.3/5.0
Behavior3/5

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

The description adds minimal behavioral context beyond what annotations provide. Annotations include a title ('Get Agent Job') but no other hints like readOnly or destructive. The description implies a read operation ('retrieves'), which aligns with typical retrieval behavior, but doesn't disclose details such as error handling, authentication needs, or rate limits. No contradiction with annotations exists.

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 extremely concise and front-loaded, consisting of a single sentence that directly states the tool's purpose. There is no wasted verbiage or unnecessary elaboration, making it efficient and easy to parse.

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 tool's simplicity (a retrieval operation with 2 parameters and no output schema), the description is minimally adequate. It states what the tool does but lacks context on usage guidelines, behavioral details, or output format. With no annotations beyond title and no output schema, more completeness would be beneficial, but it meets a basic threshold for this low-complexity 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?

The description doesn't add any parameter semantics beyond what the input schema provides. Schema description coverage is 100%, with clear descriptions for both 'job_id' and 'org_id', including examples. The description itself doesn't mention parameters, so it relies entirely on the schema, meeting the baseline score for high coverage.

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 verb ('retrieves') and resource ('an agent job by its ID'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_job_type' or 'list_jobs', which might retrieve similar job-related information but with different scopes or parameters.

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. For example, it doesn't mention that this is for retrieving a single job by ID, as opposed to 'list_jobs' for multiple jobs or 'get_job_type' for job metadata. There are no explicit when/when-not instructions or prerequisites stated.

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

get_jobs_statsA

Get aggregated statistics for agent jobs without retrieving individual job data. Optimized for dashboards and monitoring with minimal network overhead.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idNoFilter by organization ID.
scheduled_at_gteNoStart of period (ISO 8601)
scheduled_at_lteNoEnd of period (ISO 8601)
created_at_gteNoFilter for jobs created at or after a specific time (ISO 8601).
created_at_lteNoFilter for jobs created at or before a specific time (ISO 8601).
job_type_idNoJob type filter
channel_codeNoChannel filter
tagsNoTags filter (comma-separated)
statusNoStatus filter

TDQS

A4.1/5.0
Behavior3/5

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

Annotations only provide a title, so the description carries the burden of behavioral disclosure. It adds useful context about optimization for dashboards and minimal network overhead, which hints at performance characteristics. However, it lacks details on rate limits, authentication needs, or specific return format, leaving some behavioral aspects unclear.

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 core purpose and followed by usage context. Every word earns its placeโ€”no redundancy or fluff. It efficiently communicates key information without unnecessary elaboration.

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 tool's complexity (9 parameters, no output schema, and minimal annotations), the description is adequate but incomplete. It covers purpose and usage well but lacks details on output format, error handling, or behavioral constraints like pagination. For a statistical tool with many filters, more context on result structure would be beneficial.

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 9 parameters. The description does not add any parameter-specific information beyond what the schema provides, such as explaining how filters combine or default behaviors. This meets the baseline for high schema coverage but doesn't enhance parameter understanding.

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 specific action ('Get aggregated statistics') and resource ('agent jobs'), distinguishing it from siblings like 'get_job' (individual job) and 'list_jobs' (individual job data). It explicitly contrasts with retrieving individual job data, making the purpose unambiguous.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool ('Optimized for dashboards and monitoring with minimal network overhead') and when not to ('without retrieving individual job data'), with clear alternatives implied (e.g., 'get_job' or 'list_jobs' for individual data). This helps the agent choose appropriately based on the need for aggregated vs. detailed data.

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

get_job_typeB

Retrieves an agent job type by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_type_idYesThe unique identifier of the job type you want to retrieve. Example: 'mood-monitor'.
org_idNoThe organization ID. Example: 'aiconnect'.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations provide a title ('Get Job Type Configuration') but no explicit hints like readOnlyHint or destructiveHint. The description adds minimal behavioral context by implying a read operation ('Retrieves'), but it doesn't disclose details such as authentication needs, rate limits, or error handling, 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 a single, efficient sentence that directly states the tool's function without unnecessary words. It is front-loaded and appropriately sized, making it easy to parse and understand quickly.

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 tool's low complexity (2 parameters, no output schema, simple schema), the description is minimally adequate. It covers the basic purpose but lacks details on output format, error cases, or integration with siblings, making it incomplete for fully informed usage without additional context.

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%, with both parameters ('job_type_id', 'org_id') well-documented in the schema. The description adds no additional meaning beyond the schema, such as explaining parameter interactions or usage nuances, so it meets the baseline for high coverage without extra value.

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 action ('Retrieves') and resource ('an agent job type by its ID'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_job' or 'list_jobs', which might retrieve different job-related data, so it misses full sibling distinction.

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 'get_job' or 'list_jobs'. It lacks context on prerequisites, exclusions, or specific scenarios, offering only a basic statement of function without usage instructions.

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

list_jobsB

Retrieves a list of agent jobs, with optional filters and pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idNoFilter by organization ID. If not provided, the default from the environment is used.
statusNoFilter by job status. Possible values are: 'waiting', 'scheduled', 'running', 'completed', 'failed', 'canceled'.
scheduled_atNoFilter by the exact scheduled time in ISO 8601 format (e.g., '2024-07-23T10:00:00Z').
scheduled_at_gteNoFilter for jobs scheduled at or after a specific time (ISO 8601).
scheduled_at_lteNoFilter for jobs scheduled at or before a specific time (ISO 8601).
created_at_gteNoFilter for jobs created at or after a specific time (ISO 8601).
created_at_lteNoFilter for jobs created at or before a specific time (ISO 8601).
job_type_idNoFilter by the specific job type ID (e.g., 'daily-report').
channel_codeNoFilter by the channel code (e.g., 'C123456' for a Slack channel).
limitNoMaximum number of jobs to return (e.g.,20). Default is 20.
offsetNoNumber of jobs to skip, used for pagination. Default is 0.
sortNoField to sort by and direction. Format is 'field:direction'. Example: 'created_at:desc'.

TDQS

B3.3/5.0
Behavior3/5

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

The description adds minimal behavioral context beyond what's implied by the name and annotations. It mentions 'optional filters and pagination' which provides some operational context, but doesn't disclose important behavioral traits like rate limits, authentication requirements, or what happens when no filters are applied. With no annotations provided, the description carries the full burden but does only the bare minimum.

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, efficient sentence that front-loads the core purpose ('Retrieves a list of agent jobs') and then adds qualifying information about filters and pagination. Every word serves a purpose with zero redundancy or wasted space.

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 read-only list operation with excellent schema coverage (100%) but no output schema, the description provides the minimum viable context. It states what the tool does but lacks information about return format, pagination behavior details, error conditions, or how it differs from sibling tools. The absence of annotations means more behavioral disclosure would be helpful.

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?

With 100% schema description coverage, the input schema already provides comprehensive documentation for all 12 parameters. The description adds no additional parameter semantics beyond mentioning that filters and pagination are 'optional' - which is already evident from the schema's lack of required parameters. This meets the baseline for high schema coverage.

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 verb ('Retrieves') and resource ('list of agent jobs'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'get_job' or 'get_jobs_stats', which would require explicit comparison to achieve a perfect score.

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 mentions 'optional filters and pagination' but provides no guidance on when to use this tool versus alternatives like 'get_job' (for single job details) or 'get_jobs_stats' (for aggregated statistics). There's no mention of prerequisites, typical use cases, or exclusion criteria.

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. 6 tool updates
    • First observedcancel_job
    • First observedcreate_job
    • First observedget_job
    • First observedget_job_type
    • First observedget_jobs_stats
    • First observedlist_jobs

TDQS

A3.7/5.0

Scored across 6 tools

Disambiguation5/5

Every tool has a clearly distinct purpose with no ambiguity. Each targets a specific resource or action: cancel_job, create_job, get_job, get_jobs_stats, get_job_type, and list_jobs are all well-defined and non-overlapping. An agent can easily distinguish between them based on their names and descriptions.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern throughout, using snake_case uniformly. The verbs (cancel, create, get, list) are clear and predictable, making the set easy to navigate and understand without any deviations or mixed conventions.

Tool Count5/5

With 6 tools, the server is well-scoped for managing agent jobs. Each tool earns its place by covering essential operations like creation, retrieval, listing, cancellation, statistics, and job type handling, without being too sparse or bloated for the domain.

Completeness4/5

The tool surface provides strong coverage for the agent jobs domain, including CRUD-like operations (create, get, list, cancel) and additional utilities (stats, job type). A minor gap exists in update operations (e.g., update_job), but agents can likely work around this by recreating jobs or using other methods.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers