Skip to main content
Glama

discover_docs

Crawl the main documentation page to find all available documentation paths for AI assistants accessing Tambo technical documentation.

Instructions

Crawl the main docs page to discover all available documentation paths

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • The discoverDocs method in DocHandler class implements the core tool logic: fetches the main docs page, parses links with cheerio to discover documentation sections, deduplicates and sorts them, stores in instance state, and returns a formatted list.
    async discoverDocs(): Promise<CallToolResult> { try { const response = await fetch('https://docs.tambo.co/'); if (!response.ok) { throw new Error(`Failed to fetch main docs page: ${response.status}`); } const html = await response.text(); const $ = cheerio.load(html); const discoveredSections: DocSection[] = []; $('a[href]').each((_, element) => { const href = $(element).attr('href'); const text = $(element).text().trim(); if (href && href.startsWith('/') && !href.startsWith('//') && text) { if (href.includes('/docs/') || href.match(/^\/(concepts?|api|cli|examples?|getting-started|guides?)/)) { const category = this.extractCategory(href); discoveredSections.push({ path: href, title: text, category }); } } }); const uniqueSections = discoveredSections .filter((section, index, self) => index === self.findIndex(s => s.path === section.path) ) .sort((a, b) => a.path.localeCompare(b.path)); this.sections = uniqueSections; this.sectionsLoaded = true; return { content: [ { type: 'text', text: `Discovered ${uniqueSections.length} documentation sections:\n\n${ uniqueSections.map(s => `• **${s.title}** - ${s.path}${s.category ? ` (${s.category})` : ''}` ).join('\n') }`, }, ], }; } catch (error) { throw new Error(`Failed to discover documentation: ${error instanceof Error ? error.message : String(error)}`); } }
  • src/server.ts:71-78 (registration)
    Tool registration in the ListToolsRequest handler: defines the tool name 'discover_docs', its description, and empty input schema.
    { name: 'discover_docs', description: 'Crawl the main docs page to discover all available documentation paths', inputSchema: { type: 'object', properties: {}, }, },
  • src/server.ts:94-95 (registration)
    Dispatch logic in CallToolRequest handler: matches on tool name and delegates to docHandler.discoverDocs() method.
    case 'discover_docs': return await this.docHandler.discoverDocs();
  • Input schema definition for discover_docs tool: accepts no parameters (empty object).
    inputSchema: { type: 'object', properties: {}, },

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kylegrahammatzen/tambo-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server