qnexus-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@qnexus-mcpWhat projects do I have on Nexus?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
qnexus-mcp
A community Model Context Protocol (MCP) server for Quantinuum Nexus,
wrapping the official qnexus Python SDK so any MCP-speaking agent
(Claude Code, Cursor, VS Code, Codex, …) can inspect Nexus and, opt-in, run circuits on the free emulator.
Not affiliated with, endorsed by, or an official product of Quantinuum. "Quantinuum" and "Nexus" are trademarks of their respective owners, used here nominatively to describe compatibility.
Status
Early development. Read-only by default. Design and rationale live in
docs/DESIGN.md; the research behind it is in docs/research/.
Related MCP server: Qiskit MCP Server
Requirements
Python 3.10+ and
uv(theuvxcommand). On Windows, note the full path touvx.exe(where uvxin a terminal) — GUI clients don't inherit your shell PATH.A Quantinuum Nexus account.
1. Authenticate (once)
qnexus-mcp never handles your Nexus token. Authenticate out-of-band with the qnexus CLI
(it opens your browser):
uvx --from qnexus qnx loginInside Nexus JupyterHub, authentication is automatic; do not run qnx login there.
2. Add the server to your MCP client
The launch command is the same everywhere — only the config file differs per client:
uvx qnexus-mcp==0.2.0 # read-only (default)
uvx qnexus-mcp==0.2.0 --toolsets read,execute # + run circuits on the free H2-1LE emulatorPin a version (==0.2.0): uvx otherwise resolves the latest PyPI release on every launch —
unpinned installs are neither reproducible nor auditable. Avoid 0.1.0 on Windows: its first
tool call hangs (fixed in 0.2.0).
What to expect on startup: the first ever launch downloads the quantum SDK stack (1–3 min); every launch takes ~30 s before the server responds — the SDK is imported up front, before the MCP handshake. "Waiting for server to respond to
initialize" during that window is normal.
Claude Desktop
Settings → Developer → Local MCP servers → Edit Config (always use this button — the
Microsoft Store build keeps the file under %LOCALAPPDATA%\Packages\Claude_*\..., not
%APPDATA%\Claude), then add:
{
"mcpServers": {
"nexus": {
"command": "C:\\Users\\<you>\\.local\\bin\\uvx.exe", // or plain "uvx" on macOS/Linux
"args": ["qnexus-mcp==0.2.0", "--toolsets", "read,execute"]
}
}
}Then quit Claude Desktop fully and reopen — the config is only read at cold start, and
closing the window leaves the old process running (tray icon → Quit, or
taskkill /F /IM claude.exe).
VS Code
Command Palette → MCP: Open User Configuration (or a workspace .vscode/mcp.json):
{
"servers": {
"nexus": {
"type": "stdio",
"command": "C:\\Users\\<you>\\.local\\bin\\uvx.exe", // or plain "uvx" on macOS/Linux
"args": ["qnexus-mcp==0.2.0", "--toolsets", "read,execute"]
}
}
}Claude Code
claude mcp add nexus -- uvx qnexus-mcp==0.2.0 --toolsets read,executeOther MCP clients (Cursor, Codex, …)
Same command; the config shape is one of the two JSON forms above (mcpServers vs
servers + "type": "stdio") — check your client's docs for which file to put it in.
Something not working? See docs/TROUBLESHOOTING.md — it covers every
failure mode observed in real client setups (wrong config path, slow first start, auth, rate
limits, known Nexus-side errors).
Configuration
Flag | Env | Default | Effect |
|
|
| Capability domains to expose ( |
|
|
| Permit credit-spending (HQC) execution |
|
|
| Permit real-QPU targets |
|
|
| Permit delete/cancel/archive |
|
|
| Hard per-call HQC ceiling; |
|
|
| Top-N cap on distinct measurement outcomes returned per result (truncation is always reported) |
|
|
| Sliding-window submission cap; each circuit in a batch counts as one |
|
| (all) | Comma-separated project allowlist, enforced on every mutating tool |
Safety
Read-only by default. Anything that spends credits or mutates cloud state requires an explicit opt-in flag
and an in-protocol confirmation, and the default execution backend is the free, noiseless H2-1LE
emulator. Submissions are rate-limited, cloud mutations are serialized, destructive project operations
resolve their target by exact name (never substring), and the server never reads, stores, or returns
your Nexus token. Every control is enforced server-side; MCP tool annotations are treated as UX hints
only. See docs/DESIGN.md §6–§7.
Prompt injection (conscious design decision). Everything Nexus returns — job names, project names, error messages, results — is attacker-influencable content (any Nexus user can name a job) and is treated as untrusted data. There is no structural tagging that separates "data" from "instructions" in today's MCP ecosystem; the structural boundary here is instead that injected content cannot escalate: every action with consequences (spending credits, targeting hardware, deleting anything) requires launch flags the agent cannot set plus an in-protocol human confirmation naming the exact target and cost. Injected text can at worst confuse the agent's reasoning — it cannot spend or destroy anything on its own. This residual risk is accepted and documented, not an omission.
Governance. This is an early-stage, single-maintainer project (see CODEOWNERS): releases are
published by one person via GitHub-OIDC Trusted Publishing (no long-lived PyPI tokens). Pin a version
(above) if that trust model matters for your deployment.
Contributing
See CONTRIBUTING.md. Contributions are accepted under the
Developer Certificate of Origin; sign off your commits with -s.
License
Available Tools
10 toolsnexus_auth_statusARead-onlyIdempotent
Report whether a valid Nexus session exists.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the behavioral essence (session validity check) but provides no extra context about edge cases like expired sessions or required privileges, which is acceptable given the tool's simplicity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence conveys the complete purpose without any wasted words. Ideal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of parameters, the presence of an output schema, and comprehensive annotations, the description is adequately complete. It could mention how to interpret the report (e.g., boolean vs status string), but the output schema likely covers this, so the description suffices.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the baseline is 4. The description correctly avoids inventing parameters, and no additional semantic explanation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Report' and a clear resource 'whether a valid Nexus session exists', which precisely defines the tool's function. It distinguishes from siblings like nexus_whoami (identity) and nexus_device_status (device-specific) by focusing on session validity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose clearly implies usage as a pre-check for authentication, but there is no explicit guidance on when to use this tool versus alternatives like nexus_whoami. The context is implied rather than stated with exclusions or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nexus_device_statusARead-onlyIdempotent
Report whether a device is online. Emulators/syntax checkers are always available.
| Name | Required | Description | Default |
|---|---|---|---|
| device | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds a meaningful behavioral trait beyond these annotations: emulators/syntax checkers are always available, which is specific to this status checker and useful for the agent. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, with the primary purpose stated first and the second sentence adding a relevant caveat. There is no wasted or redundant information, and the structure is ideal for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, strong annotations, and the presence of an output schema, the description provides sufficient context: it states the core purpose and a key behavioral nuance. The lack of parameter detail is a minor gap, but overall the description is complete for a straightforward status-check tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has a single required parameter 'device' with no description (0% coverage). The description does not explain what values or format 'device' should take, leaving the agent to infer from the tool name. With schema coverage so low, the description should compensate but does not, making parameter semantics unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: reporting whether a device is online. It uses a specific verb ('Report') and resource ('device'), and distinguishes itself from siblings like nexus_list_devices and nexus_auth_status by focusing on status rather than listing or auth. The added note about emulators/syntax checkers reinforces the specific scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool—checking device online status—and includes a useful caveat that emulators/syntax checkers are always available, which informs expected behavior. However, it does not explicitly name alternatives or state when not to use this tool, so it lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nexus_get_quotaARead-onlyIdempotent
Return remaining compilation/simulation quotas.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds the word 'remaining', implying a usage/quota snapshot, but does not disclose details like whether quotas reset or are separate for compilation vs simulation. This is adequate but minimal beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is front-loaded with the action and resource. No unnecessary words or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters) and the existence of an output schema, the description is mostly complete. It states what is returned (remaining quotas). However, it could clarify whether 'compilation' and 'simulation' are separate quota values or combined, but this is minor and likely visible in the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The schema already indicates no parameters, and the description does not need to add anything. It is clear that no input is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Return' and clearly identifies the resource as 'remaining compilation/simulation quotas'. This distinguishes it from sibling tools like nexus_list_jobs or nexus_job_cost, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives. It lacks context such as 'use before starting a build' or any exclusions, leaving the agent to infer the use case solely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nexus_get_resultsARead-onlyIdempotent
Return measurement counts for a completed job by id.
Counts are capped at the top --max-outcomes outcomes by frequency; total_outcomes /
omitted_outcomes / omitted_shots report any truncation. Multi-circuit (batch) jobs return
one entry per circuit under items, in submission order.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral context beyond the annotations: counts are capped at --max-outcomes, truncation is reported via total_outcomes/omitted_outcomes/omitted_shots, and multi-circuit jobs return one entry per circuit in submission order. This enriches the read-only/idempotent annotation without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the purpose, followed by concise details about capping and multi-circuit behavior. Every sentence earns its place with no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers key behaviors like capping, truncation reporting, and batch ordering. It does not specify behavior for invalid or non-completed jobs, but the presence of an output schema likely fills return-value gaps, making this reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter is job_id, which is a string per the schema. The description merely says 'by id', adding no meaningful semantic beyond the parameter name and schema. With 0% schema description coverage, the description should have compensated but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns measurement counts for a completed job by id, using a specific verb and resource. It distinguishes from siblings like nexus_job_status (status) and nexus_job_cost (cost) by focusing on measurement counts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for completed jobs to retrieve measurement counts, providing clear context. It does not explicitly name alternatives or exclusions, but the purpose is distinct enough among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nexus_job_costARead-onlyIdempotent
Return the HQC cost of an existing job by id.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds a small constraint that the job must already exist ('existing job'), but does not describe error handling or other behaviors. It does not contradict the annotations, but also offers minimal extra behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, concise sentence delivers all necessary information: the action, resource, and required input. There is no redundancy or filler, making it optimally concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the existence of an output schema (which documents return values), and rich annotations, the description is sufficiently complete. It clearly states the input requirement and purpose. The only minor gap is the lack of error behavior or cost format, but these are not essential for a simple read-by-id operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only says 'by id', which does little beyond the parameter name job_id. However, the parameter is simple and self-explanatory, and the phrase 'existing job' implies the ID must refer to a valid job, adding slight semantic value. It does not fully compensate for the lack of schema documentation, but the parameter is straightforward.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Return') and the resource ('HQC cost of an existing job'), with a precise scope ('by id'). It is distinct from sibling tools like nexus_job_status and nexus_get_results, which focus on status or results respectively, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear context: use this when you need the HQC cost for a specific job ID. It does not explicitly mention when not to use it or alternatives, but the context is so specific that usage is evident. The lack of exclusions is acceptable given the tool's narrow scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nexus_job_statusARead-onlyIdempotent
Return the status of a job by id.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a non-destructive read. The description adds no further behavioral details (e.g., error behavior or auth), but given the annotations cover safety, the minimal description is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence with no filler. It is immediately clear and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is low-complexity with one parameter and an output schema. The description plus annotations provide enough context for the agent to invoke it correctly. No additional return values or error handling are needed since the output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one parameter (job_id) with no description (0% coverage). The description's 'by id' clarifies that job_id is the identifier, but it doesn't elaborate on format or valid values. For a simple parameter, this adds marginal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Return' with the resource 'status of a job', and specifies lookup by 'id'. This clearly distinguishes it from siblings like nexus_list_jobs (listing) and nexus_job_cost (cost).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to choose this tool over alternatives. It implies usage for checking job status but lacks any mention of preconditions or situations where other tools would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nexus_list_devicesARead-onlyIdempotent
List available backends and their status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as readOnly and non-destructive. The description adds the semantic detail of 'available' and 'status' but does not disclose any additional behavioral traits such as pagination or output format. This is acceptable given the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no redundant words, front-loading the action and target.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, a strong annotation set, and an output schema present, this simple list tool is fully described by the one-line description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has zero parameters, so there is no parameter information needed. The description doesn't need to compensate, earning a baseline 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'List' and names the resource 'available backends' with their status, clearly distinguishing this from sibling tools like nexus_device_status which likely query a specific device.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is for enumerating backends but does not explicitly state when to use it over alternatives like nexus_device_status or nexus_list_projects. No exclusions or conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nexus_list_jobsARead-onlyIdempotent
List jobs visible to the user (one page of up to limit, plus the total count).
Optional filters: exact project name, status (e.g. COMPLETED, RUNNING, ERROR), and a
name_like substring. Occasionally returns a Nexus-side server error unrelated to your
request; if so, use nexus_job_status / nexus_get_results by id instead of retrying this call.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| status | No | ||
| project | No | ||
| name_like | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds behavior beyond annotations: it returns one page with a total count, and it may occasionally fail with transient server errors. This is useful operational context, though it does not cover auth or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three compact sentences, front-loaded with the core action. Each sentence adds value: function, filters, and error-handling guidance. No wasteful wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and simple read-only behavior, the description sufficiently covers pagination, filtering, and error avoidance. It does not detail sort order or exact filter interaction, but these are not necessary for basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains all four parameters: limit as page size, project as exact name, status with example values, and name_like as a substring. It does not explicitly describe null/default behavior or how filters combine, but the main semantics are clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: list jobs visible to the user, with pagination details. It distinguishes itself from sibling tools like nexus_job_status and nexus_get_results by focusing on a list operation with filters rather than single-job operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides when-not-to-use guidance and alternatives: in case of a Nexus-side server error, use nexus_job_status or nexus_get_results by id instead of retrying. It also mentions optional filters, which implies when to apply them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nexus_list_projectsARead-onlyIdempotent
List Nexus projects visible to the user (one page of up to limit, plus the total count).
Optional name_like substring filter; set archived to list archived projects instead.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| archived | No | ||
| name_like | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds useful behavioral context: the one-page limit with total count, and how the archived flag changes results. This goes beyond what annotations provide, though it doesn't address potential rate limits or permission details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and effectively front-loaded. The first sentence states the primary purpose and key behavior (one page and total count); the second sentence covers all optional filters. No fluff or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 optional parameters, rich annotations, and an output schema), the description covers all essential aspects: the resource listed, visibility scope, pagination, total count, and filter options. It does not need to detail return values since an output schema exists, making it complete for agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning to each parameter beyond the schema: it explains that 'limit' controls the page size and that the response includes a total count, 'name_like' is a substring filter, and 'archived' toggles the listing to archived projects. This is valuable since the schema itself lacks property descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'List Nexus projects visible to the user'. It uses a specific verb (List), identifies the resource (Nexus projects), and adds scope ('visible to the user'). The mention of pagination and total count further distinguishes it from sibling list tools like nexus_list_jobs and nexus_list_devices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (to list projects) and provides context on pagination and filtering options ('Optional name_like substring filter; set archived to list archived projects instead'). However, it does not explicitly name alternatives or state when not to use it, so it falls short of the highest bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nexus_whoamiARead-onlyIdempotent
Return the authenticated Nexus user.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description is consistent with these and adds that it returns the user, but provides no additional behavioral context such as error handling or authentication requirements. The annotations carry the burden, and the description adds minimal extra value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the action and resource, containing no superfluous words. It is concise and well-structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is extremely simple with no parameters and has an output schema present. The description sufficiently conveys the purpose, and the annotations cover safety and idempotency. For a zero-parameter read-only tool, this description is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, so the baseline is 4. Schema description coverage is 100% (vacuously), and there are no parameter semantics to explain. The description does not need to add parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Return' and the resource 'authenticated Nexus user', clearly stating the tool's function. It distinguishes from sibling tools like nexus_auth_status by focusing on the user identity rather than authentication status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool versus alternatives such as nexus_auth_status. The purpose implies its use for retrieving the current user, but the description lacks any when-to-use or exclusion statements, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
10 tool updates
v0.2.0- First observed
nexus_auth_status - First observed
nexus_device_status - First observed
nexus_get_quota - First observed
nexus_get_results - First observed
nexus_job_cost - First observed
nexus_job_status - First observed
nexus_list_devices - First observed
nexus_list_jobs - First observed
nexus_list_projects - First observed
nexus_whoami
TDQS
Scored across 10 tools
Each tool targets a distinct resource and action: auth status and whoami separate session validity from user identity; list_devices and device_status distinguish enumeration from specific status; job tools (list, status, cost, results) each serve a unique query purpose. No two tools overlap in what they retrieve.
All tools share the 'nexus_' prefix and mostly follow a verb_noun (list_devices, get_quota) or resource_status (job_status, device_status) pattern. The 'whoami' tool deviates slightly from the pattern, but the naming remains predictable and readable.
10 tools is a well-scoped count for a quantum computing platform, covering auth, devices, projects, quotas, and jobs without unnecessary bloat. Each tool earns its place for typical query workflows.
The set is heavily read-only, covering queries for auth, devices, projects, quotas, and job status/results, but lacks any tool to submit, cancel, or manage jobs or projects. This is a significant gap for a platform presumably intended to run quantum workloads, limiting agent capability.
Maintenance
Related MCP Connectors
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Official MCP server for Agentwork — delegate tasks to AI agents with human-in-the-loop
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceMCP server exposing Qiskit quantum computing functionality through the Model Context Protocol. Enables LLMs to create, manipulate, and execute quantum circuits via standardized MCP tools and resources.MIT
- FlicenseAqualityDmaintenanceUnofficial Model Context Protocol (MCP) server that enables LLMs to build and execute quantum circuits using Qiskit.137-
- AlicenseNot gradedqualityDmaintenanceAn MCP server that gives AI agents direct control over QEMU virtual machines.11 npm1MIT

nexus-exchange-mcpofficial
AlicenseBqualityAmaintenanceAn MCP server that exposes the Nexus Exchange API as tools an AI agent can call to read market data and place trades.6628 npm2Apache 2.0