Skip to main content
Glama

search_finix_docs

Search Finix documentation to find API references and guides using queries, with filters for category and result limits.

Instructions

This tool searches the Finix documentation for relevant information.

It takes the following arguments:

  • query (str): The search query to find relevant Finix documentation.

  • limit (int, optional): Maximum number of results to return (default: 10).

  • category (str, optional): Filter by document category - "api" for API Reference, "docs" for Documentation, or "all" for both (default: "all").

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesThe search query to find relevant Finix documentation
limitNo
categoryNoall

Implementation Reference

  • The main handler function that executes the tool logic: destructures params, builds filters based on category, calls client.searchDocs, parses and formats results.
    const searchDocs = async (client: FinixClient, context: FinixContext, params: any): Promise<any> => { try { const { query, limit = 10, category = 'all' } = params; // Build filters based on category selection const filters: any[] = []; if (category === 'api') { filters.push({ field: 'redocly_category', values: ['API Reference'], isQuickFilter: true }); } else if (category === 'docs') { filters.push({ field: 'redocly_category', values: ['Documentation'], isQuickFilter: true }); } else if (category === 'all') { filters.push({ field: 'redocly_category', values: ['API Reference', 'Documentation'], isQuickFilter: true }); } const response = await client.searchDocs(query, filters); if (response.error) { return `Error searching Finix docs: ${response.error.message}`; } const results = parseSearchResults(response.data, limit); return formatSearchResults(results, query); } catch (error) { return `Error searching Finix docs: ${error instanceof Error ? error.message : 'Unknown error'}`; } };
  • Tool schema: prompt description, Zod input parameters schema, and annotations (idempotent, read-only, etc.).
    const searchDocsPrompt = (context: FinixContext = {}) => ` This tool searches the Finix documentation for relevant information. It takes the following arguments: - query (str): The search query to find relevant Finix documentation. - limit (int, optional): Maximum number of results to return (default: 10). - category (str, optional): Filter by document category - "api" for API Reference, "docs" for Documentation, or "all" for both (default: "all"). `; const searchDocsParameters = (context: FinixContext = {}) => z.object({ query: z.string().describe('The search query to find relevant Finix documentation'), limit: z.number().int().min(1).max(50).optional().default(10).describe('Maximum number of results to return'), category: z.enum(['api', 'docs', 'all']).optional().default('all').describe('Filter by document category') }); const searchDocsAnnotations = () => ({ destructiveHint: false, idempotentHint: true, openWorldHint: true, readOnlyHint: true, title: 'Search Finix Documentation' });
  • Local tool factory registration defining method name 'search_finix_docs', bindings to schema/handler, and default export.
    const tool: ToolFactory = (context) => ({ method: 'search_finix_docs', name: 'Search Finix Documentation', description: searchDocsPrompt(context), parameters: searchDocsParameters(context), annotations: searchDocsAnnotations(), actions: { documentation: { read: true } }, execute: searchDocs }); export default tool;
  • Global tool registry: allTools array including the searchDocs tool factory (imported from ./search/searchDocs.js).
    export const allTools: ToolFactory[] = [ // Search & Documentation searchDocs, // Identities (Buyers/Sellers) createBuyer, createSeller, listBuyers, listSellers, // Payment Links createPaymentLink, ];
  • Helper function to parse raw search response data into structured SearchResult[] for API Reference and Documentation categories.
    function parseSearchResults(data: any, limit: number): SearchResult[] { if (!data || !data.documents) { return []; } const results: SearchResult[] = []; // Process API Reference documents if (data.documents['API Reference'] && Array.isArray(data.documents['API Reference'])) { const apiDocs = data.documents['API Reference'].slice(0, limit); for (const item of apiDocs) { if (item.document) { const doc = item.document; const title = `${doc.httpMethod?.toUpperCase() || 'API'} ${doc.httpPath || doc.apiTitle || 'Finix API'}`; const deepLink = doc.parameters?.[0]?.deepLink || ''; const baseUrl = 'https://docs.finix.com/api'; const url = deepLink ? `${baseUrl}${deepLink}` : baseUrl; // Create snippet from parameters descriptions let snippet = doc.apiTitle || 'Finix API documentation'; if (doc.parameters && doc.parameters.length > 0) { const paramDesc = doc.parameters .filter((p: any) => p.description) .slice(0, 2) .map((p: any) => p.description) .join('. '); if (paramDesc) { snippet = paramDesc.substring(0, 200); } } results.push({ title, url, snippet, score: item.score }); } } } // Process Documentation documents if present if (data.documents['Documentation'] && Array.isArray(data.documents['Documentation'])) { const remainingLimit = limit - results.length; const docs = data.documents['Documentation'].slice(0, remainingLimit); for (const item of docs) { if (item.document) { const doc = item.document; results.push({ title: doc.title || 'Finix Documentation', url: doc.url || 'https://docs.finix.com', snippet: doc.description || doc.snippet || 'Finix documentation page', score: item.score }); } } } return results; }

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/bquigley1/finix-mcp'

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