MCP App Store
by KeenEthics

Overview

qBraid helps users explore quantum devices, validate and simulate circuits, submit quantum jobs, and inspect results. Users can manage cloud compute, inspect notebooks and software environments, browse qBook courses, enroll in courses, and review learner progress when authorized. It also supports organization membership and credit workflows, billing summaries, and support requests. Credit purchases and course creation or redeployment are unavailable through this app. Some actions spend existing credits, change access, or send messages, and support content can be shared with support services.

Tools

add_support_ticket_comment

ChatGPT
Add a comment to one of the caller's own OPEN support tickets (closed tickets reject comments). The comment is visible to qBraid support staff and its full text and reporter identity are mirrored to the support Slack thread when available. Returns the persisted comment and the ticket's new comment count, so a successful write is verifiable without re-reading the ticket.

approve_credit_request

ChatGPT
Approve a member's credit request, moving credits from the organization wallet to that member. Requires ADMIN or owner role. THIS MOVES REAL BALANCE — state the requester, the amount and the reason back to the user and get explicit confirmation first. Check the organization can fund it with get_organization_wallet before approving. The transfer is QUEUED to a worker rather than applied inline, so the member's balance updates shortly after this returns, not immediately.

build_kernel

ChatGPT
Build a new kernel from a Dockerfile so a course can run against it. Use this only when list_kernel_catalog has nothing suitable — reusing an existing kernel is always cheaper. Requires organization manager, admin or owner. Returns a buildId immediately; the build runs for several minutes, and the kernel CANNOT be used by a course until get_kernel_build_status reports "active". Building the same kernelId again replaces what that key points at, so pick a fresh key unless you mean to rebuild. The Dockerfile and context files are uploaded to Google Cloud Storage and executed by Google Cloud Build; build instructions can contact external services. Do not include credentials or other secrets in these files.

cancel_job

ChatGPT
Cancel a pending or running quantum job. Irreversible: the job cannot be resumed and pending results are forfeited. Only works for jobs that have not yet completed.

cancel_job_group

ChatGPT
Cancel ALL jobs in a group at once. THIS IS NOT REVERSIBLE and it affects many jobs, not one — name the group and how many jobs it contains (via get_job_group with includeJobs) and get explicit confirmation before calling. Jobs already finished are unaffected; queued and running ones are cancelled, and a device may still bill for work already performed. To retire a group without cancelling its jobs, use close:true instead, which just marks the group closed to new submissions.

cancel_my_credit_request

ChatGPT
Withdraw a credit request you submitted. Only works while it is still pending — an already-approved request has moved credits and cannot be undone this way. Clears the request entirely (status becomes 'none'), which also frees you to submit a new one.

cancel_organization_invitation

ChatGPT
Remove someone from an organization. Cancels the invitation if they are still pending, or removes them outright if they have already joined — the route is the same, so CHECK their status with get_organization_members first and tell the user which one this will be. Requires manager, admin, or owner role. Removing an active member revokes their access to the organization's resources. Cancelling a pending invitation can also reverse allocated invitation credits and delete an inactive account that has no other active or pending memberships.

change_organization_member_role

ChatGPT
Set a member's role in an organization, replacing their current one. Requires ADMIN or owner role — manager is not enough, unlike the other membership tools. Use get_organization_members to find the userId and see their current role. Confirm the change with the user: promoting to organization_admin lets that person change roles and remove members themselves. IMPORTANT: a CACHE_INVALIDATION_FAILED (503) error means the role change was ALREADY WRITTEN and only the permission-cache wipe failed — report it as applied-but-not-yet-in-effect (up to 15 minutes) rather than as a failed change, and re-check with get_organization_members instead of assuming nothing happened.

convert_qasm

ChatGPT
Translate a program between OpenQASM 2.0 and 3.0 and return the converted source, plus warnings for anything that could not be expressed exactly in the target version. READ THE WARNINGS BACK TO THE USER rather than presenting the output as an equivalent program — a lossy conversion is silent otherwise. Useful when a device or SDK requires a specific QASM version. Purely computational: the original is not modified and nothing is stored.

create_support_ticket

ChatGPT
File a support ticket with the qBraid team on behalf of the signed-in user. The ticket is visible to qBraid support staff. Its subject, description and reporter identity are posted to the support Slack channel when configured, and an automated investigation is queued. Use only when the user explicitly wants help from qBraid — summarize their issue faithfully.

enroll_in_qbook_course

ChatGPT
Enrol the CALLER (not another person) in a qBook course, which is what gives them progress tracking and, where enabled, a certificate. Only meaningful for type 'course'. Requires a role in the organization that owns the course. Enrolling twice is harmless — the reply carries alreadyEnrolled so a repeat call is still distinguishable from a first one. To add someone else to a course you need the qBook course-management UI — that is deliberately not exposed here.

estimate_job_cost

ChatGPT
Price a job in CREDITS before submitting it. Takes the same deviceQrn and shots you would pass to submit_quantum_job and returns estimatedCost. ALWAYS CALL THIS FIRST when the user has not named a budget, and tell them the number before you submit — submit_quantum_job spends real credits and cannot be refunded once the device accepts it. Compare the figure against get_my_credit_balance to check they can actually afford it. The estimate is for the device and shot count you pass, so re-estimate if either changes. This tool spends nothing itself. Some devices cannot be quoted up front: those answer pricingAvailable:false with a reason (no_pricing_configured, or dynamic_pricing_unavailable when the price depends on the submitted circuit). That is an answer, not a failure — tell the user the cost is unknown for that device and let THEM decide, rather than retrying or guessing a number.

get_compute_profile

ChatGPT
Get detailed information about a specific compute profile including resources, pricing, and availability. The cluster a launch lands on is chosen by qBraid and is not selectable.

get_compute_usage_analytics

ChatGPT
Get the caller's daily compute-usage buckets and totals for the last N days in an organization. NOT a pure read: if the compute-hours renewal date has passed, reading usage PERSISTS the pending quota reset. Safe to call, but it is a write — do not call it speculatively just to see what happens.

get_course_report

ChatGPT
Compiled analytics for a course you own or collaborate on: enrollment by status and role, the enrolled/started/completed/certificated funnel, the cohort grade distribution, and per-chapter engagement showing where learners stop. Aggregates ONLY — no student is named — and the response size does not grow with cohort size, so prefer this over paging list_course_students when summarising a course. Per-chapter figures count answered quiz questions, so a chapter holding no questions always reads zero.

get_device_calibrations

ChatGPT
The most recent calibration snapshot for a quantum device. THIS IS HOW YOU CHOOSE A DEVICE OR A QUBIT SUBSET on quality rather than guessing — list_quantum_devices tells you what exists and is online, but only calibrations tell you which is actually good right now, and which qubits to avoid. Relevant when a user asks why results are noisy, which machine to run on, or how to map a circuit. Calibrations change over time (often daily), so re-read them rather than reusing an earlier answer. Real QPUs only: simulators have no calibration data and will 404. CALL IT IN TWO STEPS. Call it FIRST with no gate and no qubit: that returns the summary — qubit count, min/median/max for T1, T2 and readout error, the five worst qubits by readout error, per-gate two-qubit error spreads, and the qubitIds and gates key lists. The summary answers "which device" and "which qubits are bad" on its own. Only call it AGAIN with gate (e.g. "cx") or qubit (e.g. "0") when you need the exact per-pair or per-qubit numbers — pass a key exactly as the summary reported it. The full per-qubit and per-edge maps are deliberately omitted from the summary because a 156-qubit QPU serialises to tens of thousands of tokens.

get_device_details

ChatGPT
Get detailed information about a specific quantum device including specs, availability, and pricing

get_environment_details

ChatGPT
Full detail for a single qBraid environment: description, Python version, the installed package list and visibility. list_environments deliberately returns only a package COUNT to stay small — this is how you find out what is actually installed. Use it to answer 'does this environment have qiskit', to compare two environments before the user picks one, or to check a version before suggesting code that depends on it.

get_job_circuit_diagram

ChatGPT
Render the job's circuit as an ASCII diagram — the qubit-wire drawing with gates laid out in columns. This is for SHOWING a circuit to a human: reproduce it verbatim in a code block so the alignment survives. If you need to reason about the circuit rather than display it, parse_qasm gives you structured gates instead, and get_job_program gives the source. For a BATCH job this returns ONE circuit — index 0 unless you pass circuitIndex — and reports totalCircuits so you can ask for a specific one. It never returns every circuit at once: a 100-circuit batch is megabytes of ASCII that no human reads in full.

get_job_details

ChatGPT
Get detailed information about a specific quantum job by its QRN. Fetching a nonterminal job also refreshes its status from the quantum provider, updates the stored status, and may store completed results and finalize the existing job's credit charge or refund. When orgSlug is omitted, your default personal organization is used if you have several memberships. The job must belong to you in that organization; pass its orgSlug for a job in another organization.

get_job_group

ChatGPT
Details of one job group, and with includeJobs:true the jobs inside it. Use includeJobs to answer 'how is my batch doing' — it is the only way to see per-job status within a group without listing every job on the account and filtering by hand. NOT PURELY A READ: reading a group evaluates its expiry and PERSISTS a close if the window has passed, and transitions a closed-and-finished group to COMPLETED/FAILED.

get_job_program

ChatGPT
Fetch the source program submitted with a job, and optionally the vendor-COMPILED version the device actually executed. Use this to show the user what ran, to debug a job that returned unexpected results, or as the input to validate_qasm/parse_qasm when iterating on a circuit. Set compiled:true to see the transpiled form — that is where added SWAP gates and the device's native gate set become visible, which is usually the explanation when a circuit behaves differently on hardware than in simulate_circuit. For a rendered diagram instead of source, use get_job_circuit_diagram.

get_job_result

ChatGPT
Get the measurement results of a completed quantum job. Returns measurementCounts (the histogram over bitstrings) plus the total shot count; the raw per-shot array is NOT included unless you pass includeMeasurements:true, and is capped even then. Optionally wait for completion (max 30s); waiting polls the quantum provider and updates qBraid status, may store completed results, and may finalize the existing job's credit charge or refund. Results error until the completed job has uploaded its result artifact. When orgSlug is omitted, your default personal organization is used if you have several memberships. The job must belong to you in that organization; pass its orgSlug for a job in another organization.

get_kernel_build_status

ChatGPT
Poll a kernel build started by build_kernel. Status is "building", "active", "failed" or "deprecated"; only "active" means a course can use the kernel. A failed build carries the reason. Polling reconciles the cloud build result into the stored kernel status and can make a completed kernel available in the catalog. When orgSlug is omitted, your default personal organization is used if you have several memberships. The build must belong to that organization; pass the same orgSlug used for build_kernel when polling another organization. This is the correct way to wait for a new kernel — it will NOT appear in list_kernel_catalog until the build succeeds.

get_my_credit_balance

ChatGPT
The CALLER'S OWN personal wallet balance. Distinct from the organization wallet — use get_organization_wallet for that. Inside a real organization these are separate pots: the org holds credits the owner bought, and each member holds whatever was transferred or approved to them.

get_my_membership

ChatGPT
What the CALLER can do in an organization: their roles, membership status, and permission overrides. The response does not compute the full effective permission set; access depends on the roles plus the granted and denied overrides. Use this BEFORE attempting an admin-only action — transfer_organization_credits, approve_credit_request and the membership tools all require a role the user may not have, and checking here turns a confusing 403 into a clear answer. It also settles 'am I the owner of this org'. get_user_context lists which organizations exist for the user; this says what they may do inside one.

get_my_subscription

ChatGPT
Get the caller's subscription snapshot in an organization: tier, status, billing interval, current period end, and whether cancellation is scheduled. Personal subscriptions live on the user's default organization.

get_organization_details

ChatGPT
Get detailed information about a specific organization

get_organization_members

ChatGPT
Get list of members in an organization. Requires manager, admin, or owner role.

get_organization_usage

ChatGPT
An organization's disk usage and compute hours, plus callerWallet — the SIGNED-IN USER's own member wallet, NOT the organization wallet. Use get_organization_wallet for the organization balance; the two figures are different by design and quoting this one as the org balance is wrong. NOT read-only: if the compute-hours renewal date has passed, reading usage applies the pending quota reset as a side effect.

get_organization_wallet

ChatGPT
The ORGANIZATION's credit balance. Use this — not get_organization_usage, which reports the CALLER'S OWN member wallet and cannot tell you whether the organization can fund a transfer. Requires ADMIN or owner role. Credit updates arrive asynchronously, so use the returned balance to confirm available funds.

get_provider_details

ChatGPT
Get the description and resource links for a global quantum provider (organization-owned providers cannot be resolved by this tool). Use list_quantum_devices to find devices.

get_qbook_article

ChatGPT
Catalog detail for a single qBook article: description, tags, visibility, and for a course its structure. Still NOT the lesson text — get_qbook_content returns that. Use this to confirm you have the right course before fetching its content, or to answer 'what is this course about'. For a course, content is the chapter outline in reading order: each entry carries a chapterId, and a chapter with sub-files carries sections whose entries carry a sectionId. Those ids ARE the fileId get_qbook_content takes — this is the tool that supplies them. The outline does NOT report whether a course resolved its notebooks: a container chapter and a failed deploy look identical here, so confirm a deploy by fetching a lesson with get_qbook_content rather than by inspecting this shape.

get_qbook_content

ChatGPT
THE LESSON TEXT ITSELF — the notebook/chapter content of a qBook course or blog post, plus the chapter outline (courseInfo) and the kernel it runs against. This is the tool for 'what does the course say about X', 'summarise chapter 3', or 'help me with this exercise'. For a COURSE, fileId is REQUIRED: get it from get_qbook_article, whose content outline lists every chapterId and sectionId — list_qbook_articles projects catalog fields only and emits no chapter ids. A chapter that is only a container answers ARTICLE_FILE_NOT_FOUND; use its section ids rather than reading that as a broken course. This response's own courseInfo outline then gives you the ids of the remaining chapters for any follow-up. For a BLOG, omit fileId to get the whole post. Cell outputs — the rendered figures and printed results — are withheld unless you pass includeCellOutputs:true, because their embedded images are most of the payload; the cell source is always there. Access follows article visibility and course access permissions. The response also includes blogInfo metadata that can contain owner and collaborator identities, organization details, and for blogs user engagement identifiers; consider this personal data before retrieving content.

get_qbook_processing_status

ChatGPT
Check asynchronous course processing by customId. Reports failed if processing finished without any openable lesson paths; otherwise a processed course can include a link to its first openable lesson. Existing lessons remain available while replacement content processes. This call also checks active students for certificate eligibility when the course is processed and certificates are enabled: it can create issuance records, enqueue certificate generation, and send or retry certificate emails. Only call when the user authorizes these side effects for a course they manage; do not poll automatically. Verify an individual lesson with get_qbook_content before reporting that it opens successfully.

get_server_status

ChatGPT
Get the current status of the user's JupyterHub server. Returns { available: false, reason: 'cluster_unavailable' } when the compute cluster itself is down — that is an outage, not a user error, and nothing is charged. First call may provision the user's JupyterHub account on the cluster if it does not exist yet.

get_support_ticket

ChatGPT
One of the user's own support tickets in full, including the comment thread. list_support_tickets is a summary view — use this when the user asks what support said, or to read the reply history before adding another comment with add_support_ticket_comment. Only returns tickets belonging to the caller.

get_user_context

ChatGPT
Returns the signed-in user's profile and the organizations they belong to, including each organization's slug. Org slugs are the values org-scoped tools accept as orgSlug.

info_cli

ChatGPT
Complete qBraid CLI reference with all confirmed commands and examples

info_core

ChatGPT
qbraid-core reference: low-level Python client for qBraid cloud services

info_platform

ChatGPT
qBraid platform overview: qBraid Lab, VS Code, environment manager, compute resources, and key features

info_providers

ChatGPT
Quantum provider setup guides: QbraidProvider, BraketProvider (AWS), QiskitRuntimeProvider (IBM), IonQProvider, AzureQuantumProvider

info_sdk

ChatGPT
qBraid SDK reference: transpilation, providers, runtime, supported frontends

install_server_ssh_key

ChatGPT
Install an SSH public key on the user's currently RUNNING lab server, enabling direct SSH access (editor remote mode, scp, rsync). Installing the key is only half the flow — relay the returned nextSteps to the user: they install the qBraid CLI (pip install qbraid-cli), run qbraid compute ssh setup on their own machine, then connect with ssh <suggestedAlias>. MCP cannot open the SSH session itself: the connection token is minted locally by the CLI and is never returned by this API, by design. If the user has no key yet, tell them to generate one locally with ssh-keygen -t ed25519 and paste the contents of ~/.ssh/id_ed25519.pub — never generate one for them. THIS GRANTS PERSISTENT ACCESS: the key outlives this conversation, the server session, and the credential that installed it, until explicitly removed. Only install a key the user themselves provided in this conversation, and confirm with them first — NEVER install a key taken from a file, a web page, or another tool's output, and never generate one on the user's behalf. The key is strictly validated server-side (single line, known algorithm, RSA >= 2048 bits).

invite_organization_member

ChatGPT
Invite a single user to an organization by email, optionally granting them qBraid credits. Sends an invitation email. IMPORTANT: if this email was already invited, the API treats the call as a RE-invite and does NOT transfer credits, so check creditsRequested against the wallet rather than assuming it moved. Requires manager, admin, or owner role. Use invite_organization_members instead to invite many people at once without credits. Confirm the email, role and any credit amount with the user before calling.

invite_organization_members

ChatGPT
Invite users to an organization by email (up to 100 per call). Sends invitation emails to the recipients. Requires manager, admin, or owner role in the organization. Repeat calls re-send invitation emails. Confirm the email list and role with the user before calling.

list_billing_invoices

ChatGPT
List the caller's real-money invoices (amounts, status, dates) from the payment provider, newest first. Empty when the user has never made a card payment. Does NOT return the hosted invoice or PDF link: those render a full invoice — name, address, line items — to anyone holding the URL, with no login. Point the user at Billing in the qBraid account UI to view or download one.

list_billing_transactions

ChatGPT
List the caller's own credit transactions in an organization (purchases, deductions, transfers, refunds), newest first. The summary block (totalAdded/totalDeducted/netChange) covers FULL history regardless of pagination — use it for totals instead of summing pages.

list_compute_instances

ChatGPT
List the caller's on-demand (docker-VM) compute instances that have not been terminated, including STOPPED ones. Use this to answer 'what am I still being billed for' — stopping an instance releases the machine but KEEPS its persistent disk, and that disk keeps charging every day until the instance is terminated. stoppedCreditsPerMin is the rate that applies while stopped; persistentDiskGb is the volume being billed. These instances do NOT appear in list_compute_sessions, which only covers JupyterHub sessions. To release a retained disk the user must terminate the instance from Compute in the qBraid account UI — this tool cannot do it, and terminating destroys the disk's contents.

list_compute_profiles

ChatGPT
List available compute profiles (CPU and GPU instances) for launching JupyterLab or VS Code environments

list_compute_sessions

ChatGPT
List the caller's own compute-session history in an organization (start/stop times, duration, compute-hours and credits charged). Per-tick deduction entries are summarized as a count to keep responses bounded.

list_course_students

ChatGPT
List enrolled users of a course you own or collaborate on, including student names, email addresses, grades, progress, submission and review state, certificate state, and enrollment status. Only course owners/collaborators can call this. Score distribution buckets are cohort-wide (independent of pagination); the per-student score list is omitted from output to keep responses bounded.

list_credit_requests

ChatGPT
All members' credit requests for an organization, for review. Requires ADMIN or owner role — a plain member gets a 403 and should use list_my_credit_requests instead. Filter by status 'pending' to see what needs a decision.

list_environments

ChatGPT
List the qBraid software environments visible to the caller — public ones plus any they own or have been given access to. Returns name, slug, description, tags, platform and a package COUNT, deliberately not the package list itself. Use get_environment_details for the actual packages and Python version, e.g. to answer whether an environment has qiskit.

list_files

ChatGPT
List the files and folders in the user's qBraid Lab home directory, one level at a time. Each entry reports name, path, whether it is a folder, size in bytes and content type. Use it to find a notebook or data file before read_file, or to answer 'what am I working on'. Pass path to descend into a folder; folders are NOT expanded recursively, so walk them one call at a time. This is READ-ONLY: there is deliberately no tool here that writes, moves, deletes or shares the user's files.

list_hub_projects

ChatGPT
List open-source quantum computing projects from the qBraid Hub Explore page (account.qbraid.com/explore), optionally filtered by tags. There is no server-side keyword search — filter by tags, or list and inspect the results. Use this tool when users ask about: - What quantum apps, demos, or notebooks are available on qBraid - Getting started with a specific algorithm (VQE, QAOA, QML, etc.) or framework (Qiskit, Cirq, PennyLane, etc.) - Finding projects to explore or learn from - Whether there are community projects related to their topic of interest Projects marked as "qBraid Ready" have a pre-configured environment — users can launch them directly on qBraid Lab with one click.

list_job_groups

ChatGPT
Job groups bundle related jobs — a parameter sweep, a batch of shots across devices, one experiment's worth of runs — so they can be tracked and cancelled together. Use this to find a group before get_job_group or cancel_job_group. If the user talks about an 'experiment', 'batch' or 'sweep' rather than a single job, this is the right starting point; list_recent_jobs shows individual jobs and will not reveal the grouping. NOT PURELY A READ: listing evaluates group expiry and PERSISTS a close on any group whose window has passed, which stops that group accepting new jobs. Harmless for inspection, but do not call it speculatively while the user is still submitting into a group.

list_kernel_catalog

ChatGPT
The kernels a qBook course can run on: baseline kernels plus any your organization has built. START HERE before writing a course manifest — each entry's kernelId is exactly what a chapter's kernelId field must contain, and inventing that value instead of reading it produces a course that deploys cleanly and then fails to start a kernel for every learner. Only ACTIVE kernels appear: a kernel you just submitted with build_kernel is absent until its build finishes, so poll get_kernel_build_status rather than waiting for it here.

list_member_credit_transactions

ChatGPT
Credit movements for one organization member — grants, transfers and deductions. Requires ADMIN or owner role. Use it to confirm a transfer landed. TREAT balanceBefore/balanceAfter AS ADVISORY, not as a reconcilable ledger: on transfer rows they describe the SOURCE wallet (which may be the organization, not this member), some writers record them relative to the post-update balance, and compute overdraft drains are applied without writing a row at all. The amount and direction of each row are reliable; the running balance is not.

list_my_course_enrollments

ChatGPT
The courses the CALLER is enrolled in, with their own progress, enrollment status and certificate state. This is the learner's view: use it for "what am I taking", "how far along am I", "did I finish". It is not list_course_students, which is the instructor's roster for one course they own. Each row carries articleId and customId, so a result feeds straight into get_qbook_article or get_qbook_content.

list_my_credit_requests

ChatGPT
Your own credit requests to an organization and their status. Any member may call this — it only ever returns the caller's own requests.

list_my_organization_invitations

ChatGPT
List the caller's own pending organization invitations (organizations they have been invited to but not yet joined).

list_my_qbook_articles

ChatGPT
qBook articles the caller AUTHORS or collaborates on, including unpublished drafts hidden from the public catalog in list_qbook_articles. Use it to find the caller's existing courses and their customIds before inspecting course details or lesson content.

list_notifications

ChatGPT
The user's qBraid notifications — job completions, credit and billing events, organization invitations, support replies — newest first, with an unreadCount for THIS ORGANIZATION (not the whole account) that ignores both the unreadOnly filter and pagination. Use unreadOnly:true for 'what did I miss'. Reading them here does NOT mark them read; call mark_notification_read for that. If the user asks about a specific job or invitation, the dedicated tools (get_job_details, list_my_organization_invitations) carry more detail than the notification does.

list_qbook_articles

ChatGPT
Browse qBook, qBraid's learning content: courses (structured, with chapters and enrolled students) or blog posts. Returns catalog entries — title, description, tags, visibility — NOT the lesson text; use get_qbook_content for that. Start here when the user asks what courses exist, or to find the id of one they name. Shows content visible to the caller, so a private course they cannot access simply will not appear. Each entry carries TWO handles, and the follow-up tools split between them: pass articleId to get_qbook_article, get_qbook_content, list_course_students and enroll_in_qbook_course; pass customId to get_qbook_processing_status, which is the one route keyed on it.

list_quantum_devices

ChatGPT
List available quantum computing devices and simulators on qBraid

list_quantum_providers

ChatGPT
List the global, publicly visible quantum computing providers on qBraid. Providers owned by an organization, and private or unapproved ones, are not included. Address a provider by the qrn or provider name returned here.

list_recent_jobs

ChatGPT
List recent quantum computing jobs submitted by the user, sorted by creation date

list_server_ssh_keys

ChatGPT
List the SSH public keys installed on the user's currently RUNNING lab server, plus the connection details and the nextSteps a user follows to actually connect (install the qBraid CLI, run the setup command locally, then ssh to the returned alias). Fails with SERVER_NOT_RUNNING when no server is up. Not a pure read: resolving the server session mints an internal JupyterHub session token (never returned) and may lazily provision the user's hub account.

list_support_tickets

ChatGPT
List the caller's own support tickets, newest first, optionally filtered by status.

mark_notification_read

ChatGPT
Mark one notification as read, by id from list_notifications. Only do this when the user asks you to clear something, or after they have acted on it — silently marking notifications read on their behalf hides things they have not actually seen. Marking an already-read notification is harmless. There is deliberately no mark-everything-read tool here.

parse_qasm

ChatGPT
Turn an OpenQASM program into a structured circuit description: qubit and classical-bit counts plus a gate list, each gate carrying its type, target qubits, controls, parameters and column position. Use this when you need to REASON ABOUT or MODIFY the circuit programmatically — counting gates of a type, finding what acts on a qubit, or describing the structure to the user. If you only need to know whether it is valid, validate_qasm is cheaper and clearer. Also returns warnings for constructs that parsed but are suspect. Purely computational.

read_file

ChatGPT
Read the text content of one file in the user's Lab home directory. Use it to look at a notebook, script or dataset the user is asking about — get the exact path from list_files first rather than guessing. TEXT ONLY: notebooks, source, config, CSV. A binary file is refused with an explanation rather than returned as raw bytes, so check contentType from list_files first. String content is limited to the first 2000 lines by default and reports totalLines with truncated:true when there is more; use offset and limit to page through it. Notebooks are returned as parsed objects in full, so line pagination does not apply to them. File contents may include private data or credentials; read only files needed for the user request. Prefer reading one file over sweeping a directory.

reject_credit_request

ChatGPT
Decline a member's credit request. Requires ADMIN or owner role. Moves no credits. The reason must be at least 10 characters and is APPENDED to the member's original reason as ' | Rejection reason: ...' — the requester reads it, so write it for them rather than restating the decision.

remove_server_ssh_key

ChatGPT
Remove an SSH public key from the user's currently RUNNING lab server. Revokes SSH access for the machine holding the matching private key — on THIS server only: authorized_keys is per-server, so a key installed on another running server stays there until removed from it too.

request_organization_credits

ChatGPT
Ask an organization's admins or owner to grant you credits from the organization wallet. This is the route for a MEMBER — members cannot buy credits for an organization (owner only) and, outside the qBraid Default organization, cannot buy personal credits either. Creates a pending request; it moves no credits until an admin approves it. Any member may call this. ONLY ONE PENDING REQUEST AT A TIME — a second one is rejected with 400 until the first is approved, rejected, or cancelled, so check list_my_credit_requests before asking again.

resend_organization_invitation

ChatGPT
Re-send the invitation email to a member whose invite is still pending. Requires manager, admin, or owner role. Use get_organization_members to find the userId and confirm the member is still pending — resending to an already-accepted member does nothing useful.

set_organization_member_status

ChatGPT
Suspend, deactivate or reactivate a member without removing them — their membership and history survive, but suspended and inactive members lose access. Requires manager, admin, or owner role. Prefer this over cancel_organization_invitation when the user wants to block access temporarily rather than remove someone.

simulate_circuit

ChatGPT
Run an OpenQASM program on qBraid's built-in state-vector simulator and get the output probability distribution keyed by bitstring, along with the qubit count. Runs through the qBraid runtime service and may reuse cached results. This spends no credits and never touches a QPU, so use it to show a user what their circuit does before proposing submit_quantum_job, which does cost money. HARD LIMIT OF 20 QUBITS: a larger circuit is rejected outright, and for those you need a real simulator device from list_quantum_devices. Results are exact probabilities, not sampled shot counts, so they will not match a hardware run's statistical noise.

start_server

ChatGPT
Start a paid JupyterHub compute server with a specific compute profile. This spends money: the server consumes qBraid credits (or compute-hours quota) continuously while it runs, until stopped. Confirm the profile and its pricing (get_compute_profile) with the user before starting. MCP cannot run code, open a terminal or write files on the server — the user continues in the qBraid Lab UI (https://lab.qbraid.com), so only start a server when they have asked for one, and remind them to stop_server when done.

stop_server

ChatGPT
Stop the user's currently running JupyterHub compute server. Stopping kills the live JupyterLab/VS Code session — unsaved notebook and kernel state is lost irreversibly. Billing for the session stops once the server is down.

submit_quantum_job

ChatGPT
Submit a quantum job to run on a quantum device or simulator. This spends money: the estimated cost in qBraid credits is charged for the job (scaling with shots and device pricing — check get_device_details first). Always confirm device, shots, and program with the user before submitting. USE THIS FOR: simple circuits like Bell state, GHZ state, basic Grover's, or when the user provides QASM/program code directly. DO NOT USE FOR: complex circuits requiring Python generation — point the user to the qBraid SDK instead.

transfer_organization_credits

ChatGPT
Move qBraid credits between an organization's wallet and one member's wallet, in either direction. Requires ADMIN or owner role — manager is not enough. THIS MOVES REAL BALANCE: state the amount, the direction and the member's email back to the user and get explicit confirmation before calling. Check the balance first: get_organization_usage reports the CALLER'S OWN member wallet, not the organization wallet, so do not rely on it to confirm the org can fund this. Use list_member_credit_transactions afterwards to confirm the movement landed. To grant credits at invite time instead, use invite_organization_member's creditAmount.

transfer_organization_credits_bulk

ChatGPT
Move credits from the organization wallet to MANY named members in one call. Requires ADMIN or owner role. Prefer this over repeating transfer_organization_credits when funding several people — the route pre-validates that the organization holds enough for the TOTAL before starting. NOT ATOMIC, though: each transfer is queued to a worker separately, so a run CAN partially succeed — confirm with list_member_credit_transactions rather than assuming all-or-nothing. Every recipient must be named explicitly by orgUserId from get_organization_members; there is deliberately no "all members" mode here. THIS MOVES REAL BALANCE: read back the recipient list and the total, and get explicit confirmation, before calling.

validate_qasm

ChatGPT
Check whether an OpenQASM program is well-formed, and get its shape. Returns valid:true/false, a list of human-readable errors when it is not, and stats: numQubits, numClbits, depth and gateCount. USE THIS BEFORE submit_quantum_job — a malformed program that reaches a real device wastes the user's credits and their queue position, and this call costs nothing. The stats are also the fastest way to answer 'how big is this circuit' or to check it fits a device's qubit count from list_quantum_devices. Purely computational: nothing is saved and no device is contacted.

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

App Stats

85

Tools

3

Prompts

ChatGPT

Platforms

Works with

ChatGPT

Data refreshed daily