ap-mcp-server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ap-mcp-serverShow me trending news in technology"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.
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 |
| ✅ | - | Your AP API key |
| 🚫 |
| AP API base URL |
| 🚫 |
| Request timeout (ms) |
| 🚫 |
| Retry attempts for failed requests |
| 🚫 |
| Enforce in_my_plan=true for all content requests (AI safety feature) |
| 🚫 |
| Enable debug logging |
| 🚫 |
| Log level (error, warn, info, debug) |
| 🚫 |
| Enable request/response logging |
| 🚫 |
| Enable intelligent caching system |
| 🚫 |
| Trending topics cache TTL (5 minutes) |
| 🚫 |
| 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
breaking-news-search
Search for the latest breaking news with optimized parameters.
Arguments:
topic,hours_ago,location,max_resultsExample: "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_resultsExample: "Deep dive into climate change coverage from the past week"
multimedia-search
Find photos, videos, graphics, and audio content.
Arguments:
topic,media_type,days_back,high_quality_only,max_resultsExample: "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_resultsExample: "Get all news from California including national and local stories"
smart-search
Intelligently search with natural language queries and auto-expansion.
Arguments:
query,search_mode,auto_expandExample: "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_topicsExample: "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_recommendationsExample: "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,metricsExample: "Compare election coverage between last week and this week"
quick-trending
Get a quick snapshot of what's trending right now.
Arguments:
max_topicsExample: "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,descriptionExample: "Monitor breaking news about climate change every 30 minutes"
breaking-alert-setup
Quick setup for urgent breaking news alerts.
Arguments:
topics,email,sensitivityExample: "Set up high-sensitivity alerts for earthquake and tsunami news"
list-monitors
View all active content monitors and their status.
Arguments:
include_status,include_historyExample: "List all my active monitors with their current status"
manage-monitor
Update or delete existing monitors.
Arguments:
monitor_id,action,new_email,new_frequencyExample: "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_recommendationsExample: "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_analysisExample: "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_itemsExample: "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,needsExample: "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 querysort(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 filteringpricing(boolean): Include pricing informationin_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_contentbut automatically handles paginationmax_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 IDinclude/exclude(arrays): Field filteringpricing(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 filteringpricing(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 querypage_size(number): Number of items to returninclude/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 IDpage_size(number): Items per pageinclude/exclude(arrays): Field filtering
get_ondemand_content
Access your organization's OnDemand queue.
Parameters:
consumer_id(string): Consumer identifierqueue(string): Queue IDpage_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 querycontext(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_content_trends
Analyze trending topics and patterns in news content.
Parameters:
query(string): Base query for trend analysistime_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 onrecommendation_type(string): "related", "similar", or "trending"max_results(number): Maximum recommendations (default: 10)
Perfect for: Content discovery, related article suggestions.
get_trending_subjects
Fast discovery of currently trending topics with caching.
Parameters:
time_window(string): Time window for trends ("1h", "6h", "24h")category(string): Optional category filtermin_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 (jsonorcsv)
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 namedescription(string): Descriptionconditions(array): Monitoring conditionsnotify(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 IDupdates(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 IDstart_date(string): Start date for historyend_date(string): End date for history
🔧 Utility Tools
build_search_query
Build structured search queries with validation.
Parameters:
keywords(array): Keywords to searchoperators(array): Search operators (AND, OR, NOT)date_range(object): Date range filterscontent_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 linksformat(string): Optional Accept header for desired formatencoding(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 requestsSet
AP_ENFORCE_PLAN=falseto 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:
Discover Trending Topics: Use
get_trending_subjectsto identify what's currently trendingComprehensive Search: Use
search_content_allto get extensive results on trending topics (up to 2,000 items)Detailed Analysis: Use
get_content_bulkto 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:
Query Optimization:
optimize_search_queryconverts natural language to precise search parametersTrend Analysis:
analyze_content_trendsprovides insights into content patterns and emerging storiesContent Recommendations:
get_content_recommendationssuggests related articles based on reference content
Monitoring Setup for AI Applications
AI systems can set up automated content monitoring:
Create Monitors: Set up content alerts for specific topics, keywords, or breaking news
Track Performance: Monitor status and get historical data to understand content patterns
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 millisecondsPerformance Tips
Use bulk operations for processing multiple items
Enable caching for repeated queries
Leverage trending topics cache for real-time applications
Batch related requests to minimize API calls
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, andalternative_toolproperties for self-healing AI behavior
Testing
Run the test suite:
npm testSecurity
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 requestCaching system automatically manages memory usage with TTL expiration
AI recommendations limited to 50 suggestions per request for optimal performance
Troubleshooting
Common Issues
"AP_API_KEY is required"
Ensure your
.envfile containsAP_API_KEY=your_key_hereCheck that the key is valid and active
"401 Unauthorized"
Verify your API key is correct
Check that your key has the required permissions
"Rate limit exceeded"
The server will automatically retry with backoff
Consider reducing request frequency
"Network timeout"
Increase
AP_TIMEOUTin your environmentCheck network connectivity
Debug Mode
Enable debug logging:
export AP_DEBUG=true
export AP_LOG_LEVEL=debug
npm startLicense
MIT License - see LICENSE file for details.
Contributing
Fork the repository
Create a feature branch
Make your changes
Add tests if applicable
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 toolsanalyze_content_trendsAnalyze Content TrendsC
Analyze trending topics and content patterns across different timeframes
| Name | Required | Description | Default |
|---|---|---|---|
| timeframe | No | Time period for trend analysis | day |
| max_topics | No | Maximum number of trending topics to return | |
| content_types | No | Content types to include in analysis | |
| subject_filter | No | Focus analysis on specific subject area | |
| include_metrics | No | Include detailed trend metrics and analysis | |
| location_filter | No | Focus analysis on specific location |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does but does not describe the return format, whether it is read-only, potential side effects, pagination, or how the analysis is performed. The description essentially restates the purpose without adding behavioral context beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is appropriately front-loaded with the core purpose. It contains no redundant information or filler words, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has six parameters and no output schema, the description is incomplete. It does not explain what the analysis returns, how to interpret the results, or how the optional parameters affect the outcome. Context is minimal, and the description alone would be insufficient for an agent to know how to effectively use the tool's capabilities.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% description coverage for all six parameters, so the description does not need to compensate. However, the description itself adds no extra semantic detail beyond what the schema already provides. The phrase 'different timeframes' loosely maps to the 'timeframe' parameter, but the schema already explains this, so the description adds marginal value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: analyzing trending topics and content patterns across timeframes. It uses a specific verb ('analyze') and resource ('trending topics and content patterns'). However, it does not explicitly distinguish itself from sibling tools like 'get_trending_subjects' or 'search_content', which are related but different in scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It implies usage through its purpose but does not offer exclusions, prerequisites, or comparisons to sibling tools. There is no mention of scenarios where this tool would be preferred over 'get_trending_subjects' or a general content search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_search_queryBuild Search QueryC
Build a structured search query for AP content using filters
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Base text query | |
| subjects | No | Subject/topic filters | |
| dateRange | No | Date range filter | |
| locations | No | Location/place filters | |
| mediaType | No | Media type filter |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Monitor name (1-20 chars, alphanumeric, underscore, dot, hyphen only) | |
| notify | Yes | Notification settings (1-5 channels) | |
| playbook | No | Instructions for when monitor triggers | |
| conditions | Yes | Monitor conditions (1-5 conditions) | |
| description | No | Monitor description | |
| repeatAlerts | No | Repeat interval in ISO-8601 duration format (PT10M, PT2H) or "0" to disable |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| monitor_id | Yes | Monitor ID or name |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| order | No | Sort order (positive integer) | |
| format | No | Response format | |
| exclude | No | Fields to exclude from response | |
| include | No | Fields to include in response | |
| max_date | No | Maximum date (YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss or ISO-8601 duration) | |
| min_date | No | Minimum date (YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss or ISO-8601 duration) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Response format | |
| exclude | No | Fields to exclude from response | |
| include | No | Fields to include in response |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| exclude | No | Fields to exclude from response | |
| include | No | Fields to include in response | |
| item_ids | Yes | Array of content item IDs to retrieve (1-50 items) | |
| batch_size | No | Items processed per batch (1-20) | |
| fail_on_missing | No | Whether to fail if any items are missing |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Filter query string | |
| exclude | No | Fields to exclude from response | |
| include | No | Fields to include in response | |
| pricing | No | Include pricing information | |
| page_size | No | Number of items per page (1-100) | |
| filter_out | No | Content to filter out | |
| in_my_plan | No | Only show content in your plan | |
| with_monitor | No | Monitor name to associate with feed | |
| session_label | No | Session label for tracking |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Response format | |
| exclude | No | Fields to exclude from response | |
| include | No | Fields to include in response | |
| item_id | Yes | The unique identifier for the content item | |
| pricing | No | Include pricing information | |
| in_my_plan | No | Only show if in your plan |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| subjects | No | Subject preferences for recommendations | |
| exclude_seen | No | Content IDs to exclude from recommendations | |
| seed_content | No | Content IDs to base recommendations on | |
| content_types | No | Preferred content types | |
| recency_preference | No | Time preference for recommended content | any |
| location_preference | No | Preferred location for content | |
| max_recommendations | No | Maximum number of recommendations to return | |
| similarity_threshold | No | Minimum similarity score for recommendations (0-1) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| href | Yes | The href URL from a content item's renditions or links | |
| format | No | Optional Accept header for desired format | |
| encoding | No | Optional encoding preference for text content |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Response format | |
| include | No | Fields to include in response |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| monitor_id | Yes | Monitor ID or name |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (as string) | |
| agentid | No | Agent ID filter | |
| max_date | No | Maximum date filter | |
| min_date | No | Minimum date filter | |
| page_size | No | Number of items per page (1-100) | |
| monitor_id | Yes | Monitor ID or name | |
| show_detail | No | Show detailed information |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| agentid | No | Agent ID filter | |
| monitor_id | Yes | Monitor ID or name | |
| show_detail | No | Show detailed information |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| queue | No | The ID of the desired queue | |
| exclude | No | Fields to exclude from response | |
| include | No | Fields to include in response | |
| pricing | No | Include pricing information | |
| page_size | No | Number of items per page (1-100) | |
| consumer_id | No | A user defined identifier for the consumer of this feed. Each unique consumer ID will receive every item once. | |
| session_label | No | Session label for tracking |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only states the 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| rss_id | Yes | RSS feed ID (positive integer) | |
| exclude | No | Fields to exclude from response | |
| include | No | Fields to include in response | |
| page_size | No | Number of items per page (1-100) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden 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.
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.
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.
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.
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.
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.
get_trending_subjectsGet Trending SubjectsC
Quick discovery of trending subjects without full content analysis for rapid topic insights
| Name | Required | Description | Default |
|---|---|---|---|
| timeframe | No | Time period for trend analysis | day |
| max_subjects | No | Maximum subjects to return (1-100) | |
| min_frequency | No | Minimum occurrences to be considered trending | |
| subject_types | No | Filter by specific subject types |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should carry the full behavioral burden. It conveys 'quick' and 'without full content analysis' but omits return format, data source, pagination, or permission requirements, making it insufficient for a tool with zero structural safety hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single-sentence description is extremely concise and free of fluff, but it may be under-specified; still, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has four optional parameters and no output schema. The description leaves the output format undefined and does not clarify the differences with analyze_content_trends, so agents may struggle to set correct expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all four parameters with descriptions, enum, and defaults. The description adds no extra parameter semantics or usage examples, so baseline 3 is warranted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool as discovering trending subjects and hints at a lightweight scope ('without full content analysis'), but 'subjects' remains ambiguous and no direct comparison to sibling tools like analyze_content_trends is made.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies a use case (rapid topic insights) and contrasts with full content analysis, but it doesn't explicitly state when to choose this over analyze_content_trends or search_content, nor does it mention any exclusions.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| optimize_for | No | Optimization target for the query | relevance |
| natural_query | Yes | Natural language search intent (e.g., "photos of breaking news today") | |
| suggest_filters | No | Whether to suggest additional filters and improvements | |
| content_preferences | No | User content preferences to apply |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Search query string | |
| page | No | Page number (as string) | |
| sort | No | Sort order | |
| exclude | No | Fields to exclude from response | |
| include | No | Fields to include in response | |
| pricing | No | Include pricing information | |
| page_size | No | Number of items per page (1-100) | |
| in_my_plan | No | Only show content in your plan | |
| session_label | No | Session label for tracking |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Search query string | |
| sort | No | Sort order | |
| exclude | No | Fields to exclude from response | |
| include | No | Fields to include in response | |
| pricing | No | Include pricing information | |
| page_size | No | Number of items per page (1-100) | |
| in_my_plan | No | Only show content in your plan | |
| deduplicate | No | Remove duplicate items across pages | |
| max_results | No | Maximum total results to retrieve (1-2000) | |
| session_label | No | Session label for tracking | |
| progress_updates | No | Whether to show progress during pagination |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Monitor name (1-20 chars, alphanumeric, underscore, dot, hyphen only) | |
| notify | Yes | Notification channels (1-5 channels) | |
| playbook | No | Instructions for when monitor triggers | |
| conditions | Yes | Monitor conditions (1-5 conditions) | |
| monitor_id | Yes | Monitor ID or name | |
| description | No | Monitor description | |
| repeatAlerts | No | Repeat interval in ISO-8601 duration format (PT10M, PT2H) or "0" to disable |
TDQS
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.
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.
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.
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.
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.
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.
26 tool updates
v1.2.6- First observed
analyze_content_trends - First observed
build_search_query - First observed
create_monitor - First observed
delete_monitor - First observed
get_account_downloads - First observed
get_account_info - First observed
get_account_plans - First observed
get_account_quotas - First observed
get_content_bulk - First observed
get_content_feed - First observed
get_content_item - First observed
get_content_recommendations - First observed
get_content_rendition - First observed
get_followed_topics - First observed
get_monitor - First observed
get_monitor_history - First observed
get_monitor_status - First observed
get_ondemand_content - First observed
get_rss_feed - First observed
get_rss_feeds - First observed
get_trending_subjects - First observed
list_monitors - First observed
optimize_search_query - First observed
search_content - First observed
search_content_all - First observed
update_monitor
TDQS
Scored across 26 tools
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.
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.
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.
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
Related MCP Connectors
AI-powered news intelligence — 21 tools for personalized monitoring, briefings, and semantic search
The only News based AI MCP your agents will ever need — custom categories, global regions, and time-scoped results in one tool. We use multi-vector & sparse-hybrid search to search through thousands of articles across the world to find the exact news you're looking for.
One call instead of crawling 29 news/finance/AI sources mid-task. 100 free queries/day.
Get access to real-time and historical news data including top headlines from global sources
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAggregates 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-

Perigon MCP Serverofficial
AlicenseNot gradedqualityBmaintenanceEnables 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.6Apache 2.0- FlicenseNot gradedqualityCmaintenanceExposes publisher journalism to LLMs and agent frameworks via search, retrieval, source grounding, and consistent citation, enabling accurate content retrieval with attribution and policy enforcement.-
- AlicenseNot gradedqualityCmaintenanceEnables AI clients to query ContentRadar data and write low-risk content using natural language, with 15 tools for monitoring, analysis, and content management.MIT