{"name":"io.github.Ifeanyiejindu/qarunbook","slug":"ifeanyiejindu-qarunbook","title":null,"description":"Shared app-testing runbook: read the plan, record results per platform, raise and fix issues.","url":"https://mcp.market/server/ifeanyiejindu-qarunbook","rating":null,"grade":"A","score":97,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":23,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-10-25T09:46:45.000Z","license":"MIT"},"uptime":{"percent":96,"checks":28,"ok":27,"last_checked_at":"2026-11-04T08:20:39.401Z","last_ok_at":"2026-11-04T08:20:39.401Z","latency_ms":56},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/Ifeanyiejindu/qarunbook","website":"https://qarunbook.com","version":"1.1.0","remotes":[{"type":"streamable-http","url":"https://qarunbook.com/api/mcp","headers":[{"description":"Bearer <your qarunbook token>, from Connect your AI on qarunbook.com. The token is yours, not the workspace's: it acts as you, with your role.","isRequired":true,"isSecret":true,"name":"Authorization"}]}],"packages":[],"tools":[{"name":"add_check","description":"Add a check to a section. Its reference is generated as the next number in that section's series. Steps should be followable by someone who has never seen the code.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"app":{"type":"string","description":"App name."},"section":{"type":"string","description":"Section title or reference."},"title":{"type":"string","description":"What is being checked, in the user's words."},"steps":{"type":"string","description":"Numbered steps to follow."},"expected":{"type":"string","description":"What should happen. Concrete and checkable — never 'it works'."},"preconditions":{"type":"string","description":"Who is signed in, what state things must be in."},"not_applicable_on":{"type":"array","items":{"type":"string"},"description":"Platform codes this check does not apply to."}},"required":["app","section","title"]}},{"name":"add_issue","description":"Raise an issue against a check. This takes the pass away on the platforms it affects, until it is marked fixed. Leave platforms empty to mean every platform.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"app":{"type":"string","description":"App name."},"ref":{"type":"string","description":"Check reference, e.g. 'AUTH-01'."},"text":{"type":"string","description":"What went wrong. Include the exact error text if there is one."},"by":{"type":"string","description":"Who is reporting it."},"platforms":{"type":"array","items":{"type":"string"},"description":"Platform codes affected, e.g. ['WL','WM'] for web only. Empty means all."}},"required":["app","ref","text","by"]}},{"name":"add_section","description":"Add a section to an app — a module or feature area. Its reference is the prefix its checks are numbered against, so 'SUP' gives SUP-01, SUP-02. No two sections in an app may share one.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"app":{"type":"string","description":"App name."},"title":{"type":"string","description":"Section name, e.g. 'Support'."},"ref":{"type":"string","description":"Reference prefix, e.g. 'SUP'. Derived from the title if omitted."}},"required":["app","title"]}},{"name":"create_app","description":"Add an app to the runbook. Give it a name and the platforms it is tested on. Then use add_section and add_check to fill it in — or upload a markdown test plan through the web app, which is faster for a whole plan.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"type":"string","description":"App name, e.g. 'Errbud'."},"by":{"type":"string","description":"Who is adding it."},"platforms":{"type":"array","description":"Platforms this app is tested on. Defaults to web laptop, web mobile, Android and iOS.","items":{"type":"object","properties":{"code":{"type":"string","description":"Short column code, e.g. 'WL'."},"label":{"type":"string","description":"What it means, e.g. 'Web — laptop'."}},"required":["code","label"]}}},"required":["name","by"]}},{"name":"edit_issue","description":"Reword an issue, or change which platforms it affects — when a report is vague, wrong, or missing the exact error. The original reporter stays on it, you are recorded as the editor, and the previous wording is kept in its history.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"issue_id":{"type":"string","description":"Issue id from list_issues or get_check."},"by":{"type":"string","description":"Who is making the edit."},"text":{"type":"string","description":"The corrected description. Leave out to keep the current wording."},"platforms":{"type":"array","items":{"type":"string"},"description":"Platform codes it affects. Leave out to keep them; an empty list means all."}},"required":["issue_id","by"]}},{"name":"get_check","description":"One check in full by its reference, e.g. 'AUTH-01': preconditions, steps, expected result, status on each platform, and every issue against it.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"app":{"type":"string","description":"App name."},"ref":{"type":"string","description":"Check reference, e.g. 'AUTH-01'."}},"required":["app","ref"]}},{"name":"import_plan","description":"Create a whole app from a markdown test plan, in one call. This is how to add a real runbook — a plan runs to hundreds of checks and add_check one at a time is not the way. Sections come from the '##' headings, checks from the table rows beneath them, and the platform columns from the check table's header. Pass the file's contents as text.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"type":"string","description":"App name to create, e.g. 'Errbud'."},"by":{"type":"string","description":"Who is importing it."},"markdown":{"type":"string","description":"The whole markdown document. Each section is a '##' heading with one table under it; the first column of every check row is a reference like AUTH-01; trailing columns are the platforms, and a cell reading N/A marks that platform not applicable."}},"required":["name","by","markdown"]}},{"name":"list_apps","description":"List the apps in the runbook, with their platform codes and how many checks each has. Call this first to get an app name to pass to the other tools.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"list_checks","description":"Checks in an app, with their derived status per platform. Filter to 'failing' to see what is broken, 'retest' for fixes nobody has verified yet, 'untested' for what nobody has looked at.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"app":{"type":"string","description":"App name."},"filter":{"type":"string","enum":["all","failing","passed","retest","untested"],"description":"Defaults to 'failing'."},"section":{"type":"string","description":"Only checks whose section title or ref matches this."},"limit":{"type":"number","description":"Default 50, max 200."}},"required":["app"]}},{"name":"list_issues","description":"Issues testers raised, newest first — the text they wrote, who raised it, which platforms it affects, and which check it is against. Defaults to open issues only. This is the main thing to read before fixing anything.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"app":{"type":"string","description":"App name."},"status":{"type":"string","enum":["open","fixed","all"],"description":"Defaults to 'open'."},"platform":{"type":"string","description":"Only issues affecting this platform code, e.g. 'WL'."},"limit":{"type":"number","description":"Default 50, max 200."}},"required":["app"]}},{"name":"progress","description":"Coverage summary for an app: how many platform-checks are passing, failing, untested or not applicable, and how many issues are open. Use it to answer 'where is testing up to'.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"app":{"type":"string","description":"App name, e.g. 'Smart Invites'."}},"required":["app"]}},{"name":"resolve_issue","description":"Mark an issue fixed, or reopen it. Fixing restores whatever mark was underneath — a check that was passing before the issue goes back to passing, and one that was never tested goes back to untested.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"issue_id":{"type":"string","description":"Issue id from list_issues or get_check."},"by":{"type":"string","description":"Who is making the change."},"fixed":{"type":"boolean","description":"true to fix (default), false to reopen."}},"required":["issue_id","by"]}},{"name":"set_result","description":"Record a tester's result for one check on one platform: 'P' passed, 'F' failed, '' clears it back to untested. An open issue still overrides this while it is open, and recording a result is what clears an 'R' (retest) after a fix.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"app":{"type":"string","description":"App name."},"ref":{"type":"string","description":"Check reference."},"platform":{"type":"string","description":"Platform code, e.g. 'WL'."},"status":{"type":"string","enum":["P","F",""],"description":"P, F, or empty to clear."},"by":{"type":"string","description":"Who recorded it."}},"required":["app","ref","platform","status","by"]}},{"name":"update_check","description":"Correct a check — its wording, or which platforms it applies to. Use when a step is wrong or misleading, or when a check does not belong on a platform at all. Pass not_applicable_on to mark it N/A there; it then stops counting towards coverage on those platforms. The reference is not editable; it is a position in the section's series.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"app":{"type":"string","description":"App name."},"ref":{"type":"string","description":"Check reference."},"title":{"type":"string","description":"New title."},"pre":{"type":"string","description":"New preconditions."},"steps":{"type":"string","description":"New steps."},"exp":{"type":"string","description":"New expected result."},"not_applicable_on":{"type":"array","items":{"type":"string"},"description":"Platform codes this check does not apply to, e.g. ['IOS','AND'] for a web-only check. Replaces the current list rather than adding to it — pass [] to make the check apply everywhere again. Omit to leave it alone."}},"required":["app","ref"]}}],"scan":{"score":97,"grade":"A","scanned_at":"2026-11-03T01:06:42.574Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-11-03T01:06:42.607Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 392ms (auth required)"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (endpoint requires auth); not counted"]},"auth":{"score":15,"max":15,"notes":["OAuth resource metadata advertised on 401"]},"maintenance":{"score":15,"max":15,"notes":["last push 9 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"probes":[{"url":"https://qarunbook.com/api/mcp","reachable":true,"authRequired":true,"latencyMs":392,"authScheme":"oauth"}],"packages":[],"repo":{"found":true,"owner":"Ifeanyiejindu","repo":"qarunbook","archived":false,"pushedAt":"2026-10-25T09:46:45Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/104649715?v=4","ownerCreatedAt":"2022-04-29T18:32:30Z","license":"MIT"},"icon":{"url":"https://qarunbook.com/icon.svg?icon.0f05633vf4_g1.svg","source":"registry"},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-10-25T09:46:45.000Z","score":23}}}},"grade_history":[],"reviews":[]}