Skip to main content
Glama
JobBOSS2 MCP server

JobBOSS2 MCP server

JobBOSS2 MCP server

An unofficial Model Context Protocol server for the JobBOSS² Public API.

The server covers all 142 operations in ECI's current OpenAPI document. It groups 128 operations into focused tools and keeps 14 APS, ShopView, and OAuth exchange operations without summaries or response schemas behind an explicit opt-in.

Requirements

  • Node.js 22.12 or newer

  • pnpm 11

  • A JobBOSS² Integration Engine API user

Related MCP server: Linear MCP Server

Install

pnpm install
pnpm build

Authentication

Client credentials are the preferred setup. The server obtains tokens from ECI's documented OAuth 2.0 client credentials endpoint, caches them, refreshes before expiration, and retries one read request after a 401 response. Writes are never replayed automatically.

JOBBOSS2_CLIENT_ID=your-client-id
JOBBOSS2_CLIENT_SECRET=your-client-secret

A pre-issued access token also works, but the server cannot refresh it:

JOBBOSS2_ACCESS_TOKEN=your-access-token

Do not set both authentication methods.

MCP client configuration

Build the project, then point an MCP client at dist/cli.js. Use an absolute path.

{
  "mcpServers": {
    "jobboss2": {
      "command": "node",
      "args": ["C:\\absolute\\path\\to\\jobboss2-mcp\\dist\\cli.js"],
      "env": {
        "JOBBOSS2_CLIENT_ID": "your-client-id",
        "JOBBOSS2_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

After the package is published, clients can run it without a local checkout:

{
  "mcpServers": {
    "jobboss2": {
      "command": "pnpm",
      "args": ["dlx", "jobboss2-mcp"],
      "env": {
        "JOBBOSS2_CLIENT_ID": "your-client-id",
        "JOBBOSS2_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

Tools

Tool

Purpose

Access

jobboss2_describe_resource

List resources or inspect paths, keys, and request schemas

Read-only

jobboss2_list

List records with fields, filters, sorting, and paging

Read-only

jobboss2_get

Get one record using its documented path keys

Read-only

jobboss2_create

Create a record after OpenAPI request validation

Write opt-in

jobboss2_update

Patch a record after OpenAPI request validation

Write opt-in

jobboss2_issuing_materials_lookup

List bins, jobs, or routing steps

Read-only

jobboss2_transfer_stock_to_job

Transfer stock and update related job records

Write opt-in

jobboss2_create_report

Submit a report request

Write opt-in

jobboss2_get_report

Retrieve a report by request ID

Read-only

jobboss2_undocumented_request

Call underspecified APS, ShopView, or OAuth exchange paths

Separate opt-in

Call jobboss2_describe_resource before creates and updates. ECI's OpenAPI document has no operationId values, so this server assigns stable snake-case resource names from the API tags.

Filters and paging

List tools use ECI's documented filter syntax. Supply a filter map instead of building a query string:

{
  "resource": "customers",
  "fields": ["customerCode", "customerDescription", "lastModDate"],
  "filters": {
    "customerCode[in]": ["ACME", "ECI"],
    "lastModDate[gte]": "2026-01-01"
  },
  "sort": ["+customerCode"],
  "skip": 0,
  "take": 50
}

Supported operators are eq, ne, gte, lte, gt, lt, in, notin, and null. Arrays are serialized as pipe-separated values for in and notin. List calls are capped at 200 records; use skip and take to page through larger result sets.

The server rejects revisedDate[null] because ECI documents that expression as causing a server error.

Write access

Create, update, report creation, stock transfer, and undocumented POST calls are disabled by default. Enable them only for MCP clients you trust:

JOBBOSS2_ALLOW_WRITES=true

jobboss2_transfer_stock_to_job changes bin quantities and can create job materials, inventory transactions, and job requirements. The API does not document idempotency, so the server never retries it automatically.

Undocumented operations

The OpenAPI document includes 14 APS, ShopView, and OAuth exchange operations without summaries or response schemas. They are omitted from the default tool list. To expose jobboss2_undocumented_request:

JOBBOSS2_ENABLE_UNDOCUMENTED=true

POST calls through this tool also require JOBBOSS2_ALLOW_WRITES=true.

Configuration

Variable

Default

Description

JOBBOSS2_CLIENT_ID

Integration Engine API user client ID

JOBBOSS2_CLIENT_SECRET

Integration Engine API user client secret

JOBBOSS2_ACCESS_TOKEN

Static bearer token alternative

JOBBOSS2_BASE_URL

ECI production API

JobBOSS² API origin

JOBBOSS2_TOKEN_URL

ECI production token endpoint

OAuth token URL

JOBBOSS2_REQUEST_TIMEOUT_MS

30000

Per-request timeout from 100 to 300000 ms

JOBBOSS2_ALLOW_WRITES

false

Enable POST and PATCH tools

JOBBOSS2_ENABLE_UNDOCUMENTED

false

Register the underspecified operation tool

Custom URLs must use HTTPS. Plain HTTP is accepted only for localhost development.

API behavior

  • JobBOSS² accepts and returns dates in UTC. Documented input formats are yyyy-MM-ddTHH:mm:ssZ and yyyy-MM-dd.

  • Most list endpoints return a default field set. Pass fields to choose exact fields.

  • Quote and quote-line-item currency pairs accept either the company-currency field or the foreign field on POST/PATCH, not both. ECI calculates the other value.

  • Report request and response shapes are absent from the current OpenAPI document.

  • The server retries only one read after a 401 when it owns refreshable client credentials. It never retries writes, other API errors, or network failures.

Development

pnpm dev
pnpm typecheck
pnpm lint
pnpm format
pnpm test
pnpm build
pnpm check

The project uses released TypeScript 7 and emits declarations during every build.

Update the API catalog

pnpm sync:openapi
pnpm check

sync:openapi fetches ECI's live OpenAPI document and writes src/generated/catalog.json. The generator keeps route metadata and request schemas, but drops changing examples and the rest of the full specification. Review API changes before committing the generated file.

Security

Keep JobBOSS² credentials in the MCP client's environment configuration. Do not put them in this repository or pass them as tool arguments. See SECURITY.md for vulnerability reports.

Disclaimer

This project is not affiliated with or endorsed by ECI Software Solutions. JobBOSS and JobBOSS² are marks of their respective owner. The API documentation remains the authority for JobBOSS² behavior.

License

MIT

Available Tools

9 tools
jobboss2_createCreate a JobBOSS2 recordA

Create a JobBOSS2 record. Request data is checked against ECI's OpenAPI schema. Use jobboss2_describe_resource first to inspect required parent keys and fields.

Inputs: data (required), resource (required), parentKeys. Returns: data, status

jobboss2_create_reportCreate a JobBOSS2 reportB

Submit a JobBOSS2 report request. ECI's current OpenAPI document does not define this request body's fields or response schema.

Inputs: data. Returns: data, status

jobboss2_describe_resourceDescribe JobBOSS2 resourceA
Read-onlyIdempotent

List JobBOSS2 resources or inspect one resource's paths, keys, query parameters, and request schema. Call this before create or update tools.

Inputs: resource, operation. Returns: result

jobboss2_getGet a JobBOSS2 recordA
Read-onlyIdempotent

Get one JobBOSS2 record. Use jobboss2_describe_resource to find the exact key names required by the resource.

Inputs: keys (required), resource (required), fields. Returns: data, status

jobboss2_get_reportGet a JobBOSS2 reportA
Read-onlyIdempotent

Get a previously submitted JobBOSS2 report by request ID. ECI's current OpenAPI document does not define the response schema.

Inputs: requestId (required). Returns: data, status

jobboss2_issuing_materials_lookupLook up issuing materialsA
Read-onlyIdempotent

List issuing-material bin locations, job numbers, or routing steps with standard JobBOSS2 filters and paging.

Inputs: lookup (required), skip, sort, take, +2 more. Returns: data, status

jobboss2_listList JobBOSS2 recordsA
Read-onlyIdempotent

List a JobBOSS2 resource with documented fields, filters, sorting, and offset paging. Filter keys use field[operator], where operator is eq, ne, gte, lte, gt, lt, in, notin, or null.

Inputs: resource (required), skip, sort, take, +2 more. Returns: data, status

jobboss2_transfer_stock_to_jobTransfer stock to a jobA
Destructive

Transfer stock material to a job. This changes bin quantities and can create job materials, inventory transactions, and job requirements. It is not safe to retry blindly.

Inputs: data (required). Returns: data, status

jobboss2_updateUpdate a JobBOSS2 recordA
Destructive

Patch a JobBOSS2 record. Request data is checked against ECI's OpenAPI schema. Use jobboss2_describe_resource first to inspect key names and writable fields.

Inputs: data (required), keys (required), resource (required). Returns: data, status

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 9 tools

    Disambiguation4/5

    The generic resource tools (describe/list/get/create/update) and the report-specific tools are mostly distinct, and the two domain operations are clearly unique. Some ambiguity exists between generic create/get and create_report/get_report, but the descriptions clarify the report tools are for submitted report requests.

    Naming Consistency3/5

    All tools share the jobboss2_ prefix, but the suffix pattern is inconsistent: bare verbs (list, get, create, update), verb_noun (describe_resource, create_report, get_report), noun_lookup (issuing_materials_lookup), and a phrasal verb (transfer_stock_to_job). This is readable but not a predictable verb_noun convention.

    Tool Count5/5

    Nine tools is a reasonable size for a JobBOSS2 wrapper: generic CRUD, resource introspection, report submission/retrieval, and two domain-specific stock actions. Each tool addresses a distinct operation without excessive fragmentation.

    Completeness3/5

    The generic surface covers describe/list/get/create/update but omits delete, which is a notable gap for full lifecycle coverage. Report tools support submit and retrieve but no listing or cancellation, and the report schema is explicitly undefined, leaving agents with potential dead ends.

    Maintenance

    ActivityActive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      B
      quality
      Not graded
      maintenance
      Facilitates secure and type-safe interactions with both v1 and v2 of the Glide API, allowing users to manage app data and perform CRUD operations on tables via a Model Context Protocol interface.
      6
      5
      -