get_tool_details
Retrieve comprehensive details about any sales tool, including API specs, authentication methods, AI capabilities, starter prompts, and MCP configuration.
Instructions
Get full details about a specific sales tool — API specs, auth methods, AI capabilities, starter prompts, MCP config, and more.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The tool's slug (e.g., 'hubspot', 'apollo', 'lusha', 'pipedrive') |
Implementation Reference
- index.js:95-148 (handler)The handler function for the 'get_tool_details' tool. It takes a 'slug' argument, fetches the tool details from the SALESTOOLS API, and formats a detailed Markdown response including quick facts (category, API type, auth, free tier, MCP ready, webhooks, SDKs), AI capabilities, starter prompt, integrations (with MCP config), alternatives, and links.
async function handleGetTool(args) { const { slug } = args; try { const tool = await fetchJSON(`${BASE_URL}/api/tools/${encodeURIComponent(slug)}`); if (tool.error) { return { content: [{ type: "text", text: `Tool "${slug}" not found.` }] }; } let text = `# ${tool.name}\n\n`; text += `${tool.description || tool.oneLiner}\n\n`; text += `## Quick Facts\n`; text += `- **Category:** ${tool.category}\n`; text += `- **API Type:** ${(tool.apiType || []).join(', ') || 'N/A'}\n`; text += `- **Auth:** ${(tool.authMethod || []).join(', ') || 'N/A'}\n`; text += `- **Free Tier:** ${tool.hasFreeTier ? 'Yes' : 'No'}\n`; text += `- **MCP Ready:** ${tool.mcpReady ? 'Yes' : 'No'}\n`; text += `- **Webhooks:** ${tool.hasWebhooks ? 'Yes' : 'No'}\n`; if (tool.sdkLanguages?.length > 0) text += `- **SDKs:** ${tool.sdkLanguages.join(', ')}\n`; text += '\n'; if (tool.aiCapabilities?.length > 0) { text += `## What AI Can Do With This\n`; text += tool.aiCapabilities.map(c => `- ${c}`).join('\n') + '\n\n'; } if (tool.starterPrompt) { text += `## Starter Prompt\n\`\`\`\n${tool.starterPrompt}\n\`\`\`\n\n`; } if (tool.integrations?.length > 0) { text += `## Integrations\n`; for (const int of tool.integrations) { text += `- **${int.label || int.platform}:** ${int.url}\n`; if (int.mcpConfig) text += ` MCP Config:\n\`\`\`json\n${int.mcpConfig}\n\`\`\`\n`; } text += '\n'; } if (tool.alternativeTo?.length > 0) { text += `## Alternatives To\n${tool.alternativeTo.join(', ')}\n\n`; } text += `## Links\n`; text += `- Website: ${tool.websiteUrl}\n`; if (tool.docsUrl) text += `- Docs: ${tool.docsUrl}\n`; if (tool.pricingUrl) text += `- Pricing: ${tool.pricingUrl}\n`; if (tool.githubUrl) text += `- GitHub: ${tool.githubUrl}\n`; text += `- Salestools Page: https://salestools.club/apis/${tool.slug}\n`; return { content: [{ type: "text", text: text.trim() }] }; } catch (error) { return { content: [{ type: "text", text: `Failed to fetch tool "${slug}": ${error.message}` }] }; } } - index.js:262-271 (schema)The tool registration/schema definition for 'get_tool_details' within the ListToolsRequestSchema handler. It defines the tool's name, description, and input schema requiring a single 'slug' string parameter.
{ name: "get_tool_details", description: "Get full details about a specific sales tool — API specs, auth methods, AI capabilities, starter prompts, MCP config, and more.", inputSchema: { type: "object", properties: { slug: { type: "string", description: "The tool's slug (e.g., 'hubspot', 'apollo', 'lusha', 'pipedrive')" }, }, required: ["slug"], }, - index.js:309-309 (registration)The route/registration mapping the tool name 'get_tool_details' to its handler function 'handleGetTool' inside the CallToolRequestSchema handler.
case "get_tool_details": return handleGetTool(args);