find_missing_topics
Identifies content gaps by comparing your text with SERP competitors, showing missing topics and coverage percentage to improve SEO.
Instructions
Find topics from SERP competitors that are missing in your content. Returns covered topics, missing topics, and coverage percentage.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | The content to check | |
| keyword | Yes | The target keyword |
Implementation Reference
- mcp-server/src/index.ts:511-550 (handler)The handler implementation for the 'find_missing_topics' tool, which compares provided content against keywords and identifies missing topics.
async ({ content, keyword }) => { const topics = getKeywordTopics(keyword); const contentLower = content.toLowerCase(); const covered: string[] = []; const missing: string[] = []; for (const topic of topics) { if (contentLower.includes(topic.toLowerCase())) { covered.push(topic); } else { missing.push(topic); } } const coverage = topics.length > 0 ? (covered.length / topics.length) * 100 : 0; let assessment: string; if (coverage >= 80) assessment = "Excellent topic coverage — your content is comprehensive."; else if (coverage >= 60) assessment = "Good coverage — a few more topics would strengthen the content."; else if (coverage >= 40) assessment = "Moderate coverage — significant topics are missing."; else assessment = "Low coverage — many important topics are not addressed."; return { content: [ { type: "text" as const, text: JSON.stringify({ keyword, totalTopics: topics.length, coveredTopics: covered, missingTopics: missing, coveragePercentage: Math.round(coverage), assessment, recommendations: missing.slice(0, 7).map((t) => `Add a section or paragraph covering "${t}".`), }, null, 2), }, ], }; } - mcp-server/src/index.ts:504-510 (registration)Registration of the 'find_missing_topics' tool, including its description and input schema.
server.tool( "find_missing_topics", "Find topics from SERP competitors that are missing in your content. Returns covered topics, missing topics, and coverage percentage.", { content: z.string().describe("The content to check"), keyword: z.string().describe("The target keyword"), },