Skip to main content
Glama

monica-search

Get AI-generated answers to search queries by analyzing web content through DuckDuckGo Search MCP, providing privacy-friendly access to real-time information.

Instructions

AI-powered search using Monica AI. Returns AI-generated responses based on web content.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesThe search query or question.

Implementation Reference

  • The main execution handler for the 'monica-search' MCP tool. Extracts query from params, calls the searchMonica helper, and returns formatted text content or error response.
    /** * Monica AI search tool handler * @param {Object} params - The tool parameters * @returns {Promise<Object>} - The tool result */ export async function monicaToolHandler(params) { const { query } = params; console.log(`Searching Monica AI for: "${query}"`); try { const result = await searchMonica(query); return { content: [ { type: 'text', text: result || 'No results found.' } ] }; } catch (error) { console.error(`Error in Monica search: ${error.message}`); return { isError: true, content: [ { type: 'text', text: `Error searching Monica: ${error.message}` } ] }; } }
  • The tool definition object including name, title, description, inputSchema for parameter validation, and annotations.
    /** * Monica AI search tool definition */ export const monicaToolDefinition = { name: 'monica-search', title: 'Monica AI Search', description: 'AI-powered search using Monica AI. Returns AI-generated responses based on web content.', inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'The search query or question.' } }, required: ['query'] }, annotations: { readOnlyHint: true, openWorldHint: false } };
  • src/index.js:49-61 (registration)
    In the MCP CallToolRequest handler, routes calls to 'monica-search' to the monicaToolHandler function.
    switch (name) { case 'web-search': return await searchToolHandler(args); case 'iask-search': return await iaskToolHandler(args); case 'monica-search': return await monicaToolHandler(args); default: throw new Error(`Tool not found: ${name}`); }
  • src/index.js:14-18 (registration)
    Includes monicaToolDefinition in the list of tools returned by ListToolsRequestSchema handler.
    const availableTools = [ searchToolDefinition, iaskToolDefinition, monicaToolDefinition ];
  • The core helper function implementing the API interaction with Monica AI, including client instantiation, streaming request handling, response formatting, and comprehensive error management.
    /** * Search using Monica AI * @param {string} query - The search query * @returns {Promise<string>} The search results */ export async function searchMonica(query) { // Input validation if (!query || typeof query !== 'string') { throw new Error('Invalid query: query must be a non-empty string'); } console.log(`Monica AI search starting: "${query}"`); try { const client = new MonicaClient(); const result = await client.search(query); if (result && result.trim()) { console.log(`Monica AI search completed: ${result.length} characters received`); } else { console.log('Monica AI search completed but returned empty result'); } return result; } catch (error) { console.error('Error in Monica AI search:', error.message); // Enhanced error handling if (error.code === 'ENOTFOUND') { throw new Error('Monica network error: unable to resolve host'); } if (error.code === 'ECONNREFUSED') { throw new Error('Monica network error: connection refused'); } if (error.message.includes('timeout')) { throw new Error('Monica timeout: request took too long'); } if (error.message.includes('network')) { throw new Error('Monica network error: service may be unavailable'); } throw new Error(`Monica search failed for "${query}": ${error.message}`); } }

Other Tools

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/OEvortex/ddg_search'

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