get_doctypes
Retrieve all available DocTypes from ERPNext to discover accessible data models and document types for integration and querying.
Instructions
Get a list of all available DocTypes
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/index.ts:669-697 (handler)The handler case for 'get_doctypes' tool that checks authentication, calls erpnext.getAllDocTypes(), and returns the result as JSON
case "get_doctypes": { if (!erpnext.isAuthenticated()) { return { content: [{ type: "text", text: "Not authenticated with ERPNext. Please configure API key authentication." }], isError: true }; } try { const doctypes = await erpnext.getAllDocTypes(); return { content: [{ type: "text", text: JSON.stringify(doctypes, null, 2) }] }; } catch (error: any) { return { content: [{ type: "text", text: `Failed to get DocTypes: ${error?.message || 'Unknown error'}` }], isError: true }; } } - src/index.ts:143-188 (helper)The ERPNextClient method that fetches all DocTypes from the ERPNext API, with fallback to alternative method and default list
async getAllDocTypes(): Promise<string[]> { try { // Use the standard REST API to fetch DocTypes const response = await this.axiosInstance.get('/api/resource/DocType', { params: { fields: JSON.stringify(["name"]), limit_page_length: 500 // Get more doctypes at once } }); if (response.data && response.data.data) { return response.data.data.map((item: any) => item.name); } return []; } catch (error: any) { console.error("Failed to get DocTypes:", error?.message || 'Unknown error'); // Try an alternative approach if the first one fails try { // Try using the method API to get doctypes const altResponse = await this.axiosInstance.get('/api/method/frappe.desk.search.search_link', { params: { doctype: 'DocType', txt: '', limit: 500 } }); if (altResponse.data && altResponse.data.results) { return altResponse.data.results.map((item: any) => item.value); } return []; } catch (altError: any) { console.error("Alternative DocType fetch failed:", altError?.message || 'Unknown error'); // Fallback: Return a list of common DocTypes return [ "Customer", "Supplier", "Item", "Sales Order", "Purchase Order", "Sales Invoice", "Purchase Invoice", "Employee", "Lead", "Opportunity", "Quotation", "Payment Entry", "Journal Entry", "Stock Entry" ]; } } } - src/index.ts:324-332 (registration)Tool registration in the ListToolsRequestSchema handler defining the 'get_doctypes' tool with empty input schema
tools: [ { name: "get_doctypes", description: "Get a list of all available DocTypes", inputSchema: { type: "object", properties: {} } },