← Files KoloPlusARCHIVED FILE
.codex-plugin/plugin.json
17.5 KB · Nov 14, 2026 · 06:08 UTC
{
"name": "koloplus",
"version": "0.2.7",
"description": "Improve and format KoloPlus editor text, return selected translations, and read your own posts and comments.",
"author": {
"name": "Savliak Vasyl",
"email": "support@kolo.plus"
},
"homepage": "https://kolo.plus/",
"mcpServers": "./.mcp.json",
"interface": {
"displayName": "KoloPlus",
"shortDescription": "Write with KoloPlus drafts",
"longDescription": "Connect your own KoloPlus account to read your profile, authored posts and comments, and comments on posts you own. Adults can type in a post, group or listing editor, use its Markdown toolbar, choose translation languages and select Improve in ChatGPT. The site opens a prepared prompt; send it in ChatGPT with KoloPlus connected. If opening or prefilling fails, copy the prepared command. ChatGPT reads the private draft and returns improved text and exactly the selected translations. When you return to an unchanged editor under the same account, the site fills the original and translations automatically. Undo restores the preceding editor text while no newer text edits have been made. If the local draft changed, the proposal stays available for manual comparison and copying without replacing your edits. Review all text and translations, then add media and publish on KoloPlus. The plugin does not add media, publish content or process payments. Each user grants OAuth access to their own account. Draft access lasts up to 24 hours; cancelling clears the saved draft text and result. Requires a KoloPlus account and access to ChatGPT plugins. Connection requires an account age of at least 13; editor drafts require age 18 or older. ChatGPT age requirements also apply.",
"category": "Communication",
"capabilities": [
"Read",
"Write"
],
"websiteURL": "https://kolo.plus/chatgpt-plugin.html",
"defaultPrompt": [
"Show my KoloPlus profile.",
"Show my five most recent KoloPlus posts.",
"Show comments I wrote on KoloPlus."
],
"developerName": "Savliak Vasyl",
"supportURL": "https://kolo.plus/contact",
"privacyPolicyURL": "https://kolo.plus/privacy",
"termsOfServiceURL": "https://kolo.plus/terms",
"logo": "./assets/koloplus-icon-512.png",
"composerIcon": "./assets/koloplus-icon-512.png",
"brandColor": "#F77244"
},
"extensions": {
"com.openai": {
"review": {
"prompts": [
"Show my KoloPlus profile and my latest five posts.",
"Show the comments I wrote recently on KoloPlus.",
"Read the details and comments of a post I own.",
"What can this KoloPlus connection access?",
"Improve and format the KoloPlus editor draft ID I provide, include its selected translations and save the proposal back without publishing."
],
"test_cases": {
"positive": [
{
"description": "In the KoloPlus post editor, enter Ukrainian source text: 'Тестова зустріч української спільноти у Празі — 14 червня, 12:00, парк Летна. Участь безкоштовна. Кожен приносить воду. [Подробиці](https://kolo.plus/contact).' Use the Markdown toolbar to bold the date or an equivalent short phrase. Select English and Czech translations; keep the default task=improve and leave the optional instruction empty. Select Improve in ChatGPT once. Use the fresh opaque ID in the prepared prompt as {{POST_DRAFT_ID}}, send it with the same KoloPlus account connected, and leave the editor text and language selections unchanged. This tests the primary handoff, Markdown, source improvement and two translations.",
"prompt": "Покращи текст моєї чернетки допису KoloPlus {{POST_DRAFT_ID}}, охайно оформи його та додай вибрані переклади. Поверни результат у редактор.",
"tools_triggered": "get_my_editor_draft, save_my_editor_draft_result",
"expected_behavior": "Read the supplied draft_id, then save the proposal using that exact ID and the returned draft.revision as expected_revision. Return title='', a nonempty improved Ukrainian body within 5000 characters, and exactly translations.cs and translations.en, each with title='' and body within the returned limit. Preserve 14 June, 12:00, Letna Park, Prague, free participation, bringing water, meaningful Markdown formatting and the exact https://kolo.plus/contact URL; invent no organizer or contact. After a successful ready result and return to the same-account unchanged editor, the source and both translations fill automatically without a separate Apply click. Translation review controls remain unconfirmed. Undo before further editing restores the prior text, language selections and review state. No media is added and no post is published. Opening ChatGPT alone must not be described as executing the request."
},
{
"description": "In the KoloPlus community/group editor, open optional request settings and select task=shorten. Create a snapshot with source_locale=uk, title='Українці Праги — тестова група', body='Це тестова група українців у Празі. Тут ми ділимося місцевими подіями, ставимо практичні запитання і допомагаємо новачкам знайти потрібну інформацію. Просимо спілкуватися ввічливо, перевіряти факти перед публікацією та не розміщувати спам. Корисні посилання додавайте з коротким поясненням.', target_locales=['en'], and instruction='Скороти опис українською до 250 символів, збережи призначення групи та правило без спаму. Українську назву залиш без змін. Додай англійський переклад назви й нового опису.' Use its fresh ID as {{GROUP_DRAFT_ID}}. This covers group-specific limits, a source rewrite and one requested translation. Use the one primary handoff button, send the prepared prompt in ChatGPT and return to the unchanged editor under the same account.",
"prompt": "Скороти опис моєї групи в чернетці KoloPlus {{GROUP_DRAFT_ID}}, додай вибраний переклад і поверни результат у редактор.",
"tools_triggered": "get_my_editor_draft, save_my_editor_draft_result",
"expected_behavior": "Read the supplied draft with get_my_editor_draft and use snapshot.kind=community, its instruction, source_locale, target_locales and returned revision. Save through save_my_editor_draft_result with that exact draft_id and expected_revision. Preserve the Ukrainian source title exactly, return a nonempty Ukrainian body of at most 250 characters that retains the Prague Ukrainian community purpose and no-spam rule, and include exactly translations.en with a nonempty English title/body conveying the same content. All source and translated titles must fit the returned 80-character limit and bodies the 1000-character limit. A successful ready proposal automatically fills the unchanged same-account group editor after return or refresh. The source and English translation appear together, with the translation still requiring review. Undo is available until later text edits. The group record, membership and publication state remain unchanged until the user separately saves on the site."
},
{
"description": "In the KoloPlus listing editor, open optional request settings and select task=translate. Create a snapshot with source_locale=uk, title='Тестовий письмовий стіл 120 × 60 см', body='Продаю тестовий письмовий стіл за **1000 CZK**. Розмір: 120 × 60 см. Самовивіз у Празі. Стан: подряпина на правому краї. [Правила зв’язку](https://kolo.plus/contact).', target_locales=['cs','en'], and instruction='Переклади назву й опис чеською та англійською. Збережи суму, валюту, розміри, стан, місто, Markdown і адресу посилання. Не змінюй український оригінал.' Use its fresh ID as {{LISTING_DRAFT_ID}}. This covers translation-only semantics, two exact target languages and factual preservation. Use the primary handoff button and send the prepared prompt with the same connected account; leave the local editor unchanged.",
"prompt": "Переклади моє оголошення з чернетки KoloPlus {{LISTING_DRAFT_ID}} вибраними мовами та поверни переклади в редактор.",
"tools_triggered": "get_my_editor_draft, save_my_editor_draft_result",
"expected_behavior": "Read the exact supplied draft ID, then save using the returned revision. For task=translate, result.title and result.body must equal the Ukrainian snapshot strings exactly, including punctuation and Markdown. Include exactly translations.cs and translations.en, each with a title and body within returned listing limits (180 and 3000 characters). Both translations must preserve 1000 CZK, 120 × 60 cm, Prague pickup, the scratch on the right edge, bold formatting and the exact https://kolo.plus/contact URL; translated unit words and link labels are allowed. Saving produces a ready proposal that automatically fills the unchanged same-account listing editor when the user returns, preserving the source exactly and filling both translations for review. Undo restores the previous editor state before newer text edits. It must not change a live listing's structured price, sale status or visibility, contact a buyer, take payment, or publish an advertisement."
},
{
"description": "The dedicated reviewer account has one private synthetic sample post and two non-deleted sample comments on that post. This case exercises the full read workflow with fewer results than the requested limit, checks that private owned content is accessible only through the connected account, and verifies detail/thread consistency. It does not claim to test a second account or mixed-author filtering.",
"prompt": "Покажи мій профіль KoloPlus і до трьох моїх найновіших дописів. Відкрий найновіший допис повністю та покажи до п’яти коментарів під ним.",
"tools_triggered": "get_my_profile, list_my_posts, get_my_post, list_comments_on_my_post",
"expected_behavior": "Call get_my_profile for the connected reviewer and list_my_posts with limit=3, offset=0. Return the actual number of posts from the response without inventing entries to fill the requested limit. Select the newest owned post from that response, then use its post_id in get_my_post and list_comments_on_my_post with limit=5. Profile identity must agree with the connection; full content and privacy must agree with the detail response. Show only the returned thread comments and their actual authors. The supplied fixture has one private owned post and two sample comments. Do not change privacy, publish, or modify records."
},
{
"description": "The reviewer account has exactly two non-deleted synthetic authored comments with distinct text and known order, both on its private sample post. This case checks authored-comment history, detail consistency and pagination: the older comment returned with limit=1, offset=1 must match the second entry of limit=2, offset=0. This fixture does not establish other-user or deleted-comment exclusion; those remain separate security checks.",
"prompt": "Покажи два останні коментарі, які саме я написав у KoloPlus, і відкрий найновіший повністю. Потім покажи наступну сторінку історії з одним коментарем, пропустивши найновіший.",
"tools_triggered": "list_my_comments, get_my_comment",
"expected_behavior": "Call list_my_comments with limit=2, offset=0, then get_my_comment with the newest comment_id actually returned. Call list_my_comments again with limit=1, offset=1. The detail ID, author and content must agree with the newest list entry; the one-item page must match the second initial list entry in ID and content. Show only actual authored comment results and distinguish the full detail from the paginated older entry. Do not substitute list_comments_on_my_post, invent a third comment, or modify any comment."
}
],
"negative": [
{
"description": "Direct publication is outside the submitted eight-tool capability surface: the plugin only returns editor proposals. Do not invoke any MCP tool, fabricate a draft ID, or claim publication. Explain that the user can prepare a draft through the KoloPlus editor and must review and publish on the site; offering the requested sentence in chat is acceptable.",
"prompt": "Опублікуй зараз у моєму профілі KoloPlus допис: «Вітаю нашу спільноту!»."
},
{
"description": "Group membership and role administration are unsupported even though the app assists with group text. Do not invoke any MCP tool or use an editor draft as a membership operation. Explain that the connection cannot assign administrators and the user must use the group's management controls on KoloPlus. Do not claim that anyone was promoted.",
"prompt": "Признач користувача test-moderator адміністратором моєї групи KoloPlus."
},
{
"description": "Listing checkout and payment are unsupported; listing support is limited to user-shared text proposals. Do not invoke any MCP tool, request payment credentials, contact a seller or claim a purchase. Explain that this connection cannot buy or pay for listings and direct the user to the available listing/contact flow on KoloPlus.",
"prompt": "Купи для мене письмовий стіл з оголошення KoloPlus і оплати його карткою."
}
]
},
"commerce": false,
"commerce_description": "The plugin has no checkout, purchases, payment processing or paid upgrades. It reads the connected account activity and saves private editor proposals; transactions and publication are not performed through the plugin.",
"demo_recording_url": "https://kolo.plus/koloplus-chatgpt-demo-0-2-6.html"
},
"publication": {
"release_notes": "Public review candidate 0.2.7 aligns the profile, post and comment review fixtures with the dedicated test account and adds an explicit authored-comment pagination check. The eight MCP tools, five OAuth scopes, KoloPlus icon, supported editor workflows and demo URL are unchanged. Hourly cleanup of expired OAuth records, tokens revoked for seven days and database error logs older than 30 days is now implemented and verified on the hosting server. The plugin does not publish content, administer roles or process payments. OAuth now enforces known age 13+ at consent, code exchange, refresh and resource access; editor drafts retain their separate 18+ restriction.",
"translations": {
"uk-UA": {
"subtitle": "Тексти й переклади KoloPlus",
"description": "Підключіть власний акаунт KoloPlus через OAuth. Переглядайте профіль, власні дописи й коментарі. У редакторах KoloPlus користувачі від 18 років вводять текст, оформлюють його Markdown і вибирають мови перекладу. Натисніть «Покращити в ChatGPT» та надішліть підготовлений запит у ChatGPT із підключеним KoloPlus. Якщо перехід не спрацює, скопіюйте команду. Коли ви повернетеся до незміненої чернетки під тим самим акаунтом, оригінал і вибрані переклади заповняться автоматично. Дію можна скасувати до наступних правок тексту. Якщо ви вже змінили чернетку, результат залишиться пропозицією для ручного порівняння й копіювання. Перевірте текст і переклади, додайте медіа та опублікуйте матеріал на сайті. Плагін не додає медіа, не публікує і не проводить платежів. Доступ до переданої чернетки діє до 24 годин. Потрібні власний акаунт KoloPlus і доступ до плагінів ChatGPT. Підключення доступне від 13 років із відомим віком акаунта; також діють вікові вимоги ChatGPT."
}
},
"countries": []
}
}
}
}
SHA-256: 9e4b641e1999c943c07058cbbd3a6e5a988bfb0a2828b055762fb251bb88f8dd