AroFlo MCP Server

Local setup required. This server has to be cloned and prepared on your machine before you register it in Claude Code.
1

Set the server up locally

Run this once to clone and prepare the server before adding it to Claude Code.

Run in terminal
make install
2

Register it in Claude Code

After the local setup is done, run this command to point Claude Code at the built server.

Run in terminal
claude mcp add -e "AROFLO_SECRET_KEY=${AROFLO_SECRET_KEY}" -e "AROFLO_UENCODED=${AROFLO_UENCODED}" -e "AROFLO_PENCODED=${AROFLO_PENCODED}" -e "AROFLO_ORG_ENCODED=${AROFLO_ORG_ENCODED}" aroflo-mcp -- node "<FULL_PATH_TO_AROFLO_MCP>/dist/index.js"

Replace <FULL_PATH_TO_AROFLO_MCP>/dist/index.js with the actual folder you prepared in step 1.

Required:AROFLO_SECRET_KEYAROFLO_UENCODEDAROFLO_PENCODEDAROFLO_ORG_ENCODED+ 1 optional
README.md

Standalone, production-ready MCP server for AroFlo

AroFlo MCP

Standalone, production-ready MCP server for AroFlo with first-class request signing and a clean tool surface.

Quick Start

Install (Local)

This repo ships an MCP server executable named aroflo-mcp (stdio transport by default).

Install the server on your machine (puts aroflo-mcp on your PATH via npm link):

make install

If global npm linking is restricted on your machine, skip npm link and run without a global install:

npm run build
node dist/mcp/server.js

Install Into Codex (stdio)

  1. Create a local .env (not committed) with your credentials:
cp .env.example .env
# edit .env
  1. Register the server in Codex (stores env in ~/.codex/config.toml, not passed as tool args):
make codex-install

make codex-install writes MCP config into ~/.codex/config.toml. If this path is permission-restricted, re-run with appropriate permissions.

  1. Verify:
codex mcp get aroflo

Manual Codex Install (Alternative)

If you prefer doing it manually (same env variables, stored in Codex config):

codex mcp add aroflo \
  --env AROFLO_API_BASE_URL=https://api.aroflo.com/ \
  --env AROFLO_ACCEPT=text/json \
  --env AROFLO_SECRET_KEY=... \
  --env AROFLO_UENCODED=... \
  --env AROFLO_PENCODED=... \
  --env AROFLO_ORG_ENCODED=... \
  --env MCP_TRANSPORT=stdio \
  -- "$(command -v node)" "$(pwd)/dist/mcp/server.js"

Notes:

  • If Codex (desktop app) hangs starting the server, it is usually a PATH issue (common when Node is installed via nvm and the app is launched outside your shell).
  • Fix 1: Launch Codex from a terminal so it inherits your shell PATH (codex app).
  • Fix 2: Configure the MCP server to run via an absolute Node path (see docs/runbooks.md).

Development

Install dependencies:

npm ci

Build and test:

npm run test
npm run build

Run server (stdio):

npm run dev

If your environment blocks IPC sockets used by tsx in dev mode, use the built runtime instead:

npm run build
npm run start

Run server (HTTP Streamable transport):

MCP_TRANSPORT=http npm run dev:http

MCP Inspector

To interactively test tools/list and tools/call via the official inspector UI:

make inspector

Project Layout

src/
  auth/
  aroflo/
  mcp/
  utils/
tests/
docs/

Environment

Required variables:

  • AROFLO_SECRET_KEY
  • AROFLO_UENCODED
  • AROFLO_PENCODED
  • AROFLO_ORG_ENCODED

Optional variables:

  • AROFLO_API_BASE_URL (default: https://api.aroflo.com/)
  • AROFLO_ACCEPT (default: text/json)
  • AROFLO_HOST_IP
  • AROFLO_TIMEOUT_MS (default: 65000)
  • AROFLO_MAX_RETRIES (default: 2)
  • LOG_LEVEL (default: info)

HTTP Transport

Set MCP_TRANSPORT=http to run an HTTP server (Streamable HTTP transport) at:

  • http://${MCP_HTTP_HOST}:${MCP_HTTP_PORT}${MCP_HTTP_PATH}

Using Extracted API Docs (`docs/api`)

This repo includes a local snapshot of the AroFlo API docs in docs/api/.

The MCP server exposes these markdown files as MCP resources so the client/LLM can look up valid WHERE fields, JOIN areas, etc:

  • aroflo://docs/api -> docs/api/README.md
  • aroflo://docs/api/<slug> -> docs/api/<slug>.md (example: aroflo://docs/api/quotes)

Example query: list Quotes with acceptance status "Awaiting Decision":

  • Tool: aroflo_get_quotes
  • Args:
{
  "where": "and|acceptancestatus|=|Awaiting Decision",
  "page": 1,
  "pageSize": 50
}

Example report: open projects with labour hours per task (recommended for progress reporting):

  • Tool: aroflo_report_open_projects_with_task_hours
  • Args (add optional filters like sinceDateRequested to keep outputs small):
{
  "sinceCreatedUtc": "2025-01-01",
  "sinceDateRequested": "2025-01-01",
  "hoursOnly": true,
  "includeTaskStatus": true,
  "mode": "data"
}

Docs

  • docs/aroflo-auth.md
  • docs/mcp-tools.md
  • docs/examples.md
  • docs/runbooks.md
  • docs/deployment.md
  • docs/api/*

Tools (2)

aroflo_get_quotesRetrieves a list of quotes from AroFlo based on filtering criteria.
aroflo_report_open_projects_with_task_hoursGenerates a report of open projects including task hours for progress tracking.

Environment Variables

AROFLO_SECRET_KEYrequiredAPI secret key for authentication
AROFLO_UENCODEDrequiredEncoded username credential
AROFLO_PENCODEDrequiredEncoded password credential
AROFLO_ORG_ENCODEDrequiredEncoded organization identifier
AROFLO_API_BASE_URLBase URL for the AroFlo API

Configuration

claude_desktop_config.json
{"mcpServers": {"aroflo": {"command": "node", "args": ["/path/to/dist/mcp/server.js"], "env": {"AROFLO_SECRET_KEY": "...", "AROFLO_UENCODED": "...", "AROFLO_PENCODED": "...", "AROFLO_ORG_ENCODED": "..."}}}}

Try it

List all quotes that are currently in 'Awaiting Decision' status.
Generate a report of all open projects created since January 1st, 2025, including task hours.
Find the documentation for managing quotes in the AroFlo API.
Show me the progress of active projects with task status included.

Frequently Asked Questions

What are the key features of AroFlo MCP?

Secure request signing for AroFlo API interactions. Exposes API documentation as MCP resources for LLM context. Supports both stdio and HTTP streamable transport modes. Built-in support for managing quotes and project labor reporting.

What can I use AroFlo MCP for?

Automating the retrieval of pending quotes for sales teams. Generating real-time project progress reports for management. Integrating AroFlo field service data directly into AI-assisted workflows. Querying specific project task hours for accurate labor billing.

How do I install AroFlo MCP?

Install AroFlo MCP by running: make install

What MCP clients work with AroFlo MCP?

AroFlo MCP works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep AroFlo MCP docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare