JobBOSS2 MCP server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@JobBOSS2 MCP server list the 20 most recently modified customers"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 buildAuthentication
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-secretA pre-issued access token also works, but the server cannot refresh it:
JOBBOSS2_ACCESS_TOKEN=your-access-tokenDo 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 |
| List resources or inspect paths, keys, and request schemas | Read-only |
| List records with fields, filters, sorting, and paging | Read-only |
| Get one record using its documented path keys | Read-only |
| Create a record after OpenAPI request validation | Write opt-in |
| Patch a record after OpenAPI request validation | Write opt-in |
| List bins, jobs, or routing steps | Read-only |
| Transfer stock and update related job records | Write opt-in |
| Submit a report request | Write opt-in |
| Retrieve a report by request ID | Read-only |
| 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=truejobboss2_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=truePOST calls through this tool also require JOBBOSS2_ALLOW_WRITES=true.
Configuration
Variable | Default | Description |
| Integration Engine API user client ID | |
| Integration Engine API user client secret | |
| Static bearer token alternative | |
| ECI production API | JobBOSS² API origin |
| ECI production token endpoint | OAuth token URL |
|
| Per-request timeout from 100 to 300000 ms |
|
| Enable POST and PATCH tools |
|
| 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:ssZandyyyy-MM-dd.Most list endpoints return a default field set. Pass
fieldsto 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
401when 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 checkThe project uses released TypeScript 7 and emits declarations during every build.
Update the API catalog
pnpm sync:openapi
pnpm checksync: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
Available Tools
9 toolsjobboss2_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 resourceARead-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 recordARead-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 reportARead-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 materialsARead-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 recordsARead-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 jobADestructive
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 recordADestructive
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
Scored across 9 tools
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.
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.
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.
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
Related MCP Connectors
Model Context Protocol server for todo.vu task management and time tracking.
Model Context Protocol server for Studex tools, notifications, and profile integrations
Authenticated FieldRobin workspace tools, including scope-authorized customer and job creation.
Scopable MSP API: clients, quotes, assessments, compliance, QBRs. OAuth 2.1, read-only or read-write
Related MCP Servers
- FlicenseBqualityNot gradedmaintenanceFacilitates 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.65-
- AlicenseBqualityDmaintenanceEnables interaction with Linear's API for managing issues, teams, and projects programmatically through the Model Context Protocol.783 npm4MIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Smartsheet API to search, retrieve, create, update, and manage sheets, rows, webhooks, sharing permissions, cross-sheet references, and perform bulk operations through the Model Context Protocol.161 npmApache 2.0
- FlicenseAqualityDmaintenanceEnables interaction with Grist documents, workspaces, and records via the Model Context Protocol. It supports comprehensive operations including SQL querying, schema management, and record CRUD functionality.11137 npm4-