Skip to main content
Glama

Associated Press Media API MCP Server

An unofficial Model Context Protocol (MCP) server that transforms the Associated Press Media API into an AI-optimized content intelligence resource. With 26 powerful tools, this MCP server enables conversational AI applications to seamlessly access, analyze, and interact with AP's comprehensive news content through natural language interfaces.

Perfect for: Conversational AI assistants, news analysis applications, content research tools, and automated journalism workflows.

NOTE

For more info about the AP Media API, visit the APdeveloper documentation.

🔑 Key Features

🤖 Conversational AI Features

  • Natural Language Query Processing: Convert conversational queries into optimized AP API searches

  • Intelligent Prompt Templates: 17 pre-configured prompts for common workflows and use cases

  • Intelligent Content Recommendations: AI-powered content discovery and related article suggestions

  • Trend Analysis: Real-time trending topic detection and analysis

  • Smart Query Optimization: Automatic query enhancement for better search results

  • Plan Enforcement: Automatic content filtering to authorized plan items (configurable via AP_ENFORCE_PLAN)

  • AI Error Recovery: Self-healing error hints with suggested actions and retry guidance

  • Rate Limit Intelligence: Automatic rate limit detection and backoff with retry hints

  • Query Suggestions: Intelligent query refinement suggestions for broad searches

📈 Performance & Scale

  • Bulk Operations: Handle up to 2,000 search results and 50 items in single operations

  • Intelligent Caching: TTL-based caching system for improved performance

  • Auto-Pagination: Seamlessly handle large result sets with automatic pagination

  • Production-Ready: Enterprise-grade performance and reliability

📰 Complete Content Intelligence

  • 26 Comprehensive Tools: Full coverage of AP Media API functionality

  • Live Content Feeds: Real-time access to AP's breaking news and updates

  • Advanced Search: Multi-parameter search with flexible filtering and sorting

  • Content Monitoring: Create and manage automated content alerts and monitors

🛡️ Enterprise-Grade Foundation

  • Full Type Safety: Complete TypeScript implementation with OpenAPI-based types

  • Robust Error Handling: Graceful handling of API errors, rate limits, and network issues

  • Secure Configuration: Environment-based configuration with validation

  • Comprehensive Testing: High test coverage with both unit and integration tests

Related MCP server: Perigon MCP Server

Quick Start

Prerequisites

  • Node.js 18+

  • An Associated Press API key (get one at api.ap.org)

Installation

Claude Code (CLI)

Add to your Claude Code MCP configuration:

{
	"mcpServers": {
		"ap-media": {
			"type": "stdio",
			"command": "npx",
			"args": ["-y", "ap-mcp-server@latest"],
			"env": {
				"AP_API_KEY": "your_api_key_here"
			}
		}
	}
}

Visual Studio Code et al.

For VS Code, Windsurf, Cursor, Void, and other VS Code-based editors:

Add the following server definition to your workspace MCP settings (.vscode/mcp.json):

{
	"servers": {
		"ap-media": {
			"type": "stdio",
			"command": "npx",
			"args": ["-y", "ap-mcp-server@latest"],
			"env": {
				"AP_API_KEY": "your_api_key_here"
			}
		}
	}
}

Generic MCP Client Configuration

Applies to Claude Desktop, ChatGPT Desktop, OpenAI Codex, etc.

For most MCP-compatible AI tools, use this standard configuration format:

{
	"mcpServers": {
		"ap-media": {
			"command": "npx",
			"args": ["-y", "ap-mcp-server@latest"],
			"env": {
				"AP_API_KEY": "your_api_key_here"
			}
		}
	}
}

🤖 AI & LLM Integration

The AP MCP Server is designed to be used directly by AI tools, chatbots, and LLM applications through the MCP protocol. AI assistants can access AP news content using natural language:

Natural Language AI Interactions

  • "Find recent articles about artificial intelligence in healthcare"

  • "Show me trending topics in technology this week"

  • "Get the latest breaking news about climate change"

  • "Find related articles to this story about renewable energy"

AI tools automatically convert these requests into the appropriate MCP tool calls.

Smart Content Discovery

  • Trend Detection: Automatically identify what's trending in news

  • Content Recommendations: Get AI-suggested related articles and topics

  • Query Enhancement: Transform vague queries into precise, optimized searches

  • Bulk Analysis: Process large amounts of content for pattern recognition

AI Application Types

  • News Chatbots: AI assistants with conversational access to AP news

  • Research Assistants: AI tools for journalists and researchers

  • Analysis Systems: Automated news trend and pattern analysis

  • Content Curation: AI-powered content discovery and recommendation engines

Configuration

Environment Variables

Variable

Required

Default

Description

AP_API_KEY

-

Your AP API key

AP_BASE_URL

🚫

https://api.ap.org/media/v

AP API base URL

AP_TIMEOUT

🚫

30000

Request timeout (ms)

AP_RETRIES

🚫

3

Retry attempts for failed requests

AP_ENFORCE_PLAN

🚫

true

Enforce in_my_plan=true for all content requests (AI safety feature)

AP_DEBUG

🚫

false

Enable debug logging

AP_LOG_LEVEL

🚫

info

Log level (error, warn, info, debug)

AP_VERBOSE_LOGGING

🚫

false

Enable request/response logging

AP_CACHE_ENABLED

🚫

true

Enable intelligent caching system

AP_CACHE_TTL_TRENDS

🚫

300000

Trending topics cache TTL (5 minutes)

AP_CACHE_TTL_SEARCH

🚫

180000

Search results cache TTL (3 minutes)

🎯 MCP Prompts (17 Available)

The AP MCP Server now includes intelligent prompt templates that simplify complex operations and optimize API usage. These prompts abstract away parameter complexity and provide natural language interfaces for common workflows.

🔍 Search & Discovery Prompts

Search for the latest breaking news with optimized parameters.

  • Arguments: topic, hours_ago, location, max_results

  • Example: "Get breaking news about technology from the last 2 hours"

topic-deep-dive

Comprehensive research on a specific topic with in-depth coverage.

  • Arguments: topic, days_back, min_word_count, include_analysis, max_results

  • Example: "Deep dive into climate change coverage from the past week"

Find photos, videos, graphics, and audio content.

  • Arguments: topic, media_type, days_back, high_quality_only, max_results

  • Example: "Find high-quality photos of the Olympics from the last 7 days"

regional-coverage

Get comprehensive news coverage for specific regions or locations.

  • Arguments: location, include_national, include_local, days_back, max_results

  • Example: "Get all news from California including national and local stories"

Intelligently search with natural language queries and auto-expansion.

  • Arguments: query, search_mode, auto_expand

  • Example: "Smart search for renewable energy innovations"

📊 Analysis & Insights Prompts

trend-analysis

Analyze trending topics and patterns in news coverage.

  • Arguments: category, timeframe, location_filter, include_sentiment, max_topics

  • Example: "Analyze technology trends from the past day"

content-recommendations

Get AI-powered content recommendations based on topics or past content.

  • Arguments: based_on, subjects, content_types, location_preference, max_recommendations

  • Example: "Get recommendations based on artificial intelligence topics"

coverage-comparison

Compare news coverage across different time periods.

  • Arguments: topic, period1_days_ago, period2_days_ago, period_length_days, metrics

  • Example: "Compare election coverage between last week and this week"

Get a quick snapshot of what's trending right now.

  • Arguments: max_topics

  • Example: "Show me the top 10 trending topics"

🔔 Monitoring & Alert Prompts

create-news-monitor

Set up automated monitoring for specific news topics.

  • Arguments: topic, monitor_name, email, alert_frequency, description

  • Example: "Monitor breaking news about climate change every 30 minutes"

breaking-alert-setup

Quick setup for urgent breaking news alerts.

  • Arguments: topics, email, sensitivity

  • Example: "Set up high-sensitivity alerts for earthquake and tsunami news"

list-monitors

View all active content monitors and their status.

  • Arguments: include_status, include_history

  • Example: "List all my active monitors with their current status"

manage-monitor

Update or delete existing monitors.

  • Arguments: monitor_id, action, new_email, new_frequency

  • Example: "Update my climate monitor to check every 10 minutes"

📰 Workflow Prompts

daily-news-briefing

Generate a comprehensive daily news briefing.

  • Arguments: categories, location, include_breaking, include_trending, include_recommendations

  • Example: "Create a daily briefing focused on technology and business"

research-workflow

Comprehensive research workflow for investigating topics.

  • Arguments: topic, depth, time_range_days, include_multimedia, include_analysis

  • Example: "Deep research on renewable energy over the past 30 days"

content-curation

Curate content for specific audiences or purposes.

  • Arguments: audience, topics, content_mix, total_items

  • Example: "Curate 20 items for a business audience about AI and automation"

story-development

Assist in developing stories with background and context.

  • Arguments: story_topic, story_type, needs

  • Example: "Help develop a feature story about urban farming with background and expert sources"

🛠️ Available Tools (26 Total)

🔍 Core Search & Content Tools

search_content

Advanced content search with flexible filtering and sorting options.

Parameters:

  • query (string): Search query

  • sort (string): Sort criteria (default: _score:desc)

  • page (number): Page number (starts at 1)

  • page_size (number): Items per page (max 100)

  • include/exclude (arrays): Field filtering

  • pricing (boolean): Include pricing information

  • in_my_plan (boolean): Only return items in your plan

AI Usage: When an AI tool receives a request like "Find AI healthcare articles", it automatically converts this to appropriate search parameters including query terms, sorting, and field selection.

search_content_all

Auto-paginated search for large result sets (up to 2,000 items).

Parameters:

  • Same as search_content but automatically handles pagination

  • max_items (number): Maximum items to retrieve (default: 1000, max: 2000)

Perfect for: Bulk analysis, trend detection, comprehensive research.

get_content_item

Retrieve a specific content item by its ID.

Parameters:

  • item_id (string, required): The AP item ID

  • include/exclude (arrays): Field filtering

  • pricing (boolean): Include pricing information

get_content_bulk

Retrieve multiple content items efficiently (up to 50 items).

Parameters:

  • item_ids (array, required): Array of AP item IDs (max 50)

  • include/exclude (arrays): Field filtering

  • pricing (boolean): Include pricing information

Perfect for: Batch content retrieval, related article fetching.

get_content_feed

Access the live AP content feed for real-time news.

Parameters:

  • query (string): Filter query

  • page_size (number): Number of items to return

  • include/exclude (arrays): Field filtering

get_rss_feeds & get_rss_feed

List and access RSS feeds for your account.

Parameters for get_rss_feed:

  • rss_id (number, required): RSS feed ID

  • page_size (number): Items per page

  • include/exclude (arrays): Field filtering

get_ondemand_content

Access your organization's OnDemand queue.

Parameters:

  • consumer_id (string): Consumer identifier

  • queue (string): Queue ID

  • page_size (number): Items per page

🤖 AI-Powered Intelligence Tools

optimize_search_query

Convert natural language queries into optimized AP API searches using NLP.

Parameters:

  • natural_query (string, required): Natural language query

  • context (object): Additional context for optimization

AI Usage: When an AI receives "Find recent articles about AI in healthcare", this tool automatically converts it to an optimized AP API query with proper keywords, date filters, and content type specifications.

Analyze trending topics and patterns in news content.

Parameters:

  • query (string): Base query for trend analysis

  • time_range (string): Time period to analyze ("24h", "7d", "30d")

  • trend_type (string): Type of trend analysis ("topics", "entities", "sentiment")

Perfect for: Understanding news patterns, identifying emerging stories.

get_content_recommendations

Get AI-powered content recommendations based on a reference item.

Parameters:

  • reference_item_id (string): Item ID to base recommendations on

  • recommendation_type (string): "related", "similar", or "trending"

  • max_results (number): Maximum recommendations (default: 10)

Perfect for: Content discovery, related article suggestions.

Fast discovery of currently trending topics with caching.

Parameters:

  • time_window (string): Time window for trends ("1h", "6h", "24h")

  • category (string): Optional category filter

  • min_mentions (number): Minimum mention threshold

Perfect for: Real-time trend monitoring, content planning.

📊 Account Management Tools

get_account_info

Basic account information and available endpoints.

get_account_plans

Account plans, entitlements, and usage meters.

get_account_downloads

Download history and usage tracking.

Parameters:

  • min_date (string): Start date (YYYY-MM-DD or ISO-8601)

  • max_date (string): End date (YYYY-MM-DD or ISO-8601)

  • format (string): Response format (json or csv)

get_account_quotas

Current API quotas and usage limits.

get_followed_topics

List of topics you're following.

🔔 Advanced Monitoring Tools

create_monitor

Create content monitors for automated alerts.

Parameters:

  • name (string, required): Monitor name

  • description (string): Description

  • conditions (array): Monitoring conditions

  • notify (array): Notification settings

list_monitors

List all existing monitors.

get_monitor

Get detailed information about a specific monitor.

Parameters:

  • monitor_id (string, required): Monitor ID

update_monitor

Update an existing monitor's settings.

Parameters:

  • monitor_id (string, required): Monitor ID

  • updates (object): Fields to update

delete_monitor

Delete a monitor.

Parameters:

  • monitor_id (string, required): Monitor ID

get_monitor_status

Check the status of a monitor.

Parameters:

  • monitor_id (string, required): Monitor ID

get_monitor_history

Get historical data for a monitor.

Parameters:

  • monitor_id (string, required): Monitor ID

  • start_date (string): Start date for history

  • end_date (string): End date for history

🔧 Utility Tools

build_search_query

Build structured search queries with validation.

Parameters:

  • keywords (array): Keywords to search

  • operators (array): Search operators (AND, OR, NOT)

  • date_range (object): Date range filters

  • content_types (array): Content type filters

get_content_rendition

Retrieve the full content of articles and media by fetching renditions using href URLs.

Parameters:

  • href (string, required): The href URL from a content item's renditions or links

  • format (string): Optional Accept header for desired format

  • encoding (string): Optional encoding preference for text content

Use Case: Get full NITF text, images, videos, audio files from previous search results. Perfect for: Accessing complete article content, downloading media files, getting full text for analysis.

📈 Complete API Coverage

This MCP server provides complete coverage of the AP Media API with intelligent enhancements:

Content Endpoints

  • /content/search - Content search (Enhanced with auto-pagination and bulk operations)

  • /content/{item_id} - Single item lookup (Enhanced with bulk retrieval)

  • /content/feed - Live content feed

  • /content/rss - RSS feed list

  • /content/rss/{rss_id} - Specific RSS feed

  • /content/ondemand - OnDemand queue

Account Endpoints

  • /account - Account information

  • /account/plans - Plans and entitlements

  • /account/downloads - Download history

  • /account/quotas - API quotas and usage limits

  • /account/followedtopics - Followed topics management

Monitoring Endpoints (Complete Implementation)

  • /account/monitors/create - Create content monitor

  • /account/monitors - List all monitors

  • /account/monitors/{id} - Get specific monitor details

  • /account/monitors/{id}/update - Update monitor settings

  • /account/monitors/{id}/delete - Delete monitor

  • /account/monitors/{id}/status - Monitor status and health

  • /account/monitors/{id}/history - Monitor historical data

🚀 AI & Performance Enhancements

  • NLP Query Processing: Natural language to AP API query conversion

  • Intelligent Caching: TTL-based caching for improved performance

  • Bulk Operations: Process up to 2,000 items in single operations

  • Trend Analysis: Real-time trending topic detection and analysis

  • Content Recommendations: AI-powered content discovery

  • Auto-Pagination: Seamless handling of large result sets

📊 Performance Benchmarks

  • Response Time: < 200ms for cached queries

  • Bulk Processing: Up to 50 items per batch request

  • Auto-Pagination: Handle up to 2,000 results automatically

  • Cache Hit Rate: ~85% for trending topics and frequent searches

  • Concurrent Requests: Optimized for high-throughput applications

My Plan Enforcement

The MCP server includes automatic plan enforcement to prevent AI agents from accessing content outside their authorized AP plan. This is enabled by default for safety.

Configuration:

  • Set AP_ENFORCE_PLAN=true (default) to enforce plan restrictions on all content requests

  • Set AP_ENFORCE_PLAN=false to allow unrestricted content access (use with caution)

When enabled, all relevant content requests automatically include in_my_plan=true, ensuring AI agents only access authorized content. This prevents:

  • Accidental access to premium content not in your plan

  • Unexpected API costs from out-of-plan content

  • Compliance issues with content licensing

💡 AI Usage Patterns

Bulk Operations Workflow

AI tools can efficiently process large amounts of news content:

  1. Discover Trending Topics: Use get_trending_subjects to identify what's currently trending

  2. Comprehensive Search: Use search_content_all to get extensive results on trending topics (up to 2,000 items)

  3. Detailed Analysis: Use get_content_bulk to retrieve full content for the most relevant articles (up to 50 items)

AI-Powered Content Discovery

AI assistants leverage multiple tools for intelligent content discovery:

  1. Query Optimization: optimize_search_query converts natural language to precise search parameters

  2. Trend Analysis: analyze_content_trends provides insights into content patterns and emerging stories

  3. Content Recommendations: get_content_recommendations suggests related articles based on reference content

Monitoring Setup for AI Applications

AI systems can set up automated content monitoring:

  1. Create Monitors: Set up content alerts for specific topics, keywords, or breaking news

  2. Track Performance: Monitor status and get historical data to understand content patterns

  3. Automated Alerts: Receive notifications when matching content is published

Caching & Performance Optimization

The server implements intelligent caching to optimize performance:

Cache Types & TTL

  • Trending Topics: 5 minutes (frequently changing data)

  • Search Results: 3 minutes (balance between freshness and performance)

  • Account Info: 15 minutes (relatively static data)

  • Monitor Data: 10 minutes (moderate update frequency)

Cache Configuration

# Customize cache behavior
AP_CACHE_ENABLED=true
AP_CACHE_TTL_TRENDS=300000    # 5 minutes in milliseconds
AP_CACHE_TTL_SEARCH=180000    # 3 minutes in milliseconds

Performance Tips

  1. Use bulk operations for processing multiple items

  2. Enable caching for repeated queries

  3. Leverage trending topics cache for real-time applications

  4. Batch related requests to minimize API calls

  5. Use auto-pagination for large datasets instead of manual pagination

Development

Error Handling

The server implements comprehensive AI-friendly error handling:

  • APAPIError: AP API-specific errors with status codes and recovery hints

  • APConfigurationError: Configuration and setup errors with corrective actions

  • APNetworkError: Network and connectivity issues with retry guidance

  • Rate Limiting: Automatic retry with exponential backoff and retry-after hints

  • Validation: Input validation with clear error messages and suggestions

  • AI Recovery Hints: All errors include suggested_action, can_retry, and alternative_tool properties for self-healing AI behavior

Testing

Run the test suite:

npm test

Security

  • API keys are passed via environment variables only

  • No sensitive data is logged or stored

  • All requests use HTTPS

  • Input validation prevents injection attacks

  • Rate limiting prevents API abuse

⚠️ Limitations & Considerations

AP API Constraints

  • Requires a valid AP API key with appropriate permissions

  • Rate limits enforced by AP API (varies by plan, automatically handled with retry logic)

  • Download history limited to last 365 days

  • Date range queries limited to 60 days maximum

  • Advanced monitoring features may require premium AP API plan

Performance Considerations

  • Bulk operations respect AP API rate limits (automatic throttling applied)

  • Cache TTL can be customized based on your freshness vs. performance needs

  • Large result sets (>1000 items) may take longer due to auto-pagination

  • AI-powered features may have slight latency for complex natural language processing

Intelligent Limits

  • search_content_all: Maximum 2,000 items (configurable)

  • get_content_bulk: Maximum 50 items per request

  • Caching system automatically manages memory usage with TTL expiration

  • AI recommendations limited to 50 suggestions per request for optimal performance

Troubleshooting

Common Issues

  1. "AP_API_KEY is required"

    • Ensure your .env file contains AP_API_KEY=your_key_here

    • Check that the key is valid and active

  2. "401 Unauthorized"

    • Verify your API key is correct

    • Check that your key has the required permissions

  3. "Rate limit exceeded"

    • The server will automatically retry with backoff

    • Consider reducing request frequency

  4. "Network timeout"

    • Increase AP_TIMEOUT in your environment

    • Check network connectivity

Debug Mode

Enable debug logging:

export AP_DEBUG=true
export AP_LOG_LEVEL=debug
npm start

License

MIT License - see LICENSE file for details.

Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Add tests if applicable

  5. Submit a pull request

Support

For issues related to:

  • This MCP server: Open an issue on GitHub

  • AP API: Contact AP support at api.ap.org

  • MCP protocol: See the Model Context Protocol documentation

Available Tools

26 tools
build_search_queryBuild Search QueryC

Build a structured search query for AP content using filters

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoBase text query
subjectsNoSubject/topic filters
dateRangeNoDate range filter
locationsNoLocation/place filters
mediaTypeNoMedia type filter

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It only says 'Build a structured search query' without specifying whether this is a pure computation, makes network calls, returns data, or has side effects. This lack of context is a significant gap for an agent.

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

Conciseness5/5

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

The description is a single, front-loaded sentence of 11 words with no redundancy or filler. Every word contributes to the core meaning, making it appropriately concise for the information conveyed.

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?

With 5 parameters including a nested dateRange object and no output schema, the one-sentence description is insufficient. It fails to describe what the resulting query looks like, how it integrates with other search tools, or any constraints on filters, leaving significant contextual gaps.

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

Parameters3/5

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

The input schema already provides exhaustive descriptions for all 5 parameters (100% coverage), so the baseline is 3. The description's mention of 'filters' adds no extra semantic value beyond the schema, and no additional formatting or relationship details are given.

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 ('Build') and the resource ('a structured search query for AP content using filters'), making it evident this is a query constructor rather than a search executor. However, it does not explicitly differentiate itself from sibling tools like optimize_search_query or search_content, which slightly limits the 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 provides no guidance on when to use this tool versus alternatives. There are no 'use when' statements, exclusions, or mentions of sibling tools, leaving usage entirely to inference.

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

create_monitorCreate MonitorB

Create a new content monitor for alerts

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesMonitor name (1-20 chars, alphanumeric, underscore, dot, hyphen only)
notifyYesNotification settings (1-5 channels)
playbookNoInstructions for when monitor triggers
conditionsYesMonitor conditions (1-5 conditions)
descriptionNoMonitor description
repeatAlertsNoRepeat interval in ISO-8601 duration format (PT10M, PT2H) or "0" to disable

TDQS

B3.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 must carry the behavioral disclosure burden. It only states that it creates a monitor but does not mention side effects, validation behavior, permissions, or what happens on duplicate names. This is minimal and does not disclose useful behavioral 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, clear sentence with no unnecessary words. It is front-loaded with the main action. Slightly more context could be added, but as written it is appropriately concise.

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

Completeness2/5

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

Given the tool has 6 parameters and no output schema or annotations, the description is too minimal to be complete. It does not explain what a content monitor is, when alerts are triggered, or what state the system is in after creation. The schema covers data details, but the description omits broader 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%, so the input schema fully documents each parameter. The description adds no parameter-specific information. Per the rubric, baseline 3 is appropriate when schema coverage is high and description doesn't compensate.

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

Purpose5/5

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

The description clearly states the action (create) and the resource (a content monitor), with a purpose ('for alerts'). It distinguishes the tool from siblings like update_monitor and delete_monitor by indicating this is the creation operation.

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 gives no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, whether this is the only way to create a monitor, or any context like typical use cases. It is a bare action statement.

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

delete_monitorDelete MonitorA

Delete a monitor by ID or name

ParametersJSON Schema
NameRequiredDescriptionDefault
monitor_idYesMonitor ID or name

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It states the action and identifier but does not mention that deletion is irreversible, potential side effects, or any authorization requirements, leaving important safety implications untold.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no redundant words. It immediately states the action and the key parameter, making it highly efficient.

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

Completeness3/5

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

For a simple single-parameter tool, the description covers the core purpose. However, without annotations or an output schema, it omits important context such as irreversibility and success/failure behavior, leaving modest gaps.

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

Parameters3/5

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

The schema already documents monitor_id as 'Monitor ID or name' with 100% coverage. The description adds no further meaning beyond restating the identifier type, so it meets the baseline but does not exceed it.

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 uses the specific verb 'Delete' with the resource 'monitor', and clarifies that deletion can be done by ID or name. This clearly distinguishes it from sibling tools like get_monitor and update_monitor.

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 intended use is implied by the action and resource: delete when a monitor should be removed. However, there is no explicit guidance about when not to use it or which alternative to choose, so the context is clear but not fully spelled out.

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

get_account_downloadsGet Account DownloadsC

Get account download history

ParametersJSON Schema
NameRequiredDescriptionDefault
orderNoSort order (positive integer)
formatNoResponse format
excludeNoFields to exclude from response
includeNoFields to include in response
max_dateNoMaximum date (YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss or ISO-8601 duration)
min_dateNoMinimum date (YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss or ISO-8601 duration)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'Get account download history' without revealing any behavioral traits such as whether it returns a list, supports pagination, requires authentication, or what constitutes 'history'. This is minimal information beyond the tool's name.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no unnecessary words. It gets straight to the point and is appropriately sized for the tool's straightforward name. There is no wasted content.

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?

The tool has 6 parameters, no output schema, and no annotations. The description is too under-specified to fully inform usage. It doesn't explain what fields are returned in the download history, how filters like min_date/max_date interplay, or the meaning of include/exclude. The schema covers parameters but not behavior or output, so the description should compensate; it doesn't.

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 schema covers 100% of parameters, each with a brief description (e.g., order, format, date filters). The tool description itself doesn't mention parameters, but since the schema already documents them, the baseline of 3 applies. No additional semantic value is provided by the description.

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

Purpose4/5

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

The description clearly states the tool's purpose: retrieving account download history. It uses a specific verb ('Get') and resource ('account download history'), which distinguishes it from sibling tools like get_account_info or get_account_plans. However, it relies heavily on the tool name and doesn't add additional scoping details, so it's not exceptionally informative.

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. It doesn't mention any prerequisites, use cases, or exclusions. The agent receives no context about when to prefer this over other 'get' tools, making this a significant gap.

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

get_account_infoGet Account InfoB

Get account information and available endpoints

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does not state whether the operation is read-only, whether authentication is required, or what the response format looks like. The word 'get' implies a read operation, but that is an inference, not explicit disclosure.

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

Conciseness5/5

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

The description is a single, concise sentence ('Get account information and available endpoints') that is front-loaded with the primary action. Every word contributes meaning, with no filler.

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 zero-parameter tool, the description is minimally sufficient, but it lacks elaboration on what specifically constitutes 'account information' or 'available endpoints'. Without an output schema or further details, the user is left to infer the exact return value and any implied behavior.

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 is empty with zero parameters. Per the rubric, a baseline of 4 applies when no parameters exist, and the description does not need to provide additional parameter semantics.

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

Purpose4/5

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

The description clearly states the tool's purpose: getting account information and available endpoints. The verb 'get' is specific, and the resource (account information) is identified, distinguishing it from sibling tools like get_account_plans and get_account_quotas that target narrower aspects.

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. There is no mention of context, exclusions, or when another tool would be more appropriate.

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

get_account_plansGet Account PlansC

Get account plans and entitlements information

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoResponse format
excludeNoFields to exclude from response
includeNoFields to include in response

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full transparency burden. It does not disclose read-only behavior, required permissions, data scope, response format beyond the format parameter, or any side effects. The description is minimal and adds no extra behavioral context.

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

Conciseness5/5

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

The description is a single, clear sentence with no wasted words. It is appropriately concise for a tool with only optional parameters.

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?

The tool has no output schema and annotations are absent, so the description must provide more context. It does not explain what 'plans and entitlements' includes, how results are structured, or any usage nuances. Minimal information for a potentially complex account-related tool.

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

Parameters3/5

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

Schema coverage is 100% (each parameter has a description), so the description does not need to explain parameters. It adds no additional meaning beyond the schema, matching the baseline for fully documented parameters.

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

Purpose4/5

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

The description uses a clear verb ('Get') and names a specific resource ('account plans and entitlements information'), which is reasonably distinct from siblings like get_account_info or get_account_quotas. However, it does not explicitly differentiate itself from those similar account-related tools.

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 such as get_account_info or get_account_quotas. The description only states what it does, not when it should be preferred, making it difficult for an agent to choose correctly.

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

get_account_quotasGet Account QuotasB

Get account API quotas and usage limits

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are present, so the description must carry the burden of behavioral disclosure. It only states that the tool gets quotas/usage limits, but does not reveal response format, whether it is read-only (though 'get' implies it), or any other operational behavior. This is insufficient for a no-annotation tool.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that directly states the action and resource. It is concise and free of extraneous information.

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 simplicity of a zero-parameter tool, the description is minimally adequate, but it lacks details on the response structure (no output schema exists) and any usage context. It names quotas and usage limits but does not clarify how they are presented, making it a bare-bones pass.

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 tool has zero parameters, so there is no parameter schema to clarify. The description adds some context by naming what is returned, and the baseline for zero-parameter tools is 4, which is appropriate here.

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 uses the specific verb 'Get' and identifies the resource as 'account API quotas and usage limits', which clearly indicates what the tool does. It distinguishes from sibling account tools like get_account_info or get_account_plans by naming a distinct resource, but does not explicitly call out the differentiation.

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_account_info or get_account_downloads. It only states the function without any context for selecting it over sibling tools.

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

get_content_bulkGet Content BulkB

Retrieve multiple content items by IDs efficiently with batch processing and error handling

ParametersJSON Schema
NameRequiredDescriptionDefault
excludeNoFields to exclude from response
includeNoFields to include in response
item_idsYesArray of content item IDs to retrieve (1-50 items)
batch_sizeNoItems processed per batch (1-20)
fail_on_missingNoWhether to fail if any items are missing

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must convey behavioral traits. It vaguely mentions 'batch processing and error handling' but does not explain failure modes, partial results, missing-item behavior, or authentication needs. This is a significant 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.

Conciseness4/5

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

The description is a single, compact sentence that front-loads the core action. However, vague terms like 'efficiently' and 'error handling' add little specific value and could be replaced with more concrete details.

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?

With no output schema and no annotations, the description is not complete for a tool of this complexity. It does not address expected return values, behavior on missing IDs (though parameter fail_on_missing hints at it), or any limits beyond the schema, leaving the agent under-informed.

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

Parameters3/5

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

The input schema provides 100% coverage with descriptions for all five parameters, so the description adds little beyond referencing IDs. The schema carries the semantic weight, making the value added by the description minimal.

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 retrieves multiple content items by IDs, which is a specific verb+resource+scope. It distinguishes itself from sibling tools like get_content_item by focusing on bulk retrieval.

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

Usage Guidelines3/5

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

The description implies usage for retrieving multiple items by IDs, but it does not explicitly compare to alternatives like get_content_item or search_content, nor does it mention when not to use this tool.

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

get_content_feedGet Content FeedC

Get a feed of incoming AP content

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoFilter query string
excludeNoFields to exclude from response
includeNoFields to include in response
pricingNoInclude pricing information
page_sizeNoNumber of items per page (1-100)
filter_outNoContent to filter out
in_my_planNoOnly show content in your plan
with_monitorNoMonitor name to associate with feed
session_labelNoSession label for tracking

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does not mention pagination, response format, ordering, or any constraints on the feed. Merely stating 'get a feed' provides minimal insight into how the tool behaves beyond its basic read operation.

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 concise sentence with no waste or redundant phrasing. It is front-loaded and easy to parse, earning a high score for efficiency, though the brevity limits its informative value.

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

Completeness2/5

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

Given the tool has 9 parameters, no output schema, and no annotations, the description is significantly under-specified. It fails to explain what 'AP content' means, how the feed is ordered or paginated, what fields are returned, or how the various filtering and inclusion parameters interact. The description is too sparse to provide a complete picture for an agent.

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

Parameters3/5

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

The input schema has 100% coverage, with each parameter including a description, so the schema does the heavy lifting. The tool description adds no parameter-specific semantics beyond what is already in the schema, which aligns with the baseline of 3 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?

Description states 'Get a feed of incoming AP content' with a specific verb and resource, clearly indicating a retrieval operation. However, it does not differentiate from sibling tools like search_content or get_content_bulk, which also retrieve content, so it lacks 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 the many alternative content retrieval tools. The single-sentence description offers no context about use cases, prerequisites, or exclusions, leaving the agent without direction for tool selection.

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

get_content_itemGet Content ItemB

Get a specific content item by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoResponse format
excludeNoFields to exclude from response
includeNoFields to include in response
item_idYesThe unique identifier for the content item
pricingNoInclude pricing information
in_my_planNoOnly show if in your plan

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure, but it only states the action without revealing any additional traits. It does not mention whether the operation is read-only, what happens on error, response format, or any rate limits. The 'get' verb implies read-only, but no further transparency is offered.

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

Conciseness5/5

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

The description is a single concise sentence that is front-loaded with the core action and resource. It contains no fluff or redundant information, making it highly efficient.

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

Completeness3/5

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

Given the tool's simplicity (single required parameter) and full schema coverage, the description is minimally viable. However, it lacks any mention of optional response customization (like include/exclude fields) or return value details, and with no output schema, the agent might not know what to expect beyond 'the content item'. It is adequate but not complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3 even though the description itself adds no parameter details. Each parameter has a description in the schema (e.g., item_id as 'The unique identifier for the content item'), so the description does not need to compensate.

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 'Get a specific content item by ID' clearly states the verb (get), resource (content item), and scope (specific by ID), distinguishing it from sibling tools like get_content_feed (feed) and search_content (search). The phrase 'specific' implies a single item, which differentiates it from bulk operations.

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 given on when to use this tool versus alternatives. The description does not mention any exclusions, prerequisites, or comparisons to sibling tools. An agent would have to infer from the name and siblings that this is for fetching a single item by ID.

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

get_content_recommendationsGet Content RecommendationsB

Get personalized content recommendations with relevance scoring

ParametersJSON Schema
NameRequiredDescriptionDefault
subjectsNoSubject preferences for recommendations
exclude_seenNoContent IDs to exclude from recommendations
seed_contentNoContent IDs to base recommendations on
content_typesNoPreferred content types
recency_preferenceNoTime preference for recommended contentany
location_preferenceNoPreferred location for content
max_recommendationsNoMaximum number of recommendations to return
similarity_thresholdNoMinimum similarity score for recommendations (0-1)

TDQS

B3.4/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 for behavioral disclosure. It mentions 'relevance scoring' which hints at output characteristics, but fails to detail any side effects, filters, defaults, or that the operation is read-only. The description is too sparse to adequately disclose behavioral traits beyond the core function.

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

Conciseness5/5

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

The description is a single sentence that is front-loaded with the core purpose ('Get personalized content recommendations') and adds a distinguishing detail ('relevance scoring'). It is appropriately concise with zero wasted words.

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?

With 8 optional parameters, no output schema, and no annotations, the one-sentence description leaves significant gaps. It doesn't explain how recommendations are generated, what the response looks like, or how parameters like similarity_threshold and recency_preference affect behavior. This is inadequate for a complex tool, especially compared to the detailed schema.

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 all 8 parameters well-documented in the schema. The description adds no additional parameter semantics beyond what the schema already provides. This meets the baseline of 3, 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.

Purpose5/5

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

The description clearly states the tool retrieves personalized content recommendations with relevance scoring. This distinguishes it from sibling tools like search_content (query-based) and get_content_feed (feed-based). The verb 'Get' and specific resource 'personalized content recommendations' are concise and unambiguous.

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

Usage Guidelines3/5

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

The description implies usage for obtaining personalized recommendations, but does not explicitly contrast with alternative tools (e.g., search_content vs. get_content_feed) or specify when this tool should be preferred. No exclusions or prerequisites are provided, so the guidance is inferred rather than explicit.

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

get_content_renditionGet Content RenditionA

Retrieve the full content of articles and media by fetching renditions using href URLs from previous search results

ParametersJSON Schema
NameRequiredDescriptionDefault
hrefYesThe href URL from a content item's renditions or links
formatNoOptional Accept header for desired format
encodingNoOptional encoding preference for text content

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states that the tool retrieves content (a read operation), but does not mention potential rate limits, auth requirements, return format, or error handling. The behavior is adequately conveyed for a simple fetch but lacks depth.

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

Conciseness5/5

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

The description is a single, concise sentence that directly states the tool's function without redundancy. It earns its place with no wasted words.

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

Completeness4/5

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

The tool is simple with well-documented parameters and no output schema. The description covers the core use case (fetching content via href). It could mention return type or typical usage patterns, but for this complexity level it is reasonably complete.

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 each parameter. The description adds minimal value beyond the schema by contextualizing href as coming from 'previous search results', but it does not explain formats or additional nuances. Baseline 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 specifies the action ('Retrieve the full content'), the resource ('articles and media'), and the method ('fetching renditions using href URLs from previous search results'). This distinguishes it from sibling tools like get_content_item or search_content, which serve different purposes.

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 gives explicit usage context: it is meant to be used with href URLs obtained from previous search results. While it doesn't name alternative tools or exclusions, the 'from previous search results' phrase clearly signals the intended workflow after a search.

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

get_followed_topicsGet Followed TopicsC

Get user's followed topics and subscriptions

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoResponse format
includeNoFields to include in response

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must convey behavioral traits itself. It identifies this as a read operation ('Get'), but does not disclose whether authentication is required, how results are paginated, what 'subscriptions' maps to, or any response-shaping constraints beyond the schema parameters.

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, front-loaded sentence with no filler. It is appropriately brief for a simple getter, though slightly more detail could be added without losing conciseness.

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?

The tool has no output schema and no annotations, so the description must compensate but does not mention return format, default behavior of the optional format parameter, or the shape of the result. The description is minimal and leaves the agent to infer common behavior for a listing tool.

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

Parameters3/5

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

Schema coverage is 100%, so the parameters are already documented with names and descriptions. The description adds no parameter-specific detail beyond the schema, but the baseline 3 applies because the schema carries the meaning.

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 uses a specific verb ('Get') and names the resource ('user's followed topics and subscriptions'), making the tool's function immediately clear. It is distinguishable from sibling tools like search_content or get_trending_subjects, though it does not explicitly contrast with them.

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 about when to choose this tool over alternatives, such as get_trending_subjects for trending topics or search_content for general content. The description implies a use case but offers no exclusions, prerequisites, or context.

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

get_monitorGet MonitorB

Get a specific monitor by ID or name

ParametersJSON Schema
NameRequiredDescriptionDefault
monitor_idYesMonitor ID or name

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It clearly indicates a read operation via 'Get' and the identification method, but it does not disclose behaviors such as error handling, return type, or authentication requirements. The description is acceptable for a simple getter, but lacks depth.

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?

One concise sentence with no fluff; it gets straight to the point. It is appropriately front-loaded with the verb and resource.

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

Completeness3/5

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

The tool is simple with one parameter and no output schema. The description states the core function but does not mention the return value or error behavior. Given the absence of an output schema, it could benefit from specifying that it returns the monitor details, but for a low-complexity get, it is minimally sufficient.

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 schema already fully documents the single parameter with a description ('Monitor ID or name'). The tool description adds no additional semantic detail beyond what the schema provides.

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 uses the specific verb 'Get' and resource 'monitor', and clarifies identification by ID or name. It clearly differentiates from list_monitors (which lists all) and implicitly from status/history siblings, though it does not explicitly name alternatives.

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

Usage 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 siblings like get_monitor_status or list_monitors. The usage context is limited to the basic operation with no exclusions or alternatives.

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

get_monitor_historyGet Monitor HistoryC

Get monitor activity history

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (as string)
agentidNoAgent ID filter
max_dateNoMaximum date filter
min_dateNoMinimum date filter
page_sizeNoNumber of items per page (1-100)
monitor_idYesMonitor ID or name
show_detailNoShow detailed information

TDQS

C2.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only says 'Get monitor activity history' without disclosing pagination, filtering behavior, output structure, or any side effects. For a read tool, the lack of detail about what 'activity' entails is a significant gap.

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

Conciseness3/5

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

The description is a single brief sentence with no redundancy, but it is under-specified. It is concise but not appropriately sized given the tool's complexity, as it omits needed details without being efficient in conveying meaning.

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?

With 7 parameters and no output schema, the description should explain what 'activity history' returns, how filters interact, and what the response format is. The minimal description leaves too much unspecified for a tool with this complexity.

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

Parameters3/5

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

Schema description coverage is 100%, and all parameters have descriptions, so the schema alone documents parameter meanings. The description adds no additional semantic context 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.

Purpose3/5

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

The description 'Get monitor activity history' identifies the resource (monitor) and action (get history), but 'activity history' is vague and does not specify what constitutes activity or the time scope. It distinguishes from get_monitor_status (status vs. history) but not strongly.

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 like get_monitor_status or list_monitors. There is no mention of exclusions, preferences, or conditions that make this tool the right choice.

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

get_monitor_statusGet Monitor StatusC

Get monitor status and recent alerts

ParametersJSON Schema
NameRequiredDescriptionDefault
agentidNoAgent ID filter
monitor_idYesMonitor ID or name
show_detailNoShow detailed information

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It only says 'Get monitor status and recent alerts' without disclosing what status means, the time window for alerts, or any other behavioral nuances. There is no contradiction, but the description is minimal.

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, front-loaded sentence with no filler. It communicates the core purpose efficiently, though it lacks depth.

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

Completeness2/5

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

Given 3 parameters, no annotations, and no output schema, the description does not explain return values or how to interpret 'status' and 'alerts'. This is inadequate for a monitor-related API 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 100% (all three parameters have descriptions). The tool description adds no parameter-level detail beyond what the schema provides, so the baseline of 3 is appropriate.

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

Purpose4/5

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

The description clearly states a specific action ('Get') on a specific resource ('monitor status and recent alerts'). It is distinct from sibling tools like get_monitor_history, though it could explicitly contrast with them.

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. Sibling tools such as get_monitor_history or list_monitors exist, but the description does not mention them or exclusion criteria.

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

get_ondemand_contentGet OnDemand ContentB

Get AP content items from your organization's OnDemand queue

ParametersJSON Schema
NameRequiredDescriptionDefault
queueNoThe ID of the desired queue
excludeNoFields to exclude from response
includeNoFields to include in response
pricingNoInclude pricing information
page_sizeNoNumber of items per page (1-100)
consumer_idNoA user defined identifier for the consumer of this feed. Each unique consumer ID will receive every item once.
session_labelNoSession label for tracking

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It only states the basic purpose without disclosing pagination, return format, side effects, authentication, or deduplication behavior. The schema provides parameter details, but behavioral expectations are still 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 a single concise sentence that immediately states the purpose. It is front-loaded with the verb and resource, with no unnecessary words or redundancy.

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?

With no annotations, no output schema, and 7 parameters, the description is too minimal. It doesn't explain response structure or behavioral nuances such as consumer_id deduplication or pagination, leaving the agent to infer these from parameter names alone.

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?

All 7 parameters have schema descriptions, providing 100% coverage. The description adds no additional parameter meaning beyond the schema, but the baseline of 3 is appropriate since the schema handles parameter semantics adequately.

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 identifies the action (Get), the resource (AP content items), and the specific context (OnDemand queue). It distinguishes this tool from sibling content tools like get_content_feed or search_content by focusing on the OnDemand queue.

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

Usage Guidelines3/5

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

The description implies the tool is for retrieving OnDemand queue items, but it provides no explicit guidance on when to use it versus alternatives like search_content or get_content_feed. No exclusions or alternative tool names are mentioned.

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

get_rss_feedGet RSS FeedA

Get a specific RSS feed by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
rss_idYesRSS feed ID (positive integer)
excludeNoFields to exclude from response
includeNoFields to include in response
page_sizeNoNumber of items per page (1-100)

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries full responsibility for disclosing behavior. It only says 'Get', which implies read-only, but gives no details on response format, pagination, authentication, or side effects. This is minimal disclosure beyond the tool's name.

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

Conciseness5/5

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

The description is a single, concise sentence that is front-loaded with the key information. No wasted words.

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?

While the schema covers parameters well, the description does not mention response behavior or the advanced filtering/pagination capabilities (include/exclude/page_size). With no output schema, the description should provide some context on return values, but it is still adequate for a simple get-by-ID operation.

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

Parameters3/5

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

The input schema already provides 100% description coverage for all four parameters (rss_id, exclude, include, page_size). The description adds no additional parameter semantics beyond the ID, so the baseline of 3 applies.

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

Purpose5/5

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

Description states 'Get a specific RSS feed by ID', which clearly identifies the action (get), resource (specific RSS feed), and the key identifier (ID). This distinguishes it from the sibling tool get_rss_feeds (plural), which presumably lists all feeds.

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

Usage Guidelines3/5

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

The description implies this is used when you have a specific RSS feed ID to retrieve, but it does not explicitly state when to use this tool over alternatives like get_rss_feeds or provide any exclusions or prerequisites.

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

get_rss_feedsGet RSS FeedsB

Get list of available RSS feeds

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states 'Get list of available RSS feeds', which implies a read operation but does not disclose return format, pagination, authentication needs, or whether all feeds or only user-accessible feeds are returned. The description adds minimal insight beyond the tool's name and title.

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, tightly worded sentence: 'Get list of available RSS feeds'. Every word contributes to the meaning, and there is no redundancy or filler. It is appropriately sized for a zero-parameter tool.

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 zero parameters, no output schema, and no annotations, the description gives a basic understanding of the tool's purpose. However, it leaves ambiguity about the response structure and does not clarify the relationship with the sibling tool 'get_rss_feed'. A sentence or two about what the list contains or when to prefer this over the singular variant would make it more complete.

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

Parameters4/5

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

The input schema has zero parameters, so the baseline is 4. The description correctly does not attempt to document parameters, and no parameter details are needed. The absence of parameters is fully captured by the schema, so the description needs no further elaboration.

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

Purpose4/5

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

The description clearly states the tool's function: 'Get list of available RSS feeds' with a specific verb 'Get' and resource 'RSS feeds'. It implicitly distinguishes from the sibling tool 'get_rss_feed' (singular) by using 'list' and 'feeds', though it does not explicitly name the alternative.

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 like 'get_rss_feed' (singular). There is no mention of context, prerequisites, or exclusions, leaving the agent to infer usage from the tool name alone.

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

list_monitorsList MonitorsA

List all existing monitors

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the burden. 'List' implies a read-only operation with no side effects, which is disclosed. However, it does not mention potential pagination, ordering, or what data each monitor contains. This is minimal but adequate for a zero-parameter read tool.

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

Conciseness5/5

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

The description is a single concise sentence, 'List all existing monitors', which is front-loaded and contains no filler. Every word adds value beyond the title.

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 low complexity (no parameters, no output schema, no annotations), the description is mostly complete. It clearly states what the tool does. It could mention that no filtering is possible or how results are presented, but for a trivial list tool, this is not a critical gap.

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 tool has zero parameters and schema coverage is 100% (empty). There is no parameter information needed, so the description does not need to compensate. The baseline for zero parameters is 4, and the description adds no unnecessary 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 'List all existing monitors' uses a specific verb (list) and resource (monitors), and the qualifier 'all existing' clearly distinguishes it from sibling tools like get_monitor (which targets a single monitor). It fully clarifies the tool's scope.

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

Usage Guidelines3/5

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

The description implies usage (when you want all monitors) but does not explicitly contrast with alternatives like get_monitor or mention any exclusions. For a simple list tool, this is acceptable but not informative beyond the obvious.

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

optimize_search_queryOptimize Search QueryC

Convert natural language queries to optimized AP search syntax with intelligent suggestions

ParametersJSON Schema
NameRequiredDescriptionDefault
optimize_forNoOptimization target for the queryrelevance
natural_queryYesNatural language search intent (e.g., "photos of breaking news today")
suggest_filtersNoWhether to suggest additional filters and improvements
content_preferencesNoUser content preferences to apply

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden for behavioral disclosure. It does not state whether this is a read-only operation, what the output looks like, or any side effects. The description only says it converts queries, which is insufficient for an agent to anticipate behavior.

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, concise sentence with no wasted words. However, the phrase 'intelligent suggestions' is vague and could be more precise, so it is not a perfect score.

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

Completeness2/5

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

Given the absence of an output schema, the lack of annotations, and the presence of a nested object parameter, the description is incomplete. It does not explain the return value, how 'optimized' is determined, or the format of the suggestions, leaving important gaps for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100% for all parameters, so the description does not need to elaborate. Baseline of 3 is appropriate; the description adds no additional meaning beyond the schema but does not need to.

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

Purpose4/5

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

The description clearly states the tool's function: converting natural language queries into optimized AP search syntax with suggestions. However, it does not differentiate from the sibling tool 'build_search_query', which may perform a similar conversion, so it loses a point for lacking sibling differentiation.

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?

There is no guidance on when to use this tool versus alternatives like 'search_content' or 'build_search_query'. No prerequisites, exclusions, or specific use cases are mentioned, leaving the agent to infer usage from the description alone.

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

search_contentSearch ContentC

Search for AP content using flexible query parameters

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoSearch query string
pageNoPage number (as string)
sortNoSort order
excludeNoFields to exclude from response
includeNoFields to include in response
pricingNoInclude pricing information
page_sizeNoNumber of items per page (1-100)
in_my_planNoOnly show content in your plan
session_labelNoSession label for tracking

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. 'Search for AP content using flexible query parameters' only implies a read operation; it does not mention pagination, response format, rate limits, or potential side effects. This is insufficient for an unannotated tool.

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, front-loaded sentence with no wasted words. It is concise, though somewhat sparse for a tool with many parameters and no annotations.

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

Completeness2/5

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

Given the tool has 9 parameters, no annotations, no output schema, and multiple sibling search tools, the one-line description is too generic. It does not explain what queries are supported, what results look like, or how it differs from search_content_all or build_search_query. The overall context is incomplete.

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

Parameters3/5

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

The input schema already provides descriptions for all 9 parameters, achieving 100% coverage. The description adds no extra parameter meaning beyond the generic 'flexible query parameters,' which is vague. Baseline 3 is appropriate since 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 tool searches for AP content with a specific verb and resource. However, it does not differentiate from sibling search tools like search_content_all or build_search_query, so it loses a point for lack of 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. It does not mention any exclusions, prerequisites, or contexts where a sibling tool might be preferred. This is a clear gap given the number of related search tools.

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

search_content_allSearch Content AllB

Search AP content with automatic pagination to retrieve all matching results efficiently

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoSearch query string
sortNoSort order
excludeNoFields to exclude from response
includeNoFields to include in response
pricingNoInclude pricing information
page_sizeNoNumber of items per page (1-100)
in_my_planNoOnly show content in your plan
deduplicateNoRemove duplicate items across pages
max_resultsNoMaximum total results to retrieve (1-2000)
session_labelNoSession label for tracking
progress_updatesNoWhether to show progress during pagination

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It mentions automatic pagination and efficiency, but it is misleading by saying 'all matching results' when the max_results parameter defaults to 500, potentially capping results. It omits other behaviors like rate limits, output format, and whether the operation is read-only.

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

Conciseness5/5

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

The description is a single, focused sentence that front-loads the verb and resource, with no redundancy. It is concise and readable, earning its place.

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?

The tool has 11 parameters and no output schema or annotations. The description is too brief to provide complete context, missing key behaviors like the default result cap, deduplication feature, and output structure. It only covers the basic search purpose.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description doesn't add specific parameter semantics beyond the concept of pagination and retrieving all results, which are already reflected in parameters like page_size and max_results.

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

Purpose4/5

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

The description clearly states the tool searches AP content, with the specific behavior of automatic pagination to retrieve all matching results. However, it doesn't explicitly differentiate from the sibling 'search_content' tool, though the 'all' scope implies it is the comprehensive version.

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

Usage Guidelines3/5

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

The description implies the use case for retrieving all matching results, but it doesn't explicitly state when to use this versus search_content or other alternatives, nor does it provide any exclusions or prerequisites.

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

update_monitorUpdate MonitorC

Update an existing monitor

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesMonitor name (1-20 chars, alphanumeric, underscore, dot, hyphen only)
notifyYesNotification channels (1-5 channels)
playbookNoInstructions for when monitor triggers
conditionsYesMonitor conditions (1-5 conditions)
monitor_idYesMonitor ID or name
descriptionNoMonitor description
repeatAlertsNoRepeat interval in ISO-8601 duration format (PT10M, PT2H) or "0" to disable

TDQS

C2.7/5.0
Behavior1/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. The description merely restates the action and gives no information about side effects (e.g., whether existing values are overwritten), authentication requirements, rate limits, or what happens on failure. This is a critical gap for a mutation tool.

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 sentence with no wordiness. It conveys the basic purpose efficiently, but it is so terse that it doesn't add meaningful context beyond the tool name. This is concise but under-specified; a 4 is appropriate because there is no fluff, yet it could be improved with brief behavioral notes.

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 tool with 7 parameters, no output schema, and no annotations, the description is extremely sparse. It doesn't explain update semantics (partial vs full replacement), required fields, or what a successful update returns. The schema documents parameters but not the operation's overall behavior, leaving an agent under-informed. A score of 2 reflects this significant gap.

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

Parameters3/5

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

The input schema contains detailed descriptions for all 7 parameters (e.g., name pattern, notify array structure, conditions criteria). Since the description adds no parameter-level detail, the schema is the sole source; according to the rubric, this is a baseline 3 because the schema covers parameter semantics comprehensively.

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 ('Update') and the target resource ('an existing monitor'). It distinguishes from sibling tools like create_monitor, get_monitor, and delete_monitor by using the 'update' verb. However, it provides no additional scope or detail about what updating entails.

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?

There is no guidance on when to use this tool versus alternatives like create_monitor or get_monitor. No context about prerequisites, partial vs full updates, or exclusions is provided. The agent must infer usage purely from the tool name and schema.

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. 26 tool updatesv1.2.6
    • First observedanalyze_content_trends
    • First observedbuild_search_query
    • First observedcreate_monitor
    • First observeddelete_monitor
    • First observedget_account_downloads
    • First observedget_account_info
    • First observedget_account_plans
    • First observedget_account_quotas
    • First observedget_content_bulk
    • First observedget_content_feed
    • First observedget_content_item
    • First observedget_content_recommendations
    • First observedget_content_rendition
    • First observedget_followed_topics
    • First observedget_monitor
    • First observedget_monitor_history
    • First observedget_monitor_status
    • First observedget_ondemand_content
    • First observedget_rss_feed
    • First observedget_rss_feeds
    • First observedget_trending_subjects
    • First observedlist_monitors
    • First observedoptimize_search_query
    • First observedsearch_content
    • First observedsearch_content_all
    • First observedupdate_monitor

TDQS

B3/5.0

Scored across 26 tools

Disambiguation3/5

Most tools target distinct resources, but there is notable overlap between search_content and search_content_all, build_search_query and optimize_search_query, and get_trending_subjects and analyze_content_trends. Descriptions help differentiate them, but an agent could easily select the wrong one without careful reading.

Naming Consistency4/5

Tool names are mostly snake_case with a verb_noun structure, but there are inconsistencies such as mixing get and list (get_account_info vs list_monitors) and using different verbs for similar actions (search, build, optimize, analyze). The pattern is readable but not perfectly uniform.

Tool Count2/5

With 26 tools, the server exceeds the 25-tool threshold for heavy surface area. While the broad AP API scope justifies many tools, the count feels bloated and could benefit from consolidation or splitting into focused servers.

Completeness4/5

The tool surface covers major workflows: content search/retrieval including bulk and pagination, monitor CRUD and status, account info, RSS access, and query helpers. Minor gaps exist such as no tool to manage followed topics or update content, but these are likely intentional for a consumption-focused API.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Aggregates news from 7 APIs and unlimited RSS feeds with AI-powered bias removal and synthesis. Provides over 7,300 free daily requests with conversation-aware caching and 25 comprehensive news analysis tools.
    1
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables access to comprehensive news data through the Perigon API, including searching for articles, stories, journalists, sources, people, companies, topics, and Wikipedia content with advanced filtering capabilities.
    6
    Apache 2.0
  • F
    license
    Not graded
    quality
    C
    maintenance
    Exposes publisher journalism to LLMs and agent frameworks via search, retrieval, source grounding, and consistent citation, enabling accurate content retrieval with attribution and policy enforcement.
    -