list_services
List available marketplace services with pricing, quality scores, and capabilities. Filter by category, quality score, price, or capability to find services meeting your requirements.
Instructions
List all available services on the AgentDesk marketplace. Returns service catalog with pricing, quality scores, and capabilities. Filter by category, minimum quality score, maximum price, or capability.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by category: quality_assurance, web_scraping, realtime_data, document_generation, text_processing | |
| min_score | No | Minimum quality score (0-100) | |
| max_price | No | Maximum price per call in USD | |
| capability | No | Filter by capability keyword |
Implementation Reference
- src/index.ts:92-113 (registration)Registration of the 'list_services' tool via server.tool() on the McpServer instance.
server.tool( 'list_services', 'List all available services on the AgentDesk marketplace. Returns service catalog with pricing, quality scores, and capabilities. Filter by category, minimum quality score, maximum price, or capability.', { category: z.string().optional().describe('Filter by category: quality_assurance, web_scraping, realtime_data, document_generation, text_processing'), min_score: z.number().optional().describe('Minimum quality score (0-100)'), max_price: z.number().optional().describe('Maximum price per call in USD'), capability: z.string().optional().describe('Filter by capability keyword'), }, safeAsyncTool(async ({ category, min_score, max_price, capability }) => { const params = new URLSearchParams() if (category) params.set('category', category) if (min_score !== undefined) params.set('min_score', String(min_score)) if (max_price !== undefined) params.set('max_price', String(max_price)) if (capability) params.set('capability', capability) const url = `${AGENTDESK_API}/api/v1/services${params.toString() ? '?' + params.toString() : ''}` const res = await fetch(url) if (!res.ok) throw new Error(`API error: ${res.status} ${res.statusText}`) return await res.json() }) ) - src/index.ts:101-112 (handler)Handler function for list_services: builds query params, fetches from AgentDesk API /api/v1/services, and returns JSON response.
safeAsyncTool(async ({ category, min_score, max_price, capability }) => { const params = new URLSearchParams() if (category) params.set('category', category) if (min_score !== undefined) params.set('min_score', String(min_score)) if (max_price !== undefined) params.set('max_price', String(max_price)) if (capability) params.set('capability', capability) const url = `${AGENTDESK_API}/api/v1/services${params.toString() ? '?' + params.toString() : ''}` const res = await fetch(url) if (!res.ok) throw new Error(`API error: ${res.status} ${res.statusText}`) return await res.json() }) - src/index.ts:95-99 (schema)Input schema for list_services: optional category, min_score, max_price, and capability filters.
{ category: z.string().optional().describe('Filter by category: quality_assurance, web_scraping, realtime_data, document_generation, text_processing'), min_score: z.number().optional().describe('Minimum quality score (0-100)'), max_price: z.number().optional().describe('Maximum price per call in USD'), capability: z.string().optional().describe('Filter by capability keyword'),