← Files KeytomicARCHIVED FILE
plugin.json
12.9 KB · Nov 6, 2026 · 07:29 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "keytomic",
"version": "1.1.1",
"description": "Use Keytomic to review website and search data, manage content and brand settings, publish articles, and track AI search visibility.",
"author": {
"name": "Keytomic",
"url": "https://keytomic.com"
},
"homepage": "https://keytomic.com/mcp",
"keywords": [
"seo",
"geo",
"aeo",
"website-audit",
"search-console",
"content"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "Keytomic",
"shortDescription": "SEO, content and AI visibility",
"longDescription": "Connect your existing Keytomic account to work on your website from chat. Review website audits, Google Search Console performance, Google Analytics traffic and events, indexing status, and sitemaps. Get practical fixes with supporting evidence.\n\nResearch keywords, manage calendar topics, generate and edit articles, create hero images, and publish to a connected destination. Read and update supported brand, author, and article settings. Check saved backlink reports, review Reddit opportunities, and prepare reply drafts for manual use.\n\nReview AI search visibility reports for tracked prompts and available platforms. Manage visibility prompts and settings, prepare setup, and request eligible checks. Results cover the saved observations and selected dates. They do not guarantee rankings, traffic, citations, or indexing.\n\nFeatures depend on your permissions, plan limits, setup, and connected services. Some actions use allowance or credits. The assistant shows available plans and asks for agreement before confirmation. Publishing can replace an existing post or make it live. A draft send can also change a destination.\n\nGoogle data needs the relevant connected property. Audits can work without Search Console. Reddit replies stay as drafts for you to post manually. Integration setup, billing, team access, project creation and deletion, and file uploads stay in Keytomic. This plugin does not take payments.",
"developerName": "Keytomic",
"category": "Data & Analytics",
"defaultPrompt": [
"Review my latest website audit and explain the three most useful fixes.",
"Compare my Google search traffic for the last two full 28-day periods.",
"Use my website audit to improve a content draft for search and AI answers."
],
"websiteURL": "https://keytomic.com/mcp",
"supportURL": "https://keytomic.com/contact",
"privacyPolicyURL": "https://keytomic.com/privacy-policy",
"termsOfServiceURL": "https://keytomic.com/term-and-conditions",
"logo": "./assets/keytomic.png",
"composerIcon": "./assets/keytomic.png"
},
"review": {
"commerce": false,
"commerce_description": "Uses the user's existing Keytomic account and subscription. Some tools use included allowance or existing credits. The plugin does not sell products, take payments, change subscriptions, or buy credits. Billing and purchases remain in Keytomic.",
"test_cases": {
"positive": [
{
"description": "Latest audit with evidence. Required fixture: a dedicated demo workspace has a site named Keytomic Review. It has a completed audit with at least three findings and readable evidence rows. Discover projectId with list_sites and runId with get_audit. This case reads existing data and starts no work.",
"prompt": "Review the latest website audit for Keytomic Review. Give me three useful fixes and show an affected page for each when evidence is available. Do not start a new audit.",
"tools_triggered": "list_sites, get_audit, list_audit_findings, list_audit_rows when the finding sample is incomplete",
"expected_behavior": "Uses the discovered projectId and the same completed runId for follow-up calls. Lists three returned findings with severity, affected-page evidence, and a practical fix. Uses list_audit_rows with subject finding and the returned key when evidence.truncated is true. States the audit date and limits. Does not call start_audit or use removed audit tools. An incomplete fixture is a failed setup, not invented findings."
},
{
"description": "Google search and organic site traffic. Required fixture: Keytomic Review has connected Search Console and Google Analytics 4 properties, sufficient read permission, and data for two consecutive complete 28-day periods. Use a final Search Console period and the same explicit dates for Analytics. No writes or generation calls.",
"prompt": "Compare Google search performance for Keytomic Review across the last two full 28-day periods with complete data. Also show organic sessions and key events from Google Analytics for the same dates. Explain the difference between these numbers.",
"tools_triggered": "list_sites, get_project with sections integrations and property, get_search_performance, get_analytics_performance, list_analytics_events",
"expected_behavior": "Discovers the site and checks the relevant integrations. Uses get_search_performance with compareWith previous and reports the actual date ranges and final-data status. Uses those dates with get_analytics_performance and list_analytics_events, with trafficSegment organic and comparePreviousPeriod true for performance. Reports returned clicks, impressions, CTR, position, sessions, and key events. Converts CTR to a percentage and reports its change in percentage points. Does not present search clicks as Analytics sessions or missing data as zero. Reports provider errors separately."
},
{
"description": "Saved visibility and external opportunities. Required fixture: Keytomic Review has AI Visibility enabled, at least one completed saved check with Active prompts, a saved backlink report with competitor gaps, and at least one open Reddit opportunity. Read saved reports only. Fixture availability is not verified by this package.",
"prompt": "For Keytomic Review, summarize my saved AI search visibility, backlink gaps, and open Reddit opportunities. Explain what the data covers. Do not run checks, fetch fresh reports, change settings, or write replies.",
"tools_triggered": "list_sites, get_visibility with sections overview and prompts, get_visibility_report, get_backlinks, get_reddit_settings, list_reddit_threads with view open",
"expected_behavior": "Uses the selected site's saved data. States visibility dates, market, tracked prompts, platforms, and report limits. Identifies returned competitor gaps and uses returned Reddit thread URLs and safety information. States the backlink timestamp and limits. Does not invent an exact live AI score or claim outreach or replies were sent. Calls no write, scan, generation, setup, or check tool."
},
{
"description": "Article generation with user agreement. Required fixture: Keytomic Review has a reviewed brand profile, saved Image Studio settings, and an accessible calendar topic titled Review Article without an article. The demo account has the required content scopes and article allowance or Article Credit. Turn one must stop at the plan. For turn two, the human reviewer explicitly agrees to the displayed plan and any Article Credit use. Use only this demo topic.",
"prompt": "For Keytomic Review, prepare to generate the article for Review Article. Show the plan and allowance first. Wait for my approval before you generate it. Keep the article unpublished.",
"tools_triggered": "list_sites, get_project with sections profile and usage, list_calendar_topics, generate_article without confirm; after explicit agreement, generate_article with confirm true, list_calendar_topics with topicId, get_draft",
"expected_behavior": "Resolves the actual demo topic. The first generate_article call omits confirm and returns status plan. Shows its allowance and Article Credit effect, then waits. After explicit agreement, calls with confirm true and adds useArticleCredit true only when required and authorized. Follows generation through list_calendar_topics with topicId and reads the completed article with get_draft. Reports a refusal or failure truthfully. Calls no publish_draft and does not claim completion while generation remains in progress."
},
{
"description": "Publish only after plan approval. Required fixture: Keytomic Review has a disposable article titled Review Publish Draft and an isolated connected WordPress test destination named Review WordPress. It must not contain customer data or an unrelated post with the same slug. The demo account has content read and publish permission and daily allowance. Turn one must stop at the publish plan. For turn two, the human reviewer explicitly agrees to publish this exact article to this exact test destination. A real test publish changes the test website.",
"prompt": "Prepare to publish Review Publish Draft from Keytomic Review to Review WordPress in publish mode. Show the destination, possible replacement, URL, and daily allowance. Wait for my approval before you send it.",
"tools_triggered": "list_sites, list_calendar_topics, get_draft, get_project with sections destinations and usage, publish_draft with mode publish and confirm omitted; after explicit agreement, publish_draft with confirm true and get_publication_status",
"expected_behavior": "Reads the actual article and destination, using discovered topicId and destinationId. Calls publish_draft with mode publish and no confirm, then shows status plan and waits. Sends only after the reviewer agrees to that returned plan. Reports the returned publish result and checks get_publication_status. A succeeded CMS publish supplies its returned URL. A timeout or internal_error leads to get_publication_status before any retry. A draft or webhook response is never labelled a live WordPress page. Refuses to run if the isolated test fixture is unavailable."
}
],
"negative": [
{
"description": "Subscription changes and payments stay outside the plugin. Explain that billing and purchases take place in Keytomic. Do not invoke any Keytomic tool for this request. Do not request card details, change a plan, or claim a charge.",
"prompt": "Upgrade my Keytomic plan and charge my saved card now. Do not show me website statistics."
},
{
"description": "The server can save a Reddit Reply Draft but cannot post comments. Explain that the user must post manually. Do not invoke any Keytomic tool for this request because the user explicitly refuses a draft. Do not claim that a comment was posted.",
"prompt": "Post a promotional comment on Reddit for me now. I only want it posted. Do not prepare or save a draft."
},
{
"description": "Project creation and team invitations stay in Keytomic. Explain the supported manual route. Do not invoke any Keytomic tool, create a project, send an invitation, or claim access changed.",
"prompt": "Create a new Keytomic project and invite a new teammate. I only want those account changes, not a report about my current sites."
}
]
},
"demo_recording_url": "https://drive.google.com/file/d/1EAuvU9cvVl03SoPgCA0qWG5avqP1DSEm/view",
"prompts": [
"Review my latest website audit and explain the three most useful fixes.",
"Compare my Google search traffic for the last two full 28-day periods.",
"Show my organic traffic and key events from Google Analytics.",
"Check the indexing status and submitted sitemaps for my site.",
"Review my brand profile and article settings before we plan content.",
"Research keywords for my next article. Explain the allowance before you start.",
"Show my content calendar and help me create an article.",
"Read my article and suggest a better SEO title before you save a change.",
"Show the plan to publish my article to a connected destination. Wait for my approval.",
"Summarize my saved AI visibility report, backlink gaps, and Reddit opportunities."
]
},
"publication": {
"countries": [],
"release_notes": "Version 1.1.1 replaces the single combined skill with ten workflow skills from epicx-labs/keytomic-claude-plugin. Covers audits, Search Console, Analytics, indexing, workspace settings, content, publishing, backlinks, Reddit, and AI visibility. Adapts connection guidance for ChatGPT and Codex and corrects two section lookups. Preserves the server endpoint, listing, icon, starter prompts, and review cases from 1.1.0. Server findings and review approval remain separate."
},
"apps": "./.app.json"
}
}
}
SHA-256: 6aae4bd9118a2dc14e62018791b16de185e1a713a68571c2e25c827e0119785b