Skip to main content
Glama

ARM MCP Server

CI npm Node.js 22+ License: MIT

Model Context Protocol (MCP) server for AutoRABIT ARM Developer APIs. It provides 29 dedicated tools for CI Jobs, nCino CI Jobs, deployment reporting, version control branch and pull request automation, and SIEM audit logs, plus resources and guided prompts for common workflows.

Requirements

  • Node.js 22 or newer

  • An AutoRABIT ARM API token

  • A separate audit API token only when using SIEM audit tools

Related MCP server: arx-mcp-server

Quick Start

git clone https://github.com/AutoRABIT-AI/ARM-MCP-Server.git
cd ARM-MCP-Server
npm ci
npm run build

Set the required environment variables:

export ARM_BASE_URL="https://pilot.autorabit.com"
export ARM_API_TOKEN="YOUR_ARM_API_TOKEN"

Run the stdio server:

npm start

After the package is published to npm, it can also be run with:

npx -y @autorabit-ai/arm-mcp-server

Quick Start Cookbooks

Connect the server to Codex or Claude Code, then run copy-paste-ready workflows for PR readiness, daily deployment reporting, CI failure triage, nCino build health, audit review, and controlled build/deploy actions:

MCP Client Configuration

Use the built server from a source checkout:

{
  "mcpServers": {
    "autorabit-arm": {
      "command": "node",
      "args": ["/absolute/path/to/ARM-MCP-Server/dist/index.js"],
      "env": {
        "ARM_BASE_URL": "https://pilot.autorabit.com",
        "ARM_API_TOKEN": "YOUR_ARM_API_TOKEN"
      }
    }
  }
}

For npm-based execution, use npx as the command and ["-y", "@autorabit-ai/arm-mcp-server"] as the arguments.

Configuration

Variable

Required

Default

Purpose

ARM_BASE_URL

For ARM tools

None

ARM tenant URL. HTTPS is required for non-loopback hosts.

ARM_API_TOKEN

For ARM tools

None

Token sent in the ARM token header.

ARM_TIMEOUT_MS

No

30000

ARM request timeout from 1,000 to 300,000 ms.

ARM_MAX_RETRIES

No

2

Read-request retry count from 0 to 10.

ARM_ENABLE_GENERIC_TOOL

No

false

Exposes the generic arm_call_api tool when set to true.

ARM_ALLOW_INSECURE_HTTP

No

false

Allows HTTP for non-loopback ARM hosts. Intended only for controlled development.

ARM_AUDIT_BASE_URL

For audit tools

None

Audit API host.

ARM_AUDIT_API_TOKEN

For audit tools

None

Bearer token for the audit API.

ARM_AUDIT_TIMEOUT_MS

No

30000

Audit request timeout from 1,000 to 300,000 ms.

ARM_AUDIT_MAX_RETRIES

No

2

Audit read-request retry count from 0 to 10.

ARM_AUDIT_DOWNLOAD_DIR

No

OS temp directory

Local destination for audit ZIP downloads.

ARM_AUDIT_MAX_DOWNLOAD_BYTES

No

52428800

Maximum accepted audit ZIP size.

Credentials are read from the process environment and are never accepted as tool arguments. Custom request headers cannot override token, authorization, host, or content-length.

Tools

CI Jobs v1

Tool

ARM endpoint

arm_list_ci_jobs

GET /api/cijobs/v1/listcijobs

arm_ci_job_history

GET /api/cijobs/v1/history/{ciJobName}

arm_latest_results

GET /api/cijobs/v1/latestresults/{ciJobName}

arm_poll_job_status

GET /api/cijobs/v1/pollstatus/{ciJobName}/{buildNumber?}

arm_rollback_history

GET /api/cijobs/v1/rollback/history/{ciJobName}/{buildNumber?}

arm_rollback_details

GET /api/cijobs/v1/rollback/{ciJobName}

arm_trigger_build

POST /api/cijobs/v1/trigger

arm_update_baseline_revision

POST /api/cijobs/v1/update/baselinerevision

arm_quick_deploy

POST /api/cijobs/v1/triggerquickdeploy/{ciJobName}/{buildNumber?}

arm_start_rollback

POST /api/cijobs/v1/rollback

arm_abort_ci_job

PUT /api/cijobs/v1/abort/{ciJobName}/{buildNumber?}

CI read tools send path and query parameters without GET request bodies. Mutation tools do not retry automatically.

nCino CI Jobs v1

Tool

ARM endpoint

arm_ncino_list_ci_jobs

GET /api/cijobs/v1/ncino/getalljobs

arm_ncino_list_job_history

GET /api/cijobs/v1/ncino/gethistory

arm_ncino_trigger_build

POST /api/cijobs/v1/ncino/trigger

arm_ncino_get_build_summary

POST /api/cijobs/v1/ncino/getcijobsummary

arm_ncino_get_latest_build

POST /api/cijobs/v1/ncino/getcijobinfo

arm_ncino_get_build_history

POST /api/cijobs/v1/ncino/getcijobbuildhistory

arm_ncino_poll_build_status

POST /api/cijobs/v1/ncino/pollstatus

Trigger and monitor an nCino build:

{
  "name": "arm_ncino_trigger_build",
  "arguments": {
    "jobName": "nCino Feature Migration",
    "title": "Release 26.3",
    "deploy": true,
    "commitFeature": false,
    "note": "Triggered from MCP",
    "rollbackEnabled": true,
    "deployedSFOrg": "Production",
    "projectType": "SalesForceFeature"
  }
}
{
  "name": "arm_ncino_poll_build_status",
  "arguments": {
    "jobName": "nCino Feature Migration",
    "buildNumber": 42
  }
}

Version Control Branch and Pull Request

Tool

ARM endpoint

arm_create_branch_pr_from_manifest

POST /api/vc/v1/branch-pr

arm_get_branch_pr_status

GET /api/vc/v1/branch-pr/{requestId}

arm_create_branch_pr_from_manifest starts an asynchronous request and returns a requestId. ARM creates a branch from baseBranch, retrieves the metadata listed in packageManifest from the target org, commits it to the new branch, updates the Jira story when jiraKey is sent, and creates a pull request. Poll arm_get_branch_pr_status for per-step progress, the branch, the commit, the Jira update, the pull request URL, and any error with partial results. If a step fails after ARM created the branch, ARM deletes that branch and reports it in the status response. To commit onto a branch that already exists in the repository, set useExistingBranch to true and send its branchName: the branch need not be registered in ARM (ARM registers it if needed), and it is never deleted, even on failure. Existing-branch commits and new-branch commits both appear in ARM Commit History. For DX (source format) repositories, send sfdxFolderName to choose the package directory when the repository has more than one. The create tool does not retry automatically.

{
  "name": "arm_create_branch_pr_from_manifest",
  "arguments": {
    "packageManifest": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Package xmlns=\"http://soap.sforce.com/2006/04/metadata\"><types><members>*</members><name>ApexClass</name></types><version>66.0</version></Package>",
    "orgName": "Dev Sandbox",
    "repoName": "salesforce-repo",
    "baseBranch": "main",
    "jiraKey": "AR-12345"
  }
}

Deployment Reporting v1

Tool

ARM endpoint

arm_list_deployments

GET /api/deployments/v1/list

arm_get_deployment

GET /api/deployments/v1/{label}

arm_get_deployment_components

GET /api/deployments/v1/{label}/components

arm_get_deployment_stories

GET /api/deployments/v1/{label}/stories

arm_get_deployment_promotion_log

GET /api/deployments/v1/{label}/logs/{iterationNumber}

arm_get_deployment_test_coverage

GET /api/deployments/v1/{label}/coverage/{iterationNumber}

{
  "name": "arm_list_deployments",
  "arguments": {
    "status": "Successful",
    "fromDate": "2026-07-01",
    "toDate": "2026-07-31",
    "destSfOrg": "production@example.com",
    "limit": 25
  }
}

SIEM Audit Logs

Tool

Audit endpoint

arm_audit_get_logs

GET /logs/audit_logs

arm_audit_download_logs

GET /logs/audit_logs/download

arm_audit_list_event_types

Local reference, no API call

Audit downloads enforce a configurable byte limit, write files with owner-only permissions, and return an MCP resource_link to the local ZIP. Download ranges cannot exceed 90 days.

Optional Generic Tool

arm_call_api supports additional same-origin /api/ endpoints. It is hidden and blocked by default because it expands the server's action surface. Set ARM_ENABLE_GENERIC_TOOL=true only when the MCP client needs unmodeled endpoints.

Resources

  • arm://docs/overview

  • arm://docs/cijobs-v1

  • arm://docs/ncino-cijobs-v1

  • arm://docs/deployments-v1

  • arm://docs/auth

  • arm://docs/audit-logs

Prompts

  • arm_quick_deploy_guide

  • arm_rollback_guide

  • arm_trigger_build_guide

  • arm_poll_status_guide

  • arm_deployment_report_guide

  • arm_ncino_build_and_monitor_guide

  • arm_ncino_build_report_guide

  • arm_audit_logs_guide

Docker

docker build -t arm-mcp-server .
docker run -i --rm \
  -e ARM_BASE_URL \
  -e ARM_API_TOKEN \
  arm-mcp-server

For Docker Compose:

cp .env.example .env
docker compose run --rm arm-mcp-server

Development

npm ci
npm run typecheck
npm test
npm audit
npm pack --dry-run

Contract tests launch the compiled MCP server over stdio and verify tool discovery, resources, prompts, authentication headers, HTTP methods, paths, payloads, error signaling, and security controls against a local mock server.

See CONTRIBUTING.md for contribution requirements, SECURITY.md for private vulnerability reporting, and SUPPORT.md for support channels.

API Sources

License

MIT

Available Tools

21 tools
arm_abort_ci_jobB

PUT /api/cijobs/v1/abort/{ciJobName}/{buildNumber?}. Aborts ongoing CI job.

Inputs: title (required), ciJobName (required), projectName (required), headers, +1 more.

arm_audit_download_logsA

GET /logs/audit_logs/download. Downloads SIEM audit logs as a ZIP file for a date range (max 90 days). Returns the constructed download URL and request metadata.

Inputs: startTime (required), endTime.

arm_audit_get_logsA

GET /logs/audit_logs. Retrieves SIEM audit logs from AutoRABIT with optional filters. Returns CEF-formatted log entries.

Inputs: eventType, startTime, maxResults.

arm_audit_list_event_typesA

Returns the 12 known ARM SIEM audit event types with their associated modules and descriptions. No API call is made; this is a local reference.

Inputs: no named parameters.

arm_call_apiB

Generic ARM API request tool for additional endpoints not yet modeled as dedicated tools.

Inputs: path (required), method (required), body, query, +1 more.

arm_ci_job_historyC

GET /api/cijobs/v1/history/{ciJobName}. Retrieves CI job build history.

Inputs: title (required), ciJobName (required), projectName (required), to, +2 more.

arm_get_deploymentA

GET /rabit/api/deployments/v1/{label}. Retrieves deployment-level details for a deployment label.

Inputs: label (required), headers.

arm_get_deployment_componentsA

GET /rabit/api/deployments/v1/{label}/components. Retrieves component-level changes for a deployment.

Inputs: label (required), headers.

arm_get_deployment_promotion_logA

GET /rabit/api/deployments/v1/{label}/logs/{iterationNumber}. Retrieves the plain-text promotion log for a deployment iteration.

Inputs: label (required), iterationNumber (required), headers.

arm_get_deployment_storiesA

GET /rabit/api/deployments/v1/{label}/stories. Retrieves Jira stories and commit traceability for a deployment, optionally scoped to an iteration.

Inputs: label (required), headers, iterationNumber.

arm_get_deployment_test_coverageA

GET /rabit/api/deployments/v1/{label}/coverage/{iterationNumber}. Retrieves Apex test and code coverage details for a deployment iteration.

Inputs: label (required), iterationNumber (required), headers.

arm_latest_resultsC

GET /api/cijobs/v1/latestresults/{ciJobName}. Retrieves detailed latest results for a CI job.

Inputs: title (required), ciJobName (required), projectName (required), headers.

arm_list_ci_jobsC

GET /api/cijobs/v1/listcijobs. Lists all CI jobs configured in ARM.

Inputs: title (required), projectName (required), headers.

arm_list_deploymentsA

GET /rabit/api/deployments/v1/list. Lists deployments with optional status, date range, label, destination org, and limit filters.

Inputs: limit, status, toDate, headers, +3 more.

arm_poll_job_statusA

GET /api/cijobs/v1/pollstatus/{ciJobName}/{buildNumber?}. Polls the current status of a CI job build.

Inputs: title (required), ciJobName (required), projectName (required), headers, +1 more.

arm_quick_deployC

POST /api/cijobs/v1/triggerquickdeploy/{ciJobName}/{buildNumber?}. Triggers quick deploy.

Inputs: title (required), ciJobName (required), projectName (required), headers, +1 more.

arm_rollback_detailsC

GET /api/cijobs/v1/rollback/{ciJobName}. Retrieves complete rollback information for a CI job.

Inputs: title (required), ciJobName (required), projectName (required), headers.

arm_rollback_historyB

GET /api/cijobs/v1/rollback/history/{ciJobName}/{buildNumber?}. Fetches rollback history for a CI job build.

Inputs: title (required), ciJobName (required), projectName (required), headers, +1 more.

arm_start_rollbackB

POST /api/cijobs/v1/rollback. Initiates rollback operation for CI job.

Inputs: title (required), projectName (required), headers.

arm_trigger_buildB

POST /api/cijobs/v1/trigger. Triggers a new build for a CI job.

Inputs: title (required), projectName (required), headers.

arm_update_baseline_revisionB

POST /api/cijobs/v1/update/baselinerevision. Updates the baseline revision for a CI job.

Inputs: projectName (required), baseLineRevision (required), headers.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 21 tools

    Disambiguation4/5

    Most tools target distinct resources and actions (CI jobs, deployments, audit logs), but there is some overlap among status/history tools like arm_latest_results, arm_ci_job_history, and arm_poll_job_status, which could cause misselection though descriptions help clarify.

    Naming Consistency4/5

    All tools share the 'arm_' prefix and use snake_case, generally following a verb_noun pattern. Minor deviations like arm_ci_job_history (missing a verb) and arm_latest_results (noun-like) break full consistency, but the pattern is predictable overall.

    Tool Count4/5

    With 21 tools, the server is slightly heavy but still well-scoped for a CI/CD and deployment platform. The generic arm_call_api tool adds flexibility, though the count approaches the upper boundary of what feels necessary.

    Completeness4/5

    The tool set covers the major workflows for CI jobs, deployments, and audit logs, including triggers, status checks, rollback, and detailed retrieval. Missing operations like creating or updating CI jobs are likely handled externally, and the generic arm_call_api fills gaps, making the surface fairly complete.

    Maintenance

    ActivityMaintained
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server that integrates with ARXsec.io API to execute security scans, compliance checks, secrets management, and remediation actions with policy enforcement, audit logging, and human approval workflows.
      16 PyPI
      MIT
    • F
      license
      Not graded
      quality
      D
      maintenance
      MCP server for making API calls with authentication support. Allows configuring multiple API endpoints and performing GET, POST, PUT, DELETE requests, including form data and file uploads.
      -
    • A
      license
      C
      quality
      D
      maintenance
      MCP server for ArmorCode security platform enabling finding triage, scans, exceptions, risk scores, and release gate checks via natural language.
      37
      242 npm
      MIT