search
Search across Zoho Projects portal or specific projects to find tasks, issues, milestones, forums, and events using keywords and filters.
Instructions
Search across portal or project
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| search_term | Yes | Search term/query | |
| project_id | No | Project ID (optional for portal-level search) | |
| module | No | Module to search in | |
| page | No | Page number | |
| per_page | No | Items per page |
Implementation Reference
- src/index.ts:868-877 (handler)The handler function that executes the 'search' tool. It destructures parameters, builds the appropriate Zoho API search endpoint (project-specific or portal-wide), calls makeRequest to fetch results, and returns the JSON-formatted response as MCP content.private async search(params: any) { const { search_term, project_id, module = "all", page = 1, per_page = 10 } = params; const endpoint = project_id ? `/portal/${this.config.portalId}/projects/${project_id}/search?search_term=${encodeURIComponent(search_term)}&module=${module}&page=${page}&per_page=${per_page}` : `/portal/${this.config.portalId}/search?search_term=${encodeURIComponent(search_term)}&module=${module}&status=active&page=${page}&per_page=${per_page}`; const data = await this.makeRequest(endpoint); return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }], }; }
- src/index.ts:492-523 (schema)The input schema defining parameters for the 'search' tool: search_term (required), project_id (optional), module (enum), page, per_page.inputSchema: { type: "object", properties: { search_term: { type: "string", description: "Search term/query", }, project_id: { type: "string", description: "Project ID (optional for portal-level search)", }, module: { type: "string", description: "Module to search in", enum: [ "all", "projects", "tasks", "issues", "milestones", "forums", "events", ], }, page: { type: "number", description: "Page number", default: 1 }, per_page: { type: "number", description: "Items per page", default: 10, }, }, required: ["search_term"],
- src/index.ts:489-525 (registration)The tool registration object in the listTools response, specifying name 'search', description, and inputSchema.{ name: "search", description: "Search across portal or project", inputSchema: { type: "object", properties: { search_term: { type: "string", description: "Search term/query", }, project_id: { type: "string", description: "Project ID (optional for portal-level search)", }, module: { type: "string", description: "Module to search in", enum: [ "all", "projects", "tasks", "issues", "milestones", "forums", "events", ], }, page: { type: "number", description: "Page number", default: 1 }, per_page: { type: "number", description: "Items per page", default: 10, }, }, required: ["search_term"], }, },
- src/index.ts:600-602 (registration)The dispatch case in the CallToolRequest handler that routes 'search' tool calls to the search handler function.case "search": return await this.search(params);