Skip to main content
Glama

OVB3 — Oracle Visual Builder Bridge

OVB3 = Oracle Visual Builder + 3 (a nod to Thrishul — त्रिशूल, trident) + Bridge.

Work on Oracle Visual Builder Studio (VBS) / VBCS apps from Claude instead of the browser IDE. OVB3 is a Claude Code plugin, an MCP server and a CLI that let Claude read, search, edit, build, audit, commit and push the files a VB Studio project is made of — plus manage data and CI jobs on your instance.

It deliberately works on the artifacts and git (the JSON/JS files and the repo behind a VB Studio project, plus Oracle's own grunt-vb-* tasks) rather than scripting the design-time browser UI, which has no public API and breaks whenever Oracle updates it. See docs/VBS-GUIDE.md for the confirmed repo layout and build behavior this is built against.

Unofficial community project. Not affiliated with, endorsed by, or supported by Oracle. "Oracle", "Visual Builder" and related names are trademarks of Oracle and are used only to say what this tool works with. It is early software: review what Claude changes before you push, and try it on a non-production project first.

Nothing is tied to one project: an instance hosts many VB Studio projects (git repos), each holding many apps under webApps/, and every tool takes the repo and app as arguments.

Quick start

1. Install (Claude Code):

/plugin marketplace add vanamthrishul/ovb3-bridge
/plugin install ovb3@ovb3

Claude Code asks for a workspace folder (any folder to hold your repo checkouts) and, optionally, git credentials and defaults. Secrets such as the git token are kept in your system keychain.

2. Link a project: run /ovb3:link — it walks you through cloning a repo (or pointing at one you already have).

3. Check it: run /ovb3:vbs-doctor. It tells you what works, what's missing, and the exact fix for each — this is the first thing to run whenever something doesn't work.

No Claude Code? The same tools ship as a CLI and a plain MCP server — see Other ways to run it.

Related MCP server: workday-studio-mcp

What you can do

Area

Tools (also ovb3 <command> in the CLI)

Notes

Diagnose

doctor

Checks Node, git, workspace, credentials, build tools; never prints secrets

Browse & edit

list_repos, list_apps, list_artifacts, read_artifact, write_artifact

write_artifact refuses invalid JSON and any path outside the repo

Search

search_artifacts

Grep file content (text or regex) across a repo

Cross-app audit

audit_service_calls

Finds every Actions.callRest call and flags parameter keys some apps send and others omit

Git

git_status, git_commit, git_pull, git_push, git_clone

Non-interactive: authenticates with your token and fails fast instead of hanging

Build & audit

setup_build_tools, run_build, run_audit

Oracle's grunt-vb-build / grunt-vb-audit; failures come with a plain-language hint

VB Studio CI

vbstudio_trigger_build, vbstudio_build_status, vbstudio_job_params

Oracle's documented Builds REST API; the base URL is derived from your repo's git remote

Standalone VBCS

vbcs_list_applications, vbcs_lock_application, vbcs_unlock_application, vbcs_export_bo_data, vbcs_import_bo_data

For VBCS apps with no VB Studio project; export/import business-object data as CSV/ZIP

Slash commands exist for each (/vbs-help and /vbcs-help list them; they're namespaced /ovb3:… when installed as a plugin). You can also just ask in plain language — "find every app that calls the Orders service without the region parameter" resolves to the same tools.

Example: check a shared service is called consistently

/vbs-audit-calls my-vbs-project Orders/getOrders

reports, per endpoint, which apps call it and any parameter key that some apps pass and others don't. It compares which keys are passed, not their values (values are arbitrary expressions).

Setting up credentials

Never paste credentials into a Claude conversation. Set them in plugin settings (/plugin → OVB3 → Configure, then /reload-plugins) or in a config file (see below).

You want

Set

Clone / pull / push over HTTPS

VBSTUDIO_GIT_USERNAME + VBSTUDIO_GIT_TOKEN (a VB Studio personal access token)

run_build / run_audit on apps with web components (most)

VB_BUILD_COMPONENT_EXCHANGE_URL — in VB Studio under Tenant Settings → Component Exchange; a private exchange looks like https://<vbs-host>/<org>/s/<org>_<project>/compcatalog/0.2.0

VB Studio CI jobs

VBSTUDIO_API_TOKEN (or leave it blank and your VBSTUDIO_GIT_TOKEN is reused as the bearer token)

Standalone VBCS

VBCS_BASE_URL (bare host, no /ic/builder), VBCS_IDCS_USERNAME, VBCS_IDCS_PASSWORD

Git credentials are sent as a scoped HTTP header — never put in URLs, logs or .git/config — and everything logged or returned in an error is redacted. Personal access tokens expire: if git starts failing with "Authentication failed" on something that used to work, generate a new one.

Outside the plugin, config is read from (highest priority first): real environment variables, ./.env, then the install's own file — <clone>/.env for a git clone, ~/.ovb3/.env for npm/npx installs (override with OVB3_ENV_FILE). .env.example documents every variable. ovb3 init creates and fills it interactively (non-secret fields only).

Build and audit: what to expect

run_build / run_audit run Oracle's tasks directly (no shell) inside your repo checkout:

  1. Run setup_build_tools once per checkout. VB Studio projects pin Oracle's grunt-vb-build / grunt-vb-audit tarballs in their own package.json, so no extra registry setup is needed. (If npm install fails, check access to static.oracle.com and registry.npmjs.org; if only non-Oracle packages fail, suspect a stale token in your global .npmrc.)

  2. Set the Component Exchange URL (above). Without it Oracle's own task stops with Missing mandatory component exchange URL — OVB3 detects that and tells you what to set. If your exchange needs a login, also set VB_BUILD_CE_USERNAME + VB_BUILD_CE_PASSWORD (or VB_BUILD_CE_ACCESS_TOKEN).

  3. run_audit also needs network access to a live Visual Builder backend (it fetches vb.services.catalog.json). On a machine that can't reach one you'll see ETIMEDOUT; that's a connectivity requirement, not a config flag.

Builds are stopped after 15 minutes by default (OVB3_BUILD_TIMEOUT_MS), and the whole process tree is killed, so nothing is left running.

Limits you should know about

These are properties of Oracle's APIs, not gaps waiting to be filled:

  • Standalone VBCS (no VB Studio project) has no page/flow editing. Oracle's published REST API for it has 14 endpoints — list/lock/unlock apps, a token endpoint, credential CRUD, and business-object data export/import. There is no whole-app export/import, version, build or deploy endpoint. If you want artifact editing, work from the app's VB Studio project.

  • VB Studio has no "deploy" API call — deploys are CI jobs or pipelines, so use vbstudio_trigger_build on the deploy job. Pipeline endpoints exist in Oracle's docs but their request shapes weren't published clearly enough to build against, so they're not included.

  • The service-call audit reads JavaScript action chains (Actions.callRest). It's a comment- and string-aware scanner, not a full JS parser; unusual dynamically built calls won't be seen.

  • Data import replaces by default in Oracle's API, so vbcs_import_bo_data makes you choose append or replace explicitly.

Other ways to run it

Plain MCP config (no plugin) — add to any project's .mcp.json; runs via npx, nothing to clone:

{
  "mcpServers": {
    "vbcs": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "ovb3-bridge"],
      "env": { "VBS_WORKSPACE_DIR": "/absolute/path/to/a/workspace/folder" }
    }
  }
}

Copy commands/*.md into .claude/commands/ if you want the /vbs-* shortcuts.

CLI — npm install -g ovb3-bridge, then ovb3 init, ovb3 doctor, ovb3 list-repos, ovb3 search <repo> <text>, … (ovb3 --help lists them all). Run ovb3 init yourself in a terminal; when driving setup through an AI agent, use /link instead — the wizard is interactive and an agent can't type into it.

From source (contributing, or running an unreleased commit):

git clone https://github.com/vanamthrishul/ovb3-bridge.git
cd ovb3-bridge
npm install      # also compiles TypeScript into dist/ (via "prepare")
npm test
node dist/cli.js doctor

Every tool call is logged to stderr — what was touched, git operations, build/audit output as it streams — so nothing happens silently.

Troubleshooting

Run doctor first. Beyond that:

  • plugin:ovb3:vbcs shows ✗ in /mcp right after install — the first launch downloads the package via npx, which can exceed Claude Code's 30s connect limit on a slow or restricted network. Select the server in /mcp and choose reconnect (it starts fast once the cache is warm), or run npx -y ovb3-bridge once in a terminal first and press Ctrl+C after the startup line.

  • doctor in a plain terminal says everything is unset — plugin config is only injected when Claude Code launches the server. Run /ovb3:vbs-doctor inside Claude Code to see the real picture.

  • Git says "Authentication failed" — your token is missing, wrong or expired (see credentials above). OVB3 never waits on a hidden prompt; it fails in seconds with this message.

  • Git stalls then times out — the host in the remote URL is unreachable. A stale host in an old URL (e.g. a retired test environment) is a common cause.

  • Missing mandatory component exchange URL — set the Component Exchange URL.

  • Backend fetch failed … ETIMEDOUT from run_audit — this machine can't reach a Visual Builder backend (VPN/proxy).

  • VBCS login fails — VBCS_BASE_URL must be the bare host. If you copied it from the browser and it's very long with ?state=… in it, that's a login redirect, not the instance URL.

Contributing

Issues and PRs welcome (all changes land through a reviewed pull request). Questions or feedback: open an issue, or email thrishulkrishna3@gmail.com. Please report security problems privately — see SECURITY.md. npm test must pass; CI runs it on Linux, macOS and Windows. A packaging test keeps the two command folders, the version numbers and .env.example in sync with the code.

MIT licensed.

Available Tools

24 tools
audit_service_callsA
Read-onlyIdempotent

Cross-app audit of REST service usage: finds every Actions.callRest call in the repo's action-chain JS, and for each service endpoint compares which parameter keys (uriParams/body/headers…) each app passes, flagging keys some apps send that others omit. Compares key sets, not values. Use it to check a shared service connection is mapped consistently across apps.

ParametersJSON Schema
NameRequiredDescriptionDefault
appsNoOnly these apps (default: all apps in the repo)
repoNoRepo checkout to target: absolute path, or a repo name under VBS_WORKSPACE_DIR, or omit to use VBCS_REPO_PATH default. Use list_repos to see what's available on this instance.
endpointNoOnly this endpoint, e.g. 'ServiceName/OperationId'
includeCallsNoAlso return every individual call site with file + line

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/non-destructive, so safety is covered. The description adds real behavioral context beyond that: what it scans (action-chain JS, Actions.callRest), what it compares (key sets, not values), and what it flags (keys some apps send that others omit). It doesn't describe output shape, but that gap is minor against the annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences, front-loaded with the core operation before the comparison mechanism and the use case. Each sentence carries distinct information – no restatement of the name or title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only audit tool with full schema coverage and no output schema, the description conveys enough: what it scans, what it compares, and the intended diagnostic. Only the practical result format (e.g. per-endpoint diff grouping) is left implicit, which is acceptable given no output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all four parameters are already documented in the schema, which sets the baseline at 3. The description reinforces app/endpoint filtering through its phrasing ('each app', 'cross-app', 'per endpoint') but adds no syntax or format detail beyond what the schema already gives.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource+scope: 'Cross-app audit of REST service usage' that 'finds every Actions.callRest call in the repo's action-chain JS' and compares parameter keys per endpoint. It explicitly draws the boundary ('Compares key sets, not values'), which distinguishes it from sibling audit tooling like run_audit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete use case: 'Use it to check a shared service connection is mapped consistently across apps.' That states when to reach for it, but it never names an alternative (e.g. run_audit) or an exclusion, so it stops short of full when/when-not routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

doctorA
Read-onlyIdempotent

Diagnose this install: Node/git, workspace + repos, git credentials, build tools, Component Exchange URL, and optional services. Reports what's missing and the exact fix; never prints secrets. Run this first when something doesn't work. Set live=true to also test the standalone-VBCS login.

ParametersJSON Schema
NameRequiredDescriptionDefault
liveNoAlso make a real read-only call to the standalone VBCS instance
repoNoRepo checkout to target: absolute path, or a repo name under VBS_WORKSPACE_DIR, or omit to use VBCS_REPO_PATH default. Use list_repos to see what's available on this instance.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds real value beyond them: it reports 'what's missing and the exact fix' and commits to 'never prints secrets', which is a meaningful safety guarantee. It also clarifies that live=true triggers a real network call rather than a static check.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences, front-loaded with scope, followed by output/safety promise and the usage trigger. Every clause carries information and nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still tells the agent what comes back (missing items plus exact fixes) and what the optional flag does. Safety, scope, and invocation conditions are all covered for a zero-required-parameter diagnostic tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented in the schema (including the repo path resolution rules and the list_repos pointer). The description only adds the nuance that live=true tests the standalone-VBCS login, which is a marginal refinement over the schema wording; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb 'Diagnose' plus the object 'this install' is specific, and the description enumerates exactly what is checked (Node/git, workspace + repos, git credentials, build tools, Component Exchange URL, optional services). No sibling tool does environment diagnosis, so it is easily distinguished from git_* and vbcs_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Run this first when something doesn't work' gives an explicit trigger condition, and 'Set live=true to also test the standalone-VBCS login' conditions the optional mode. It does not state exclusions or contrast with alternatives such as run_audit or git_status, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_cloneA

Clone a git remote into VBS_WORKSPACE_DIR so it's discoverable by list_repos. Used by /link's VBS setup flow. Do not embed credentials in remoteUrl — set VBSTUDIO_GIT_USERNAME/TOKEN instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
destNameYesDestination folder name under VBS_WORKSPACE_DIR
remoteUrlYesGit remote URL to clone

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, openWorld=true, destructive=false. The description adds real value by disclosing the write target (VBS_WORKSPACE_DIR), its downstream effect (discoverable by list_repos), and auth guidance (VBSTUDIO_GIT_USERNAME/TOKEN instead of embedding credentials in remoteUrl). This goes beyond the safety profile annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the action, then context, then the credential caveat. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema needed and annotations covering the safety profile, the description supplies the essential remaining context: destination behavior and credential handling. It does not cover edge cases like failure modes or behavior on an existing destination folder, a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3; the description still adds meaning by warning against embedding credentials in remoteUrl and indicating the accepted auth mechanism. That is semantic guidance the schema does not supply.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (clone a git remote) plus the destination behavior (into VBS_WORKSPACE_DIR so it's discoverable by list_repos). An agent can distinguish this from git_pull/git_status/git_commit siblings without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives implied context ('Used by /link's VBS setup flow') and a clear credential directive, but never states when to prefer this over siblings like git_pull or explains prerequisites/ordering. Usage is implied rather than differentiated from alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_commitB

Stage and commit changes in a repo checkout.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNoRepo checkout to target: absolute path, or a repo name under VBS_WORKSPACE_DIR, or omit to use VBCS_REPO_PATH default. Use list_repos to see what's available on this instance.
filesNoSpecific repo-relative files to stage; omit to stage all changes
messageYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=false, so the agent knows this is a non-destructive write. The description adds the useful fact that it both stages and commits in one step, but says nothing about author identity requirements, amend/force behavior, branch targeting, or whether the commit stays local until git_push.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single eight-word sentence with the action front-loaded and zero filler. Every word carries meaning and nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a non-destructive write with annotations already covering the safety profile and no output schema, the definition is minimally adequate. The remaining gaps are the relationship to git_push and whether the commit is local-only, which an agent invoking this tool would reasonably want to know.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%: repo and files are well documented in the schema (including the important 'omit files to stage all changes' default), while message is undocumented but self-evident as the commit message. The description contributes no parameter detail at all, so the schema is doing all the work and a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the specific verb pair (stage and commit) and the resource (changes in a repo checkout), which is more precise than a bare 'commit' because it discloses that staging is included. It is distinguishable from git_push/git_status/git_pull by action, but it never names or contrasts those siblings, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to prefer this tool over git_push (whether committing alone publishes anything) or git_status (previewing changes before committing). The implicit 'stage and commit in one call' behavior is the only usage cue, and no exclusions or prerequisites are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_pullB

Pull from the repo's remote. Authenticates with VBSTUDIO_GIT_USERNAME/TOKEN when set; never hangs on a hidden prompt.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNoRepo checkout to target: absolute path, or a repo name under VBS_WORKSPACE_DIR, or omit to use VBCS_REPO_PATH default. Use list_repos to see what's available on this instance.
branchNo
remoteNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true), and the description adds real context beyond them: it authenticates via VBSTUDIO_GIT_USERNAME/TOKEN and will not block on a hidden credential prompt. It does not say how merge conflicts or failures are surfaced, which keeps it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, with the core action front-loaded and the authentication caveat immediately after. No filler, though the phrase 'never hangs on a hidden prompt' is slightly awkward.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter-required, no-output-schema mutation tool, the description covers auth and non-blocking behavior but omits what happens on conflict, whether it merges or rebases, and the meaning of the branch/remote arguments. Adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33% - just 'repo' is documented - and 'branch' and 'remote' are explained nowhere, neither in the schema nor in the description. With low coverage the description is expected to compensate, and it adds nothing about the parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Pull from the repo's remote'), which cleanly separates it from git_push, git_clone, and git_status. It does not explicitly name a sibling or scope, but the operation is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus git_clone (initial checkout) or git_push, and no mention of prerequisites such as being on a branch or having a clean tree. The agent is left to infer the context entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_pushB

Push to the repo's remote. Authenticates with VBSTUDIO_GIT_USERNAME/TOKEN when set; never hangs on a hidden prompt.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNoRepo checkout to target: absolute path, or a repo name under VBS_WORKSPACE_DIR, or omit to use VBCS_REPO_PATH default. Use list_repos to see what's available on this instance.
branchNo
remoteNo

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as a non-read-only, open-world, non-destructive write. The description adds genuinely useful context beyond them: credential sourcing from VBSTUDIO_GIT_USERNAME/TOKEN and a guarantee that it never hangs on a hidden prompt. It omits whether force-push is possible or what happens on rejection/non-fast-forward.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with the core action first and the operational caveat second. Every clause carries information; nothing is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no output schema and two undocumented parameters, the description covers the auth and hang behaviors well but leaves branch/remote semantics and failure modes unspecified. It is adequate but incomplete for the schema's gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33% – repo is documented in the schema, but branch and remote are bare with no description anywhere. The description adds nothing about branch or remote semantics (e.g. defaults, whether remote defaults to origin), so it fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Push to the repo's remote"), which an agent can distinguish from git_commit, git_pull, and git_clone. However, it does not explicitly contrast itself with those siblings or clarify its position in the git workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to push versus committing or pulling first, no prerequisites (e.g. whether a commit must exist), and no mention of alternatives. The agent must infer the workflow position from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

git_statusB
Read-onlyIdempotent

Show git status for a repo checkout.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNoRepo checkout to target: absolute path, or a repo name under VBS_WORKSPACE_DIR, or omit to use VBCS_REPO_PATH default. Use list_repos to see what's available on this instance.

TDQS

B3.2/5.0
Behavior3/5

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 fully covered without the description. The description adds nothing beyond that – no note on whether it touches the network, requires a git install, or how it behaves on a dirty/clean tree – but the annotation bar is met.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence, front-loaded with the verb and resource and free of filler. It is efficient, though arguably so terse that it omits useful context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only, zero-required-parameter tool whose only parameter is fully described in the schema and whose safety profile is fully covered by annotations, the description is sufficient to invoke correctly. The missing usage/routing guidance is a separate gap rather than a completeness failure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single 'repo' parameter is documented in detail (absolute path, name under VBS_WORKSPACE_DIR, VBCS_REPO_PATH default, list_repos pointer). The description adds no parameter meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Show') and resource ('git status') scoped to 'a repo checkout', so the agent immediately knows what the tool returns. It does not, however, distinguish itself from the git_commit/git_pull/git_push siblings beyond the obvious command name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool, when not to, or how it relates to alternatives such as git_commit or list_repos. Usage (e.g. inspecting the working tree before committing) must be inferred entirely from the command name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_appsB
Read-onlyIdempotent

List VBCS web app names (webApps/) present in a repo checkout.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNoRepo checkout to target: absolute path, or a repo name under VBS_WORKSPACE_DIR, or omit to use VBCS_REPO_PATH default. Use list_repos to see what's available on this instance.

TDQS

B3.4/5.0
Behavior3/5

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 useful context that this reads a local repo checkout rather than a live service, but says nothing about permissions, cost, or behavior when the repo path is invalid.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence with the resource, scope, and on-disk naming convention front-loaded. Nothing is wasted and nothing needs to move earlier.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read-only tool with full schema coverage and annotations covering safety, the description is nearly sufficient. The remaining gap is sibling disambiguation against vbcs_list_applications and what the returned names are relative to.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single repo parameter is fully documented with fallback semantics and a pointer to list_repos. The description adds no parameter meaning beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("List VBCS web app names") and even gives the on-disk shape (webApps/<name>), so the output is concrete. It does not, however, distinguish itself from the sibling vbcs_list_applications, which an agent could easily confuse for this.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use guidance, no prerequisites, and no exclusions. The one piece of routing advice (use list_repos to see available repos) lives in the parameter schema, not the description, and the ambiguity versus vbcs_list_applications is left entirely unresolved.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_artifactsA
Read-onlyIdempotent

List artifact files in a repo matching a glob pattern (file names only), e.g. 'webApps//flows/**/.json'. To search file CONTENT use search_artifacts.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNoRepo checkout to target: absolute path, or a repo name under VBS_WORKSPACE_DIR, or omit to use VBCS_REPO_PATH default. Use list_repos to see what's available on this instance.
patternYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered. The description adds meaningful behavior beyond that: results are file names only, not contents, which tells the agent what the return set looks like. It stops short of describing path format or recursion/ordering behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: capability and routing first, exclusion second. No filler, every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-param read tool with annotations covering safety and no output schema, the description supplies what's needed: scope, glob semantics, and the returned granularity. A brief note on output path format or default ordering would close the remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50% — the repo param is documented in the schema (including a pointer to list_repos), while pattern has no schema description. The description compensates with a concrete glob example that clarifies pattern syntax and path shape, which is real added value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (list) and resource (artifact files in a repo) with scope (matching a glob pattern) plus a concrete example. It explicitly distinguishes itself from search_artifacts, so an agent can pick it without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the alternative (search_artifacts) and the exact condition that selects it: pattern-based filename listing vs. content search. The 'file names only' framing makes the boundary unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_reposA
Read-onlyIdempotent

List local VB Studio project repo checkouts discoverable under VBS_WORKSPACE_DIR.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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 that listing is scoped to local checkouts under VBS_WORKSPACE_DIR, which is useful context beyond the annotations, though it omits return format or pagination details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero wasted words. The scope constraint is placed clearly after the purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only list tool with no output schema, the description gives sufficient purpose and location scope. It could be slightly richer about the return format, but that is not essential here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the baseline score is 4. The description does not need to add parameter meaning and correctly does not attempt to.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource ('local VB Studio project repo checkouts') with scope ('under VBS_WORKSPACE_DIR'). Clear, but does not differentiate from sibling list tools like list_apps or list_artifacts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives no when-to-use guidance, no prerequisites, and no alternatives. Usage is only implied by the verb, which is insufficient for routing among the many sibling list and git tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_artifactB
Read-onlyIdempotent

Read a VBCS artifact file (page/flow/chain/service JSON, etc) by repo-relative path.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRepo-relative path, e.g. webApps/myApp/flows/main/main-flow.json
repoNoRepo checkout to target: absolute path, or a repo name under VBS_WORKSPACE_DIR, or omit to use VBCS_REPO_PATH default. Use list_repos to see what's available on this instance.

TDQS

B3.4/5.0
Behavior3/5

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 fully covered by structured data. The description adds only the artifact-type scope; it says nothing about behavior on a missing/invalid path, whether binary or large files are handled, or what form the content comes back in.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the verb, resource, and lookup key come first. It loses a point only for the vague 'etc' tail, which adds ambiguity rather than information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple two-parameter read tool whose annotations cover safety and whose schema is fully documented, so little is missing. However, since there is no output schema, the description should say what is returned (raw file text? parsed structure?) and how a missing path is reported; that gap leaves the definition adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both 'path' and 'repo' documented in the schema (including the VBS_WORKSPACE_DIR/VBCS_REPO_PATH resolution order and the list_repos pointer), so the schema carries the load. The description merely echoes 'by repo-relative path' and adds no format or resolution detail beyond it, matching the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Read) plus resource (VBCS artifact file) and scoping mechanism (repo-relative path), and enumerates example artifact types (page/flow/chain/service JSON). An agent can distinguish it from write_artifact, list_artifacts, and search_artifacts by the retrieval-by-path semantics, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the required 'path' parameter and the 'by repo-relative path' phrasing suggest this is for fetching a known file, in contrast to search_artifacts or list_artifacts for discovery. The description never states when to use it, when not to, or which alternative fits a given situation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_auditA
Read-onlyIdempotent

Run grunt-vb-audit for a VBCS app. Streams output live to server logs. Needs the same setup as run_build, plus network access to a live Visual Builder backend; failures include a plain-language hint.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNoRepo checkout to target: absolute path, or a repo name under VBS_WORKSPACE_DIR, or omit to use VBCS_REPO_PATH default. Use list_repos to see what's available on this instance.
appNameNoVBCS web app name (webApps/<name>) within the repo, or omit to use VBCS_APP_NAME default. Use list_apps to see what's available in a repo.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare it read-only, idempotent and non-destructive, so the safety bar is low. The description still adds genuine behavior beyond that: output streams live to server logs, it requires network access to a live VB backend, and failures surface a plain-language hint. It doesn't say what the audit actually checks, but the disclosure is above the annotated baseline.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the action and followed by operational preconditions. Every sentence carries content; nothing is padding, though the failure-hint detail is slightly incidental.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by noting that output streams live to server logs and that errors include a plain-language hint, covering both the success and failure paths. Missing only what the audit checks and how a caller observes results from logs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both repo and appName already carry full detail (defaults, list_repos/list_apps pointers). The description adds only the phrase 'for a VBCS app' and no format or syntax beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (run) and resource (grunt-vb-audit) scoped to a VBCS app, which separates it from run_build and the vbstudio_* build tools. It does not explicitly say how it differs from audit_service_calls, but the audit-vs-build distinction is inferable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description points at a prerequisite ('needs the same setup as run_build') and an environmental condition (network access to a live Visual Builder backend), which is useful. However, it never states when to choose this tool over run_build or audit_service_calls, 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.

run_buildA

Run grunt-vb-build for a VBCS app. Streams output live to server logs. Needs setup_build_tools first, and VB_BUILD_COMPONENT_EXCHANGE_URL for apps using web components; failures include a plain-language hint.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNoRepo checkout to target: absolute path, or a repo name under VBS_WORKSPACE_DIR, or omit to use VBCS_REPO_PATH default. Use list_repos to see what's available on this instance.
appNameNoVBCS web app name (webApps/<name>) within the repo, or omit to use VBCS_APP_NAME default. Use list_apps to see what's available in a repo.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only mark it as a non-read-only, non-destructive operation; the description goes further by disclosing that output streams live to server logs, that an environment variable gates web-component apps, and that failures carry a plain-language hint. It omits whether the call blocks until completion or how long a build typically takes, but the added behavioral context is substantive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight clauses with no filler, front-loaded with the action before the prerequisites. Slightly dense and could be split for readability, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations beyond safety flags, the description covers what runs, the prerequisite chain, the conditional env var, and output visibility via live log streaming plus error hints. What is missing is how results/artifacts are retrieved after the build completes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both repo and appName are already fully documented in the schema, including the list_repos/list_apps discovery pointers. The description adds no parameter-level detail (the ENV var mentioned is not a parameter), so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Run grunt-vb-build for a VBCS app'), so the agent knows exactly what operation executes rather than a generic 'build'. It does not distinguish itself from the sibling vbstudio_trigger_build or explain how the two build paths differ, leaving the sibling boundary to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit prerequisite ('Needs setup_build_tools first') and a conditional requirement ('VB_BUILD_COMPONENT_EXCHANGE_URL for apps using web components'), which is real when-to-use guidance. It stops short of stating when to prefer this over vbstudio_trigger_build or how it relates to vbstudio_build_status.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_artifactsA
Read-onlyIdempotent

Search artifact file CONTENT across a repo (grep). Substring by default, or a regex. Defaults to webApps/services/settings .js/.json/.html/.css/.md files; narrow with glob.

ParametersJSON Schema
NameRequiredDescriptionDefault
globNoLimit to files matching this glob, e.g. 'webApps/*/flows/**/*.js'
repoNoRepo checkout to target: absolute path, or a repo name under VBS_WORKSPACE_DIR, or omit to use VBCS_REPO_PATH default. Use list_repos to see what's available on this instance.
queryYesText (or regex when regex=true) to find
regexNo
ignoreCaseNo
maxResultsNoDefault 200, max 2000

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/destructiveHint, so safety is covered. The description adds genuinely useful behavioral context beyond that: the default search scope (which file types the default covers) and the substring-vs-regex default mode. It stops short of describing return format or result ordering.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the core action and mechanism. Every clause earns its place: purpose, matching mode default, and default scope. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a dense search tool with no output schema, the description covers purpose, default scope, and matching mode but says nothing about the shape of results or how maxResults/pagination behaves in practice. It is minimally complete but leaves the agent guessing what a result looks like.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%, and the description meaningfully supplements it: it defines the default matching mode for 'query', names 'glob' as the narrowing mechanism, and notes regex activation. This is more than mere restatement, though ignoreCase/maxResults/repo semantics remain only in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Search), the exact resource (artifact file CONTENT), and the mechanism (grep). The word 'CONTENT' and '(grep)' cleanly distinguish it from siblings like read_artifact, list_artifacts, and list_repos, which operate on file presence/listing rather than content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains the default behavior ('Defaults to webApps/services/settings .js/... files') and how to narrow results ('narrow with glob'), which implies when it's useful. However, it never states when to reach for this over read_artifact or list_artifacts, nor any exclusions, so usage is inferred rather than guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setup_build_toolsA

Install a repo's build dependencies (npm install) so run_build / run_audit work. VB Studio projects pin Oracle's grunt-vb-build/grunt-vb-audit in their own package.json, so no extra config is needed. Can take several minutes.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNoRepo checkout to target: absolute path, or a repo name under VBS_WORKSPACE_DIR, or omit to use VBCS_REPO_PATH default. Use list_repos to see what's available on this instance.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations (readOnlyHint=false, destructiveHint=false) already declare the mutation and safety profile. The description adds genuinely useful context beyond that: it notes the operation can take several minutes, which affects agent timeout/polling decisions. It does not disclose idempotency, network/auth requirements, or what happens on partial failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the verb/resource, then rationale, then the duration caveat. No filler and nothing repeated from structured fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-required-parameter install tool with annotations covering safety and no output schema, the description covers purpose, prerequisite relationship, and runtime cost. Missing only edge-case behavior (already-installed repos, failure modes), which keeps it just under full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the repo parameter's description already documents path resolution, the default, and pointers to list_repos. The description adds only that the target is a repo's dependencies, so it neither compensates for nor enriches beyond the schema; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Install) plus resource (build dependencies / `npm install`) and immediately ties it to its downstream purpose: enabling run_build / run_audit. The agent can distinguish it from siblings like git_clone or doctor without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Makes the trigger condition explicit — run this so run_build / run_audit work — and names those sibling tools, giving a clear prerequisite relationship. It does not state when NOT to run it (e.g., when deps already installed), so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vbcs_export_bo_dataA
Read-onlyIdempotent

Export business-object data from a standalone VBCS instance: one object as CSV (returned inline unless outputPath is given), or omit boName to export every object as a ZIP of CSVs (always saved to disk; path returned).

ParametersJSON Schema
NameRequiredDescriptionDefault
boNameNoBusiness object id; omit to export all objects as a ZIP
targetNo'design' (default) = design-time data; 'deployment' = staging/live database
appNameYes
appVersionYes
outputPathNoWrite the file here instead of returning CSV inline

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds genuinely useful behavior the annotations cannot: CSV is returned inline unless outputPath is set, and the all-objects ZIP is always written to disk with the path returned, plus the design-vs-deployment data source.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence carries the verb, resource, and both modes without filler. The nested parentheticals make it dense to parse but every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter read tool with no output schema, the description covers the critical unknown — where the result lands (inline vs. disk path) — and both modes. Only the unglamorous appName/appVersion params and the target enum detail are left to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 60%, and the description largely restates what the schema already documents for boName and outputPath rather than adding new detail. The target parameter's design/deployment semantics live only in the schema, and appName/appVersion are undocumented in both places.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (Export) and resource (business-object data) and clearly separates two operating modes: single object as CSV vs. all objects as ZIP. It is plainly distinct from the sibling vbcs_import_bo_data, but it never names that sibling to draw the contrast explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit mode-selection rules — supply boName for one object, omit it for a full ZIP export — and notes the inline-vs-disk behavior tied to outputPath. It stops short of stating when to reach for this over the import tool or any other sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vbcs_import_bo_dataA
Destructive

Import business-object data into a standalone VBCS instance from a local .csv/.xls/.xlsx (one object; file name must equal the object id) or .zip (several). mode is required: 'append' adds rows, 'replace' OVERWRITES the object's existing data. Lock a live app first.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesappend = add rows; replace = overwrite existing data
boNameNoDefaults to the file name; omit for .zip
targetNo'design' (default) = design-time data; 'deployment' = staging/live database
appNameYes
filePathYesLocal file to upload
appVersionYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare destructiveHint=true and openWorldHint=true, and the description reinforces this with the specific blast radius: 'replace' OVERWRITES the object's existing data, versus append which only adds rows. It also discloses the locking prerequisite. It does not cover auth/permission needs or error behavior, so short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences; the destructive 'replace' warning is capitalized and front-loaded, and the locking prerequisite is placed last as the pre-call action. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description covers the mutation tool's key risks, format constraints, and preconditions, which is enough for correct invocation. Slight gap: nothing on the 'target' parameter's effect or on partial-failure reporting.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%, and the description compensates by explaining the file-name-to-object-id constraint, that boName defaults to the file name and should be omitted for .zip, and by restating the mode semantics with emphasis on replace. The 'target' parameter's design-vs-deployment distinction is only in the schema, not the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Import) and resource (business-object data) plus the target environment (standalone VBCS instance), and the accepted file formats. It is clearly distinguishable from sibling vbcs_export_bo_data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage conditions (one object per .csv/.xls/.xlsx with file name equal to object id, or a .zip for several) and a prerequisite ('Lock a live app first'), which maps to sibling vbcs_lock_application. No explicit when-not or a named alternative beyond the lock/unlock siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vbcs_list_applicationsA
Read-onlyIdempotent

List applications on a standalone VBCS instance via its REST API (VBCS_BASE_URL). For VBCS apps not backed by a VB Studio git repo.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoOptional query filter, passed through as-is

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so safety is covered. The description adds useful context that this hits a standalone instance's REST API at VBCS_BASE_URL (implying environment/config prerequisites), but says nothing about pagination, result volume, or auth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and resource, with no filler. The parenthetical (VBCS_BASE_URL) and 'via its REST API' are minor implementation detail but plausibly useful for setup.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description should hint at the return shape, and it does not. For a simple read-only list tool with full annotation coverage this is adequate but leaves the returned application fields/pagination unknown.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single 'filter' parameter, so the baseline is 3. The description contributes no additional meaning about filter syntax, supported operators, or pass-through behavior beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (list applications), the access path (standalone VBCS REST API via VBCS_BASE_URL), and a scoping qualifier ('not backed by a VB Studio git repo'). It is distinguishable from the sibling 'list_apps', though it never names that sibling outright.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The final clause gives a clear condition for choosing this tool over the git-backed alternative, which is real routing guidance. It stops short of explicitly naming the alternative tool to use instead, so the agent must infer the pairing from the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vbcs_lock_applicationA
Idempotent

Lock a live application on a standalone VBCS instance (do this before exporting/importing its data).

ParametersJSON Schema
NameRequiredDescriptionDefault
branchIdYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool as mutating (readOnlyHint=false), idempotent, and non-destructive. The description adds the precondition for export/import, but does not explain what locking entails (e.g., prevents edits) or permission requirements. With annotations covering safety, this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence with zero waste, front-loading the action and then the key precondition in parentheses.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with annotations covering safety and no output schema, the description explains the purpose and precondition. However, it fails to describe the required branchId parameter, leaving a gap for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter branchId has 0% schema description coverage and is not mentioned in the description. The agent must infer that branchId identifies the application to lock, but no syntax or meaning is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb 'Lock' and resource 'live application on a standalone VBCS instance', and the parenthetical clarifies the action's role relative to data export/import. The agent can distinguish it from vbcs_unlock_application by the opposite action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides an explicit when-to-use: 'do this before exporting/importing its data', linking it to sibling tools. It does not state when not to use or explicitly name alternatives, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vbcs_unlock_applicationC
Idempotent

Unlock a locked live application on a standalone VBCS instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
branchIdYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds the useful scope constraint that this targets a locked live application on a standalone instance, but says nothing about side effects, permissions, or what state change occurs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no wasted words. Brevity is appropriate here, though it arguably trims too much given the undocumented parameter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no output schema and zero parameter documentation, the description leaves a critical gap: what branchId means and how to obtain it. The annotations cover the safety profile, but the calling contract is underspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the single required parameter branchId is completely undocumented. The description never mentions branchId, so an agent has no idea what value identifies the application to unlock.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Unlock a locked live application') and scopes it to a standalone VBCS instance. It doesn't explicitly name the sibling vbcs_lock_application as the inverse, but the verb choice makes the distinction obvious.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to unlock, prerequisites (e.g. must be locked first), or how it relates to vbcs_lock_application. The only contextual hint is 'standalone VBCS instance', which is a constraint, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vbstudio_build_statusB
Read-onlyIdempotent

Get the status (e.g. SUCCESSFUL) of a VB Studio CI build from its job name and build number.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNoRepo checkout to target: absolute path, or a repo name under VBS_WORKSPACE_DIR, or omit to use VBCS_REPO_PATH default. Use list_repos to see what's available on this instance.
jobNameYes
buildNumberYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so safety is covered. The description adds the useful output example (e.g. SUCCESSFUL), but says nothing about error behavior for an invalid build number, auth requirements, or what other status values exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single well-formed sentence that front-loads the verb, resource, and distinguishing identifiers with zero waste. Ideal size for a simple status query.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only status lookup with annotations covering safety and no output schema, the description plus the schema's repo documentation give an agent enough to call it correctly. It could be richer about return values or failure modes, but nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% (only repo is documented). The description partially compensates by naming the two required parameters as the build identifiers ('job name and build number'), but adds no format details (e.g. jobName naming convention, buildNumber range) and does not mention the repo parameter at all.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Get) and resource (status of a VB Studio CI build) keyed by job name and build number. The purpose is clear and implicitly distinguishable from trigger/run tools, but it never names a sibling (e.g. vbstudio_trigger_build) to make the selection explicit, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, and no mention of alternatives. The agent is left to infer that this is the post-trigger status check rather than, say, run_build or vbstudio_job_params.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vbstudio_job_paramsA
Read-onlyIdempotent

Get a parameterized VB Studio CI job's parameter definitions (YAML), to build the paramsYaml for vbstudio_trigger_build.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNoRepo checkout to target: absolute path, or a repo name under VBS_WORKSPACE_DIR, or omit to use VBCS_REPO_PATH default. Use list_repos to see what's available on this instance.
jobNameYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered structurally. The description adds the return format (YAML) but nothing on permissions, repo resolution behavior, or failure modes for unparameterized jobs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the action and resource, then attaches the purpose. No filler and nothing to trim.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read tool with no output schema, the description tells the agent what it returns (YAML) and why. The only gap is the undocumented jobName parameter and unstated behavior for non-parameterized jobs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%: repo is fully documented in the schema while jobName has no description anywhere. The phrase 'a ... VB Studio CI job's parameter definitions' only loosely implies jobName is the job identifier, so the description barely compensates for the uncovered parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb (Get) plus resource (a VB Studio CI job's parameter definitions in YAML). It even names the sibling it feeds into (vbstudio_trigger_build), so an agent can place it in the workflow without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The clause 'to build the paramsYaml for vbstudio_trigger_build' makes the intended context and downstream consumer explicit, which is strong routing guidance. It stops short of stating when NOT to call it or what happens for non-parameterized jobs, so it falls just below the top tier.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vbstudio_trigger_buildA

Start a VB Studio CI job (also how you run a deploy job/pipeline step) via the documented Builds REST API. Returns the build number. The API base is derived from the repo's git remote. Credentials: VBSTUDIO_API_TOKEN, or VBSTUDIO_API_USERNAME/PASSWORD (falling back to the git credentials).

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNoRepo checkout to target: absolute path, or a repo name under VBS_WORKSPACE_DIR, or omit to use VBCS_REPO_PATH default. Use list_repos to see what's available on this instance.
jobNameYes
paramsYamlNoJob parameters as YAML (see vbstudio_job_params); omit for a job with none

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the non-read-only, open-world, non-destructive profile, but the description goes further by stating the return value (the build number), the credential resolution chain (VBSTUDIO_API_TOKEN or username/password falling back to git credentials), and how the API base is derived from the git remote. These are operational details not present in the structured fields. It omits whether triggers are queued, deduplicated, or concurrent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences, front-loaded with the action and outcome, followed by environment/auth details. No filler and each sentence carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly states the return value (build number), covers authentication and API base derivation, and links to the parameter helper tool. The only gap is that the required jobName parameter's meaning and accepted values are never described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%, so the schema documents repo and paramsYaml; the description reinforces the repo-to-git-remote relationship but adds no syntax for paramsYaml beyond pointing at vbstudio_job_params. The required jobName parameter carries no description in either schema or description, so the description does not fully compensate for the coverage gap. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Start a VB Studio CI job') and immediately clarifies the deploy/pipeline-step use case, which separates it from siblings like vbstudio_build_status (status polling) and vbstudio_job_params (parameter discovery). An agent can identify the operation without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The parenthetical 'also how you run a deploy job/pipeline step' tells the agent this tool covers both CI and deploy triggers, and it points to vbstudio_job_params for parameter construction. It stops short of explicit when-not-to-use or a direct comparison with run_build, so it is clear context but not full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

write_artifactB
DestructiveIdempotent

Write a VBCS artifact file by repo-relative path. Refuses invalid JSON for .json paths and any path outside the repo.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRepo-relative path
repoNoRepo checkout to target: absolute path, or a repo name under VBS_WORKSPACE_DIR, or omit to use VBCS_REPO_PATH default. Use list_repos to see what's available on this instance.
contentYesFull file content to write

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, idempotent=true and destructive=true. The description adds genuine extra context by disclosing two refusal behaviors (.json paths must contain valid JSON; paths outside the repo are rejected), which the annotations cannot convey. It does not, however, address what the destructive flag means in practice — whether an existing file is overwritten, whether parent directories are created, or what happens on success.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with zero filler, and the core action is front-loaded before the constraint clauses. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter mutation tool with full schema coverage and annotations carrying the safety profile, the description covers purpose and refusal conditions adequately. The remaining gap is the absence of any statement about overwrite/create semantics, which matters for a tool flagged destructive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the schema already documents path, repo, and content, including the repo resolution rules and the list_repos cross-reference. The description's 'repo-relative path' merely restates the schema and adds no syntax or format detail, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (write) and resource (VBCS artifact file) with its scoping rule (repo-relative path), which is clearly distinguishable from read_artifact, list_artifacts, and search_artifacts. It stops short of naming those siblings explicitly, so it is clear but not fully differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description never says when to use this tool versus alternatives, nor does it state prerequisites (e.g., that the file is overwritten, or that the repo must already be cloned via git_clone). Usage is only implied by the verb 'write'.

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.

  1. 11 tool updatesv0.3.2
    • Addedaudit_service_calls
    • Addeddoctor
    • Addedsearch_artifacts
    • Addedsetup_build_tools
    • Changedvbcs_export_bo_data4 fields changed
      • addedInput schema / properties / boName / description
        Added value: +"Business object id; omit to export all objects as a ZIP"
      • addedInput schema / properties / outputPath
        Added value: +{
        +  "description": "Write the file here instead of returning CSV inline",
        +  "type": "string"
        +}
      • addedInput schema / properties / target
        Added value: +{
        +  "description": "'design' (default) = design-time data; 'deployment' = staging/live database",
        +  "enum": [
        +    "design",
        +    "deployment"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "appName",
        -  "appVersion",
        -  "boName"
        -]New value: +[
        +  "appName",
        +  "appVersion"
        +]
    • Addedvbcs_import_bo_data
    • Addedvbstudio_build_status
    • Addedvbstudio_job_params
    • Removedvbstudio_list_projects
    • Changedvbstudio_trigger_build7 fields changed
      • removedInput schema / properties / appName
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / environment
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / jobName
        Added value: +{
        +  "type": "string"
        +}
      • addedInput schema / properties / paramsYaml
        Added value: +{
        +  "description": "Job parameters as YAML (see vbstudio_job_params); omit for a job with none",
        +  "type": "string"
        +}
      • removedInput schema / properties / projectKey
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / repo
        Added value: +{
        +  "description": "Repo checkout to target: absolute path, or a repo name under VBS_WORKSPACE_DIR, or omit to use VBCS_REPO_PATH default. Use list_repos to see what's available on this instance.",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "projectKey",
        -  "appName"
        -]New value: +[
        +  "jobName"
        +]
    • Removedvbstudio_trigger_deploy
  2. 19 tool updatesv0.1.0
    • First observedgit_clone
    • First observedgit_commit
    • First observedgit_pull
    • First observedgit_push
    • First observedgit_status
    • First observedlist_apps
    • First observedlist_artifacts
    • First observedlist_repos
    • First observedread_artifact
    • First observedrun_audit
    • First observedrun_build
    • First observedvbcs_export_bo_data
    • First observedvbcs_list_applications
    • First observedvbcs_lock_application
    • First observedvbcs_unlock_application
    • First observedvbstudio_list_projects
    • First observedvbstudio_trigger_build
    • First observedvbstudio_trigger_deploy
    • First observedwrite_artifact

TDQS

A3.6/5.0

Scored across 24 tools

Disambiguation4/5

Most tools target a distinct subsystem (git_*, vbcs_*, vbstudio_*, artifact, build), and descriptions clarify the boundaries well. A few pairs could be misselected: list_apps vs list_repos/list_artifacts, run_build vs vbstudio_trigger_build, and run_audit vs audit_service_calls rely on the description to disambiguate. These overlaps are minor and resolvable from the text.

Naming Consistency4/5

Names are predominantly verb_noun snake_case with coherent subsystem prefixes (git_, vbcs_, vbstudio_). Prefixes are used consistently within each group, which makes the surface predictable. Minor deviations are the bare-noun 'doctor' and the 'setup_'/'run_' verb mix, but overall it reads cleanly.

Tool Count4/5

24 tools is on the heavier side, but the server spans several genuinely distinct subsystems (git, local artifacts, build, CI, standalone VBCS REST), so most tools earn their place. It is slightly bloated rather than padded with redundant entries.

Completeness4/5

Coverage is broad: artifacts (list/read/write/search), git lifecycle (clone/status/commit/pull/push), build/audit, CI trigger+status+params, and VBCS REST (list/lock/unlock/export/import). Minor gaps exist, such as no artifact delete and no git branch/diff/log operations, but core workflows are covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that provides comprehensive access to Salesforce Tooling API for metadata management, SOQL queries, code analysis, and debugging through Claude and other AI assistants.
    25 npm
    5
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    A local MCP server that gives Claude direct access to Workday Studio workspace. Enables reading, writing, planning, and validating integration assemblies without network calls or tenant credentials.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server that connects Claude Desktop to an Oracle Fusion Cloud instance. It exposes suppliers, purchase orders, invoices, and project costs as callable tools.
    -