search_company_contacts
Search and retrieve company contacts using a query string and pagination options, enabling precise access to Zoom API resources via the MCP Server.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| next_page_token | No | Next page token | |
| page_size | No | Number of records returned | |
| query_string | Yes | Search query string |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"next_page_token": {
"description": "Next page token",
"type": "string"
},
"page_size": {
"description": "Number of records returned",
"maximum": 300,
"minimum": 1,
"type": "number"
},
"query_string": {
"description": "Search query string",
"type": "string"
}
},
"required": [
"query_string"
],
"type": "object"
}
Implementation Reference
- src/tools/contacts.js:50-62 (handler)Executes the tool by searching Zoom contacts with the given query_string, optional pagination params, via the /contacts/search API endpoint. Handles response and errors using utility functions.handler: async ({ query_string, page_size, next_page_token }) => { try { const params = { query_string }; if (page_size) params.page_size = page_size; if (next_page_token) params.next_page_token = next_page_token; const response = await zoomApi.get('/contacts/search', { params }); return handleApiResponse(response); } catch (error) { return handleApiError(error); } } }
- src/tools/contacts.js:45-49 (schema)Zod schema for input validation: required query_string, optional page_size (1-300), next_page_token.schema: { query_string: z.string().describe("Search query string"), page_size: z.number().min(1).max(300).optional().describe("Number of records returned"), next_page_token: z.string().optional().describe("Next page token") },
- src/tools/contacts.js:42-62 (registration)Full tool definition object exported in contactsTools array.{ name: "search_company_contacts", description: "Search company contacts", schema: { query_string: z.string().describe("Search query string"), page_size: z.number().min(1).max(300).optional().describe("Number of records returned"), next_page_token: z.string().optional().describe("Next page token") }, handler: async ({ query_string, page_size, next_page_token }) => { try { const params = { query_string }; if (page_size) params.page_size = page_size; if (next_page_token) params.next_page_token = next_page_token; const response = await zoomApi.get('/contacts/search', { params }); return handleApiResponse(response); } catch (error) { return handleApiError(error); } } }
- src/server.js:52-52 (registration)Registers the entire contactsTools array (including search_company_contacts) with the MCP server via the registerTools helper.registerTools(contactsTools);
- src/server.js:23-32 (helper)Helper function that iterates over a tools array and registers each tool on the MCP server using server.tool().const registerTools = (toolsArray) => { toolsArray.forEach(tool => { server.tool( tool.name, tool.schema, tool.handler, { description: tool.description } ); }); };