Skip to main content
Glama
VenelX
by VenelX

@venelx/mcp

An MCP (Model Context Protocol) server that lets AI assistants (Claude Code, Cursor, Kimi Code, and any MCP-compatible client) operate the Venelx CI/CD platform through its REST API: list projects, trigger builds, check build status, tail logs, list artifacts and workers, and diagnose signing / GitHub access.

The server talks to the Venelx API over HTTPS and to your AI client over stdio.

Prerequisites

Token scopes

Scope

What it allows

read

All read-only tools (list projects, status, logs, artifacts, …)

write

Everything read allows, plus trigger_build (build-trigger endpoints)

Tokens look like vx_.... Treat them like passwords — pass them via environment variables, never commit them.

Related MCP server: Vercel MCP Relay Server

Configuration

Environment variable

Required

Default

Description

VENELX_TOKEN

yes

Personal API token (vx_...)

VENELX_API_URL

no

https://api.venelx.com

API base URL (self-hosted etc.)

Install & run

Claude Code

claude mcp add venelx --env VENELX_TOKEN=vx_... -- npx -y @venelx/mcp

Cursor

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "venelx": {
      "command": "npx",
      "args": ["-y", "@venelx/mcp"],
      "env": {
        "VENELX_TOKEN": "vx_..."
      }
    }
  }
}

Kimi Code / generic MCP client

Same shape as above — add to your client's MCP JSON config:

{
  "mcpServers": {
    "venelx": {
      "command": "npx",
      "args": ["-y", "@venelx/mcp"],
      "env": {
        "VENELX_TOKEN": "vx_...",
        "VENELX_API_URL": "https://api.venelx.com"
      }
    }
  }
}

Local development

git clone <repo> && cd venelx-mcp
npm install
npm run build

Then point your MCP client config at the local build:

{
  "mcpServers": {
    "venelx": {
      "command": "node",
      "args": ["/path/to/venelx-mcp/dist/index.js"],
      "env": {
        "VENELX_TOKEN": "vx_..."
      }
    }
  }
}

Tools

Tool

Scope needed

What it does

list_projects

read

List projects the token can access (id, name, GitHub URL, platforms, role).

get_project

read

Project details plus a GitHub access summary.

trigger_build

write

Queue a build for a platform (ios, android, …). Surfaces skipReason (e.g. signing_not_ready, github_token_invalid).

build_status

read

Current pipeline status per platform + the 10 most recent builds.

tail_logs

read

Last N lines of a build log (latest build, or a given buildId).

list_artifacts

read

Build artifacts for a project.

list_workers

read

Build workers owned by the account (name, status, capabilities).

signing_status

read

Code-signing readiness, optionally per platform (ios/android).

github_access

read

GitHub repo access diagnosis: githubAccess {ok, reason, message} + auth source label.

Troubleshooting

  • 401 Authentication failedVENELX_TOKEN is missing, wrong, or revoked. Create a new token at Account → API tokens (https://app.venelx.com/account/tokens) and update your MCP config.

  • 403 Forbidden on trigger_build — your token only has the read scope. Create a token with the write scope.

  • Could not reach the Venelx API (ECONNREFUSED / ENOTFOUND) — the API base URL is unreachable. Check VENELX_API_URL (defaults to https://api.venelx.com) and your network.

  • Nothing happens / no output — MCP servers speak JSON-RPC on stdout; run it through your MCP client, not directly in a terminal. Diagnostics are printed to stderr.

License

MIT

Available Tools

9 tools
build_statusA

Get the current build pipeline status per platform plus the 10 most recent builds for a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesVenelx project ID

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description must carry the full burden of behavioral disclosure. It implies a read-only operation by using 'Get', but does not mention authentication, rate limits, response format, or any side effects. This is acceptable for a seemingly simple status read but lacks depth.

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?

The description is a single, concise sentence that front-loads the core action and outcome. Every word contributes to the meaning, with no fluff or redundancy, making it highly efficient for an agent to parse.

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 tool with one parameter, no output schema, and no annotations, the description covers the primary return value (status per platform and 10 recent builds) adequately. It does not explain what 'status' might entail or how to interpret it, but given the simplicity, it is largely 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?

The schema provides 100% coverage for the sole parameter (projectId) with a clear description 'Venelx project ID', so the baseline is 3. The tool description does not add any additional meaning about the parameter, such as constraints or how it relates to the per-platform aspect.

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 description clearly states a specific verb ('Get') and resource ('current build pipeline status per platform plus the 10 most recent builds') for a project. It is distinct from siblings like trigger_build (trigger action) or list_projects (project enumeration), so an agent can easily tell what this tool does.

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 explains what the tool does but does not explicitly state when to use it versus alternatives, nor does it mention any exclusions or preferred contexts. An agent could infer use for status checks, but the lack of explicit routing to siblings like trigger_build or tail_logs leaves some ambiguity.

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

get_projectA

Get full details for one Venelx project, including a summary of its GitHub access state.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesVenelx project ID

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behavioral traits. It only says 'Get full details' and mentions a 'GitHub access state' summary. It does not mention read-only nature explicitly (though 'get' implies it), error behaviors, authentication requirements, rate limits, or any side effects. The description relies on the verb to convey safety, which is insufficient for a tool with zero 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?

The description is one concise sentence that front-loads the core action ('Get full details') and then adds the additional relevant detail about GitHub access state. There is no fluff or redundancy, and every word earns its place.

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 single-parameter read tool, the description adequately conveys what the tool returns ('full details' and 'GitHub access state summary'), but it does not mention possible failure modes, required permissions, or how the projectId is obtained. Given the absence of annotations and output schema, a bit more context (e.g., error handling) would improve completeness, but the current level is acceptable for a straightforward get operation.

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?

The input schema fully covers the single parameter 'projectId' with a clear description ('Venelx project ID'). Since schema coverage is 100%, the baseline is 3. The description does not add any additional meaning beyond what the schema already provides, so it stays at baseline.

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 description clearly states a specific verb ('Get') and a specific resource ('full details for one Venelx project'), and adds a distinguishing detail ('including a summary of its GitHub access state'). This distinguishes it from siblings like list_projects (which lists multiple projects) and github_access (which may focus solely on access details). An agent can easily tell what this tool does 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 Guidelines3/5

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

The description implies usage for retrieving a single project's complete details, which is implicitly different from list_projects. However, it does not explicitly mention alternatives or when not to use this tool (e.g., 'for multiple projects use list_projects'). The context is clear but not explicit enough to fully guide an agent's decision among several similar tools.

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

github_accessB

Diagnose GitHub repository access for a project: githubAccess {ok, reason, message} and the githubAuth credential source label.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesVenelx project ID

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the return structure but does not state whether the operation is read-only, requires authentication, makes network calls, or what side effects (if any) occur. The label of the credential source hints at an auth dependency, but that is under-explained.

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?

The description is a single sentence, front-loading the purpose and including the return structure. It is concise with no filler, though the literal format string ('githubAccess {ok, reason, message}') could be clearer to an agent unfamiliar with the notation.

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?

Given the tool's simplicity (one parameter) and no output schema, the description provides a basic overview of the return fields (ok, reason, message) and the credential label. However, it does not explain the meaning of these fields or how to interpret them, leaving some ambiguity for an agent deciding how to act on the result.

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?

The schema already fully describes projectId with 100% coverage. The description adds no extra semantic meaning beyond what the schema provides; it simply repeats 'for a project'. Baseline 3 is appropriate given the high schema coverage.

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 description states a specific verb ('Diagnose') and resource ('GitHub repository access for a project'), and even previews the return shape. It is clearly distinct from sibling tools like list_projects or build_status, which are about listing or building rather than access diagnosis.

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 explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. It does not mention situations where one might prefer get_project or another sibling. An agent must infer the tool's applicability solely from its purpose.

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

list_artifactsC

List build artifacts (installable binaries etc.) for a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesVenelx project ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations at all, the description carries the full burden of behavioral disclosure, yet it only restates the operation. It doesn't mention return format, ordering, whether results are paginated, or what artifact types are included beyond 'installable binaries etc.'.

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 '(installable binaries etc.)' parenthetical is slightly loose but does not add meaningful bloat.

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?

The tool is simple (one param, no output schema, no nested objects), so the description covers the basic contract. However, for a read operation with zero annotation coverage, it is thin on what the caller receives and how it relates to build_status or trigger_build.

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% — the sole parameter projectId is already described as 'Venelx project ID' in the schema. The description adds no parameter meaning beyond that, so the baseline of 3 for full coverage 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 ('List') plus resource ('build artifacts') scoped to a project, which is clear and distinguishable from siblings like trigger_build and build_status. The qualifier '(installable binaries etc.)' slightly dilutes precision but the core purpose 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?

No guidance on when to use this tool versus list_projects, build_status, or signing_status. The only context is 'for a project', which implies a relationship to build outcomes but never explicitly routes the agent away from alternatives or states prerequisites.

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

list_projectsA

List all Venelx projects the API token can access (id, name, GitHub URL, platforms, role).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the disclosure burden. It states the list is limited to projects 'the API token can access', which is a useful permission constraint, and enumerates the returned fields, giving the agent a clear expectation of the output shape. It does not explicitly state read-only status, but 'List' inherently implies a non-mutating operation, and no other behavioral caveats are necessary for a simple list.

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-structured sentence that front-loads the action ('List all Venelx projects...') and then lists the returned fields. There is no waste or redundancy, and every word contributes to utility.

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?

For a simple read-only list operation with no parameters and no output schema, the description covers the essentials: scope ('all accessible'), permission constraint ('the API token can access'), and the exact return fields. Nothing critical is missing for an agent to invoke and interpret the result.

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?

The tool has zero parameters, so the description needs no parameter information. The schema is trivially complete with 100% coverage, and the description correctly avoids fabricating parameter details, yielding the baseline score for a 0-parameter tool.

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 description states a specific verb 'List' and resource 'Venelx projects', and clarifies it returns all accessible projects with specific fields (id, name, GitHub URL, platforms, role). The 'all' qualifier distinguishes it from the sibling tool get_project, which is singular, making the purpose unambiguous.

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

Usage Guidelines4/5

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

The description implies the tool is for listing all projects, which is a clear usage context, and the sibling get_project suggests an alternative for a single project. However, it does not explicitly mention alternatives or provide exclusions, so it lacks the explicit routing seen in higher-scoring descriptions.

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

list_workersA

List the build workers owned by the current account (name, status, capabilities).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'List' which implies a read-only operation, but does not explicitly mention authentication needs, pagination, or side effects. It does add that workers are scoped to the current account, which is useful context. However, the description is minimal and does not go beyond the obvious behavior of a listing operation.

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?

The description is a single, efficient sentence that front-loads the core action and scope, followed by a parenthetical list of returned fields. No wasted words. Structure is optimal for a tool with no parameters.

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?

Given the low complexity (0 params, no output schema), the description is fairly complete. It tells the agent what data will be returned (name, status, capabilities), which substitutes for an output schema. It omits any mention of pagination or error conditions, but for a simple list operation this is acceptable. It does not cover potential 'when to use' alternatives, which is captured under usage guidelines.

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?

The tool has zero parameters, and the schema reflects that with an empty properties object. Per the rubric, a baseline of 4 applies when there are no parameters to document. The description adds no parameter information because none exist, but it still clarifies the output fields, which is slightly beyond baseline.

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 description clearly states a specific verb ('List'), a resource ('build workers'), and a scope ('owned by the current account'). It also specifies the returned fields (name, status, capabilities), which differentiates it from siblings like list_projects that target a different resource. Purpose 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?

The description provides no explicit guidance on when to use this tool versus alternatives. While the purpose implies use for inspecting workers, there is no mention of when not to use it or how it relates to siblings like list_projects or get_project. The agent must infer usage 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.

signing_statusB

Check code-signing readiness for a project. Optionally filter by platform ("ios" or "android").

ParametersJSON Schema
NameRequiredDescriptionDefault
platformNoPlatform to check; omit to check all platforms
projectIdYesVenelx project ID

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It says 'check' which implies a read-only operation, but it does not explicitly confirm non-mutation, describe the output structure (e.g., per-platform readiness, overall status), or mention edge cases like missing certificates or platform unavailability. Without annotations, this lack of detail is a significant gap.

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?

The description is a single, concise sentence that front-loads the primary purpose and then mentions the optional filter. Every word earns its place, and it is immediately scannable for an agent.

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 tool with only two parameters and no output schema, the description is adequate but incomplete. It explains the purpose and platform filter, but lacks context on what 'code-signing readiness' entails, what the response looks like, and when an agent would prefer this over sibling tools. Given the simplicity, it does not fully equip an agent to interpret the result or handle errors.

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 both parameters (projectId and platform) are already documented with descriptions. The description adds minimal value by restating the platform filter ('Optionally filter by platform'), but it does not provide deeper semantics (e.g., acceptable values for projectId format or how the filter affects output). Baseline 3 is appropriate given high schema coverage.

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 and resource: 'Check code-signing readiness for a project.' This clearly distinguishes it from siblings like build_status or trigger_build, which relate to builds rather than signing. However, 'code-signing readiness' could be more explicitly defined (e.g., whether it involves certificate checks or provisioning), but the core purpose is clear.

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 does not explicitly state when to use this tool versus alternatives. It mentions optional platform filtering but gives no guidance on prerequisites, typical scenarios, or when not to use it (e.g., if a build is needed, trigger_build might be more appropriate). The purpose is clear enough that an agent could infer usage, but explicit routing is absent.

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

tail_logsA

Return the last N lines of a build log. If buildId is omitted, the most recent build of the project is used.

ParametersJSON Schema
NameRequiredDescriptionDefault
linesNoNumber of log lines to return (default 100)
buildIdNoBuild history ID; defaults to the latest build
projectIdYesVenelx project ID

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the key behavioral trait of defaulting to the latest build, but it does not mention error handling, permissions, or any side effects. Since it is a read-only operation ('Return'), the core behavior is clear, but additional safety or failure-mode context is missing.

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?

The description is a single, efficient sentence that front-loads the action and includes the key default behavior. Every word earns its place with no 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?

For a simple read-only log tail tool with a fully documented schema and no output schema, the description is sufficiently complete. It covers the core function and default behavior. Additional details like output format or error cases would be nice but are not critical for correct invocation.

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 each parameter already documented (e.g., lines default 100, buildId defaults to latest). The description does not add meaning beyond what the schema provides; it merely restates the defaults. This matches the baseline for full schema coverage.

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 description clearly states the action ('Return the last N lines of a build log') with a specific verb and resource. It distinguishes itself from sibling tools like trigger_build or build_status by focusing on log content, making its purpose unambiguous.

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 context is clear: it is for reading log lines from a build. It mentions the default behavior when buildId is omitted, which helps agents know when to use it. However, it does not explicitly contrast with sibling tools or state when not to use it, 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.

trigger_buildA

Trigger a CI/CD build for a project on a platform (e.g. "ios" or "android"). Requires an API token with the write scope. Returns jobId/status/message; a skipped build includes a skipReason (e.g. signing_not_ready, github_token_invalid).

ParametersJSON Schema
NameRequiredDescriptionDefault
platformYesBuild platform / flow id, e.g. "ios" or "android"
projectIdYesVenelx project ID

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses the required write scope, the return format (jobId/status/message), and the special case of skipped builds with skipReason. It also implies async behavior via jobId. While it doesn't detail all failure modes, it covers the most relevant behavioral aspects.

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?

The description is a single, tightly packed sentence with no wasted words. It leads with the action, then prerequisites, then return shape, and finally the skip case. Every clause adds value.

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 tool with 2 parameters and no output schema, the description sufficiently explains the return values and the skip scenario. It lacks detailed error handling info, but that is not essential given the return structure and permission note. It is complete enough for correct invocation.

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 both parameters are already described in the input schema. The description merely repeats the platform examples without adding new meaning, such as relationships or format constraints. Baseline 3 applies because the schema does the heavy lifting.

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 description clearly states 'Trigger a CI/CD build for a project on a platform' – a specific verb and resource. It distinguishes from siblings like build_status by focusing on initiation rather than status. The examples of platforms add context without confusion.

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 implies its use (to start a build) and provides a prerequisite ('Requires an API token with the write scope'), but it does not explicitly mention alternatives or when not to use it. Given sibling names like build_status, the usage is inferable but not stated.

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. 9 tool updatesv0.1.0
    • First observedbuild_status
    • First observedget_project
    • First observedgithub_access
    • First observedlist_artifacts
    • First observedlist_projects
    • First observedlist_workers
    • First observedsigning_status
    • First observedtail_logs
    • First observedtrigger_build

TDQS

A3.7/5.0

Scored across 9 tools

Disambiguation5/5

Each tool targets a distinct operation: listing vs. fetching details, triggering builds vs. checking status, tailing logs, listing artifacts/workers, and checking signing/access readiness. There is no overlap between tools, so an agent can reliably select the right one.

Naming Consistency4/5

Tools generally follow a verb_noun pattern (list_projects, get_project, trigger_build, tail_logs). A few status-oriented tools use noun-only names (build_status, signing_status, github_access), but the style is uniformly snake_case and predictable, with only minor deviation from the strict verb-first convention.

Tool Count5/5

With 9 tools, the surface is well-scoped for a CI/CD and project management server. Each tool addresses a clear need (listing, detail, build, logs, artifacts, workers, readiness checks) without redundancy or bloat.

Completeness4/5

The core CI/CD lifecycle is covered: listing projects, getting details, triggering builds, checking status, fetching logs, and retrieving artifacts. Notable gaps include build cancellation and artifact download endpoints, but these are minor and likely handled externally; the main workflows are complete.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers