fixgraph_search
Search a community-verified database for engineering fixes to software errors, vehicles, home systems, and appliances using error messages or symptoms.
Instructions
Search FixGraph for engineering fixes. Returns matching issues with trust scores and fix counts.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Error message, technology, or symptom to search for | |
| limit | No | Number of results (1–20, default 5) | |
| category | No | Optional category filter (e.g. "databases", "networking") |
Implementation Reference
- src/index.js:25-49 (handler)The searchIssues function implements the logic for 'fixgraph_search' by querying the FixGraph API.
async function searchIssues({ query, limit = 5, category }) { const params = new URLSearchParams({ q: query, limit: String(limit) }); if (category) params.set('category', category); const res = await fetch(`${BASE_URL}/issues/search?${params}`, { headers: headers() }); const data = await res.json(); const issues = data.items ?? data.results ?? data.issues ?? data.data ?? []; if (!issues.length) return { content: [{ type: 'text', text: 'No results found.' }] }; const text = issues.map((issue, i) => { const score = issue.trust_score ?? issue.trustScore; const fixes = issue.fix_count ?? issue.fixCount ?? '?'; return [ `${i + 1}. ${issue.title}`, ` ID: ${issue.id ?? issue.slug}`, score != null ? ` Trust: ${score}%` : '', ` Fixes: ${fixes}`, issue.tags?.length ? ` Tags: ${issue.tags.join(', ')}` : '', ` URL: https://fixgraph.netlify.app/issues/${issue.slug ?? issue.id}`, ].filter(Boolean).join('\n'); }).join('\n\n'); return { content: [{ type: 'text', text }] }; } - src/index.js:102-114 (registration)The 'fixgraph_search' tool is registered in the ListToolsRequestSchema handler.
{ name: 'fixgraph_search', description: 'Search FixGraph for engineering fixes. Returns matching issues with trust scores and fix counts.', inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'Error message, technology, or symptom to search for' }, limit: { type: 'integer', description: 'Number of results (1–20, default 5)', minimum: 1, maximum: 20 }, category: { type: 'string', description: 'Optional category filter (e.g. "databases", "networking")' }, }, required: ['query'], }, }, - src/index.js:163-163 (handler)The tool invocation is handled by calling searchIssues(args) inside the CallToolRequestSchema request handler.
case 'fixgraph_search': return await searchIssues(args);